Commit Graph

2355 Commits

Author SHA1 Message Date
Nick Mathewson 3350b5e8d0 Merge branch 'clippy-fixes' into 'main'
Minor improvements prompted by current nightly clippy

See merge request tpo/core/arti!286
2022-02-02 21:32:36 +00:00
Nick Mathewson ea6458c9bd Add a couple of TODOs about configuration-watching. 2022-02-02 15:43:42 -05:00
Nick Mathewson 42ce00091f Before reloading configuration, drain all pending file changes
This way, if there are a bunch of changes at once, we only reload
one time.
2022-02-02 15:43:42 -05:00
Nick Mathewson fd53c9ddb5 Refactor file-watching code to watch parent directories.
Due to limitations in notify and the OS APIs it uses, it isn't
actually so useful to watch a single file.  Instead, we have to
watch the directories that contain the files, and filter out any
events that aren't about the specific files we care about.

I've put the logic here into a new type, but I've left the type
un-exported: its API is pretty ugly, inasmuch as the caller needs to
jump through hoops to only get the events that they want.  That's
not too bad so long as the API is private, but we'd want better if
we were exposing this.
2022-02-02 15:43:39 -05:00
Ian Jackson 5bfe94eb0e Untangle two needless Ok(r?) into just r
Prompted by clippy::needless_question_mark.  Sometimes Ok(r?) is
needed to do automatic error conversion.  I assume the lint checks for
that.  Anyway, in these cases it's not needed.
2022-02-02 18:35:28 +00:00
Ian Jackson b7fec1c8a4 Remove many needless borrows and slices
Found via clippy::needless_borrow.  In some cases I removed needless
`[..]` too.  See also:
  needless_borrow suggestion doesn't go far enough
  https://github.com/rust-lang/rust-clippy/issues/8389
2022-02-02 18:34:26 +00:00
Ian Jackson b695ebd039 clippy: Pass simply &output to fs::write
clippy::needless_borrow quibbles here, IMO correctly.  Its suggestion
didn't go far enough: output is a String and a &String can be passed
to write as-is for identical effect.
2022-02-02 18:33:23 +00:00
Dimitris Apostolou 6526321851
Fix typos 2022-02-02 20:18:22 +02:00
Nick Mathewson fc33ab273f arti: Limit mut-ness of cfg_sources to one block. 2022-02-02 13:09:54 -05:00
Nick Mathewson e9f1198701 arti-config: add blank lines between functions. 2022-02-02 13:08:03 -05:00
Nick Mathewson 636d88b06d arti-config: Small type and comment refactoring from review. 2022-02-02 13:05:57 -05:00
Ian Jackson 1c31399356 Merge branch 'reload-config-prep' into 'main'
Preparatory work for auto config reload

See merge request tpo/core/arti!284
2022-02-02 17:31:23 +00:00
Nick Mathewson e3c7f9f4ac Merge branch 'eta/298' into 'main'
arti-bench: summarize statistics with a new `Statistic` type (#298)

See merge request tpo/core/arti!279
2022-02-01 21:26:14 +00:00
Nick Mathewson bf7f7dfbbf Detect changes in non-client configuration sections too
We don't yet do much with these, but we can avoid discarding them.
2022-02-01 16:04:59 -05:00
Nick Mathewson 1fbea7cd1e Make configuration-watching configurable and off-by-default.
I'm slightly concerned about whether this is behavior people would
expect to have on-by-default, so let's make this off-by-default for
now.

Maybe the `application` and `system` sections should merge?
2022-02-01 16:04:59 -05:00
Nick Mathewson b4c3aaf362 Reload configuration when our configuration files change.
Closes #270
2022-02-01 16:04:53 -05:00
Nick Mathewson 610ccb3040 Un-Arc<> TorClient in the arti crate
TorClient doesn't need to be wrapped in an Arc any longer, thanks
to other refactoring.
2022-02-01 14:43:31 -05:00
Nick Mathewson feab848509 arti_config: Refactor configuration sources into a struct
This is by no means our final API, but should represent an
improvement.  Here instead of having to specify a list of files and
their is-this-optional status, along with a list of command-line
options, we have a single structure that encapsulates all of that
information.

Two advantages here:

 - Callers no longer have to remember what the boolean means.
 - We can "reload" more easily, by keeping the source object around.

This change also implements the correct behavior for our default
configuration file in `arti::main`: if the file is absent and the
user doesn't list a config file, that's no problem.  But if the user
lists _that very same config file, we should insist that it be
present.
2022-02-01 14:26:39 -05:00
Nick Mathewson 487f3be6de Expose Reconfigure enum from arti-client.
This enum is required to use `TorClient::reconfigure` correctly, and
as such ought to be re-exported.
2022-02-01 14:26:39 -05:00
eta 5b14008a82 arti-bench: summarize statistics with a new `Statistic` type (#298)
This implements the proposal from arti#298, making the
`BenchmarkResults` type be made out of a bunch of new `Statistic` types
(which summarize the mean, median, range, and standard deviation of an
arbitrary value) instead of overloading `TimingSummary` for this
purpose.
2022-02-01 16:09:24 +00:00
Nick Mathewson c8dd73d55f Upgrade required version of futures crate to 0.3.14
Earlier versions have a bug in UnboundedReceiver that make our new
dirclient tests fail.
2022-02-01 09:54:47 -05:00
Nick Mathewson 582f1463d6 dirclient: refactor and test "should-i-retire-the-circuit" code. 2022-02-01 09:54:47 -05:00
Nick Mathewson 36069fc2d0 dirclient: Add tests for a number of failing cases.
These bring the case a tiny improvement in test coverage, and also
manage to turn up a few bugs.
2022-02-01 09:54:47 -05:00
Nick Mathewson 7fdde559d4 dirclient: don't return too-long responses on decompression failure
There are a couple of places where we forgot to truncate our
return-buffer to its actual size, and instead returned a big bunch
of zeros.  Found while writing the tests in the next commit.

Someday, we'll have ReadBuf and won't have to worry about these
things.
2022-02-01 09:54:47 -05:00
Ian Jackson a2f3ed4a03 Merge branch 'fix-invalid-windows-path' into 'main'
Fix invalid path character on windows

See merge request tpo/core/arti!277
2022-02-01 10:46:47 +00:00
Michael 334bba2ef2 Fix invalid path character on windows 2022-01-31 20:53:13 +00:00
eta a71ab72bf2 Merge branch 'ci-rustup-show' into 'main'
CI: Add "rustup show" to show compiler versions in logs

See merge request tpo/core/arti!276
2022-01-31 18:33:22 +00:00
Nick Mathewson 81a49fb6ec Merge branch 'dedup-cobertura' into 'main'
add postprocessing script to deduplicate cobertura reports

See merge request tpo/core/arti!272
2022-01-31 17:19:01 +00:00
Nick Mathewson a7df9ca0a5 Tweak release instructions based on 0.0.4 experience 2022-01-31 11:35:40 -05:00
Nick Mathewson 329bde58dd Bump tor-netdir and tor-guardmgr versions
tor-netdir needs to bump because tor-netdoc bumped, even though
there were no other changes in tor-netdir.  Whoops.

tor-guardmgr needs to bump because it already published, with the
older tor-netdir.
2022-01-31 11:05:34 -05:00
Nick Mathewson 01d9937308 Bump the patch version of every crate that changed since 0.0.3 2022-01-31 10:30:52 -05:00
Nick Mathewson d3039d805d Update changed_crates to be more useful. 2022-01-31 10:30:50 -05:00
Nick Mathewson 64fde906f9 Mention shellcheck patch in changelog. 2022-01-31 10:29:17 -05:00
Ian Jackson ac8e28b6c7 CI: Add "rustup show" to show compiler versions in logs
Trying to debug the nightly failure here
  https://gitlab.torproject.org/Diziet/arti/-/pipelines/25417
and I can't seem to repro it.
2022-01-31 13:58:46 +00:00
Nick Mathewson 74838b7ba0 Changelog for 0.0.4. 2022-01-31 08:52:35 -05:00
Ian Jackson 880d5f2d36 Merge branch 'shellcheck' into 'main'
Add shellcheck to gitlab ci and git hook

See merge request tpo/core/arti!275
2022-01-31 13:02:36 +00:00
Ian Jackson 7f83b9fb30 maint/shellcheck_all.sh: add missing final newline 2022-01-31 12:44:27 +00:00
Daniel Schischkin 42fb7667b4 Change which command to command -v 2022-01-29 00:12:36 +01:00
Daniel Schischkin 1774de7e47 Remove redundancy/code duplication and switch to shellcheck_all.sh script 2022-01-29 00:09:36 +01:00
Daniel Schischkin 21a9ad848c Add shellcheck script into maint directory 2022-01-29 00:09:06 +01:00
trinity-1686a daa1eba969 add postprocessing script to deduplicate cobertura reports 2022-01-28 20:52:50 +01:00
Daniel Schischkin 1d7fcd6d48 Undo remove document-private-items arg 2022-01-28 17:44:32 +01:00
Daniel Schischkin 01b3bc85c9 Remove argument document-private-items from nightly build 2022-01-28 17:28:25 +01:00
Daniel Schischkin 67ac91a809 Add missing file ending for downgrade_dependencies in gitlab ci 2022-01-28 15:26:14 +01:00
Daniel Schischkin 09ccc1aed9 Add shellcheck to pre-push git hook 2022-01-28 15:21:47 +01:00
Daniel Schischkin 6fe0543645 Add shellcheck step into build stage 2022-01-28 15:21:28 +01:00
Daniel Schischkin 0fed438a58 Add correct file ending to maint/downgrade_dependencies 2022-01-28 15:20:54 +01:00
Nick Mathewson af40fa4d74 WANT_FROM_OTHER_CRATES: add a few links. 2022-01-28 09:12:41 -05:00
Nick Mathewson 2f51add62f Run "cargo update" in preparation for monday's release. 2022-01-28 08:38:54 -05:00
Nick Mathewson 5187b05c19 Use script to update README.md files. 2022-01-28 08:36:34 -05:00