Conversation
Install and use cargo-deb in CI, add a --deb mode to scripts/build.sh with functions to produce plc and libiec61131std .deb packages. Upload .deb artifacts and add an update-latest job to publish prerelease assets. Add release workflow to build and attach release assets, plus release-please action, manifest and config. Bump crate versions and add Debian metadata for packaging.
6c32afe to
74826d6
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1608 +/- ##
==========================================
- Coverage 94.66% 94.64% -0.03%
==========================================
Files 185 187 +2
Lines 58437 58663 +226
==========================================
+ Hits 55322 55521 +199
- Misses 3115 3142 +27 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR adds Debian packaging for the plc compiler and the IEC 61131-3 standard library, and introduces release automation via Release Please plus workflows that publish release artifacts (including .debs) and update a rolling “latest” prerelease.
Changes:
- Add Debian packaging support:
cargo-debforplcand customdpkg-debpackaging forlibiec61131std(including maintainer scripts/templates). - Update CI workflows to build/upload
.debartifacts and build Docker images from those packages. - Introduce Release Please configuration/manifest and a release workflow to upload binaries and
.debassets.
Reviewed changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/debian/plc/copyright |
Debian copyright metadata for the plc package. |
scripts/debian/libiec61131std/control.template |
Control file template for libiec61131std Debian package. |
scripts/debian/libiec61131std/postinst |
Maintainer script to run ldconfig after install. |
scripts/debian/libiec61131std/postrm |
Maintainer script to run ldconfig after removal. |
scripts/debian/libiec61131std/copyright |
Debian copyright metadata for libiec61131std (includes stdlib license stanza). |
scripts/build.sh |
Adds --deb flag and implementation to produce Debian packages. |
compiler/plc_driver/Cargo.toml |
Bumps version and adds cargo-deb metadata/assets for the plc package. |
libs/stdlib/Cargo.toml |
Bumps stdlib crate version. |
Cargo.lock |
Updates locked versions for bumped crates. |
Dockerfile |
Switches image build to install compiler/stdlib from .deb artifacts. |
release-please-config.json |
Adds Release Please configuration for Rust releases and extra versioned files. |
.release-please-manifest.json |
Adds Release Please manifest with current version. |
.github/workflows/release-please.yml |
Adds Release Please workflow on master pushes. |
.github/workflows/release.yml |
Adds release workflow to build and upload binaries + .deb assets on GitHub Release publish. |
.github/workflows/linux.yml |
Updates Linux workflow to build .debs, use them for Docker image builds, and create a rolling “latest” prerelease. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
mhasel
left a comment
There was a problem hiding this comment.
Since I am not really familiar with CI, and especially with release-please, same dislaimer as in your PR message:
On top of my own review, I let an agent review it aswell. I've discarded review comments that were obviously wrong or not conclusive to me.
I let my AI review your AI's review and perform the changes and a self review.. |
ouroboros.jpg |
This PR creates debian packages for the plc binary and the stdlib.
it also introduces release workflows to publish a latest release on master pushes and uses Release Please automation. On each push to master, Release Please creates or updates a "Release PR" that bumps versions based on conventional commits. When this Release PR is merged, it automatically creates a GitHub release which triggers the release workflow.
The PR for release will auto-update with every new push to master so we can gather several features as one before releasing.
Note: this was entirely vibe-coded take extra care when reviewing