<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/arti/src/main.rs, branch arti-v0.0.3</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-01-10T18:23:11Z</updated>
<entry>
<title>Tracing configuration for logfiles, per-target filters</title>
<updated>2022-01-10T18:23:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-07T15:52:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1a16f5a7d63e63b606f8cc21ad948803ef1a8245'/>
<id>urn:sha1:1a16f5a7d63e63b606f8cc21ad948803ef1a8245</id>
<content type='text'>
Previously we could only configure one global tracing filter that
applied to stdout and journald.  There was no support for log files,
either.

This patch fixes both issues, by substantially revising the
configuration format: There are now separate filters for each log
file, for journald, and for the console log.  Because we want to
allow multiple logfiles, they have to go into an array in the
configuration.

The configuration logic has grown a bit complicated in its types,
since the tracing_subscriber crate would prefer to have the complete
structure of tracing Layers known statically. That's fine when you
know how many you have, and which kinds there will be, but for
the runtime-configuration case we need to mess around with
`Box&lt;dyn Layer ...&gt;`.

I also had to switch from tracing_subscriber's EnvFilter to its
Targets filter.  It seems "EnvFilter" can only be applied as a Layer
in itself, and won't work as a Filter on an individual Layer.

Closes #166.

Closes #170.
</content>
</entry>
<entry>
<title>Move tracing setup into a separate module.</title>
<updated>2022-01-10T18:17:02Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-07T13:41:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=736763fb519c88b4612b9042cb82cb202b8b5788'/>
<id>urn:sha1:736763fb519c88b4612b9042cb82cb202b8b5788</id>
<content type='text'>
No code changes here yet.
</content>
</entry>
<entry>
<title>Move a comment to the right place.</title>
<updated>2022-01-06T14:05:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-06T14:05:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=214ac17eed7b14839c991e872ea9380b5b0de3b5'/>
<id>urn:sha1:214ac17eed7b14839c991e872ea9380b5b0de3b5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>extend lints to include 'clippy::all'</title>
<updated>2021-12-28T20:15:40Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-12-28T20:15:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=592642a9e6c1c03e525f8b452f4b97e6fd17ff9b'/>
<id>urn:sha1:592642a9e6c1c03e525f8b452f4b97e6fd17ff9b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add semicolons if nothing returned</title>
<updated>2021-11-25T13:20:37Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-11-25T13:14:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=db16d13df4779ac61005050dfe5ce05e3d5a1b5d'/>
<id>urn:sha1:db16d13df4779ac61005050dfe5ce05e3d5a1b5d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move the socks_port option into a new proxy section.</title>
<updated>2021-11-18T16:48:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-18T16:48:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a1a620e451ba7d390b543e4f444e677c9d7e30a2'/>
<id>urn:sha1:a1a620e451ba7d390b543e4f444e677c9d7e30a2</id>
<content type='text'>
Now there are no options that aren't in a toml section.
</content>
</entry>
<entry>
<title>Move top-level configuration downwards from `arti` to `arti-config`.</title>
<updated>2021-11-18T16:37:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-17T19:16:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5184f5ba84d76b75022fe6249ba18fe42807b1aa'/>
<id>urn:sha1:5184f5ba84d76b75022fe6249ba18fe42807b1aa</id>
<content type='text'>
To do this at all neatly, I had to split out `tor-config` from
`arti-config` again, and putting the lower level stuff (paths,
builder errors) into tor-config.  I also changed our use of
derive_builder to always use a common error type, to avoid
error type proliferation.
</content>
</entry>
<entry>
<title>In rust-nightly CI, forbid debugging prints.</title>
<updated>2021-11-04T15:13:29Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-04T15:13:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=753cbc96263714d065ec92353923f1abbff3f67c'/>
<id>urn:sha1:753cbc96263714d065ec92353923f1abbff3f67c</id>
<content type='text'>
This patch makes the rust-nightly CI task fail if it detects any
dbg!(), println!(), or eprintln!() calls in production code.

Because of clippy limitations, it may also gripe about calls to
these macros in our tests.  The preferred workarounds are to either
instead.  Both are acceptable.

We're doing this check in CI rather than unconditionally with clippy
directives, since we often want to have these calls in our code
temporarily while we're developing.  Some day we might want this
test to go into a pre-push hook.

This patch also adds #![allow()] directives for println!() and
eprintln!() in the arti crate.  Since that one isn't a library, it's
okay for it to speak to stdout/stderr.

Closes #218.
</content>
</entry>
<entry>
<title>Remove all remaining dbg! instances.</title>
<updated>2021-11-04T14:54:47Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-04T14:54:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dae8cdb463d94b444ecd465f3a52fdc5a8ed3ede'/>
<id>urn:sha1:dae8cdb463d94b444ecd465f3a52fdc5a8ed3ede</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve and future-proof the `arti` CLI</title>
<updated>2021-10-27T18:11:48Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-10-27T16:40:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4fa0122dde2b664ebd10bfbe46da54c396dffdb3'/>
<id>urn:sha1:4fa0122dde2b664ebd10bfbe46da54c396dffdb3</id>
<content type='text'>
This switches out `arti`'s argument-parsing library with `clap`, which
is a lot more featureful (and very widely used within the Rust
ecosystem). We also now use a lot of `clap`'s features to improve the
CLI experience:

- The CLI now expects a subcommand (currently, either "help", or "proxy"
  for the existing SOCKS proxy behaviour). This should let us add
  additional non-SOCKS-proxy features to arti in future.
- `clap` supports default values determined at runtime, so the way the
  default config file is loaded was changed: now, we determine the
  OS-specific path for said file before invoking `clap`, so the help
  command can show it properly.
  - The behaviour of `tor_config` was also changed; now, one simply
    specifies a list of configuration files to load, together with
    whether they're required.
  - That function also way overused generics; this has been fixed.
- Instead of using the ARTI_LOG environment variable to configure
  logging, one now uses the `-l, --log-level` CLI option.
  (The intent is for this option to be more discoverable by users.)
- The `proxy` subcommand allows the user to override the SOCKS port used
  on the CLI without editing the config file.
</content>
</entry>
</feed>
