Skip to content

Releases: ironthree/bodhi-rs

2.2.0

27 Apr 21:33
a346ea5
Compare
Choose a tag to compare
  • Updated various dependencies.
  • Applied code style fixes reported by rustc and clippy.
  • Replace calls of deprecated APIs of chrono.
  • MSRV is bumped to 1.71 to match dependencies.

Thanks to @pendulum-project, @elementary, @tweedegolf, @Conan-Kudo, @sdroege, @Best-HeyGman, and a mystery sponsor for supporting my work.

2.1.2

15 Nov 19:45
95aec3c
Compare
Choose a tag to compare
  • Update various dependencies.
  • Applied code style fixes reported by clippy.
  • Update tests for new Fedora releases.

Thanks to @pendulum-project, @elementary, @tweedegolf, @Conan-Kudo, @sdroege, @quot, and a mystery sponsor for supporting my work.

2.1.1

14 Mar 17:10
69108d0
Compare
Choose a tag to compare
  • Derive Default implementations for enums where possible.
  • Revert back to using rpassword v5 in example code for now.

2.1.0

14 Mar 17:09
55789c0
Compare
Choose a tag to compare

This release contains a few small improvements and updates to match
changes in bodhi server code.

Added:

  • added eol field to the Release struct
  • added critpath_gtoups field to the Update struct

Changed:

  • dropped the oldtime feature of chrono to remove the dependency on the
    obsolete version 0.1 of the time crate
  • adapted tests for new and out-of-date Fedora releases
  • mark structs with the #[non_exhaustive] attribute instead of using
    private fields
  • ported from lazy_static to once_cell

Fixed:

  • fixed the deprecated(since) annotation for the composes field of the
    Release struct

2.0.1 "Adaptations"

14 Mar 17:09
026d43b
Compare
Choose a tag to compare

This release contains a few small improvements and fixes for upcoming bodhi
server behaviour changes:

The OpenID endpoint for logging into bodhi servers will be deprecated with bodhi
6.0 servers, but will remain available under a different URL for now. The
primary method of authentication will be OpenID Connect, which is not going to
be supported in the fedora crate anytime soon, as it does not look like it
will support headless authentication, but will require the user to sign on via a
web browser window to retrieve an authentication token. With version 2.0.1 of
this crate, the authentication method was changed to explicitly use the
deprecated OpenID endpoint, until OpenID connect support can be implemented in a
way that works for this crate and its users.

Additionally, bodhi servers will no longer include the composes field when
serializing Release objects. As a result, the struct field has been marked as
deprecated, but otherwise it remains the same for backwards compatibility.
However, because JSON server responses will no longer include this field, it
will always contain a value of None, and should no longer be used.

The changes since 2.0.0 also include additions to the test dataset and
test suite that cover the latest Fedora releases:

  • remove Fedora 33 and EPEL-6 from the lists of active releases
  • add missing tests and test data for Fedora 36 and 37 releases

2.0.0 "Finally"

14 Mar 17:07
70be3b8
Compare
Choose a tag to compare

This release contains no code changes compared to the previous beta. The only
changes are some updated crate dependencies (to match the versions that are
available from Fedora repositories at the time of publishing), and simplified
doctests (making it possible to drop the dev-dependency on tokio-test, which
was only used in some doctests that were not even run, but only compiled).

For a complete list of changes since v1.1.1, read the release notes for the
last two beta releases.

Release 2.0.0-beta.2 "Spring Cleaning"

This beta release only includes some code cleanups and small improvements for
error messages and documentation.

Release 2.0.0-beta.1 "Modern Times"

This version is an almost-complete rewrite of the entire crate, with
numerous changes and improvements.

Most notably, all network calls that use the underlying fedora crate are now
non-blocking / async.

The API for making requests has been completely rewritten with simplified
traits, and it is now explicit when which requests will be processed as
paginated queries based on the trait they implement.

The rewritten API also makes it very easy to expose requests for specific pages
of paginated results, which was not the case in older versions of this crate.

The FedoraRelease type has been converted from an enumerated value (which
made it necessary to release new versions of this crate for new Fedora or EPEL
releases) to a newtype wrapper around string types with a validated format. This
is intended to be a more future-proof solution, as only the format of release
identifier strings is now validated, but the strings themselves are not compared
to a list of hard-coded known release identifiers.

Overview of changes since version 1.1.1:

  • ported to use asynchronous network calls exposed by fedora v2.0.0+
  • ported all examples and tests to use #[tokio::test], though all library code
    of this crate is runtime-agnostic
  • use re-exported reqwest and url from fedora, since those crates are
    part of the public API and version needs to match the one exposed by the
    fedora crate
  • renamed BodhiService to BodhiClient, as that matches what it does
  • removed all specialized traits for Query / PaginatedQuery, Create, and
    Edit in favor of using only Request and PaginatedRequest
  • simplified error types (removed ServiceError, its variants have been merged
    into the QueryError type), and added a specific error for invalid input data
  • reimplemented FedoraRelease enum as a newtype wrapper around string types,
    making the crate more future-proof, as this does not require code changes for
    supporting new Fedora or EPEL releases every few months
  • make it impossible to construct most "output-only" types outside this crate
  • expose APIs for running single-page queries for specific result pages

Development-specific changes:

  • python scripts for generating integration tests have been rewritten to use
    Jinja2 templates, making the code moch more easy to maintain or adapt
  • added property-based tests for validating the regular expressions used to
    parse and validate FedoraRelease values from strings

Additionally, every line of documentation has been rewritten from scratch to
make sure it matches the latest state of the crate. The NEWS.md changelog is
now also imported into the crate's documentation.

1.1.1 "Corporate Badger"

30 Nov 21:56
5aa8b40
Compare
Choose a tag to compare

Changes:

  • add EPEL 9 (EPEL-9 and EPEL-9N) variants to FedoraRelease
  • add workarounds for slightly broken generated deserialization tests

1.1.0 "Cookie Monster"

30 Nov 21:55
522ff5d
Compare
Choose a tag to compare

Changes:

  • require fedora = ^1.1 for better OpenID session / cookie cache support

1.0.5 "Moar Numbers"

30 Nov 21:55
e712ccb
Compare
Choose a tag to compare

Improvements:

  • add all F35 and F36 variants to FedoraRelease

1.0.4 "Number Next"

26 May 15:15
ca149eb
Compare
Choose a tag to compare

Improvements:

  • add EPEL8N (EPEL 8-Next) as valid FedoraRelease variant