Releases: ultralytics/template-rust
v0.0.6 - Improve README accuracy and links (#54)
🌟 Summary
🛠️ v0.0.6 is a maintenance-focused release that improves release accuracy, CI security, and package quality, with the latest PR from @glenn-jocher making the README clearer so users install the correct crate version.
📊 Key Changes
-
📘 README accuracy improved
- The latest PR by @glenn-jocher updates the dependency example to point to the latest published crate version instead of an outdated one.
- Existing badges, links, and community references were preserved.
- This helps users copy the right install example from the start.
-
📦 Crate version bumped to
0.0.6- The package version was updated from
0.0.5to0.0.6.
- The package version was updated from
-
🔒 CI and release workflows were hardened
- GitHub Actions were upgraded and pinned to exact commit SHAs instead of floating tags.
- This affects checkout, caching, Python setup, coverage upload, publishing, and SBOM generation.
- Key workflow tools were updated, including:
actions/checkoutcodecov/codecov-actionSwatinem/rust-cacheastral-sh/setup-uvanchore/sbom-actiontaiki-e/install-action
-
🧪 Coverage and benchmarking tooling updated
criterionwas upgraded from0.5to0.8.- Benchmark code was slightly modernized to use
std::hint::black_box.
-
🧾 Package metadata was expanded
- Added explicit
authors - Cleaned up Rust package settings
- Added an
includelist so published crate contents are more controlled and predictable
- Added explicit
-
🛡️ New project quality configs added
- Added
clippy.tomlfor stricter linting guidance - Added
deny.tomlfor dependency, license, and source checks
- Added
-
🔗 Documentation links were cleaned up
- Fixed redirected or outdated links, including the AGPL license URL and YouTube link formatting.
🎯 Purpose & Impact
-
✅ Less confusion for new users
- The README now better reflects the published crate version, so users are less likely to install an outdated dependency.
-
🔐 More secure and reproducible automation
- Pinning GitHub Actions to exact versions reduces supply-chain risk and makes CI behavior more consistent over time.
-
🚀 Better release and publishing hygiene
- Improved metadata and controlled package contents help make releases cleaner and more professional.
-
🧹 Higher project quality with little user-facing disruption
- This release does not introduce major new features or model changes, but it strengthens the template’s reliability, maintainability, and trustworthiness.
-
👩💻 Better for maintainers and contributors
- Updated linting, dependency checks, and CI tooling make development smoother and help catch issues earlier.
In short: v0.0.6 is a polish-and-stability release ✨—small on visible features, but important for making the Rust template easier to use, safer to maintain, and more accurate for everyone.
What's Changed
- Bump actions/checkout from 4 to 6 in /.github/workflows by @dependabot[bot] in #13
- Bump codecov/codecov-action from 5 to 6 in /.github/workflows by @dependabot[bot] in #15
- Fix redirected URLs by @glenn-jocher in #16
- ci: Update actions/checkout and other dependencies to latest versions and version bump to "v0.0.6" by @onuralpszr in #17
- Bump taiki-e/install-action from v2.77.1 to v2.77.2 in /.github/workflows by @UltralyticsAssistant in #18
- Bump taiki-e/install-action from 2.77.2 to 2.77.5 in /.github/workflows by @dependabot[bot] in #20
- Bump taiki-e/install-action from v2.77.5 to v2.77.6 in /.github/workflows by @UltralyticsAssistant in #21
- Bump taiki-e/install-action from v2.77.6 to v2.77.7 in /.github/workflows by @UltralyticsAssistant in #22
- Bump taiki-e/install-action from v2.77.7 to v2.78.1 in /.github/workflows by @UltralyticsAssistant in #23
- Bump taiki-e/install-action from 2.78.1 to 2.79.0 in /.github/workflows by @dependabot[bot] in #25
- Bump codecov/codecov-action from v6.0.0 to v6.0.1 in /.github/workflows by @UltralyticsAssistant in #27
- Bump taiki-e/install-action from v2.79.0 to v2.79.2 in /.github/workflows by @UltralyticsAssistant in #28
- Bump taiki-e/install-action from v2.79.2 to v2.79.3 in /.github/workflows by @UltralyticsAssistant in #29
- Bump taiki-e/install-action from v2.79.3 to v2.79.4 in /.github/workflows by @UltralyticsAssistant in #30
- Bump taiki-e/install-action from v2.79.4 to v2.79.5 in /.github/workflows by @UltralyticsAssistant in #31
- Bump taiki-e/install-action from 2.79.5 to 2.79.7 in /.github/workflows by @dependabot[bot] in #33
- Bump taiki-e/install-action from v2.79.7 to v2.79.8 in /.github/workflows by @UltralyticsAssistant in #34
- Bump taiki-e/install-action from v2.79.8 to v2.79.9 in /.github/workflows by @UltralyticsAssistant in #35
- Bump taiki-e/install-action from v2.79.9 to v2.79.11 in /.github/workflows by @UltralyticsAssistant in #36
- Bump taiki-e/install-action from v2.79.11 to v2.79.13 in /.github/workflows by @UltralyticsAssistant in #37
- Bump taiki-e/install-action from v2.79.13 to v2.79.15 in /.github/workflows by @UltralyticsAssistant in #38
- Bump taiki-e/install-action from v2.79.15 to v2.80.0 in /.github/workflows by @UltralyticsAssistant in #39
- Bump taiki-e/install-action from 2.80.0 to 2.81.1 in /.github/workflows by @dependabot[bot] in #40
- Bump taiki-e/install-action from v2.80.0 to v2.81.1 in /.github/workflows by @UltralyticsAssistant in #41
- Bump taiki-e/install-action from v2.81.1 to v2.81.3 in /.github/workflows by @UltralyticsAssistant in #43
- Bump astral-sh/setup-uv from v8.1.0 to v8.2.0 in /.github/workflows by @UltralyticsAssistant in #44
- Bump taiki-e/install-action from v2.81.3 to v2.81.5 in /.github/workflows by @UltralyticsAssistant in #45
- Bump taiki-e/install-action from v2.81.5 to v2.81.6 in /.github/workflows by @UltralyticsAssistant in #46
- Bump codecov/codecov-action from 6.0.1 to 7.0.0 in /.github/workflows by @dependabot[bot] in #51
- Bump taiki-e/install-action from 2.81.6 to 2.81.8 in /.github/workflows by @dependabot[bot] in #50
- Bump actions/checkout from 6.0.2 to 6.0.3 in /.github/workflows by @dependabot[bot] in #49
- Improve README accuracy and links by @glenn-jocher in #54
New Contributors
- @dependabot[bot] made their first contribution in #13
- @UltralyticsAssistant made their first contribution in #18
Full Changelog: v0.0.5...v0.0.6
v0.0.5 - ci: 👷 Update Rust toolchain to nightly in format workflow (#12)
🌟 Summary
v0.0.5 is a tooling-focused release 🎛️ that standardizes the Rust toolchain on nightly, tightens formatting/linting in CI, and refreshes crate metadata—making development smoother and more consistent for contributors.
📊 Key Changes
-
🛠️ Rust toolchain upgraded to nightly everywhere
- CI formatting workflow now uses
dtolnay/rust-toolchain@nightlyinstead of@stable. - CI publish workflow also switched to
@nightlyand explicitly installs:rustfmtfor formatting checksclippyfor linting
- CI formatting workflow now uses
-
📦 Crate version bump
Cargo.tomlversion updated from0.0.4➜0.0.5.
-
📚 Improved crate metadata
- Added a
documentationlink inCargo.tomlpointing to Ultralytics Docs.
- Added a
-
🧩 Project-wide toolchain configuration
- New
rust-toolchain.tomlfile added to define a consistent nightly toolchain, components, and targets for all developers:- Channel: nightly
- Components:
rustfmt,clippy,rust-src,rust-analyzer - Targets: major Linux, macOS (Intel & Apple Silicon), and Windows architectures.
- New
-
✨ Enhanced formatting config
rustfmt.tomlnow enablesunstable_features = trueto support nightly-only formatting options.
🎯 Purpose & Impact
-
✅ Consistent formatting & linting across environments
Ensurescargo fmtandcargo clippybehave the same for everyone—locally and in CI—reducing “works on my machine” issues and noisy diffs. -
🚀 Enables advanced nightly-only formatting features
By opting into nightly and unstable rustfmt features, the project can use more powerful, stricter, or more expressive formatting rules. -
🧱 Stronger, more predictable CI
CI now explicitly installs and runsrustfmtandclippy, catching style and correctness issues earlier, before they hit main branches. -
🌐 Better discoverability & documentation linkage
Adding the docs URL toCargo.tomlmakes it easier for users to jump from the crate to Ultralytics documentation via crates.io or IDE integrations. -
📌 Patch release reflecting tooling upgrades
Version0.0.5cleanly marks this as a tooling/infra-focused update—no breaking API changes, but a more polished developer experience.
What's Changed
- ci: 👷 Update Rust toolchain to nightly in format workflow by @onuralpszr in #12
Full Changelog: v0.0.4...v0.0.5
v0.0.4 - Add MSRV badge to README and create rustfmt configuration file (#9)
🌟 Summary
v0.0.4 turns the Ultralytics Rust template into a more reliable, performance‑aware, and contributor‑friendly project by standardizing tooling (MSRV, formatting), adding benchmark infrastructure, and improving crate discoverability. 🚀
📊 Key Changes
-
🦀 Explicit Rust MSRV & Tooling (PR #9 – primary change)
- Added
.clippy.tomlwithmsrv = "1.91"to lock in the minimum supported Rust version. - Introduced
rustfmt.tomlwith consistent, opinionated formatting (2024 edition, wrapped comments, normalized docs, grouped imports). - Updated
README.mdwith an MSRV badge that links directly toCargo.toml. - Bumped crate version from
0.0.3➜0.0.4.
- Added
-
🏎️ Criterion.rs Benchmarking Support (PR #10)
- Added
criterionas a dev dependency with HTML report support. - Registered a new
example_benchtarget and implementedbenches/example_bench.rsbenchmarking theadd_numbersfunction. - Created
benches/README.mdwith clear instructions for running, viewing, and extending benchmarks. - Updated
.gitignoreto exclude/target/criterion/(benchmark output) and.cargo-deny/.
- Added
-
🔍 Improved Crate Metadata & Discoverability (PR #11)
- Updated
keywordsto emphasizeultralytics,ml,ai, andyolo. - Expanded
categoriesto includescienceandcomputer-visionalongsidedevelopment-tools.
- Updated
🎯 Purpose & Impact
-
✅ Clear compatibility expectations
- The explicit MSRV (Rust 1.91) and badge make it easy for users and CI systems to know which Rust version is required, avoiding build surprises and version mismatches.
-
✅ Consistent, clean code for all contributors
- Project-wide
rustfmtsettings and Clippy MSRV alignment ensure everyone formats code the same way, reducing “style-only” diffs and speeding up reviews.
- Project-wide
-
📈 Built-in performance benchmarking
- Criterion-based benchmarks let you measure how fast your code runs and how it changes over time, with HTML reports that are easy to explore.
- The included
example_benchandbenches/README.mdserve as a template so you can quickly add your own benchmarks.
-
🤝 Easier discovery in the Rust + AI ecosystem
- Improved keywords and categories help developers on crates.io quickly recognize this as an Ultralytics-style AI/ML and computer vision template, making it more likely to be found and adopted.
-
🚀 Stronger foundation for future AI/ML Rust projects
- With standard tooling, performance tracking, and clearer positioning, v0.0.4 is a more robust starting point for building production-grade Rust integrations in the Ultralytics ecosystem.
What's Changed
- Update Cargo.toml keywords and categories by @glenn-jocher in #11
- feat :🏎️ Add benchmarking support with Criterion.rs and example benchmarks by @onuralpszr in #10
- Add MSRV badge to README and create rustfmt configuration file by @onuralpszr in #9
Full Changelog: v0.0.3...v0.0.4
v0.0.3 - Update Cargo.toml to v0.0.3 (#8)
🌟 Summary
v0.0.3 is a small but important housekeeping release that bumps the Rust template crate version, making it clear which iteration of the template is current and ready for use. 🚀
📊 Key Changes
- 🔢 Version bump: Updated the
ultralytics-template-rustcrate version inCargo.tomlfrom0.0.2→0.0.3. - 📦 No functional changes: All other package metadata (edition, license, description) and project structure remain the same.
🎯 Purpose & Impact
- ✅ Signals a new template iteration: Clearly marks this as the latest published version of the Rust project template for users and downstream tooling.
- 🧭 Easier version tracking: Helps developers distinguish projects based on v0.0.3 from those created with earlier template versions.
- 🔄 Aligned with release workflow: Keeps crate metadata in sync with the repository’s release process and any surrounding automation (like CI, publishing, or Actions).
What's Changed
- Update Cargo.toml to v0.0.3 by @glenn-jocher in #8
Full Changelog: v0.0.2...v0.0.3
v0.0.2 - Fix publish.yml (#7)
🌟 Summary
v0.0.2 makes the Rust template’s release process much smarter and safer 🎛️—automating version/tag handling, AI-powered release notes, secure crate publishing, and SBOM generation, with strong quality gates on every release.
📊 Key Changes
-
♻️ Stronger, simpler publish workflow (
publish.yml)- Renamed workflow to “Publish to crates.io” and tightened triggers to
mainbranch pushes and manual runs. - Removed confusing
dry_runlogic in favor of a cleaner, version-based flow. - Restricts automated publishing to the official repo and a specific actor for extra safety.
- Renamed workflow to “Publish to crates.io” and tightened triggers to
-
🧠 Automatic version & tag detection from
Cargo.toml- New Python-based
check_versionstep reads the crate version directly fromCargo.toml. - Derives the matching Git tag (
vX.Y.Z), checks both local and remote tags, and decides if this is a new version (incrementflag). - Avoids accidental re-publishing of the same version to crates.io.
- New Python-based
-
🏷️ Automatic tagging + AI-generated release summaries
- On a new version, the workflow now:
- Creates and pushes an annotated Git tag (e.g.
v0.0.2) using the latest commit message. - Runs
ultralytics-actions-summarize-releaseto auto-generate release notes using AI (OpenAI) and GitHub metadata.
- Creates and pushes an annotated Git tag (e.g.
- Keeps release notes consistent and easier to read for users.
- On a new version, the workflow now:
-
🧪 Full Rust checks before any publish
- New dedicated
buildjob runs on new versions only:cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test --all --all-features
- Publishing to crates.io only happens if formatting, linting, and tests all pass ✅.
- New dedicated
-
📦 Controlled crate publishing step
publishjob depends on bothcheckandbuildand only runs when a new version is detected.- Publishes to crates.io with
cargo publishusingCARGO_REGISTRY_TOKEN. - Publishes into a named environment (“Release - crates.io”) with a direct link to the crate.
-
🧯 SBOM generation and attachment to releases
- New
sbomjob runs after publish and build:- Generates
Cargo.lock(if missing). - Uses
anchore/sbom-actionto produce an SPDX JSON SBOM (sbom.spdx.json). - Uploads the SBOM to the corresponding GitHub release via
gh release upload.
- Generates
- Improves supply chain transparency and helps with security/compliance.
- New
-
🤖 AI release notes wired into CI (from PR #6)
publish.ymlinstallsultralytics-actionsand callsultralytics-actions-summarize-release.- Uses
OPENAI_API_KEY,GITHUB_TOKEN/GH_TOKENplusCURRENT_TAGandPREVIOUS_TAGto generate release summaries. - Clearly documents the release process and required secrets in
README.md.
-
📈 Crate version bump
Cargo.tomlupdated from0.0.1→0.0.2to mark this as the next published version.- README gains a “🧾 Releases” section explaining how publishing works, the crate name, tag format, required secrets, and workflow guards.
🎯 Purpose & Impact
-
🔒 Safer, more reliable releases
- Version and tag detection from
Cargo.tomlplus tag existence checks prevent double publishes and mis-tagged releases. - Only new versions trigger full build, publish, and SBOM steps.
- Version and tag detection from
-
🧹 Cleaner, easier-to-understand CI
- Removing
dry_runcomplexity and splittingcheck/build/publish/sbomjobs makes the workflow easier to reason about and debug. - Triggers and permissions are explicit, reducing accidental runs.
- Removing
-
📚 Better communication with users
- AI-generated release notes give clear, consistent summaries of changes with minimal manual effort.
- README documentation helps both Ultralytics contributors and external users understand how and when releases happen.
-
🛡️ Improved security & compliance posture
- SBOM attached to GitHub releases supports dependency auditing, vulnerability scanning, and organizational compliance needs.
- Guardrails (fmt, clippy, tests) ensure that only healthy builds reach crates.io.
-
⚙️ Ready-to-use release template for other Rust projects
- This template now ships with a production-grade publish pipeline: auto-tagging, crates.io publishing, AI notes, and SBOMs.
- Teams can adopt this workflow with minimal changes, accelerating setup for new Rust crates.
What's Changed
- Smart Release Notes by @glenn-jocher in #6
- Fix publish.yml by @glenn-jocher in #7
Full Changelog: v0.0.1...v0.0.2
v0.0.1
What's Changed
- Update template from Python to Rust by @glenn-jocher in #1
- Improve template by @glenn-jocher in #2
- Update ci.yml by @glenn-jocher in #3
- Improve publish.yml by @glenn-jocher in #4
- Update publish.yml with console logging by @glenn-jocher in #5
New Contributors
- @glenn-jocher made their first contribution in #1
Full Changelog: https://github.com/ultralytics/template-rust/commits/v0.0.1