feat(packaging): multi-target releases with target selection and same-commit verification#59
Open
feat(packaging): multi-target releases with target selection and same-commit verification#59
Conversation
c4f6c0d to
dc7d51c
Compare
…-commit verification Before: `generate_flash_package.sh` produces one MFI per run (based on LAST_BUILT_TARGET), and `publish_release.sh` just uploads whatever is in the project root. `flash_from_package.sh` blindly downloads every asset in the release. Result: a release built for one carrier (e.g. 0.0.6, PAB_V3 only) will be downloaded and flashed onto any carrier, even though carrier DTBs (pinmux, pad voltages, peripherals) are baked in at build time and are not cross-compatible. After: - `flash_from_package.sh` detects which carrier targets are in the release (pab, pab-v3, jaj), prompts interactively when more than one is present, and downloads only assets matching the chosen target. Each (version, target) caches separately under ~/.ark-jetson-cache/<version>/<target>/. - `generate_flash_package.sh` writes a sidecar BUILD_INFO.txt next to each package (or inside the _split/ dir) with the commit hash, for publish-time verification without decompressing multi-GB tarballs. - `publish_release.sh` requires all three targets (pab, pab-v3, jaj) and verifies every sidecar reports the same commit before tagging and uploading. Release notes mention the three-carrier layout and embed the build commit. - packaging/README.md documents the build -> generate cycle per target and the new verification.
flash_from_package.sh now prompts for PAB / PAB_V3 / JAJ when the release contains multiple carriers. Call that out in the top-level README so users aren't surprised.
dc7d51c to
402c851
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Before: a release contained one MFI per publish run (based on
LAST_BUILT_TARGET), andflash_from_package.shblindly downloaded every asset. Result: a PAB_V3-only release (0.0.6) gets flashed onto PAB or JAJ hardware, writing PAB_V3 device trees on non-V3 carriers.After:
flash_from_package.shdetects which carriers are in the release (pab,pab-v3,jaj), prompts interactively when more than one is present, and downloads only the selected carrier's assets. Each(version, target)caches separately under~/.ark-jetson-cache/<version>/<target>/.generate_flash_package.shwrites a sidecarBUILD_INFO.txtnext to each package sopublish_release.shcan verify same-commit across targets without decompressing multi-GB tarballs.publish_release.shrequires all three carriers (pab, pab-v3, jaj) and verifies every sidecar reports the same commit before tagging and uploading. Release notes describe the three-carrier layout and embed the build commit.packaging/README.mdupdated to document the build → generate cycle per target.Follow-up to #58 (temporary README removal). Once this lands and a release ships all three carriers, the prebuilt flow is safe again; the second commit here restores the README section with a note about the prompt.