Commit Graph
49 Commits
Author SHA1 Message Date
Fintan Halpenny ea565f777c chore: Release radicle-job 0.6.0 releases/v0.6.0 2026-05-07 08:45:24 +01:00
Fintan Halpenny b736670212 chore: Add test-log for automatic log output on test failures
Add test-log dev-dependency and import it in the test module so that
all #[test] functions automatically capture log output, displaying it
only when a test fails. Note that `RUST_LOG` needs to be set when
running the tests to see the log output.
2026-05-07 08:42:52 +01:00
Fintan Halpenny 9d951a17a5 chore: Add log crate with debug and warn statements
Add structured logging throughout the COB evaluation and mutation
paths to aid debugging:

- debug: job creation, root initialisation, op application, run
  insertion, finishing, and log-setting
- warn: no-op situations like duplicate runs, missing nodes, or
  missing UUIDs
2026-05-07 08:42:21 +01:00
Fintan Halpenny 536de30896 chore: Update radicle to 0.24.0
Update to `radicle-0.24.0`. This update introduces the change of the
`radicle::cob::store` API changes. The `Store` structure now requires
an `Access` parameter. This is fulfilled by `access::ReadOnly` or
`access::WriteAs`. `ReadOnly` is trivially constructed, and provides
read access to `Jobs`. `WriteAs` is constructed with the signer of the
node, and provides read and write access to `Jobs`. Since the signer
is provided at construction, it is no longer needed to be passed into
`Jobs` operations.

This necessarily updates the MSRV to 1.86.0 since transitive crates
required a later version.
2026-05-07 08:41:46 +01:00
Fintan Halpenny 4d37a30cb3 MSRV: Update to 1.85.1
The MSRV is found to be 1.85.1
2026-03-21 17:15:10 +00:00
Fintan Halpenny 13062baa49 Update to 0.5.2 releases/v0.5.2 2026-03-21 17:07:49 +00:00
Fintan Halpenny b3f5b1c3bf flake: add cargo-semver-checks 2026-03-21 17:02:51 +00:00
Fintan Halpenny 8dd498f2ef radicle: Update to 0.22 2026-03-21 16:58:57 +00:00
Fintan Halpenny 8799f728bc radicle-job: Release 0.5.1 releases/v0.5.1 2026-03-06 08:33:41 +00:00
Fintan Halpenny ea277ab590 chore: explicit to chrono-0.4.42
The crate uses [`DateTime::from_timestamp_secs`], which is introduced
in 0.4.42. Be explicit about requiring that version.

[`DateTime::from_timestamp_secs`]: https://docs.rs/chrono/0.4.42/chrono/struct.DateTime.html#method.from_timestamp_secs
2026-03-06 08:30:58 +00:00
Fintan Halpenny fd69685db8 fix: Use loop in FindByCommit::next to avoid stack overflow
Use an iterative loop with `return` and `continue` to avoid stack overflow.
A stack overflow could have occurred due to the recursion, and
potentially many jobs.
2026-03-06 08:30:58 +00:00
Fintan Halpenny 07feea6ea1 radicle-job: Release 0.5.0 releases/v0.5.0 2026-03-04 17:55:42 +00:00
Fintan Halpenny 57f2ad0757 chore: update to radicle to 0.21.0
Update the `radicle` crate to 0.21.0.

This requires the MSRV to be updated to 1.85.0.
2026-03-04 17:51:15 +00:00
Fintan Halpenny e37ff3447e cli: add timestamp to output
With the Run storing the timestamp, it can be added to the CLI output
as well.

When pretty printing the timestamp, `chrono` is used to have a
date-time format.
2025-12-28 15:16:29 +00:00
Fintan Halpenny c2697d7854 lib: add timestamp to Run
For each Run, the timestamp can be easily tracked using the
operation's timestamp. This field is added to Run to provide more
information to end users.
2025-12-28 15:15:18 +00:00
Fintan Halpenny 525dc9a9e4 Release 0.4.0 releases/v0.4.0 2025-10-20 11:49:17 +01:00
Defelo 1ac2251ac8 feat: add --version flag 2025-10-08 14:53:43 +01:00
Sebastian Martinez 8935de56d3 chore: update radicle 0.20.0 2025-10-08 15:46:12 +02:00
Lars Wirzenius 6a23756c2e fix(src/bin/radicle-job.rs): add missing elided hidden lifetime
The elided hidden lifetime in the return type can lead to confusion,
and from Rust 1.89.0 the compiler warns about it by default. Avoid the
warning by making the elided lifetime explicit.

The release blog post explains this:
https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/#mismatched-lifetime-syntaxes-lint

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-08-19 15:51:08 +01:00
Fintan Halpenny 127f2e281a chore: Release radicle-job version 0.3.0 releases/v0.3.0 2025-08-15 11:34:39 +01:00
Fintan Halpenny 19df819950 chore: update CHANGELOG for v0.3.0 2025-08-15 11:34:00 +01:00
Fintan Halpenny 648bdb82e5 chore(nix): add cargo-release
Adding `cargo-release` for managing crate releases
2025-08-15 11:29:29 +01:00
Sebastian Martinez 979476291c chore: radicle 0.18.0 2025-08-15 10:07:07 +01:00
Fintan Halpenny 857df23f49 chore: v0.2.0 crates release releases/v0.2.0 2025-07-23 13:48:08 +01:00
Fintan Halpenny edf0eed0a5 chore: add CHANGELOG.md 2025-07-23 13:41:21 +01:00
Rūdolfs Ošiņš b9d8df7d33 chore: radicle 0.16.1
Update the `radicle` dependency to `0.16.1`.
2025-07-23 14:23:38 +02:00
Richard Levitte 8530300d04 feat: add --pretty to 'rad-job show'
This involves moving pretty-printing of individual jobs from
display::Jobs to display::Job.

Signed-off-by: Richard Levitte <richard@levitte.org>
2025-07-18 10:35:40 +01:00
Fintan Halpenny 841ea446c0 feat: add program to manipulate and inspect job COBs 2025-07-18 10:35:18 +01:00
Fintan Halpenny 4e85d1cef3 feat: display module
Adds a `display` module to hold types that are useful in tools that can display
data, e.g. a `rad-job` CLI
2025-07-18 08:39:11 +01:00
Fintan Halpenny 0c82a9a934 feat: add FindByCommit iterator
Introducing a `FindByCommit` iterator, which can be constructed using
`Jobs::find_by_commit`.

This allows the caller to supply a `git::Oid` and get back an `Iterator` of all
`Job`s that are running for that commit.
2025-07-18 08:39:11 +01:00
Lars Wirzenius 574129a2d0 fix: inline variable in format string
This is now considered idiomatic Rust style. Found by clippy in Rust
1.88, but will work with Rust 1.84.1.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-06-30 09:37:08 +03:00
Fintan Halpenny 68cac715ac fix: add https:// to homepage releases/v0.1.0 2025-06-12 11:30:21 +02:00
Fintan Halpenny 83edfbc761 fix: MSRV of 1.84
It would seem like the crate `base64ct` bumped their MSRV to 1.85 and added the
new edition:

- https://github.com/RustCrypto/formats/commit/ea10f3b1337faf08f14ba3e25edde10cad2dd07e
- https://github.com/RustCrypto/formats/pull/1859/files

This blocks us from publishing using `rust-version = 1.82`. We bump to `1.84` to
allow us to publish the crate.
2025-06-12 11:24:25 +02:00
Fintan Halpenny 94f74a8fd2 chore: add homepage and repository 2025-06-12 10:20:55 +02:00
Fintan Halpenny 5b86be0fbc chore: add README file 2025-06-12 08:09:34 +02:00
Lars Wirzenius 0ce659a60b fix: allow accessing the log URL for a run
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-06-11 16:08:28 +02:00
Lars Wirzenius 4512b1091f fix: make JobId (de)serializable
This makes it easier to embed in a struct that gets serialized.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-06-11 16:05:54 +02:00
Lars Wirzenius 6fef4ae530 fix: drop unused type parameter C from Jobs::get_mut
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-06-11 10:44:52 +03:00
Lars WirzeniusandFintan Halpenny 524dfdb12a docs: document Jobs::get and Jobs::get_mut
Signed-off-by: Lars Wirzenius <liw@liw.fi>
Co-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>
2025-06-11 08:30:25 +02:00
Fintan Halpenny 1ce12295c2 refactor: introduce JobId
Introduce a newtype `JobId` to differentiate it from the more general
`ObjectId`.
2025-06-11 08:29:10 +02:00
Fintan Halpenny e917ef069e fix: infallible action
The `action` method does not actually return any errors.

Change the return type to unit, and remove the unneccessary error handling.
2025-06-10 10:47:26 +02:00
Fintan Halpenny f9d9f1f182 fix: make Transaction private
For the time being, it is better to hide the `Transaction` type since actions
might need to stay fine-grained.
2025-06-10 10:47:26 +02:00
Lars WirzeniusandFintan Halpenny 24750667f0 docs: add documentation comments to all public items that lack them
Some public items of the crate were undocumented. These items are now better
described in detail, and the missing docs pragma is added to catch further
missing items in the future.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
Co-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>
2025-06-10 10:46:18 +02:00
Fintan Halpenny 256242f1ff chore: radicle 0.15
Update the `radicle` dependency to `0.15`, fixing the required API changes.
2025-06-03 15:55:55 +02:00
Lars Wirzenius 7cd8b06c07 docs: add a doc test to library, for documetation
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-15 14:42:35 +02:00
Lars WirzeniusandFintan Halpenny b41229ca07 build(Cargo.toml): set minimum supported Rust version
Sets the MSRV for the crate. The `rust-toolchain.toml` file is dropped since
this is too retrictive when choosing choosing a toolchain for developing the
crate – uses exact semantics.

It is necessary to change the `flake.nix` to read this version from the
`Cargo.toml` so that it can select the rust toolchain to use via `rust-overlay`.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
Co-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>
2025-05-15 14:40:10 +02:00
Lars Wirzenius 1238715ff4 ci(.radicle/ambient.yaml): add CI plan for Radicle CI with Ambient
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-15 13:16:42 +03:00
Fintan Halpenny 8b8cb49458 chore: update to latest radicle
Use `refs/heads/master` to ensure the latest updates – including the
`Transaction::initial` changes. This is a stop-gap until a new version of
`radicle` is published to crates.io.
2025-05-14 14:03:12 +02:00
Fintan Halpenny d5685cb755 radicle-job
The genesis of the `Job` collaborative object
2025-03-26 14:52:20 +00:00