Skip to content

chore: release v0.4.0 - #122

Open
nyurik wants to merge 1 commit into
mainfrom
release-plz-2026-01-20T18-31-05Z
Open

chore: release v0.4.0#122
nyurik wants to merge 1 commit into
mainfrom
release-plz-2026-01-20T18-31-05Z

Conversation

@nyurik

@nyurik nyurik commented Jan 20, 2026

Copy link
Copy Markdown
Member

🤖 New release

  • dbc-codegen: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • dbc-codegen-cli: 0.3.0 -> 0.4.0
Changelog

dbc-codegen

0.4.0 - 2026-09-02

Added

  • optional padding bit value (#184)
  • add DBC_FILE_NAME + ver, proper code formatting (#131)
  • [breaking] streamline DBC code generation and file writing (#128)

Fixed

  • support large min/max values without precision loss (#152)
  • handle duplicate signal names (#126)
  • handle empty relevant msgs in from_can_message (#125)
  • fix typo
  • fix formatting errors
  • fix factor/offset not getting applied to 0 for unsigned case
  • fix duplicate enum names on multiplex messages
  • fix issue where signed signals would be rendered as unsigned

Other

  • Remove unsafe from generated MESSAGE_ID constants (#194)
  • Generate raw signal getters and setters (#193)
  • Support relation attributes in attribute_structs (#192)
  • Generate enum-typed setters and constructors for signals with value descriptions (#178)
  • Emit MESSAGE_CYCLE_TIME as integer (#186)
  • Generate message size and cycle time consts (#176)
  • Add option to generate typed constants from DBC attributes (#175)
  • update can-dbc (#181)
  • rust ver bump (#182)
  • cleanup clippy, justfile, and proj cleanup (#180)
  • (deps) bump the all-cargo-version-updates group across 1 directory with 4 updates (#172)
  • (deps) bump codecov/codecov-action from 6 to 7 in the all-actions-version-updates group (#165)
  • (deps) bump the all-cargo-version-updates group across 1 directory with 4 updates (#168)
  • (deps) bump the all-cargo-version-updates group across 1 directory with 3 updates (#163)
  • (deps) bump the all-cargo-version-updates group with 2 updates (#161)
  • (deps) bump the all-cargo-version-updates group across 1 directory with 2 updates (#158)
  • (deps) bump the all-actions-version-updates group across 1 directory with 2 updates (#159)
  • update expected errors to Rust 1.94 (#153)
  • (deps) bump the all-cargo-version-updates group across 1 directory with 2 updates (#145)
  • (deps) bump insta from 1.46.2 to 1.46.3 in the all-cargo-version-updates group (#143)
  • upgrade to rust 1.93 stderr (#142)
  • (deps) bump the all-cargo-version-updates group across 1 directory with 4 updates (#141)
  • [breaking] remove main fn from generated code (#138)
  • make many rendering fn methods on config (#133)
  • (deps) bump clap from 4.5.54 to 4.5.55 in the all-cargo-version-updates group (#134)
  • use quote crate to handle str escaping (#132)
  • noop - dedup, cleanup, new type abstraction (#130)
  • update shared tests, bump deps, freeze to rust 1.92 (#127)
  • (deps) bump can-dbc from 8.0.0 to 8.0.1 in the all-cargo-version-updates group (#129)
  • do not clean lock
  • bump dependencies and enable verbose output for release actions (#120)
  • [pre-commit.ci] pre-commit autoupdate (#119)
  • Bump the all-cargo-version-updates group across 1 directory with 2 updates (#118)
  • refactor write functions, improve CI, MSRV (#116)
  • minor code cleanup (#114)
  • generate and compile all .dbc files from test repo (#113)
  • allow generated file to be used with include! (#108)
  • Bump the all-cargo-version-updates group across 1 directory with 2 updates (#111)
  • minor justfile fix, editorconfig (#112)
  • Bump actions/cache from 4 to 5 in the all-actions-version-updates group (#110)
  • OxiBUS onboarding cleanup (#102)
  • run just fmt to cleanup imports (#107)
  • Bump the all-cargo-version-updates group across 1 directory with 9 updates (#106)
  • upgrade to can-dbc v8 (#101)
  • Bump actions/checkout from 1 to 6 in the all-actions-version-updates group (#104)
  • (CI) minor CI updates, automate dependabot (#103)
  • Add optional defmt::Format support for generated types
  • Merge pull request Use message name instead of self #85 from inomotech-foss/fix-mux-msg-id
  • Use message name instead of self
  • Generate embedded_can::Frame trait for each frame
  • Represent CAN message IDs as embedded_can::Id to support extended IDs
  • Fix issue with decoding signed values of non-standard length
  • revert change to Cargo.toml, not necessary
  • address clippy's concerns (thanks clippy), enhance comments
  • make can-messages dependency optional so it doesn't pull in std
  • reduce diff against main
  • handle more edge cases, use i128 as the maximum type
  • reorder lines to match signals
  • drop symlink in favor of copy so it works on Windows
  • revert because I missed the case of check_ranges being false
  • add tests, edge cases where the min/max is way less than signal width
  • clean up warning
  • add unsigned to the name, add test case
  • change signal logic to handle negative factors, add tests
  • Bump rustc to latest stable, 1.78
  • Merge pull request Remove warnings in generated code #68 from projectgus/tweaks/codegen_warnings
  • Rename .envrc for non-Nix users, add note in README
  • dont assign signed integers to unsigned integers
  • Update README
  • Fix clippy warnings
  • Use checked_sub(offset) for set_signal methods
  • Don't treat signals as floats if factor is integer
  • Add flag to impl std Error
  • Tweak docs and optional features
  • Make feature-gated impls configurable

dbc-codegen-cli

0.4.0 - 2026-09-02

Added

  • [breaking] streamline DBC code generation and file writing (#128)

Other

  • Generate raw signal getters and setters (#193)
  • Support relation attributes in attribute_structs (#192)
  • Generate message size and cycle time consts (#176)
  • Add option to generate typed constants from DBC attributes (#175)
  • cleanup clippy, justfile, and proj cleanup (#180)
  • (deps) bump the all-cargo-version-updates group with 2 updates (#161)
  • minor code cleanup (#114)
  • allow generated file to be used with include! (#108)
  • OxiBUS onboarding cleanup (#102)
  • run just fmt to cleanup imports (#107)
  • Bump the all-cargo-version-updates group across 1 directory with 9 updates (#106)
  • upgrade to can-dbc v8 (#101)
  • make debug_prints configurable
  • Merge pull request Remove warnings in generated code #68 from projectgus/tweaks/codegen_warnings
  • Rename .envrc for non-Nix users, add note in README
  • Update README
  • Make feature-gated impls configurable


This PR was generated with release-plz.

@codecov

codecov Bot commented Jan 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 3 times, most recently from 453a81d to 5b678d1 Compare January 21, 2026 07:46
@nyurik nyurik changed the title chore: release chore: release v0.3.1 Jan 23, 2026
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 3 times, most recently from d2a1128 to 453ec68 Compare January 23, 2026 21:09
@nyurik nyurik changed the title chore: release v0.3.1 chore: release v0.4.0 Jan 25, 2026
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 8 times, most recently from a58e090 to da37057 Compare January 30, 2026 06:17
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 4 times, most recently from e7a05da to 9d78483 Compare February 6, 2026 03:06
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch from 9d78483 to 585d8a4 Compare March 20, 2026 07:28
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 3 times, most recently from 5fb84b1 to f4b5a0e Compare April 13, 2026 14:52
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 2 times, most recently from e835c4a to fd33e3c Compare May 13, 2026 02:49
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 2 times, most recently from 2386752 to 4b748a7 Compare June 19, 2026 02:47
@liamkinne

Copy link
Copy Markdown

@nyurik How soon will this be published? I would like to publish a crate that depends on dbc-codegen but I cant do so with it as a git dependency.

@nyurik

nyurik commented Jun 25, 2026

Copy link
Copy Markdown
Member Author

i need to review its state, but i can try to get it done this week

@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch from 4b748a7 to e772ee2 Compare June 26, 2026 08:31
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch 8 times, most recently from 6a19177 to 227d1e1 Compare July 21, 2026 21:03
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch from 227d1e1 to f4dd322 Compare August 25, 2026 19:42
@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch from f4dd322 to adf37db Compare August 31, 2026 21:12
@felixvanoost

Copy link
Copy Markdown
Contributor

@nyurik can we release?

@nyurik

nyurik commented Sep 1, 2026

Copy link
Copy Markdown
Member Author

have we decided if we can keep it backwards compatible, by leaving redirection functions and adding deprecation warnings? Or do we really want a breaking change?

@felixvanoost

Copy link
Copy Markdown
Contributor

I'm in favour of a breaking change release for 2 reasons:

  1. Since v0.3.0, some functions have retained the same names (new() and set_<signal>()) but now use enum-typed arguments instead of integers (Generate enum-typed setters and constructors for signals with value descriptions #178). This is hard to redirect without causing additional confusion, especially since the API is now symmetrical between getters and setters. Previously, only the getters used enums.
  2. I think there would be considerable confusion in retaining + deprecating the old <signal>_raw(), which returned a scaled (not raw) signal value, alongside the new <signal>_raw_val() which returns the actual raw signal value. In this case too, the new naming is more consistent than before.

Perhaps the following table might be useful in the release notes:

Interface element v0.3.0 Latest Migration
new() constructor Took the signal's raw scalar type (e.g. i8) Takes the signal's generated enum type (e.g. FooFoo) Use the enum types directly or wrap the raw values (e.g. Foo::new(FooFoo::_Other(raw_value))
Raw getter signal_name_raw() returned a scaled signal with factor/offset applied Replaced by signal_name_raw_val(), which returns the unscaled raw bits Use signal_name() for physical value or signal_name_raw_val() for raw value.
Raw setter Not available set_signal_name_raw_val(value) New addition
Physical value setter set_signal_name() Took the signal's raw scalar type (e.g. i8) Takes the signal's generated enum type (e.g. FooFoo) Use the enum types directly or wrap the raw values (e.g. msg.set_foo(FooFoo::_Other(raw_value))
Multiplexor selector pub fn signal_name(&mut self) -> Result<Enum, CanError> Renamed to signal_name_multiplexed(&mut self) Rename function calls

@nyurik
nyurik force-pushed the release-plz-2026-01-20T18-31-05Z branch from adf37db to 8eb376d Compare September 2, 2026 19:27
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.

3 participants