<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-dirmgr/src/config.rs, branch arti-v0.3.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.3.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.3.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-05-05T09:35:52Z</updated>
<entry>
<title>config derive attrs: Make builders serde, and validated structs not</title>
<updated>2022-05-05T09:35:52Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-05-04T16:45:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d47e94b45993162fece0d1bdfa4d3da0407a4861'/>
<id>urn:sha1:d47e94b45993162fece0d1bdfa4d3da0407a4861</id>
<content type='text'>
 * Builders additionally derive: Debug, Serialize, Deserialize.

 * Validated structs no longer derive: Serialize, Deserialize
   and all related attributes deleted.

 * As a consequence, all the `#[serde(deny_unknown_fields)]`
   are gone.  That means that right now unknown fields are totally
   ignored.  This is good for compatibility but poor for useability.
   Doing something better here is arti#417, in progress.

 * As a consequence, delete tor_dirmgr::retry::default_parallelism.
   (The default value was already duplicated into a builder attr.)
</content>
</entry>
<entry>
<title>FallbackDir: Use VecBuilder for orports</title>
<updated>2022-05-04T16:18:55Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T15:20:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4ad4cae4180981856676f675e32117b683518f4e'/>
<id>urn:sha1:4ad4cae4180981856676f675e32117b683518f4e</id>
<content type='text'>
And drop the ad-hoc orport() method.  This brings FallbackDir's
orports field in line with our list builder API.

The general semver note in "configuation" seems to cover most of this.
</content>
</entry>
<entry>
<title>Change builder list API</title>
<updated>2022-05-04T12:50:10Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-05-04T12:32:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4bca91271558d950092fb1ac51c1316655d293cb'/>
<id>urn:sha1:4bca91271558d950092fb1ac51c1316655d293cb</id>
<content type='text'>
The new API is (roughly) as discussed in
  https://gitlab.torproject.org/tpo/core/arti/-/issues/451

This is quite a large commit and it is not convenient to split it up.
It contains the following changes:

 * Redo the list builder and accessor macros implemnetation,
   including docs and tests.

 * Change uses of define_list_config_builder.  In each case:
   - Move the docs about the default value to the containing field.
   - Remove the other docs (which were just recapitulations, and
     are now not needed since the ListBuilder is no longer public).
   - Rewmove or replace `pub` in the define_list_builder_helper call,
     so that the builder is no longer public.
   - Change the main macro call site to use define_list_builder_helper.
   - Add a call to define_list_builder_accessors.

 * Make the module `list_builder` pub so that we have somewhere to
   put the overview documentation.

 * Consequential changes:
   - Change `outer.inner().replace(X)` to `outer.set_inner(X)`
   - Consequential changes to imports (`use` statements).
</content>
</entry>
<entry>
<title>Rename NetworkConfig.fallback_caches</title>
<updated>2022-05-04T12:41:39Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-05-03T14:28:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ff624f6081cc339d12b82c7a753bfdfdf88f93ed'/>
<id>urn:sha1:ff624f6081cc339d12b82c7a753bfdfdf88f93ed</id>
<content type='text'>
Previously this field was differently named to its serde and to its
accessors.  We are about to introduce a macro_rules macro which will
provide list accessors and we don't want that macro to have a field
renaming feature.

So stop renaming the field.
</content>
</entry>
<entry>
<title>DirMgrConfig: Remove unnecessary accessors</title>
<updated>2022-04-26T14:32:20Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T14:26:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=72eaa9fc30e00137e1ddfaa0ab99731d8a6ae705'/>
<id>urn:sha1:72eaa9fc30e00137e1ddfaa0ab99731d8a6ae705</id>
<content type='text'>
These fields are pub.

Retain two convenience accessor functions that access sub-fields of
network.
</content>
</entry>
<entry>
<title>DirMgrConfig: Rename two fields that contained a _config</title>
<updated>2022-04-26T14:29:33Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T14:28:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=20d61dd4d4adeb900ce0eb2e46e695221c805c15'/>
<id>urn:sha1:20d61dd4d4adeb900ce0eb2e46e695221c805c15</id>
<content type='text'>
This entire struct is config.  This is otiose.
</content>
</entry>
<entry>
<title>DownloadSchedule: Abolish accessors in DownloadScheduleConfig</title>
<updated>2022-04-26T14:16:32Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T14:09:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cb303cefb3a87ba657f527cc721195940e79b21b'/>
<id>urn:sha1:cb303cefb3a87ba657f527cc721195940e79b21b</id>
<content type='text'>
We can just make the fields pub(crate).
</content>
</entry>
<entry>
<title>DownloadSchudule: Have NetworkConfig contain Builders</title>
<updated>2022-04-26T14:16:32Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T13:46:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eb35555330d84ef931dbfd446f5495ff0172b17e'/>
<id>urn:sha1:eb35555330d84ef931dbfd446f5495ff0172b17e</id>
<content type='text'>
Use sub_builder.  We must do something special for defaults.

This involves moving the actual default values for retry_bootstrap and
retry_microdescs into config.rs, since they need to access the fields
of the un-built version of the structure.  (An alternative would be to
generate "weak setters" which do not override previous settings, but
derive_builder does not offer to generate them and that seems
overkill.)
</content>
</entry>
<entry>
<title>DownloadSchedule: Abolish new() method</title>
<updated>2022-04-26T14:16:32Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-25T18:26:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f4a1e34beebbd891f2a3f1474028ac6ac7f738b2'/>
<id>urn:sha1:f4a1e34beebbd891f2a3f1474028ac6ac7f738b2</id>
<content type='text'>
Instead, everyone should use DownloadScheduleBuilder.

The new() method would in any case be useless in a moment, since we're
going to embed DownloadScheduleBuilder in the NetworkConfig, not
DownloadSchedule.

The call sites in the tests are all about to change again.
</content>
</entry>
<entry>
<title>DownloadSchedule: tests: Do not try to set parallelism to 0</title>
<updated>2022-04-26T14:16:03Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T13:53:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e1d1fe65692e11a5ba7a751e59723ab00e764d43'/>
<id>urn:sha1:e1d1fe65692e11a5ba7a751e59723ab00e764d43</id>
<content type='text'>
The current behaviour is to treat 0 as indicating "use the default",
which is quite strange.  We are going to get rid of that.

The new way will be to reject zero, during
DownloadScheduleBuilder::build, Add a test case for that.
</content>
</entry>
</feed>
