Skip to content

Implement perry-container and perry-container-compose modules#1

Open
yumin-chen wants to merge 5 commits intofeat/container-composefrom
perry-container-impl-4808062097019276876
Open

Implement perry-container and perry-container-compose modules#1
yumin-chen wants to merge 5 commits intofeat/container-composefrom
perry-container-impl-4808062097019276876

Conversation

@yumin-chen
Copy link
Copy Markdown

Implement the perry/container and perry/container-compose TypeScript modules backed by a refactored perry-container-compose Rust crate and an expanded perry-stdlib container FFI bridge.

Key changes:

  1. Restructure perry-container-compose: Consolidated backend implementations into a single backend.rs file, implemented ContainerBackend and CliProtocol traits, and added a multi-candidate backend probe sequence with platform-specific prioritization.
  2. Core Orchestration: Implemented Kahn's algorithm in compose.rs for deterministic startup order, and provided full lifecycle management (up, down, start, stop, restart, ps, logs, exec).
  3. YAML and Config: Implemented YAML interpolation, .env loading, and multi-file merging in yaml.rs.
  4. Standard Library Expansion: Added Sigstore/cosign image verification in verification.rs, OCI-isolated sandboxed execution in capability.rs, and updated FFI bindings in mod.rs.
  5. Compiler Integration: Registered the new modules in perry-hir/src/ir.rs to allow native imports from TypeScript.
  6. CLI: Provided a full-featured perry-compose CLI binary.

Verified with comprehensive unit tests and integration tests where applicable.


PR created automatically by Jules for task 4808062097019276876 started by @yumin-chen

@google-labs-jules
Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@yumin-chen yumin-chen force-pushed the feat/container-compose branch 6 times, most recently from 8c07e3a to 5ae75c3 Compare April 15, 2026 17:19
@yumin-chen yumin-chen force-pushed the feat/container-compose branch 4 times, most recently from d0be721 to 093e7a0 Compare April 15, 2026 17:52
@yumin-chen yumin-chen force-pushed the feat/container-compose branch from 093e7a0 to bd88aba Compare April 15, 2026 18:30
@yumin-chen yumin-chen closed this Apr 15, 2026
@yumin-chen yumin-chen force-pushed the perry-container-impl-4808062097019276876 branch from 0c01cf5 to bd88aba Compare April 15, 2026 18:32
@yumin-chen yumin-chen reopened this Apr 15, 2026
@yumin-chen yumin-chen force-pushed the feat/container-compose branch 3 times, most recently from d3d0b0a to 7396c20 Compare April 15, 2026 19:19
@yumin-chen yumin-chen marked this pull request as draft April 15, 2026 19:22
@yumin-chen yumin-chen force-pushed the feat/container-compose branch 3 times, most recently from 1258b4c to bfededb Compare April 15, 2026 22:07
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@yumin-chen yumin-chen force-pushed the feat/container-compose branch 3 times, most recently from 4b72520 to 4cda64d Compare April 16, 2026 06:46
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@yumin-chen yumin-chen force-pushed the feat/container-compose branch 4 times, most recently from f94aca9 to 58c806b Compare April 16, 2026 10:48
- Restructured perry-container-compose to a flat layout.
- Implemented Kahn's algorithm for dependency resolution with rollback support.
- Added robust container backend detection with liveness checks for Podman, Colima, Lima, etc.
- Expanded perry-stdlib with FFI bridge, Sigstore/cosign verification, and runCapability.
- Refined FFI bridge to prevent promise hangs on error.
- Added production-ready Forgejo deployment example.
- Integrated with perry-hir and perry-codegen.

Co-authored-by: yumin-chen <10954839+yumin-chen@users.noreply.github.com>
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
- Addressed PR feedback:
  - Implemented rollback logic in ComposeEngine::up.
  - Added platform-specific liveness checks for container backends (colima, podman, lima).
  - Fixed FFI bridge promise hangs by ensuring error paths reject promises.
  - Resolved MutexGuard Send issues across await points.
  - Added Forgejo production example.
- Verified compilation and ran integration/property tests.

Co-authored-by: yumin-chen <10954839+yumin-chen@users.noreply.github.com>
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@yumin-chen yumin-chen force-pushed the feat/container-compose branch from 58c806b to 3c1c1e6 Compare April 16, 2026 13:21
- Added image operation FFI functions: pullImage, listImages, removeImage.
- Added backend detection FFI: detectBackend.
- Refined FFI error handling to ensure all paths correctly reject promises.
- Fixed MutexGuard Send issues in orchestration engine.
- Completed all tasks in the implementation plan.

Co-authored-by: yumin-chen <10954839+yumin-chen@users.noreply.github.com>
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@Chen-Software Chen-Software deleted a comment from google-labs-jules bot Apr 16, 2026
@yumin-chen yumin-chen force-pushed the feat/container-compose branch from 3c1c1e6 to 30a27ae Compare April 16, 2026 17:55
@yumin-chen yumin-chen marked this pull request as ready for review April 16, 2026 18:28
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