Skip to content

chore(release): prepare for publishing - #98

Merged
Benoît Cortier (CBenoit) merged 2 commits into
masterfrom
release-plz/2026-08-28T14-42-44Z
Sep 3, 2026
Merged

chore(release): prepare for publishing#98
Benoît Cortier (CBenoit) merged 2 commits into
masterfrom
release-plz/2026-08-28T14-42-44Z

Conversation

@devolutionsbot

@devolutionsbot devolutionsbot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • now-policy: 0.2.0 -> 0.3.0 (⚠ API breaking changes)
  • now-policy-api: 0.3.1 -> 0.4.0 (⚠ API breaking changes)
  • now-policy-server-template: 0.3.0 -> 0.4.0 (⚠ API breaking changes)

now-policy breaking changes

--- 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.47.0/src/lints/function_missing.ron

Failed in:
  function now_policy::schema::parse_policy_yaml, previously in file /tmp/.tmpU8T37e/now-policy/src/schema.rs:24

now-policy-api breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ErrorResponse.validation in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/api.rs:315
  field ErrorResponse.management in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/api.rs:318
  field ErrorResponse.validation in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/api.rs:315
  field ErrorResponse.management in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/api.rs:318

--- 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.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant ErrorCode:UnsupportedEndpoint in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:128
  variant ErrorCode:MalformedDraft in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:129
  variant ErrorCode:InvalidPolicy in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:130
  variant ErrorCode:WarningConfirmationRequired in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:131
  variant ErrorCode:Unauthenticated in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:132
  variant ErrorCode:AdministratorRequired in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:133
  variant ErrorCode:UnsafePolicyPath in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:134
  variant ErrorCode:UnsupportedPolicyFormat in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:135
  variant ErrorCode:StalePolicyStoreToken in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:136
  variant ErrorCode:UnsupportedPolicyFilesystem in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:137
  variant ErrorCode:PolicyPersistenceFailed in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:138
  variant ErrorCode:PolicyActivationFailed in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:139
  variant ErrorCode:UnsupportedEndpoint in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:128
  variant ErrorCode:MalformedDraft in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:129
  variant ErrorCode:InvalidPolicy in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:130
  variant ErrorCode:WarningConfirmationRequired in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:131
  variant ErrorCode:Unauthenticated in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:132
  variant ErrorCode:AdministratorRequired in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:133
  variant ErrorCode:UnsafePolicyPath in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:134
  variant ErrorCode:UnsupportedPolicyFormat in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:135
  variant ErrorCode:StalePolicyStoreToken in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:136
  variant ErrorCode:UnsupportedPolicyFilesystem in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:137
  variant ErrorCode:PolicyPersistenceFailed in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:138
  variant ErrorCode:PolicyActivationFailed in /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-api/src/enums.rs:139

--- failure feature_missing: package feature removed or renamed ---

Description:
A feature has been removed from this package's Cargo.toml. This will break downstream crates which enable that feature.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#cargo-feature-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/feature_missing.ron

Failed in:
  feature policy-compat in the package's Cargo.toml

now-policy-server-template breaking changes

--- failure feature_missing: package feature removed or renamed ---

Description:
A feature has been removed from this package's Cargo.toml. This will break downstream crates which enable that feature.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#cargo-feature-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/feature_missing.ron

Failed in:
  feature policy-compat in the package's Cargo.toml

--- 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.47.0/src/lints/module_missing.ron

Failed in:
  mod now_policy_server_template::mock, previously in file /tmp/.tmpU8T37e/now-policy-server-template/src/mock.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.47.0/src/lints/struct_missing.ron

Failed in:
  struct now_policy_server_template::mock::MockPackageBrokerServer, previously in file /tmp/.tmpU8T37e/now-policy-server-template/src/mock.rs:17
  struct now_policy_server_template::MockPackageBrokerServer, previously in file /tmp/.tmpU8T37e/now-policy-server-template/src/mock.rs:17

--- 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.47.0/src/lints/trait_method_added.ron

Failed in:
  trait method now_policy_server_template::server::PackageBrokerServer::active_policy in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:33
  trait method now_policy_server_template::server::PackageBrokerServer::policy_management in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:34
  trait method now_policy_server_template::server::PackageBrokerServer::validate_policy in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:35
  trait method now_policy_server_template::server::PackageBrokerServer::replace_policy in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:39
  trait method now_policy_server_template::PackageBrokerServer::active_policy in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:33
  trait method now_policy_server_template::PackageBrokerServer::policy_management in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:34
  trait method now_policy_server_template::PackageBrokerServer::validate_policy in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:35
  trait method now_policy_server_template::PackageBrokerServer::replace_policy in file /tmp/.tmpTuvVQB/now-libraries/policies/rust/now-policy-server-template/src/server.rs:39
Changelog

now-policy

[0.3.0] - 2026-09-03

Features

  • [breaking] Add package policy management contract (#99) (cd7f3ba741)

    Add a versioned package-policy management contract alongside the
    unchanged active-policy inspection API. New management, validation, and
    replacement endpoints expose atomic Active/Missing/Invalid snapshots,
    raw-draft authoritative validation with structured findings and
    warning-bound receipts, and exact-token optimistic replacement with
    explicit Update, ReplaceIdentity, Create, and Repair intents. Rust
    server implementations gain the corresponding required trait methods and
    routes, while .NET gains NativeAOT-safe DTOs and cancellation-aware
    client APIs.

    Make policy documents JSON-only, removing Rust parse_policy_yaml and
    .NET PolicyDocument.ParseYaml. Introduce PolicyDraftDocument for
    authored policy content without server-managed revision and publication
    metadata, with its own versioned JSON Schema identity and explicit named
    conversions to and from committed policies. Rename the public .NET
    serialization helpers to PolicySerializer and BrokerSerializer, and
    replace Rust’s lossy From<&PolicyDocument> draft projection with
    PolicyDocument::to_draft().

    Tighten cross-language contract validation for boolean matches, revision
    bounds, Unicode text lengths, opaque ASCII tokens and receipts,
    validation results, management snapshots, stale-token errors, and
    nullable schema fields. Unsafe paths and stale state use conflict
    semantics, unsupported policy formats and filesystems use
    unprocessable-entity semantics, and absent newer routes remain ordinary
    404 responses. Validation and replacement accept complete HTTP request
    bodies up to 16 MiB through public Rust and .NET constants, while
    package-operation limits remain unchanged.

Fixed

  • Count Unicode scalar values for StringPattern, VersionString, and CustomParameterString length bounds, matching JSON Schema and .NET policy validation semantics.

Changed

  • [breaking] Make policy documents JSON-only and remove parse_policy_yaml.
  • Add editable PolicyDraftDocument and explicit named committed/draft conversion methods.
  • Reject boolean match arrays containing more than one value.

now-policy-api

[0.4.0] - 2026-09-03

Features

  • Add active package policy inspection contract (#93) (cd5a6e9f8e)

    • add canonical GET /v1/policy support across the Rust server
      contract, generated OpenAPI, C# DTOs, and
      BrokerClient.GetPolicy(CancellationToken)
    • return the existing canonical PolicyDocument inside a versioned
      PolicyResponse, with structured 404 NotFound behavior when no active
      policy is configured
    • make policy inspection unconditional: remove policy-compat and its
      cross-model conversion impls, and keep runtime mapping ownership in
      broker implementations
    • name the required Rust server accessor active_policy, leaving clear
      room for a future explicit replace_policy operation backed by a
      separate policy-store abstraction
    • harden C# successful-response validation for required/null fields,
      collection elements, unknown members, and canonical enum casing
    • preserve existing OpenAPI component names by namespacing colliding
      embedded policy components as PolicyModel…
    • run workspace Rust tests and Clippy with all features through the
      standard xtask commands

now-policy-server-template

[0.4.0] - 2026-09-03

Features

  • Add active package policy inspection contract (#93) (cd5a6e9f8e)

    • add canonical GET /v1/policy support across the Rust server
      contract, generated OpenAPI, C# DTOs, and
      BrokerClient.GetPolicy(CancellationToken)
    • return the existing canonical PolicyDocument inside a versioned
      PolicyResponse, with structured 404 NotFound behavior when no active
      policy is configured
    • make policy inspection unconditional: remove policy-compat and its
      cross-model conversion impls, and keep runtime mapping ownership in
      broker implementations
    • name the required Rust server accessor active_policy, leaving clear
      room for a future explicit replace_policy operation backed by a
      separate policy-store abstraction
    • harden C# successful-response validation for required/null fields,
      collection elements, unknown members, and canonical enum casing
    • preserve existing OpenAPI component names by namespacing colliding
      embedded policy components as PolicyModel…
    • run workspace Rust tests and Clippy with all features through the
      standard xtask commands


This PR was generated with release-plz.

Copilot AI balanced review requested due to automatic review settings August 28, 2026 14:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the Rust policy crates for their 0.4.0 releases.

Changes:

  • Bumps both crate versions and aligns their dependency constraints.
  • Adds changelog entries for policy inspection and mock API removal.
  • Refreshes locked transitive dependencies.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
Cargo.lock Updates crate and transitive dependency locks.
policies/rust/now-policy-api/Cargo.toml Bumps the API crate to 0.4.0.
policies/rust/now-policy-api/CHANGELOG.md Documents the API release.
policies/rust/now-policy-server-template/Cargo.toml Bumps the crate and API dependency versions.
policies/rust/now-policy-server-template/CHANGELOG.md Documents features and breaking changes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-08-28T14-42-44Z branch 2 times, most recently from 0a02c5d to 8a6b44d Compare September 3, 2026 16:06
@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-08-28T14-42-44Z branch from 8a6b44d to 6ad2bda Compare September 3, 2026 17:58
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

@CBenoit Benoît Cortier (CBenoit) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@CBenoit
Benoît Cortier (CBenoit) merged commit 790d7c6 into master Sep 3, 2026
9 checks passed
@CBenoit
Benoît Cortier (CBenoit) deleted the release-plz/2026-08-28T14-42-44Z branch September 3, 2026 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants