Loading CHANGELOG.md +109 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,115 @@ This file describes changes in Arti through the current release. Once Arti is more mature, and we start to version crates independently, we may switch to using a separate changelog for each crate. # Arti 0.3.0 — XX May 2022 BLURB GOES HERE XXXXXX This is up-to-date through 66ee39995d21fe7a03ddb6569b889cc6de7e458e ### Breaking changes Here are the main breaking changes visible from the arti-client crate. Numerous other lower-level crates have breaking changes not noted here. - We now require Rust 1.56 or later. This change enables us to use more recent versions of several of our dependencies, including a significantly faster `aes`. ([!472]) - Some unused accessors have been removed from `tor-socksproto`. ([3103549cba603173]) - Our configuration logic has been significantly revised: - Lists of objects, and contained configuration objects objects, are now constructed using a uniform pattern. - All of our config _builder_ types are now `Deserialize`. (XXXX But the config types are not; say so once this merges? XXXXXXXXXx) - Various types are now more consistently constructed, which breaks some of the APIs. - Paths can now be given as "literal" paths, which will not be expanded. - Several options have been renamed for consistency. - ([#451], [!447], [!471], [!462], [!473], [!477], [!478], [!481], [!474], [!475]) ### New features - Arti now tracks clock skew reports from the guard relays and fallback directories that we contact, and uses this information to infer whether our clock is actually skewed, and whether this skew is the likely cause of a failure to bootstrap. ([!450], [!455]) - We now remove obsolete files from our state directory. ([#282]) - More objects from `tor-dirmgr` are now exposed when the `experimental-api` feature is enabled. ([!463]) - On startup, Arti now checks the permissions of the files and directories that it wants to use, and makes sure that they can't be accessed inappropriately by untrusted users. ([#315], [!468]) (XXXX Not finalized yet! Possibly wait!) ### Major bugfixes - Our circuit-build logic is now much more careful about which errors are retriable, and how long to wait between attempts. ([#421], [!443]) - Resolved a race condition that could cause internal errors to be erroneously reported during circuit construction. ([#427]) - Stop interpreting a successfully constructed circuit as meaning that a guard is working _as a directory_. Even if it can build circuits, it may be unable to answer directory requests to our satisfaction ([b3e06b93b6a34922]). ### Infrastructure - Our CI infrastructure now correctly detects (and reports!) failures from cargo-audit. ([!452]) ### Documentation and Examples ### Cleanups, minor features, and minor bugfixes - We report more accurate and useful messages on failure to build a circuits. ([f7810d42eb953bf5]) - Avoid dropping information when reloading guards. ([#429]) - Arti now treats expired or not-yet-valid directory objects as an error condition, since they indicate that the directory cache (or the client) likely has a skewed clock. ([#431]) - We now back off on attempts to build preemptive circuits, if we find that those attempts are failing. ([#437], [!456]) - As part of the configuration refactoring, we've extended the amount of our configuration builders that are auto-generated. ([!462]) - Improve handling of some integer overflows. ([!466]) - More unit tests throughout the code. ### Acknowledgments Thanks to everybody who has contributed to this release, including Christian Grigis, Dimitris Apostolou, Samanta Navarro, and Trinity Pointard. # Arti 0.2.0 — 1 Apr 2022 Loading Loading
CHANGELOG.md +109 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,115 @@ This file describes changes in Arti through the current release. Once Arti is more mature, and we start to version crates independently, we may switch to using a separate changelog for each crate. # Arti 0.3.0 — XX May 2022 BLURB GOES HERE XXXXXX This is up-to-date through 66ee39995d21fe7a03ddb6569b889cc6de7e458e ### Breaking changes Here are the main breaking changes visible from the arti-client crate. Numerous other lower-level crates have breaking changes not noted here. - We now require Rust 1.56 or later. This change enables us to use more recent versions of several of our dependencies, including a significantly faster `aes`. ([!472]) - Some unused accessors have been removed from `tor-socksproto`. ([3103549cba603173]) - Our configuration logic has been significantly revised: - Lists of objects, and contained configuration objects objects, are now constructed using a uniform pattern. - All of our config _builder_ types are now `Deserialize`. (XXXX But the config types are not; say so once this merges? XXXXXXXXXx) - Various types are now more consistently constructed, which breaks some of the APIs. - Paths can now be given as "literal" paths, which will not be expanded. - Several options have been renamed for consistency. - ([#451], [!447], [!471], [!462], [!473], [!477], [!478], [!481], [!474], [!475]) ### New features - Arti now tracks clock skew reports from the guard relays and fallback directories that we contact, and uses this information to infer whether our clock is actually skewed, and whether this skew is the likely cause of a failure to bootstrap. ([!450], [!455]) - We now remove obsolete files from our state directory. ([#282]) - More objects from `tor-dirmgr` are now exposed when the `experimental-api` feature is enabled. ([!463]) - On startup, Arti now checks the permissions of the files and directories that it wants to use, and makes sure that they can't be accessed inappropriately by untrusted users. ([#315], [!468]) (XXXX Not finalized yet! Possibly wait!) ### Major bugfixes - Our circuit-build logic is now much more careful about which errors are retriable, and how long to wait between attempts. ([#421], [!443]) - Resolved a race condition that could cause internal errors to be erroneously reported during circuit construction. ([#427]) - Stop interpreting a successfully constructed circuit as meaning that a guard is working _as a directory_. Even if it can build circuits, it may be unable to answer directory requests to our satisfaction ([b3e06b93b6a34922]). ### Infrastructure - Our CI infrastructure now correctly detects (and reports!) failures from cargo-audit. ([!452]) ### Documentation and Examples ### Cleanups, minor features, and minor bugfixes - We report more accurate and useful messages on failure to build a circuits. ([f7810d42eb953bf5]) - Avoid dropping information when reloading guards. ([#429]) - Arti now treats expired or not-yet-valid directory objects as an error condition, since they indicate that the directory cache (or the client) likely has a skewed clock. ([#431]) - We now back off on attempts to build preemptive circuits, if we find that those attempts are failing. ([#437], [!456]) - As part of the configuration refactoring, we've extended the amount of our configuration builders that are auto-generated. ([!462]) - Improve handling of some integer overflows. ([!466]) - More unit tests throughout the code. ### Acknowledgments Thanks to everybody who has contributed to this release, including Christian Grigis, Dimitris Apostolou, Samanta Navarro, and Trinity Pointard. # Arti 0.2.0 — 1 Apr 2022 Loading