Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor!: move to axum - Part II #56

Merged
merged 24 commits into from
Nov 14, 2024
Merged

refactor!: move to axum - Part II #56

merged 24 commits into from
Nov 14, 2024

Conversation

simonsan
Copy link
Contributor

@simonsan simonsan commented Nov 14, 2024

  • migrated to abscissa
  • fixed the tests
  • implemented typed routing
  • implemented compatibility workflow for CI => factored out to ci: add compatibility workflow #57
  • enhanced logging with tracing

Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
We didn't return the config length, so restic assumed, it's non-existent.

Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
Signed-off-by: simonsan <[email protected]>
@simonsan simonsan added A-architecture Area: Related to `rustic_server`s architecture A-ci Area: Pull requests that update CI code A-compatibility Area: Server API is not (fully) compatible with restic's server A-config Area: Related to the config file functionality and format A-meta Area: Project wide A-testing Area: Testing and coverage C-enhancement Category: New feature or request C-refactor Category: Refactoring of already existing code labels Nov 14, 2024
@simonsan simonsan merged commit 42cf95a into main Nov 14, 2024
21 checks passed
@simonsan simonsan deleted the testing/comp-test branch November 14, 2024 06:52
This was referenced Nov 14, 2024
simonsan pushed a commit that referenced this pull request Nov 14, 2024
## 🤖 New release
* `rustic_server`: 0.1.1 -> 0.2.0 (⚠️ API breaking changes)

### ⚠️ `rustic_server` breaking changes

```
--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant AccessType::Read 1 -> 2 in /tmp/.tmpcPwX3l/rustic_server/src/acl.rs:38
  variant AccessType::Append 2 -> 3 in /tmp/.tmpcPwX3l/rustic_server/src/acl.rs:43
  variant AccessType::Modify 3 -> 4 in /tmp/.tmpcPwX3l/rustic_server/src/acl.rs:48

--- failure enum_tuple_variant_changed_kind: An enum tuple variant changed kind ---

Description:
A public enum's exhaustive tuple variant has changed to a different kind of enum variant, breaking possible instantiations and patterns.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/enum_tuple_variant_changed_kind.ron

Failed in:
  variant ErrorKind::GeneralStorageError in /tmp/.tmpcPwX3l/rustic_server/src/error.rs:29

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/enum_variant_added.ron

Failed in:
  variant AccessType:NoAccess in /tmp/.tmpcPwX3l/rustic_server/src/acl.rs:27
  variant AccessType:ForceUnlock in /tmp/.tmpcPwX3l/rustic_server/src/acl.rs:35
  variant ErrorKind:Config in /tmp/.tmpcPwX3l/rustic_server/src/error.rs:21
  variant ErrorKind:Io in /tmp/.tmpcPwX3l/rustic_server/src/error.rs:25
  variant ErrorKind:MissingUserInput in /tmp/.tmpcPwX3l/rustic_server/src/error.rs:33

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/enum_variant_missing.ron

Failed in:
  variant AccessType::Nothing, previously in file /tmp/.tmphyqXy7/rustic_server/src/acl.rs:21
  variant ErrorKind::InternalError, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:9
  variant ErrorKind::BadRequest, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:11
  variant ErrorKind::FilenameNotAllowed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:13
  variant ErrorKind::PathNotAllowed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:15
  variant ErrorKind::InvalidPath, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:17
  variant ErrorKind::NonUnicodePath, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:19
  variant ErrorKind::CreatingDirectoryFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:21
  variant ErrorKind::NotImplemented, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:23
  variant ErrorKind::FileNotFound, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:25
  variant ErrorKind::GettingFileMetadataFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:27
  variant ErrorKind::RangeNotValid, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:29
  variant ErrorKind::SeekingFileFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:31
  variant ErrorKind::MultipartRangeNotImplemented, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:33
  variant ErrorKind::GeneralRange, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:35
  variant ErrorKind::ConversionToU64Failed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:37
  variant ErrorKind::OpeningFileFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:39
  variant ErrorKind::WritingToFileFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:41
  variant ErrorKind::FinalizingFileFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:43
  variant ErrorKind::GettingFileHandleFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:45
  variant ErrorKind::RemovingFileFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:47
  variant ErrorKind::ReadingFromStreamFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:49
  variant ErrorKind::RemovingRepositoryFailed, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:51
  variant ErrorKind::AuthenticationHeaderError, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:53
  variant ErrorKind::UserAuthenticationError, previously in file /tmp/.tmphyqXy7/rustic_server/src/error.rs:55

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/function_missing.ron

Failed in:
  function rustic_server::commands::serve::serve, previously in file /tmp/.tmphyqXy7/rustic_server/src/commands/serve.rs:19
  function rustic_server::log::init_trace_from, previously in file /tmp/.tmphyqXy7/rustic_server/src/log.rs:24
  function rustic_server::log::init_tracing, previously in file /tmp/.tmphyqXy7/rustic_server/src/log.rs:14

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/function_parameter_count_changed.ron

Failed in:
  rustic_server::web::start_web_server now takes 6 parameters instead of 7, in /tmp/.tmpcPwX3l/rustic_server/src/web.rs:41

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/inherent_method_missing.ron

Failed in:
  Acl::default_repo_access, previously in file /tmp/.tmphyqXy7/rustic_server/src/acl.rs:110

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/module_missing.ron

Failed in:
  mod rustic_server::commands::serve, previously in file /tmp/.tmphyqXy7/rustic_server/src/commands/serve.rs:1
  mod rustic_server::config::auth_file, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/auth_file.rs:1
  mod rustic_server::commands::auth, previously in file /tmp/.tmphyqXy7/rustic_server/src/commands/auth.rs:1
  mod rustic_server::config::auth_file::constants, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/auth_file.rs:14
  mod rustic_server::config::server, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/struct_missing.ron

Failed in:
  struct rustic_server::config::auth_file::HtAccess, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/auth_file.rs:19
  struct rustic_server::config::auth_file::Credential, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/auth_file.rs:99
  struct rustic_server::commands::serve::Opts, previously in file /tmp/.tmphyqXy7/rustic_server/src/commands/serve.rs:121
  struct rustic_server::config::server::AccessControl, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:25
  struct rustic_server::config::server::Repos, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:18
  struct rustic_server::config::server::TLS, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:50
  struct rustic_server::commands::auth::HtAccessCmd, previously in file /tmp/.tmphyqXy7/rustic_server/src/commands/auth.rs:10
  struct rustic_server::config::server::Authorization, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:36
  struct rustic_server::config::server::Server, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:43
  struct rustic_server::config::server::ServerConfiguration, previously in file /tmp/.tmphyqXy7/rustic_server/src/config/server.rs:8

--- failure trait_added_supertrait: non-sealed trait added new supertraits ---

Description:
A non-sealed trait added one or more supertraits, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#generic-bounds-tighten
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/trait_added_supertrait.ron

Failed in:
  trait rustic_server::typed_path::PathParts gained Send in file /tmp/.tmpcPwX3l/rustic_server/src/typed_path.rs:5

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/trait_method_added.ron

Failed in:
  trait method rustic_server::acl::AclChecker::is_allowed in file /tmp/.tmpcPwX3l/rustic_server/src/acl.rs:52

--- failure trait_method_missing: pub trait method removed or renamed ---

Description:
A trait method is no longer callable, and may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#major-any-change-to-trait-item-signatures
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/trait_method_missing.ron

Failed in:
  method allowed of trait AclChecker, previously in file /tmp/.tmphyqXy7/rustic_server/src/acl.rs:28

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/trait_missing.ron

Failed in:
  trait rustic_server::auth::AuthChecker, previously in file /tmp/.tmphyqXy7/rustic_server/src/auth.rs:18
```

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.2.0](v0.1.1...v0.2.0)
- 2024-11-14

### Other

- update readme
- [**breaking**] move to axum - Part II
([#56](#56))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-architecture Area: Related to `rustic_server`s architecture A-ci Area: Pull requests that update CI code A-compatibility Area: Server API is not (fully) compatible with restic's server A-config Area: Related to the config file functionality and format A-meta Area: Project wide A-testing Area: Testing and coverage C-enhancement Category: New feature or request C-refactor Category: Refactoring of already existing code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant