Commit Graph

184 Commits

Author SHA1 Message Date
fa8f590019 Drop a copyright notice (!)
I credited Johannes Schauer Marin Rodrigues <josch@debian.org> with the
original debian/rules way back at the start of the packaging branch. It
seemed like good traceability, at the very least.

Now, the rules file is just a bit of boilerplate. I don't think anyone
needs particular credit for this thing, so I'm dropping the explicit
mention.
2025-11-13 22:00:51 -06:00
89179e49e7 Strip out all the imports and exports
Again, comparing against other projects I see none of these things. I'm
dropping them.
2025-11-13 21:58:32 -06:00
47b91a1e42 Remove bogus pre-step inserts
These don't do anything. I've compared against some other Rust packages
(some ProxmoxVE stuff) and the output of debcargo against this crate
(from crates.io, now that it's up). Neither contain these targets. I'm
fairly confident I don't need them at all.
2025-11-13 21:49:28 -06:00
4778c6f362 Add a cargo-checksum.json, remove its fake
See "https://wiki.debian.org/Teams/RustPackaging/Policy"

In section "Library package structure", the policy manual explains that
this file is meant to exist in the Debian package (i.e.: it's not
generated during the build) and should contain the SHA256 checksum of
the upstream crate.

The crate's internal arrangement can change depending on which version
of Cargo was used to create it. This checksum is from Rust 1.93, the
current stable at time of writing. Debian 13's Rust 1.85 produces a
different file with a different sum. I'm not sure what to do about that
right now.
2025-11-13 21:36:08 -06:00
2022da671e Fix: debian/copyright was using old package name. 2025-11-13 20:05:43 -06:00
25af28e97c Update changelog for 3.0.1-1 release debian/3.0.1-1 2025-11-13 17:12:47 -06:00
02cabfeb1a Drop entirety of old patch set
Both the Rust edition and the lifetime thing were changed in Rust 1.85,
which is now available in Debian 13. These patches are no longer
necessary.
2025-11-13 17:08:53 -06:00
54b54b42d7 Update gbp.conf debian-branch to "deb/trixie" 2025-11-13 17:08:31 -06:00
21799aa247 Merge tag 'v3.0.1' into deb/trixie
Release v3.0.1, metadata updates
2025-11-13 17:07:52 -06:00
c5c5598fb7 Mark v3.0.1 patch
All checks were successful
/ Compile and upload a release build (release) Successful in 54s
Barely anything has changed, but the package *is* different. v3 is from
months back and is missing information that Crates.io kinda wants.
v3.0.1
2025-11-13 16:55:12 -06:00
9e47cb72d5 Remove the comments tracking Debian-specific deps
The Debian 12 dependency versions can go away since I'm no longer
targetting it. The Debian Sid versions haven't been checked in months,
and I'm not actually targetting it *either* (never have been). They can
both go away.
2025-11-13 16:40:01 -06:00
ff2286f44b Add metadata required for publishing to crates.io
I'm not sure they're required. I sure hope not because I don't have a
homepage, and the guide says not to reuse the repo URL there.
2025-11-13 16:36:54 -06:00
d982f42ae7 Update dependency versions for Debian 13 "Trixie"
I'm deciding that I'll only support the latest stable release of
Debian. Somehow I doubt anyone is using this tool, and those who do are
unlikely to need an even longer support window than Debian's stable
release period.

This change bumps the dependencies to match those available in Debian
13. Some upgrades would have already happened, while others are blocked
by the SemVer rules.

For example, Clap 4.0 to 4.5 would happen automatically, but TOML 0.5 to
0.8 would not.
2025-09-11 14:12:12 -05:00
daf9ec6ae6 Update changelog for 3.0.0-1 release debian/3.0.0-1 2025-07-22 09:54:41 -05:00
fc44129039 Rediff patches 2025-07-22 09:54:05 -05:00
a88e44ab97 Add new upstream dependency to debian/control
Also sort the dependencies alphabetically.
2025-07-22 09:52:42 -05:00
17165a58bb Merge tag 'v3.0.0' into deb/bookworm 2025-07-22 09:52:29 -05:00
641efc3bf7 Update automation workflow with new CLI args
All checks were successful
/ Compile and upload a release build (release) Successful in 1m10s
v3.0.0
2025-07-22 09:41:54 -05:00
144fba5373 Bump crate version to v3.0.0
Some checks failed
/ Compile and upload a release build (release) Failing after 49s
2025-07-21 16:37:37 -05:00
7f35b808e5 Lint and format 2025-07-21 16:37:14 -05:00
00edaf87ce Mark the file-format and search-path conf sections
There are two concepts here and that should be more clearly indicated.

Introduce the file format with some examples, then talk about where
those files are found.
2025-07-21 16:21:10 -05:00
250140a954 Rephrase the all-projects setting introduction 2025-07-21 16:20:48 -05:00
b290a8b1d6 Drop the "no-repo" comment in TOML example
It's not relevant to the example and might confuse readers as a result.
2025-07-21 16:18:44 -05:00
b952e40060 Revise explanation of --project option
I need to introduce the idea that "projects" are actually file paths,
and that these paths are the keys for the key-value stores that are the
config files.

...but without saying "HashMap" because that's really an implementation
detail.
2025-07-21 16:14:47 -05:00
4b9257a9a7 Rename remaining CLI arg sections
The previous text was pretty ugly and not particularly useful to catch
the eye when looking for relevant sections.
2025-07-21 16:13:46 -05:00
d34eda77dc Delete the old CLI option sections 2025-07-21 16:12:56 -05:00
3315c18ed2 New 'authentication' section
The auth tokens can now be loaded from the config files, so I need to
mention that.

I took the opportunity to revise the explanation of when auth is
required. Now it has a more obvious example of how it depends on
instance configuration.
2025-07-21 16:09:12 -05:00
0e7bca80cb Create a short, complete explanation of req. info.
I don't need to have nearly so much information explaining how to use
optional command line arguments. The quirk about the "repo" needing to
be a URL fragment somewhat justified the extra explanation, but that's
gone now.

Instead, a short, up-front section stating which bits are required and
where the program will try to get them.
2025-07-21 16:08:08 -05:00
5bd2862498 Update usage printout 2025-07-21 15:47:23 -05:00
333636b524 Revise help text for CLI "--project" arg 2025-07-21 14:57:18 -05:00
e954a2b09a Drop notice about CLI not having "repo" & "owner" 2025-07-21 14:54:16 -05:00
da8f008f1a Use current-dir as final fallback repo name
It all falls into place! I had been dreading doing this bit, but after
updating the usage guide I realized the CLI args should be split, too.
Which finally means that I can just glue on the PWD name as a final
fallback for the repo name.

Try the args, then the config file(s), then PWD. If nothing works, the
user is in a world of hurt. Bail out.
2025-07-21 14:48:30 -05:00
7c0966be30 Split the owner and repo args apart in CLI parser 2025-07-21 14:21:13 -05:00
c1019afa7a Write configuration guide in the README 2025-07-21 14:04:04 -05:00
1a619d7bb4 Update CLI usage guide, add project lookup guide
There's a new inconsistency, however. The previous URL and FQRN
arguments are no longer mandatory but their description makes it seem
as though they are.
2025-07-21 14:04:01 -05:00
fc0d1b569c Add a project path CLI option 2025-07-21 11:56:20 -05:00
8cfc6605c9 Mark pre-release 3.0.0-alpha.1
The configuration file loading is complete and seems to work the way I
expect. I still need to do an improved project guessing system, and it
would be smart to allow the user to explicitly enter a config file to
use.
2025-07-21 10:58:37 -05:00
0e814b86a1 Fix some clippy lints 2025-07-21 10:52:20 -05:00
0e3aa16e00 Another autoformat 2025-07-20 17:36:49 -05:00
04dd333d72 Fix: use default "[all]" if one isn't present
Same thing as the previous commit, but for the "[all]" table.
2025-07-20 17:33:55 -05:00
13ef1d25eb Fix: use empty PartialConfig if proj conf missing
If there is no project-specific configuration, use a default one
instead. It still needs to be merged with the "[all]" one, assuming that
exists.

Now to do the same thing for the all-table.
2025-07-20 17:32:11 -05:00
56b0580a9a Add docstring for PartialConfig::try_from()
I started to replace this with an infallible `try()` implementation
before realizing that this exists specifically to filter out the
no-such-table result. That isn't an error *in this context*, which is
what the try_from() is doing for me.
2025-07-20 17:23:44 -05:00
46d8618e74 Fix config unit tests: project path is set!
The project path value gets set as a side-effect of loading the named
configuration table. Which... actually means this information isn't
important. I know it going in, and I know it coming out. I think the
real fix is to delete the field.
2025-07-20 17:23:15 -05:00
73363718c3 Add test for skipping unavailable conf files
Missing config files aren't an error. Make sure there isn't some kind of
early return logic that emits broken data.
2025-07-20 16:06:25 -05:00
5b8a09e9ca Add more unit tests for the config loader
1. Load exact match, supplement "[all]" table
2. Load no match, fall back to "[all]"
3. Load exact match, ignore missing "[all]" table
2025-07-20 13:22:59 -05:00
3453f64312 Wire in the conf file loading, assume PWD project
Load the configuration for the current directory. The project guessing
mechanism isn't here, yet, so this will have to do.

First take the properties set via Args. This will also capture the
values set through environment variables. For anything that's missing,
try to fill it with the info from the configuration files. In the event
that there isn't enough information, new error types have been added to
signal mis-use.
2025-07-20 12:33:38 -05:00
63d0a868ec Make the URL and Repo FQRN CLI args optional
They are no longer mandatory as they might be specified through the
config file(s). Now to go assemble that config and fix the compiler
errors.
2025-07-20 12:32:45 -05:00
4e9a5dd25b Delete a now-solved FIXME comment 2025-07-20 12:17:27 -05:00
ce480306e0 Cargo clippy fixes 2025-07-20 10:56:57 -05:00
6ca279de49 Autoformat 2025-07-20 10:51:03 -05:00