-
-
Notifications
You must be signed in to change notification settings - Fork 32
Support syncing of Debian releases with no packages #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes issue #206 by adding support for syncing Debian releases that have no packages. The change ensures that empty release groups are created even when there are no packages to import, preventing unexpected behavior when a release/component/architecture combination exists but contains no packages.
Key changes:
- Refactored
get_mut_groupto extract release group creation logic into a newcreate_release_groupmethod - Added pre-creation of release groups for all architectures before importing packages in both compressed and uncompressed binary package import functions
- Added test coverage for empty releases and updated existing test to expect empty architecture groups
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tools/src/schedule/debian.rs
Outdated
| for arch in &sync.architectures { | ||
| self.create_release_group(release, component, arch); | ||
| } |
Copilot
AI
Nov 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The loop creates release groups for all architectures from sync.architectures, but this may create empty groups for architectures that don't match the packages being imported. Consider checking if the packages in the file match these architectures to avoid creating spurious empty groups. However, based on the test case at line 1851-1860, this appears to be intentional behavior to ensure all configured architectures have groups even when empty. If this is the desired behavior, consider adding a comment explaining why all architectures need groups created upfront.
tools/src/schedule/debian.rs
Outdated
| for arch in &sync.architectures { | ||
| self.create_release_group(release, component, arch); | ||
| } |
Copilot
AI
Nov 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code duplicates the logic from import_compressed_binary_package_file (lines 409-411). Consider extracting this into a helper method or documenting why this duplication is necessary for both compressed and uncompressed imports.
|
Thanks for working on this!
You could check the signature of the repo to verify that is correct. Also rebuilderd no longer deletes results so I don't think there is much to worry. According to @h01ger this PR is running on reproduce.d.n but I don't think it is working: https://reproduce.debian.net/all/trixie-proposed-updates.html |
|
you misunderstood me. I have merged this in my branch, but not deployed it, because it doesn't build (on trixie, havent tried elsewhere) |
|
Works: https://reproduce.debian.net/all/trixie-proposed-updates.html |
This should fix #206.
As can be seen in the unit test, I'm slightly worried this may add unexpected empty groups, flagging all packages as removed.
cc: @jspricke