summaryrefslogtreecommitdiff
path: root/crates/arti
Commit message (Collapse)AuthorAgeFilesLines
* Regenerate version bump from previous commit.arti-v0.4.0Nick Mathewson2022-05-271-2/+2
| | | | | | | This commit was made by reverting the previous commit, then re-running the script I used to generate it. In theory there should be no semantic changes: only changes due to improved formatting from cargo edit.
* Semantic version changes for Arti 0.4.0 releaseNick Mathewson2022-05-271-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | I followed the following procedure to make these changes: * I used maint/changed_crates to find out which crates had changed since 0.3.0. * I used grep and maint/list_crates to sort those crates in topological (dependency) order. * I looked through semver_status to find which crates were listed as having semver-relevant changes (new APIs and breaking changes). * I scanned through the git logs of the crates with no semver-relevant changes listed to confirm that, indeed, they had no changes. For those crates, I incremented their patch-level version _without_ changing the version that other crates depend on. * I scanned through the git logs of the crates with no semver-relevant changes listed to confirm that, indeed, they had no obvious breaking changes. * I treated all crates that depend on `arti` and/or `arti-client` as having breaking changes. * I identified crates that depend on crates that have changed, even if they have not changed themselves, and identified them as having a non-breaking change. * For all of the crates, I used `cargo set-version -p $CRATE --bump $STATUS` (where `STATUS` is `patch` or `minor`) to update the versions, and the depended-upon versions.
* Merge branch 'config-split' into 'main'Ian Jackson2022-05-263-73/+44
|\ | | | | | | | | | | | | Break TorClientConfig out of ArtiConfig and warn on unknown config keys Closes #459 and #417 See merge request tpo/core/arti!529
| * arti: Better doc for ArtiCombinedConfigIan Jackson2022-05-251-1/+3
| |
| * tor-config: Rename resolve_return_unrecognized, ..._ignore_...Ian Jackson2022-05-251-1/+1
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/529#note_2807077
| * tor-config: Rename "ignored" to "unrecognized" throughoutIan Jackson2022-05-251-3/+3
| | | | | | | | | | As per review comments https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/529#note_2807076
| * tor-config: Tests for ignored config key handlingIan Jackson2022-05-241-8/+4
| |
| * Split TorClientConfig out of ArtiConfig, and Resolvable traitIan Jackson2022-05-243-45/+21
| | | | | | | | | | | | | | | | | | | | | | | | This gets rid of `#[serde(flatten)]` which prevents serde_ignored (and other kinds of introspection) from working properly. The price is now that the toplevel has to deal with two configuration objects. The Resolvable trait is overkill right now, but is going to do More Things in a moment. In particular, we need the impl on tuples, so that the whole config can be processed in one go.
| * arti tests: Introduce bld_tor variableIan Jackson2022-05-241-22/+19
| | | | | | | | | | | | We are going to reorganise ArtiConfig to not contain a TorClientConfig. This test case's calls to bld.tor() will all need to change. Do this in advance to make that future commit more readable.
* | reply socks error on more codepathtrinity-1686a2022-05-251-48/+67
|/
* Apply fs-mistrust to logfile directories.Nick Mathewson2022-05-243-7/+26
|
* Make fs-mistrust configurable from the top level.Nick Mathewson2022-05-242-19/+31
| | | | | | This change requires a little refactoring of TorClientBuilder: now, instead of enabling or disabling mistrust, it enables or disables the decision to _override_ the mistrust in the config.
* fs-mistrust: make Mistrust have a corresponding Builder type.Nick Mathewson2022-05-241-9/+7
| | | | | This is an approximately minimal revision to get Builder in place; subsequent commits will clean up the API.
* Merge branch 'arti-config-2' into 'main'Nick Mathewson2022-05-133-5/+6
|\ | | | | | | | | Abolish arti-config, replacing with tombstone crate See merge request tpo/core/arti!508
| * Abolish arti-config, replacing with tombstone crateIan Jackson2022-05-131-1/+0
| |
| * arti-config abolition: Change references to use tor_configIan Jackson2022-05-132-4/+6
| | | | | | | | | | | | | | | | Generally, change the paths that mention the crate name to go via a module-level "use". This involves adding tor-config as a direct dependency for a few crates.
* | Merge branch 'builder-default-3' into 'main'Nick Mathewson2022-05-132-26/+0
|\ \ | |/ |/| | | | | impl_standard_builder: Test the Deserialize impl and have it generate ::builder See merge request tpo/core/arti!507
| * impl_standard_builder: Have it generate FooConfig::builderIan Jackson2022-05-122-26/+0
| | | | | | | | | | This deletes many handcoded impls. It also generates lots of impls that we previously didn't have.
* | config load: Move mistrust checking to load()Ian Jackson2022-05-131-6/+9
| | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/472 Experimentation convinced me the Mistrust should be within the ConfigurationSources.
* | Merge branch 'template' into 'main'Nick Mathewson2022-05-124-7/+223
|\ \ | |/ |/| | | | | Make the example config file into a template and move it to arti See merge request tpo/core/arti!503
| * arti-example-config.toml: Add a slightly improved commentIan Jackson2022-05-121-0/+1
| |
| * arti-example-config.toml: Re-un-comment the example settings in testIan Jackson2022-05-122-4/+26
| |
| * arti-example-config.toml: Comment out all the example settingsIan Jackson2022-05-121-24/+24
| | | | | | | | | | | | | | | | | | | | We expect that a user may copy this file and uses it as a starting point for their own configuration. When they do that, we don't want them to freeze the default config in time. Instead, we can expect them to uncomment settings they wish to change. Then when they upgrade arti, *other* settings will get the new defaults, which I think is right.
| * arti-example-config: Mark some non-default examples more clearlyIan Jackson2022-05-121-10/+11
| | | | | | | | | | | | | | | | Now, git-grep '^#[^ ]' crates/arti/src/arti-example-config.toml has no ouptut. This prepares us for the next commit.
| * config defaults: Test that empty deser is the sameIan Jackson2022-05-121-0/+4
| |
| * ARTI_EXAMPLE_CONFIG: Rename from ARTI_DEFAULTSIan Jackson2022-05-123-4/+3
| | | | | | | | | | The defaults are built into the code. This is a doc-commented example file, not the primary specification of what the defaults are.
| * ARTI_DEFAULTS: Move to arti crateIan Jackson2022-05-123-1/+187
| |
| * config defaults: No longer apply ARTI_DEFAULTS in load()Ian Jackson2022-05-121-1/+0
| | | | | | | | | | | | | | | | This is redundant, because the defaults have to be supplied by the config builders (usually via builder default attributes). That this is actually done and correct is tested by the `default_config()` test case in arti/src/cfg.rs.
| * config defaults: Test that going via builder explicitly is the sameIan Jackson2022-05-121-0/+4
| | | | | | | | | | Add this test even though our construction of the Default and Builder ought to trivially ensure that it's true.
* | Rename impl_standard_builder from impl_default_via_builderIan Jackson2022-05-122-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | I have Plans for this macro. In particular: * I have a wip branch which tests that the Builder can be deserialised from an empty config (ie, that config reading of a config with a blank section for this item works). * I think we should autogenerate $Config::builder(), and promote that, rather than $ConfigBuilder::default(). This macro could do that.
* | config: Replace more handwritten impl DefaultIan Jackson2022-05-122-18/+4
| |
* | config: Move macro calls to next to the structIan Jackson2022-05-121-1/+0
|/ | | | | | | This macro is kind of derive-y. Also it has a test in it, and failing to call it could allow bugs to exist, as well as missing bits of API. Putting it next to the structs makes it easy to see that it's actually been called.
* Merge branch 'clippy' into 'main'eta2022-05-121-1/+3
|\ | | | | | | | | Improvements prompted by clippy, and disable one lint See merge request tpo/core/arti!497
| * clippy: Use write! rather than push_str, formatIan Jackson2022-05-111-1/+3
| | | | | | | | | | This does involve unwrap, but of course that can't fail unless the formats fail, which would already panic (that's implied by format!).
* | No longer derive Default on three structs which derive BuilderIan Jackson2022-05-111-3/+6
|/
* Move default_config_file() into arti-clientIan Jackson2022-05-111-2/+2
| | | | This will let other embedders use it.
* ConfigurationSource: Move "usual" logic for constructionIan Jackson2022-05-111-26/+6
|
* default_config_file(): Have it return Result, not OptionIan Jackson2022-05-111-8/+10
| | | | Discarding this error is not right.
* ConfigurationSource: Rename new to new_emptyIan Jackson2022-05-111-1/+1
| | | | | This emphasises its nature. We're going to provide a more cooked constructor in a moment.
* Improve documentation around Cargo features; make Runtime require Debugeta2022-05-111-14/+49
| | | | | | | | | | | | | | - arti#445 highlighted the lack of good documentation around Arti's multiple runtime support, as well as it being difficult to determine what runtime was actually in use. - Improve the documentation to solve the first problem. - To solve the second problem, make Runtime require Debug (which is arguably a good idea anyway, since it makes them easier to embed in things), and print out the current runtime's Debug information when arti is invoked with `--version`. - (It also prints out other Cargo features, too!) fixes arti#445
* Merge branch 'use-fs-mistrust'Nick Mathewson2022-05-092-4/+51
|\
| * Add a CLI option to disable FS permission checks.Nick Mathewson2022-05-091-1/+10
| |
| * Remove "Mistrust" from the public API of arti-client.Nick Mathewson2022-05-091-7/+31
| | | | | | | | | | | | | | | | | | | | I'm doing this per discussion, so that we can have it be part of the TorConfig later on, and not break stuff as we change the Mistrust API to have a builder. This change, unfortunately, results in a little more internal complexity and duplicated code in arti and arti-client. I've marked those points with TODOs.
| * arti: use fs-mistrust to validate configuration file locations.Nick Mathewson2022-05-092-1/+15
| |
* | Bump the version of every* crate to 0.3.0Nick Mathewson2022-05-061-7/+7
| | | | | | | | * Except for safelog and fs-mistrust, which are new.
* | Change safelog version to 0.1.0.Nick Mathewson2022-05-061-1/+1
| | | | | | | | | | (This is okay because we haven't published it yet, or any crate that uses it.)
* | Update README.md files (automated).Nick Mathewson2022-05-061-0/+1
| |
* | Merge branch 'derive-builder-fork' into 'main'Nick Mathewson2022-05-061-1/+1
|\ \ | | | | | | | | | | | | | | | | | | Switch to derive_builder_arti_fork Closes #446 See merge request tpo/core/arti!490
| * | Switch to derive_builder_arti_forkIan Jackson2022-05-061-1/+1
| |/ | | | | | | | | | | | | | | | | For reference, the git source for this crate (and the others in its workspace) currently lives in my personal github account (ijackson). If this fork turns out to be long-lived and gains features and/or users, it would be good to move it to a gitlab somewhere. I have granted Nick crate ownership on the crates.io system.
* | Disable safe-logging when logging to console.Nick Mathewson2022-05-061-1/+30
| |