Skip to content

chore: release v0.4.0 - #22

Merged
macalinao merged 9 commits into
masterfrom
release-plz-2026-11-04T15-56-23Z
Nov 7, 2026
Merged

macalinao merged 9 commits into
masterfrom
release-plz-2026-11-04T15-56-23Z

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

This release publishes ffcine-comp for the first time together with the 0.4.0 versions of its workspace dependencies. It also refreshes direct dependencies, raises the minimum Rust version to 1.89, and uses cargo-nextest with separate doctests in CI and Nix. All public workspaces use flake-parts and provide Rust development shells.

Validated locally: 506 nextest tests, strict Clippy, doctests, portable docs, all 19 package publication dry runs, cargo-deny, actionlint, and the full x86_64-linux Nix flake check. The optional telemetry parser retains documented upstream maintenance exceptions in deny.toml. Registry publication still requires a token with publish-update permission for existing dependency crates.

🤖 New release

  • ffcine-core: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-timeline: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-audio: 0.3.0 -> 0.4.0 (⚠ API breaking changes)
  • ffcine-filters: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-stabilize: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-libplacebo-sys: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-render: 0.3.0 -> 0.4.0 (⚠ API breaking changes)
  • ffcine-reframe: 0.3.0 -> 0.4.0 (⚠ API breaking changes)
  • ffcine-hooks: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-text: 0.3.0 -> 0.4.0 (⚠ API breaking changes)
  • ffcine-comp: 0.3.0 -> 0.4.0
  • ffcine-assembly: 0.3.0 -> 0.4.0 (⚠ API breaking changes)
  • ffcine-ingest: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-triage: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-breakdown: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-delivery: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-import: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ffcine-cli: 0.3.0 -> 0.4.0

⚠ ffcine-audio breaking changes

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

Failed in:
  variant Param:Expr in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-audio/src/schema.rs:60

⚠ ffcine-render breaking changes

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field Overlay.under in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/overlay.rs:64
  field Overlay.under in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/overlay.rs:64

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field map of variant LayerSource::Video in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:48
  field map of variant LayerSource::Video in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:48

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

Failed in:
  variant LayerSource:Still in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:59
  variant LayerSource:Scene in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:61
  variant LayerSource:Filtered in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:66
  variant LayerSource:Still in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:59
  variant LayerSource:Scene in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:61
  variant LayerSource:Filtered in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-render/src/layer.rs:66

⚠ ffcine-reframe breaking changes

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum 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.51.0/src/lints/enum_missing.ron

Failed in:
  enum ffcine_reframe::keyframe::Interp, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:16
  enum ffcine_reframe::Interp, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:16

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

Failed in:
  variant Keyed:Track in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-reframe/src/keyframe.rs:33
  variant Keyed:Track in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-reframe/src/keyframe.rs:33

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

Failed in:
  function ffcine_reframe::keyframe::seconds, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:100
  function ffcine_reframe::keyframe::is_keys, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:110

--- 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.51.0/src/lints/struct_missing.ron

Failed in:
  struct ffcine_reframe::keyframe::Key, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:79
  struct ffcine_reframe::Key, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:79

--- 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.51.0/src/lints/trait_missing.ron

Failed in:
  trait ffcine_reframe::keyframe::Lerp, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-reframe/src/keyframe.rs:52

⚠ ffcine-text breaking changes

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum 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.51.0/src/lints/enum_missing.ron

Failed in:
  enum ffcine_text::anim::Ease, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-text/src/anim.rs:18

⚠ ffcine-assembly breaking changes

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

Failed in:
  variant PlanError:Comp in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-assembly/src/plan.rs:46
  variant PlanError:CompClip in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-assembly/src/plan.rs:49
  variant PlanError:Comp in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-assembly/src/plan.rs:46
  variant PlanError:CompClip in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-assembly/src/plan.rs:49
  variant Unit:Comp in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-assembly/src/plan.rs:444
  variant Unit:Comp in /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpCm35UF/ffcine/crates/ffcine-assembly/src/plan.rs:444

--- 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.51.0/src/lints/struct_missing.ron

Failed in:
  struct ffcine_assembly::comp::Layout, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-assembly/src/comp.rs:194
  struct ffcine_assembly::comp::Rect, previously in file /home/runner/work/_temp/nix-shell.Lf9LBL/.tmpYApmwP/ffcine-assembly/src/comp.rs:185
Changelog

ffcine-cli

0.4.0 - 2026-11-06

Added

  • (comp) per-layer grade (compositing step 4, BUK-104) (#26)
  • (comp) media layers (compositing step 3, BUK-100) (#24)
  • compositor core, ffcine-comp (compositing step 2, BUK-98) (#23)
  • param tracks and expressions (compositing step 1) (#21)

Other

  • Compositing step 7: templates, ffcine.comp clips, unit lowering, comp lower/new (BUK-101) (#29)
  • Compositing step 6: libavfilter filter node on layers (BUK-105) (#28)
  • per-layer time remap (speed, source, freeze, reverse) for comps (#27)
  • move repository to talaagent/ffcine (#25)


This PR was generated with release-plz.

@sourcery-ai

sourcery-ai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

This release PR advances the workspace and all constituent crates to 0.4.0, updates dependency and lockfile metadata, and adds the release changelog entry for param tracks and expressions. Review should focus on version consistency and whether the documented semver-breaking changes in audio, reframe, and text are intentional and adequately communicated.

File-Level Changes

Change Details Files
Bump the workspace and all published crates from 0.3.0 to 0.4.0, keeping internal dependency requirements aligned.
  • Update the workspace package version and every internal crate dependency constraint.
  • Regenerate the lockfile for the new package versions.
Cargo.toml
Cargo.lock
Document the 0.4.0 release and its compositing-related feature.
  • Add the dated 0.4.0 changelog entry.
  • Record param tracks and expressions as the release addition.
CHANGELOG.md
Release the full crate set as version 0.4.0, including explicitly acknowledged public API changes.
  • Publish all listed workspace crates at 0.4.0.
  • Accept the added audio enum variant as a breaking API change.
  • Account for reframe removals/renames, added enum variants, and removed keyframe APIs.
  • Account for removal or renaming of the text animation Ease enum.
Cargo.toml
Cargo.lock
CHANGELOG.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f6723e3c-ca07-4cbf-9cc8-1e3e20deb3e5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@sourcery-ai sourcery-ai Bot 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.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@github-actions
github-actions Bot force-pushed the release-plz-2026-11-04T15-56-23Z branch 5 times, most recently from d96f17f to bb6954e Compare November 6, 2026 08:51
@github-actions
github-actions Bot force-pushed the release-plz-2026-11-04T15-56-23Z branch from bb6954e to e607dc4 Compare November 6, 2026 13:26
@github-actions github-actions Bot closed this Nov 7, 2026
@macalinao macalinao reopened this Nov 7, 2026
@macalinao
macalinao merged commit 230791e into master Nov 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant