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)!
- @egaznep made their first contribution in #1056
- @priba made their first contribution in #1065
- @SamAdamDay made their first contribution in #1075
- @emmanuel-ferdman made their first contribution in #1105
- @bachdj-px made their first contribution in #1101
- @jgrhab made their first contribution in #1130
- @amdfaa made their first contribution in #1191
BC-breaking changes
- In #1180, we use the same object for
min
andmax
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 randomsample
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)
orclass T(TensorClass["shadow"]): ...
and you will be able to use dedicated names likeget
orvalues
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)
andTensorClass["nocast"]
will deactivate the auto-casting in tensorclasses.
The behavior is now:- No value: tensorclass will cast things like TensorDict (ie,
int
ornp.arrays
will be cast totorch.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
aNonTensorData
.
- No value: tensorclass will cast things like TensorDict (ie,
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