Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4.2 KiB
Release process
Target audience: crate maintainers who wish to release embedded-graphics or embedded-graphics-core.
Please take a cautious approach to this. If any step doesn't feel right or doesn't succeed smoothly, stop and rectify any issues before continuing.
On GitHub
- Check that all desired PRs are merged and all desired issues are closed/resolved.
- Check that the latest master build passed in CircleCI.
On your local machine
-
cdto the repository root -
Use the crate MSRV of 1.71.1 by running
rustup override set 1.71.1 -
Check that
justandcargo-releaseare installed and available in$PATH.just --versioncargo release --version
-
Ensure you have the latest changes with
git switch masterandgit pull --rebase -
Check that your local repository is clean with no uncommitted changes and no unpushed commits. Ideally, use
git reset --hard origin/masterto ensure your local state is up to date withorigin/master. You may need to changeoriginto the name of the remote pointing to https://github.com/embedded-graphics/embedded-graphics. -
Before a stable release:
- Search the repository for any
TODOorFIXMEcomments. If any need resolving before release, stop this process and fix them with one or more PRs. - Ensure the
RELEASES.mdfile is up to date with any new features added between the previous stable release and the current one.
- Search the repository for any
-
Check that the crate version in
Cargo.tomlandcore/Cargo.tomlmatch the latest released versions on https://crates.io/crates/embedded-graphics and https://crates.io/crates/embedded-graphics-core respectively. -
Run
just buildto ensure the build passes locally.- If the build fails for any reason, stop the release process and fix any issues by creating PRs. The upstream master branch must remain the source of truth. Restart this checklist once
just buildpasses.
- If the build fails for any reason, stop the release process and fix any issues by creating PRs. The upstream master branch must remain the source of truth. Restart this checklist once
-
Double check the release level (major, minor, patch)
-
Release the crates in the following order:
-
For
embedded-graphics-coreif there are changes to release:just release-core --push-remote <push-remote> <level>a. When the above command completes, check the
embedded-graphics-coreversion inCargo.tomlin the project root. It should have been updated automatically to the just-released core version. -
For
embedded-graphics:just release-e-g --push-remote <push-remote> <level>
Where
<level>ismajor,minor,patch, or a specific SemVer version number, and where<push-remote>is the git remote for the upstream repositoryembedded-graphics/embedded-graphics. -
Post release
-
Check that the release commands pushed a Git tag for each crate published, something like
embedded-graphics-v0.7.0orembedded-graphics-core-v0.2.0. -
For each crate's tag, go to its page at e.g. https://github.com/embedded-graphics/embedded-graphics/releases/tag/embedded-graphics-v0.7.0-alpha.3, click Edit tag and draft a release:
-
Add the crate name to the
Release titlefield -
Copy and paste the latest released section out of the crate's
CHANGELOG.mdfile into theDescribe this releasefield. Do not include the version header, e.g.:### Added - [#111](https://github.com/embedded-graphics/embedded-graphics/pull/111) Added something ### Removed - [#222](https://github.com/embedded-graphics/embedded-graphics/pull/222) Removed a thing -
Checkbox For
alphaorbetareleases, check theThis is a pre-releasecheckbox. -
Hit Publish release
-
Check that the release is displayed on the repository homepage.
-
Post a link to the released tag (e.g. https://github.com/embedded-graphics/embedded-graphics/releases/tag/embedded-graphics-v0.7.0-alpha.3) to the embedded-graphics Matrix room at https://matrix.to/#/!SfJCDXZbMHXkPovtKL:matrix.org
-
If you are @jamwaffles, post a Tweet tagging @rustembedded with a happy announcement message.
-
-
Check the other repositories in the embedded-graphics organization for dependencies on
embedded-graphicsandembedded-graphics-core. The versions should be updated to the latest releases made whilst following this guide.