Skip to content

Enable chunkify again#93

Draft
alatiera wants to merge 1 commit intoprojectbluefin:mainfrom
alatiera:alatiera/chunkify
Draft

Enable chunkify again#93
alatiera wants to merge 1 commit intoprojectbluefin:mainfrom
alatiera:alatiera/chunkify

Conversation

@alatiera
Copy link
Copy Markdown
Contributor

No description provided.

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on re-integrating a crucial image optimization step into the build process and refining how OCI images are handled and referenced. These changes aim to improve the efficiency of image management and ensure consistent image naming conventions across different build targets.

Highlights

  • Re-enabled OCI image chunking: The chunkify step, which reorganizes OCI image layers for optimization, has been re-enabled in the export target of the Justfile.
  • Refined OCI image export process: The export target in the Justfile was updated to adjust the timing of the .build-out directory cleanup and explicitly tag the OCI image after pulling it.
  • Simplified image referencing: The boot-fast target in the Justfile now references OCI images without the localhost/ prefix, streamlining image usage.
Changelog
  • Justfile
    • Re-enabled the chunkify command in the export target.
    • Adjusted the order of operations in the export target, moving the .build-out directory cleanup and adding an explicit podman tag command.
    • Removed the localhost/ prefix from the image name when running bcvk ephemeral run-ssh in the boot-fast target.
  • include/revisions.yml
    • Added a trailing newline to the file.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/build.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request re-enables the chunkify step in the export recipe. To support this, it adds a podman tag command to correctly tag the image loaded from the BuildStream artifact and updates the boot-fast command to use the new image tag. My review found a critical issue where a necessary cleanup command was removed, which would cause subsequent builds to fail. I've provided a suggestion to re-add it to ensure the build process is repeatable.

Comment thread Justfile

echo "==> Exporting OCI image..."
rm -rf .build-out
just bst artifact checkout oci/bluefin.bst --directory /src/.build-out
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The rm -rf .build-out command was removed, but it is necessary for the bst artifact checkout command, which requires that the output directory does not exist. Without removing .build-out before checkout, this script will fail on any subsequent run after the first successful one. Please add rm -rf .build-out back before this line.

    rm -rf .build-out
    just bst artifact checkout oci/bluefin.bst --directory /src/.build-out

@alatiera alatiera force-pushed the alatiera/chunkify branch 7 times, most recently from 7a28e27 to dd5a8e1 Compare March 14, 2026 21:23
@alatiera alatiera marked this pull request as draft March 14, 2026 21:28
@alatiera
Copy link
Copy Markdown
Contributor Author

This is still broken

Writing manifest to image destination
Error: dest: invalid mount option
Error: payload does not match any of the supported image formats:
 * oci: open /var/tmp/podman3245781702/index.json: not a directory
 * oci-archive: loading index: open /var/tmp/container_images_oci2316757591/index.json: no such file or directory
 * docker-archive: loading tar component manifest.json: file does not exist
 * dir: open /var/tmp/podman3245781702/manifest.json: not a directory
error: Recipe `chunkify` failed with exit code 125
error: Recipe `export` failed with exit code 125

@alatiera alatiera force-pushed the alatiera/chunkify branch from dd5a8e1 to 79f8a75 Compare March 14, 2026 21:34
castrojo added a commit to castrojo/dakota that referenced this pull request Apr 13, 2026
Re-enable the chunkify step that was disabled while debugging. Also fix
the podman --mount=type=image syntax: 'dest' is not a valid option name,
the correct key is 'dst'. This was the root cause of the 'invalid mount
option' error reported in projectbluefin#93.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
castrojo added a commit to castrojo/dakota that referenced this pull request Apr 13, 2026
…yntax

Re-enable the chunkify step in export and overhaul the chunkify recipe:

- Uncomment `just chunkify` in the export recipe (what projectbluefin#93 intended)
- Fix image: quay.io/jlebon/chunkah → quay.io/coreos/chunkah (project moved)
- Fix mount: `dest=` is not a valid podman option; use `dst=` (valid aliases:
  dst/destination/target). Root cause of "invalid mount option" in #93.
- Add --max-layers 128: chunkah docs recommend >64 layers for bootc images
- Add --prune /sysroot/: exclude OSTree object store from chunking; no-op if
  absent in this BuildStream-built image, prevents 7s warning on ostree images
- Use -t flag (post-v0.3.2): embeds tag in OCI archive so podman load tags
  automatically; removes the complex NEW_REF parse + podman tag dance

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
castrojo added a commit to castrojo/dakota that referenced this pull request Apr 21, 2026
Enable the chunkah rechunking pipeline validated on ghost:
- Uncomment just chunkify call in the export recipe
- mktemp -d -p /var/tmp: avoid EPERM xattr writes on tmpfs /tmp
- CHUNKAH_ROOTFS=/chunkah: required env var for chunkah rootfs bind mount
- --prune /sysroot/: exclude OSTree store from rechunking, eliminates 7s warning
- --label ostree.commit- --label ostree.final-diffid-: required for bootc rechunking
- --max-layers 120 (was 128): validated layer count for this image
- Pre-committed filemap guard: skip gen-filemap when files already present (CI path)
- CI push (x86 only): skopeo copy --dest-compress-format=zstd
  aarch64 job is disabled (if: false); its push step has a TODO comment
  Avoids zstd:chunked blob cache re-use that breaks plain zstd guarantee with bootc composefs

Supersedes draft PR projectbluefin#93.

Assisted-by: Claude Sonnet 4.6 via GitHub Copilot
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant