Commit Graph

282 Commits

Author SHA1 Message Date
Nick Mathewson 104d64589d Increment MSRV to 1.65 in every crate. 2023-04-11 15:31:12 -04:00
Nick Mathewson 69ebbedc3c Add Gabi to exclude_contributors.
(We don't include Tor employees in our "thanks" section.)
2023-03-31 07:30:09 -04:00
Dimitris Apostolou 629fa80674
Fix typos 2023-03-24 09:56:08 +02:00
Ian Jackson 3038c7520d maint/check_todos: Offer advice on workarounds, if tripped 2023-03-21 13:08:51 +00:00
Ian Jackson ac2c56f92d Obscure various literal uses of the todo marker
In each case, use a circumlocution.
2023-03-21 13:08:51 +00:00
Ian Jackson 541c5338af maint/check_todos: New script 2023-03-21 13:08:14 +00:00
Nick Mathewson 61096d61c3 fixup-features: Use write-and-rename pattern. 2023-03-20 13:29:33 -04:00
Nick Mathewson cd4895e525 fixup-features: Improve a comment. 2023-03-20 13:29:33 -04:00
Nick Mathewson 630d87f9c1 fixup-features: Simplify "optionality" detection. 2023-03-20 13:29:33 -04:00
Nick Mathewson 96cd970398 New "fixup-features" tool to enforce properties in Cargo.tomls
See top-level main.rs comment for an explanation.

Closes #771
2023-03-20 13:29:33 -04:00
Ian Jackson 333ce4118b Merge branch 'check_env' into 'main'
maint: add a full dependency check

See merge request tpo/core/arti!1030
2023-03-01 12:48:20 +00:00
Ian Jackson ce2fee9166 Merge branch 'zlib' into 'main'
Approve zlib licence

See merge request tpo/core/arti!1035
2023-02-27 13:34:05 +00:00
Emil Engler 20e40d79db
maint: remove the dependency check from coverage
This commit removes the dependency check introduced by b4b8d040, because
it's task is now done by the recently added `check_env` script.
2023-02-24 18:32:06 +01:00
Emil Engler 4b2b6e06da
maint: add a full dependency check
This commit adds a script that checks the environment for it's suitable
as an Arti development environment.

It follows an idea pitched by Ian Jackson and me in !1025.
2023-02-24 18:32:06 +01:00
Ian Jackson df79d407d9 maint/check_licensse: Placate shellcheck
There's nothing wrong with the previous idiom since it's a trusted
variable, but whatever.
2023-02-24 17:27:43 +00:00
Ian Jackson 4756ad6e57 maint/check_licensse: Approve Zlib licence
This is a very permissive BSD/MIT-like licence.  I have reviewed the
licence text and it is inoffensive.

I want this for slotmap, in !1034
2023-02-24 17:14:27 +00:00
Ian Jackson 7068f237f7 maint/check_licensse: Honour CARGO variable
Even if it contains spaces.
2023-02-24 17:14:27 +00:00
Ian Jackson 745336fac5 maint/check_licensse: Do not discard actual error
This confused me while I was debugging the interaction with nailing-cargo.
2023-02-24 17:14:27 +00:00
Ian Jackson bd920fc844 Merge branch 'fix-adhoc' into 'main'
maint: fix `adhoc-add-lint-blocks` script

See merge request tpo/core/arti!1031
2023-02-24 17:01:35 +00:00
Emil Engler d6a7ace662
git: add maint/.gitignore for __pycache__
The maint/ directory contains several python scripts, which will create
a __pycache__ directory.
2023-02-22 18:31:40 +01:00
Emil Engler 346ade6200
maint: fix `adhoc-add-lint-blocks` script
This commit fixes a bug in maint/adhoc-add-lint-blocks, which made it
impossible to execute, because `/usr/bin/env` looked at Perl's command
line arguments to be a part of the binary name.
2023-02-22 18:30:33 +01:00
Ian Jackson ed5857fab1 Merge branch 'coverage-dep-check' into 'main'
maint: add a dependency check to coverage

Closes #776

See merge request tpo/core/arti!1025
2023-02-22 12:00:28 +00:00
Emil Engler b4b8d040a0
maint: add a dependency check to coverage
This commit implements a dependency check to the `maint/coverage`
script, that checks for the rustup, python3, and grcov binaries in
$PATH; the bs4 and lxml python packages; and the llvm-tools Rust
component.

Fixes #776
2023-02-21 20:09:17 +01:00
Nick Mathewson be8f483acc Fix a bug in check_doc_features
In Python, str.find returns -1 if it doesn't find the target
character, and -1 is a true value.  So `if pos := foo.find('c')`
won't do what we want.
2023-02-21 15:17:28 +00:00
Emil Engler 66fd697a73
maint: forcefully remove files in coverage
When performing the initial run of `./maint/coverage`, it will report an
error message to stderr, that several files cannot be deleted, due to
their non-existence.

While the error is still ignored, I personally think that there is no
benefit in showing it either, thereby surpressing it with this commit.

Beside this, this syntax might be easier to understand from a semantical
point of view.
2023-02-16 15:14:08 +01:00
Nick Mathewson 7feda22444 tor-cell: documentation cleanups related to restricted_msg 2023-02-07 16:03:14 -05:00
Emil Engler 53bf3492e8
maint: add shebang
This commit adds a test called `shebang`, which checks if all shebangs
in scripts use relative paths through `#/usr/bin/env`, rather than
absolute paths, such as `#/bin/bash`.

See 833b10575b.
2023-01-26 21:04:34 +01:00
Emil Engler 54f549dd53
maint: replace llvm-tools-preview with llvm-tools
This commit replaces all occurrences of `llvm-tools-preview` with
`llvm-tools`, because it became a stable feature with Rust 1.60, thereby
making the `-preview` prefix obsolete. Beside this, `llvm-tools-preview`
is a redirection to the latter one anyway.

However, it does not work the other way around. At the moment, it is not
possible to execute the `maint/coverage` script on a NixOS system,
because the rustup component list only includes `llvm-tools`, but not
`llvm-tools-preview`, thereby making this change necessary.
2023-01-27 15:56:09 +01:00
Nick Mathewson a6dd92843e Allow clippy::unchecked_duration_subtraction in tests
This panics on error, and we're fine with a panic on misbehavior in
tests.
2023-01-27 08:28:02 -05:00
Nick Mathewson bf04641c68 Disable clippy::unlinlined-format-args
This warning kind of snuck up on us! (See #748)  For now, let's
disable it.  (I've cleaned it up in a couple of examples, since
those are meant to be more idiomatic and user-facing.)

Closes #748.
2023-01-27 08:27:47 -05:00
Emil Engler 833b10575b
maint: update shellcheck_all with /usr/bin/env
This commit updates the shellcheck_all script, in order to look for
/usr/bin/env, instead of /bin.
2023-01-25 18:43:14 +01:00
Emil Engler 79097484de
shell: use /usr/bin/env instead of absolute paths
This commit changes the shebang in all shell scripts from absolute
paths (such as `/bin/bash` or `/usr/bin/python3`) to the `/usr/bin/env`
binary with the accompanying interpreter as it's argument.

The reason for this are as follows:
- NixOS cannot work with absolute paths
- BSD systems install their packages in /usr/local/bin
2023-01-25 18:35:53 +01:00
Ian Jackson a8fda4b0cd test lint blocks: Add ad hoc script for adding them 2022-12-12 18:00:26 +00:00
Ian Jackson 879c4cdbf3 Merge branch 'shadow-bridge' into 'main'
Test vanilla bridge in shadow

See merge request tpo/core/arti!915
2022-12-12 11:41:05 +00:00
Dimitris Apostolou 7c1beb6171
Fix typos 2022-12-09 11:57:36 +02:00
trinity-1686a 18a12d3feb put ci log span magic strings in a dedicated script 2022-12-05 18:41:23 +01:00
Ian Jackson b6a4f2388d CI: test that we can compile, and test cfg, with/without bridges/PTs 2022-11-29 17:52:12 +00:00
trinity-1686a 3d5d4ada01 use newer version of zstd and lzma 2022-11-29 12:54:25 +01:00
Ian Jackson fbd4b88044 Merge branch 'test-config' into 'main'
tor-guardmgr: Fix visibility of TestConfig with no features enabled

See merge request tpo/core/arti!875
2022-11-23 17:51:05 +00:00
Nick Mathewson 4c5a88c925 Merge branch 'matrix-test' into 'main'
maint/matrix_test: Print what command we are running!

See merge request tpo/core/arti!879
2022-11-23 17:50:30 +00:00
Ian Jackson 639cc23da3 Ignore atty theoretical unaligned read for now 2022-11-22 12:54:21 +00:00
Ian Jackson a171f51c1a maint/matrix_test: Print what command we are running! 2022-11-21 15:47:08 +00:00
Ian Jackson d6f567b8ef fixup! tor-guardmgr: Fix visibility of TestConfig with no features enabled 2022-11-18 16:40:28 +00:00
trinity-1686a 614cf34284 Check more targets 2022-11-10 13:34:17 +00:00
Gabriel de Perthuis bc08ea48f7 Upgrade to clap 3 with minimal changes
This removes the last cargo audit override (for the unmaintained
ansi_term).

Don't mark options as required when they have default values:
see <https://github.com/clap-rs/clap/pull/3793>.
2022-11-04 19:28:38 +01:00
Ian Jackson 53905f3e1a docs features: Add a suppression for testing 2022-11-03 15:51:45 +00:00
Nick Mathewson e4ca2459db add_warnings: ignore clippy::result_large_err
This is a temporary workaround for #587 until we get it fixed for
real.
2022-11-03 11:05:14 -04:00
Nick Mathewson 0cb886a098 add_warnings: work with more non-GNU finds.
We were doing `find -name '*.rs'`, but `find . -name '*.rs'` (with the .)
is more standard.
2022-11-03 11:03:43 -04:00
trinity-1686a dd5aa3ea38 cleanup target dir on job completion 2022-10-21 18:10:39 +00:00
Nick Mathewson e0c1928ea0 Merge branch 'matrix-features' into 'main'
add checks for many feature combinations

Closes #303

See merge request tpo/core/arti!775
2022-10-21 12:57:36 +00:00
Nick Mathewson 938af98b8c Remove now-needless check_doc_features exception. 2022-10-20 12:37:41 -04:00
trinity-1686a 3200870079 fix doc-feature synchro 2022-10-16 21:02:10 +02:00
trinity-1686a 53016a005b add test for many features
and fix issue compiling tor-rtcompat with on ssl runtime
2022-10-16 21:02:10 +02:00
Ian Jackson 881f6edd9f Abolish maint/readmes
This is not needed any more
2022-10-12 15:29:04 +01:00
Ian Jackson 82ad9eea5f Allow "clippy::single_char_pattern" in tests.
This lint exists for perf reasons, and this is rarely relevant in
tests.

Using double quoted str is generally cognitively less burdensome.
2022-10-12 13:50:29 +01:00
Ian Jackson 9705ef3fea Merge branch 'bridge-parse' into 'main'
Parse (and format) bridge lines

See merge request tpo/core/arti!745
2022-10-03 20:13:02 +00:00
Ian Jackson b67b5ac536 pt: Make PtTarget::push_setting fallible, and take Into
It has its own error type PtTargetInvalidSetting.

In check_doc_features, adjust suppression to new code.
2022-10-03 20:45:54 +01:00
Nick Mathewson 6ed2e0c377 Script to list current version of every crate. 2022-10-03 11:23:30 -04:00
Nick Mathewson a506f020b2 changed_crates: output crates in toposort order. 2022-10-03 08:47:07 -04:00
Ian Jackson 9b55cc012e pt: Try to fix docsrs problem 2022-09-27 17:29:38 +01:00
Nick Mathewson 141afbbf61 Rename various Transport* types to Pt*.
This clarifies that the types apply to pluggable transports only,
and not (typically) to the default plain-old-TCP transport.
2022-09-23 14:08:53 -04:00
Nick Mathewson cf135ad3eb New data types to describe transport targets.
I've tried to name and structure these for consistency, and
comment reasonably well.  We'll still probably want to make changes.
2022-09-23 14:08:24 -04:00
Ian Jackson a4cf8bf577 maint/docker_reproducible_build: Bump image here too 2022-09-06 13:53:11 +01:00
Ian Jackson 3e15d54f64 maint/reproducible_build: Pass --locked to cargo build
We don't want any updates!
2022-09-06 13:53:11 +01:00
Ian Jackson 82fee7a8d6 maint/reproducible_build: Honour $CARGO
This makes it easier to test, and perform other kinds of stunts.
2022-09-06 13:53:11 +01:00
Ian Jackson ecf7723344 maint/reproducible_build: Centralise -p arti --features etc. 2022-09-06 13:53:11 +01:00
Ian Jackson 2fe613647a maint/reproducible_build: Bring "cargo build" invocations together 2022-09-06 13:53:11 +01:00
trinity-1686a e1e3f912b3 update to v5.0.0 2022-08-31 19:08:06 +02:00
Nick Mathewson 167408050f check_licenses: List license for tinystr 2022-08-30 20:09:19 -04:00
trinity-1686a ef162655af switch from awk to python 2022-08-24 18:22:41 +02:00
trinity-1686a 426a59b2ba add feature annotation not added by doc_auto_cfg 2022-08-24 18:22:41 +02:00
Ian Jackson eb93e05552 maint/cargo_audit: Tolerate RUSTSEC-2021-0139 (ansi_term unmaintained) 2022-08-22 10:37:00 +01:00
Ian Jackson ff962e5109 maint/cargo_audit: Honour $CARGO
This makes it easier to for me to test this script.  (I would like to
do this to all of them but it's easier on a case-by-case basis.)
2022-08-22 10:36:53 +01:00
FAMASoon 4cfdeca0f1 format python script in maint 2022-08-17 02:15:35 +09:00
trinity-1686a 2339f637c5 fix error running check_licenses
--version was removed in a recent update

we use that to detected whether cargo-license is installed,

now use --help instead
2022-08-13 09:02:17 +02:00
FAMASoon 817b811560 Delete unused Enum and fileinput in maint file 2022-08-04 22:58:58 +09:00
Nick Mathewson dfdcc97858 Several typo fixes from `typos`. 2022-07-27 10:12:32 -04:00
Nick Mathewson 275c98940a Teach check_licenses to accept license on `unicode-ident`.
The license there is `(MIT OR Apache-2.0) AND Unicode-DFS-2016`,
which fine, but the existing shell script doesn't actually handle
"AND" correctly.  This commit adds a workaround for licenses that
are "AND", and some comments about weaknesses in our (lack of)
boolean expression parsing.

This should fix CI.
2022-07-20 09:40:12 -04:00
eta c2e2da5dc3 Update `rsa` dependency (and use `x25519-dalek` prerelease)
- arti#448 and arti!607 highlight an issue with upgrading `rsa`: namely,
  the `x25519-dalek` version previously used has a hard dependency on
  `zeroize` 1.3, which creates a dependency conflict.
- However, `x25519-dalek` version `2.0.0-pre.1` relaxes this dependency.
  Reviewing the changelogs, it doesn't look like that version is
  substantially different from the current one at all, so it should be
  safe to use despite the "prerelease" tag.
- The new `x25519-dalek` version also bumps `rand_core`, which means we
  don't have to use the RNG compat wrapper in `tor-llcrypto` as much.

closes arti#448
2022-07-06 14:57:45 +01:00
Ian Jackson b7c03943f1 maint/add_warning: Fix parsing of --check
Previously this would eat the first filename!
2022-06-24 14:23:38 +01:00
Ian Jackson 23c352b96b clippy: Consolidate many lints in maint/add_warning
Found these by disabling the nightly dbg macro special case.  Now, we
have a mechanism for globally adding suppressions to tests, we can use
that instead.
2022-06-24 14:23:38 +01:00
Ian Jackson bebf013bef maint/add_warning: Add two lints via add_warning as a test case 2022-06-24 14:23:38 +01:00
Ian Jackson 72515abf91 maint/add_warning: Add ability maintain test lint blocks 2022-06-24 14:23:38 +01:00
Ian Jackson 76ff330610 maint/add_warning: Scan all files by default, but insist only in some
This will allow us to have add_warning manage test lint blocks.

We have to stop printing all the filenames because there are too
many.  Filenames still come out on error of course.
2022-06-24 14:23:34 +01:00
Ian Jackson 13e27919c5 clippy: Supresss clippy::significant_drop_in_scrutinee
As per the linked discussion.
2022-06-23 19:14:54 +01:00
Ian Jackson 28dea73523 lints: Scheme for allowing us to name nightly lints
As per
  https://gitlab.torproject.org/tpo/core/arti/-/issues/501
2022-06-23 19:14:11 +01:00
Nick Mathewson bf15abbb97 Avoid matching crate names by prefix. 2022-06-17 08:41:38 -04:00
Nick Mathewson 677f1b8af0 Update check_tree to better detect errors in cargo-tree. 2022-06-16 16:13:11 -04:00
Nick Mathewson c16b32f1d4 Add script and CI to make sure `ring` doesn't show up in arti/full
See arti#493.
2022-06-16 09:00:59 -04:00
Ian Jackson 86c4f42c49 CI: Break out maint/via-cargo-install 2022-06-08 19:32:59 +01:00
Ian Jackson d00ba995be maint/cargo_sort: Tolerate toplevel Cargo.toml not being sorted 2022-06-08 18:27:45 +01:00
Ian Jackson ba016053de maint/toposort: Make shebang be python3, not python
Otherwise it doesn't work on sane systems where /usr/bin/python is
never an incompatible version from previously.
2022-06-08 17:17:20 +01:00
Ian Jackson 6f96736278 Merge branch 'check-license-fixes' into 'main'
Update check_licenses and add it to CI.

Closes #462

See merge request tpo/core/arti!559
2022-06-02 13:59:35 +00:00
Ian Jackson 2730bed5bd maint/add_warning: Convert remaining asserts 2022-05-31 19:16:09 +01:00
Ian Jackson 6c52fa675b maint/add_warning: Introduce ImproperFile and convert one assert 2022-05-31 19:14:19 +01:00
Ian Jackson 7e96664140 maint/add_warning: Use python3 argparse 2022-05-31 19:03:38 +01:00
Nick Mathewson 842e6a697d check_licenses: list new crates with manual license verification
Closes #462.

Note that the license on `ring` is slightly problematic for some
users, including as it does old the openssl license[^1], with
advertising clause and all.  That's not a blocker for us now, since
`ring` is not a required dependency.  But we wouldn't want `ring` to
become a mandatory dependency because of this.

[^1]: To make the situation even more complicated, modern openssl
      has relicensed under apache-2.0, but that doesn't necessarily
      help us, since ring took its code from boringssll, which
      forked from an older version of openssl.
2022-05-31 13:58:40 -04:00
Ian Jackson 47a10fa84c maint/add_warning: Add "how to fix" to error message
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/557#note_2808879
2022-05-31 18:54:08 +01:00
Ian Jackson 89b4a59048 maint/add_warning: Provide --check mode 2022-05-31 18:54:08 +01:00
Ian Jackson c2939b5f74 maint/add_warning: Change shebang to python3
"python" sometimes means Python 2.
2022-05-31 18:53:49 +01:00