Skip to content

v0.7.0: More robust composite distributions, TensorClass superclass

Latest
Compare
Choose a tag to compare
@vmoens vmoens released this 05 Feb 16:39

v0.7.0: More robust composite distributions, TensorClass superclass

v0.7.0 brings a lot of new features and bug fixes. Thanks to the vibrant community to help us keeping this project
alive!

New Contributors

A special thanks to our new contributors (+ people interacting with us on the PyTorch forum, discord or via issues and
social platforms)!

BC-breaking changes

  • In #1180, we use the same object for min and max operations as we do with torch.Tensor.min. Previously, tensorclasses
    were used, but that lead to some undefined behaviors when indexing (in PyTorch, min returns a namedtuple that can be
    indexed to get the values or argmax, whereas indexing a tensorclass indexes it along the batch dimension).
  • In #1166, we introduce broadcasting for pointwise operations between tensors and tensordicts. Now, the following two
    operations on either sides of the == sign are exactly equivalent:
    td = TensorDict(..., batch_size=[3, 5])
    t = torch.randn(5)
    td + t == td + t.expand(td.shape)

Announced API changes

CompositeDistribution

TL;DR: We're changing the way log-probs and entropies are collected and written in ProbabilisticTensorDictModule and
in CompositeDistribution. The "sample_log_prob" default key will soon be "<value>_log_prob (or
("path", "to", "<value>_log_prob") for nested keys). For CompositeDistribution, a different log-prob will be
written for each leaf tensor in the distribution. This new behavior is controlled by the
tensordict.nn.set_composite_lp_aggregate(mode: bool) function or by the COMPOSITE_LP_AGGREGATE environment variable.
We strongly encourage users to adopt the new behavior by setting tensordict.nn.set_composite_lp_aggregate(False).set()
at the beginning of their training script.

We've had multiple rounds of refactoring for CompositeDistribution which relied on some very specific assumptions and
resulted in a brittle and painful API. We now settled on the following API that will be enforced in v0.9, unless the
tensordict.nn.set_composite_lp_aggregate(mode) value is explicitly set to True (the current default).

The bulk of the problem was that log-probs were aggregated in a single tensor and registered in td["sample_log_prob"].
This had the following problems:

  • Summing the log-probs isn't a good idea, users should be entitled to user the log-probs as they please.
  • "sample_log_prob" is a generic but inappropriate name (the data may not be a random sample but anything else.)
  • Summing requires reduction (because log-probs may have different shapes), but sometimes we don't want to reduce to the
    shape of the root tensordict (see pytorch/rl#2756 for instance).

What's new

tensorclass

  • Introduction of the TensorClass class to do simple inheritance-style coding, which is accompanied by a stub file
    that encodes all the TensorDict op signatures (we ensure this in the CI). See #1067
  • @Tensorclass shadow attributes: you can now do @tensorclass(shadow=True) or class T(TensorClass["shadow"]): ...
    and you will be able to use dedicated names like get or values as attribute names. This is slightly unsafe when you
    nest the tensorclass, as we can't guarantee that the container won't be calling these methods directly on the
    tensorclass.
  • Similarly, @tensorclass(nocast=True) and TensorClass["nocast"] will deactivate the auto-casting in tensorclasses.
    The behavior is now:
    • No value: tensorclass will cast things like TensorDict (ie, int or np.arrays will be cast to torch.Tensor
      instances for example).
    • autocast=True will cause @tensorclass to go one step further and attempt to cast values to the type indicated
      in the dataclass definition.
    • nocast=True keeps values as they are. All non-tensor (or non-tensordict/tensorclass) values will be wrapped in
      a NonTensorData.

NonTensorData

  • It is not easier to build non-tensor stacks through a simple NonTensorStack(*values).

See the full list of features here:
[Feature] Add __abs__ docstrings, __neg__, __rxor__, __ror__, __invert__, __and__, __rand__, __radd__, __rtruediv__, __rmul__, __rsub__, __rpow__, bitwise_and, logical_and (#1154) (d1363eb) by @vmoens ghstack-source-id: 97ce710b5a4b552d9477182e1836cf3777c2d756
[Feature] Add expln map to NormalParamExtractor (#1204) (e900b24) by @vmoens ghstack-source-id: 9003ceafbe8ecb73c701ea1ce96c0a342d0679b0
[Feature] Add missing __torch_function__ (#1169) (bc6390c) by @vmoens ghstack-source-id: 3dbefb4f5322a944664bbc2d29af7f862cb92342
[Feature] Better list casting in TensorDict.from_any (#1108) (1ffc463) by @vmoens ghstack-source-id: 427d19d5ef7c0d2779e064e64522fc0094a885af
[Feature] Better logs of key errors in assert_close (#1082) (747c593) by @vmoens ghstack-source-id: 46cb41d0da34b17ccc248119c43ddba586d29d80
[Feature] COMPOSITE_LP_AGGREGATE env variable (#1190) (9733d6e) by @vmoens ghstack-source-id: 16b07d0eac582cfd419612f87e38e1a7acffcfc0
[Feature] CompositeDistribution.from_distributions (#1113) (a45c7e3) by @vmoens ghstack-source-id: 04a62439b0fe60422fbc901172df46306e161cc5
[Feature] Ensure all dists work with DETERMINSTIC type without warning (#1182) (8e63112) by @vmoens ghstack-source-id: 63117f9b3ac4125a2be4e3e55719cc718051fc10
[Feature] Expose WrapModule (#1118) (d849756) by @vmoens ghstack-source-id: 55caa5d7c39e0f98c1e0558af2a076fee15f7984
[Feature] Fix type assertion in Seq build (#1143) (eaafc18) by @vmoens ghstack-source-id: 83d3dcafe45568c366207395a22b22fb35f61de1
[Feature] Force log_prob to return a tensordict when kwargs are passed to ProbabilisticTensorDictSequential.log_prob (#1146) (98c57ee) by @vmoens ghstack-source-id: 326d0763c9bbb13b51daac91edca4f0e821adf62
[Feature] Make ProbabilisticTensorDictSequential account for more than one distribution (#1114) (c7bd20c) by @vmoens ghstack-source-id: b62b81b5cfd49168b5875f7ba9b4f35b51cd2423
[Feature] NonTensorData(*sequence_of_any) (#1160) (70d4ed1) by @vmoens ghstack-source-id: 537f3d87b0677a1ae4992ca581a585420a10a284
[Feature] NonTensorStack.data (#1132) (4404abe) by @vmoens ghstack-source-id: 86065377cc1cd7c7283ed0a468f5d5602d60526d
[Feature] NonTensorStack.from_list (#1107) (f924afc) by @vmoens ghstack-source-id: e8f349cb06a72dcb69a639420b14406c9c08aa99
[Feature] Optional in_keys for WrapModule (#1145) (2d37d92) by @vmoens ghstack-source-id: a18dd5dff39937b027243fcebc6ef449b547e0b0
[Feature] OrderedDict for TensorDictSequential (#1142) (7df2062) by @vmoens ghstack-source-id: a8aed1eaefe066dafaa974f5b96190860de2f8f1
[Feature] ProbabilisticTensorDictModule.num_samples (#1117) (978d96c) by @vmoens ghstack-source-id: dc6b1c98cee5fefc891f0d65b66f0d17d10174ba
[Feature] ProbabilisticTensorDictSequential.default_interaction_type (#1123) (68ce9c3) by @vmoens ghstack-source-id: 37d38df36263e8accd84d6cb895269d50354e537
[Feature] Subclass conservation in td ops (#1186) (070ca61) by @vmoens ghstack-source-id: 83e79abda6a4bb6839d99240052323380981855c
[Feature] TensorClass (#1067) (a6a0dd6) by @vmoens ghstack-source-id: c3d4e17599a3204d4ad06bceb45e4fdcd0fd1be5
[Feature] TensorClass shadow attributes (#1159) (c744bcf) by @vmoens ghstack-source-id: b5cc7c7fea2d48394e63d289ee2d6f215c2333bc
[Feature] TensorDict.(dim='feature') (#1121) (ba43159) by @vmoens ghstack-source-id: 68f21aca722895e8a240dbca66e97310c20a6b5d
[Feature] TensorDict.clamp (#1165) (646683c) by @vmoens ghstack-source-id: 44f0937c195d969055de10709402af7c4473df32
[Feature] TensorDict.logsumexp (#1162) (e564b3a) by @vmoens ghstack-source-id: 84148ad9c701029db6d02dfb84ddb0a9b26c9ab7
[Feature] TensorDict.separates (#1120) (674f356) by @vmoens ghstack-source-id: be142a150bf4378a0806347257c3cf64c78e4eda
[Feature] TensorDict.softmax (#1163) (c0c6c14) by @vmoens ghstack-source-id: a88bebc23e6aaa02ec297db72dbda68ec9628ce7
[Feature] TensorDictModule in_keys allowed as Dict[str, tuple | list] to enable multi use of a sample feature (#1101) (e871b7d) by @bachdj-px
[Feature] UnbatchedTensor (#1170) (74cae09) by @vmoens ghstack-source-id: fa25726d61e913a725a71f1579eb06b09455e7c8
[Feature] intersection for assert_close (#1078) (84d31db) by @vmoens ghstack-source-id: 3ae83c4ef90a9377405aebbf1761ace1a39417b1
[Feature] allow tensorclass to be customized (#1080) (31c7330) by @vmoens ghstack-source-id: 0b65b0a2dfb0cd7b5113e245c9444d3a0b55d085
[Feature] broadcast pointwise ops for tensor/tensordict mixed inputs (#1166) (aeff837) by @vmoens ghstack-source-id: bbefbb1a2e9841847c618bb9cf49160ff1a5c36a
[Feature] compatibility of consolidate with compile (quick version) (#1061) (3cf52a0) by @vmoens ghstack-source-id: 1bf3ca550dfe5499b58f878f72c4f1687b0f247e
[Feature] dist_params_keys and dist_sample_keys (#1179) (a728a4f) by @vmoens ghstack-source-id: d1e53e780132d04ddf37d613358b24467520230f
[Feature] flexible return type when indexing prob sequences (#1189) (790bef6) by @vmoens ghstack-source-id: 74d28ee84d965c11c527c60b20d9123ef30007f6
[Feature] from_any with UserDict (#1106) (3485c2c) by @vmoens ghstack-source-id: 420464209cff29c3a1c58ec521fbf4ed69d1355f
[Feature] inplace to method (#1066) (fbb71a4) by @vmoens ghstack-source-id: 21cbc9f21287d3041c95d31fe2e5259b4ed36a42
[Feature] min, amin, max, amax, cummin, cummax (#1057) (e8c0087) by @vmoens ghstack-source-id: 9873c08f98e84b372c6f701a3326e900454dc1d0
[Feature] repeat and repeat_interleave (#1115) (004f979) by @vmoens ghstack-source-id: d90a1a7bd87115c5f7af1a413788a30cbc2096ee
[Feature] super() calls within TensorClass subclasses (#1133) (5349f2a) by @vmoens ghstack-source-id: 060a89982413869c54e1fb4aa74f90e2b9cdaac4
[Feature] tensorclass nocast (#1079) (5125217) by @vmoens ghstack-source-id: edaba79a8a3b42cb3dac19b9fc145c1ceca4c70f
[Doc,BugFix,Feature] Better doc for reductions (#1122) (2611053) by @vmoens ghstack-source-id: 575544e823f29031739dc49561bc2a71125071ca
[Feature,Refactor] More args in constructors, refactor free functions (#1116) (b539beb) by @vmoens ghstack-source-id: 35e2444bb5d4bf92b78437063e2f5aec83651713
[Feature,Refactor] Refactor from_dict, add from_any, from_dataclass (#1102) (c95a703) by @vmoens ghstack-source-id: eb25fe4b201fd7f27d60b140278820c0d5d51eb8

Bug Fixes

[BugFix] Add checks and to_module to tensorclass accepted methods (#1124) (dd88950) by @vmoens ghstack-source-id: 5a1cd0d2ac9a0880111f503fc9cb12519d85ef42
[BugFix] Better comparison of tensorclasses (#1137) (eb4a56e) by @vmoens ghstack-source-id: 8def6f01f2b6d09714319a56f96b166ac1fd49d5
[BugFix] Better deterministic sample for composite (#1205) (5630fc8) by @vmoens ghstack-source-id: 9dd872e39ed9b697412ac8618b870b4d94670293
[BugFix] Better handling of struct arrays (#1193) (9b66338) by @vmoens ghstack-source-id: 37aecd40226db2362515fd00826bb336607e8749
[BugFix] Better repr of lazy stacks (#1076) (eaba711) by @vmoens ghstack-source-id: 7256b4c95b239bf9e6467c0ea687abe2c9179922
[BugFix] Better return_log_prob=True for tensordict outputs (#1155) (aff4f4c) by @vmoens ghstack-source-id: 977af3880f39cb341c1c715f1b8c9d59b7c580a0
[BugFix] Cloning empty tensordicts (#1119) (c38e256) by @vmoens ghstack-source-id: f3db930052a3ff8d7e75e0d238a578c79acd6bd7
[BugFix] Computation of log prob in composite distribution for TensorDict without batch size (#1065) (e64a4c3) by @priba Co-authored-by: @priba pau.riba@helsing.ai
[BugFix] Consistent behavior for pad_sequence with one and many non-tensors (#1172) (be44018) by @vmoens ghstack-source-id: c74edd95ed9846c14ffe26cb176d93c6e5e0dfbf
[BugFix] Do not unlock td if it's not locked in TDParams (for compile compat) (#1125) (4949efa) by @vmoens ghstack-source-id: 9b6923f9c219e12af5560c97c1c6c58ed7870a8a
[BugFix] Ensure grads and noned when needed (#1069) (082d542) by @vmoens ghstack-source-id: 5e9c5a974e5a5c73b033e5b85c3eb70c2f433512
[BugFix] Fix from_any tests (#1110) (e2444ed) by @vmoens ghstack-source-id: 8c3b3d825555c727c7c18c7e8a87311f718a94b6
[BugFix] Fix grad tests (#1070) (752e6dc) by @vmoens ghstack-source-id: 32c9ee0690db01b54de2e9cc0d83b595b87ac527
[BugFix] Fix mem leak when locking (#1188) (259c941) by @vmoens ghstack-source-id: d6e44e1d9b9afc9903a0f45945c10a94dcf5a0ca
[BugFix] Fix none ref in during reduction (#1090) (c11024e) by @vmoens
[BugFix] Fix typo in OneHotCategorical (#1130) (d7506c4) by @jgrhab
[BugFix] Fix unitary ops for tensorclass (#1164) (148c823) by @vmoens ghstack-source-id: 2d117645769890b72f5856f68acbe1b48015cfbb
[BugFix] Fix update_ KeyError when a key from source is missing in dest (#1150) (efb89a6) by @vmoens ghstack-source-id: 63013752ba61f05079cb6a60bb06312968b79ae9
[BugFix] Make min/max tensorclasses be interchangeable with PT equivalent (#1180) (4473485) by @vmoens
[BugFix] Proper masks for padding with custom pad value (#1185) (bbf773b) by @vmoens ghstack-source-id: 0580f89ce9bbaf5a13bab33f9c9b8f5a9e9df96f
[BugFix] Reference cycle in TensorDict._cast_reduction (#1056) (3316bdc) by @egaznep
[BugFix] Same behaviour in compiled and non-compiled versions of new_unsafe (#1197) (64cfa58) by @vmoens ghstack-source-id: 075f953ca7fbd7fc54d797e12437db59b44bde03
[BugFix] Use 'spawn' mp context in all tests (#1111) (c842730) by @vmoens ghstack-source-id: a7d786fe77c2c12d5c8c85579123a64ef5c87cf2
[BugFix] Use correct default cuda device (#1161) (ecb692e) by @vmoens ghstack-source-id: 9afb5b03ddf75afec357e9e54caadfc92ebf4ded
[BugFix] auto-batch-size in dipatch (#1109) (2728dbf) by @vmoens ghstack-source-id: ca5b36195c28da65a20d42699346fbc06083181c
[BugFix] calling pad with immutable sequence (#1075) (760c537) by @SamAdamDay
[BugFix] clear_refs_for_compile
() to clear weakrefs when compiling (#1196) (ba13541) by @vmoens ghstack-source-id: ecbad083704930313dcfdd5bf3f6bb6b984030e8
[BugFix] densify non tensor stack is a no-op (#1194) (9a25b88) by @vmoens ghstack-source-id: edbc22ce562cd918ce5dd5c0441e47cdadf7d88a
[BugFix] fix inline TDParams kwargs for nontensordata (#1094) (a5656cb) by @vmoens ghstack-source-id: afd50385b6b1e8bd8ccfaabfa387ca5611ca07e2
[BugFix] inline TDParams kwargs in prob modules (#1093) (0b7ce93) by @vmoens ghstack-source-id: 9fda35811b4656bd9939c9fb31cb253d7751b55c
[BugFix] select_out_keys for Prob sequential (#1103) (df61d64) by @vmoens ghstack-source-id: a566ae225c54f07a680b4bf380b16d8e797f62ea
[BugFix] smarter check in set_interaction_type (#1088) (db2b5e6) by @vmoens ghstack-source-id: 1821309ad24827c22c40c41f3544e7a768325f72

Better engineering

[BE] Better warning for composite_lp_aggregate value (#1201) (0fdaba7) by @vmoens ghstack-source-id: c0a801e4922878d65b0f81357afd7ecddc6943fb
[BE] Check ordering and exclusivity of tensorclass registers (#1176) (b493178) by @vmoens ghstack-source-id: 3dc907f4dd3047238adb0bb309d9ae75d24c5085
[BE] No warning if user sets the log_prob_key explicitly and only one variable is sampled from the ProbTDMod (#1209) (60e7179) by @vmoens ghstack-source-id: ccc966d5e698a4fb394081a92bafc31649951ab7
[BE] TensorClass stub method check (#1174) (22add56) by @vmoens ghstack-source-id: 5d85310221eb18ca6d0b1c4a4a88557f3fe8819d
[BE] single dim check helper (#1192) (52dfeb8) by @vmoens ghstack-source-id: 6606e4b96061f73b98787b25129c29671a78dc1e
[BE] tensorclass method registration check (#1175) (dedec04) by @vmoens ghstack-source-id: fa5dff657d58a035a05a39dbca84e3f9795c7fee
[Quality] Avoid torch.distributed imports at root (#1134) (0e9a854) by @vmoens ghstack-source-id: f773ed94d4b7ca13c603f32251f0735c751ebf94
[Quality] Better error message for incongruent lists of keys (#1077) (78b7802) by @vmoens ghstack-source-id: 34940a47d84bcf171bf4511187fcc82df88f801f
[Quality] Better use of StrEnum in set_interaction_type (#1087) (79a3345) by @vmoens ghstack-source-id: c91a7a6be513fb46be6914df0b3bde779fa5528f

Performance

[Performance] Faster _is_tensor_collection in eager mode (#1060) (3963e51) by @vmoens ghstack-source-id: b81c1d243a7c72a9d5fd68bf8e65e97a934ae61c
[Performance] Faster copy of TDParams (#1096) (bbfe8c7) by @vmoens
[Performance] Faster to (#1073) (6272510) by @vmoens ghstack-source-id: 3dfb0b66fae82dc8cf5ef2a14eccb1bec5237ebb

Refactor

[Refactor] Add missing functions in tensorclass register (#1153) (05881f3) by @vmoens ghstack-source-id: 48311d7a98a9895b10e5552e5b4a4f13764607e0
[Refactor] Avoid TDParams parameters and buffers construction when obvious (#1100) (df870ef) by @vmoens ghstack-source-id: bd701ecfaf68605801a215d3cd9d49268b888bb3
[Refactor] Avoid lambda functions in core functionality (#1136) (1d93434) by @vmoens ghstack-source-id: bdd43bbcd353f1148b8b0da79f670e82c3b55c47
[Refactor] Better compile checks (#1139) (2aea3dd) by @vmoens ghstack-source-id: c6a8d4587df45e374f0d6cb59fe1c982c7818276
[Refactor] Better handling of params and buffers in bytes (#1059) (3d3ea24) by @vmoens ghstack-source-id: 87945c47b376d223bb3dc33bd6ec7cb9bb047455
[Refactor] Fix property handling in TC (#1178) (c750598) by @vmoens ghstack-source-id: 8be779a7a85fdf45000181a9ea0f830822f19e37
[Refactor] Make CompositeDistribution a tensordict-exclusive class (#1112) (b4b8b31) by @vmoens ghstack-source-id: 56c1dd2ad856a18613ec1a4c0ca70aedd28a52e3
[Refactor] Make _set_dispatch_td_nn_modules compatible with compile (#1084) (853b7d9) by @vmoens ghstack-source-id: 85a78cd6086233b414fcfe221dd8129e2e38f71c
[Refactor] Refactor context managers (#1098) (270d7ba) by @vmoens ghstack-source-id: c16baa83f6e41c4afd6637f3b3739d4e5cf25f1e
[Refactor] Refactor keys, items and values (#1058) (9232c46) by @vmoens ghstack-source-id: 9d5436c6bbc743e3c754d5fe5f6d87b005dde014
[Refactor] __eq__ to identity check in non-tensor stacking (#1083) (b39f0db) by @vmoens ghstack-source-id: ccbe882e12370b4145d7d834012cc3cfa6376f6c
[Refactor] composite_lp_aggregate to handle log-probs aggregates globally (#1181) (0013e38) by @vmoens

Doc

[Doc] Add doc on export with nested keys (#1085) (3cb5855) by @vmoens ghstack-source-id: 9c95e2dba6751d93c20c66d0dba0d4219dc61c0b
[Doc] Add missing classes to doc (#1203) (b4fd380) by @vmoens ghstack-source-id: 2e174577aa33cc8d69c0f423c90ea2e5ee0fdef6
[Doc] Better doc for non-tensor data handling (#1173) (d3fba08) by @vmoens ghstack-source-id: c25571282d7bb63a14cc7b4ba9fb217785060cc7
[Doc] Better docstring for to_module (#1081) (9607cf0) by @vmoens ghstack-source-id: 16cedee8c0d38da6f377a262d5d7478a66fce07f
[Doc] Update distributed_replay_buffer.py reference (#1105) (d5fcace) by @emmanuel-ferdman Signed-off-by: @emmanuel-ferdman emmanuelferdman@gmail.com

CI

[CI] Add missing packages for smoke test (#1149) (42ad066) by @vmoens ghstack-source-id: 1ae2795ee734baac4419b722d4e11d522051b112
[CI] Fix GLIBCXX_3.4.29 error (#1207) (bae04ce) by @vmoens
[CI] Fix failing CI runs for release (#1206) (76e1810) by @vmoens
[CI] Fix linux_job_v2 after pytorch/test-infra#6104 (#1191) (f6426cd) by @amdfaa
[CI] Fix nightly build (#1148) (b19fc05) by @vmoens ghstack-source-id: 46010c7ef465c2fdfe5422e094b5c227b67dbd4f
[CI] Fix smoke tests (#1147) (24d8474) by @vmoens ghstack-source-id: d529689fe2b08bed90f55cb2edd0592571619d85
[CI] Update the download-artifacts version (#1177) (a63e7f3) by @vmoens
[CI] Upgrade CUDA to 12.4 (#1198) (1f35ab4) by @vmoens ghstack-source-id: 2d06089d4364d906581b60e9d5da1d65ecf01203
[CI] Upgrade to linux_job_v2 (#1097) (f606f7b) by @vmoens ghstack-source-id: cf280238d4a241c02edb5d3e8ffb52c24fd228c9

Other

[FBCode] Deactivate vmap monkey-patching in FBCode (#1135) (d394750) by @vmoens ghstack-source-id: 4f1ebfd0fd4ff5b7378c8692a064406e72fc68c0
[Minor] Fix wrong fbcode manual links (#1064) (b06de95) by @vmoens ghstack-source-id: 8ff9fb4a98ba3cbfc7c90d12a963a8a1e950e95b
[Minor] print_directory_tree returns a string (#1086) (2b19ef1) by @vmoens ghstack-source-id: d57f19dd8efcef06676fca40a4d6f95367ff1d55
[Test] Ignore annoying jit_utils warning with device context manager (#1151) (c671d8c) by @vmoens ghstack-source-id: 23fffb80e79bb839b34178cf5e20faea7a8115c5
[Test] fix inline TDParams kwargs for nontensordata (#1095) (978eb6c) by @vmoens ghstack-source-id: da8b7f40d05715170a3e9f0b47763efe356afe5e
[Tests] Skip deprecation warning tests on FB fbcode (#1128) (22da679) by @vmoens ghstack-source-id: fb0cc381a670377667194324f5b019076b8e762d
[Versioning] 0.6.2 (#1089) (73b0fd7) by @vmoens ghstack-source-id: 929ad7fb89e0bd6d25a70ed64b340ad7245fd693
[Versioning] python 3.8 compatibility fix (#1127) (d7529ab) by @vmoens ghstack-source-id: ba7e9325c4125892522ee63253c148ed34adac7c
[Versioning] v0.6.1 (#1072) (f12d31d) by @vmoens ghstack-source-id: a899c95c12a3b1b986ed429b6507711c4126189e
[Versioning] v0.7 version and deprecations (#1202) (02339fd) by @vmoens ghstack-source-id: 6eea85522d8e55d3c1bbfd93ab8c551142de45c1