GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — refactor: adopt monorepo layout by kvinwang · Pull Request #770 · Dstack-TEE/dstack

Conversation

@kvinwang

@kvinwang kvinwang commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • group the existing core repository under dstack/ and merge the meta-dstack history under os/yocto/
  • introduce a backend-neutral guest-OS interface, artifact manifest, shared rootfs payload, image assembler, and release entrypoints
  • update SDKs, workflows, documentation, submodules, license scopes, and consumers for the new paths
  • separate scripts by ownership: common image tools under os/image/, Yocto-only helpers under os/yocto/, isolated legacy host/QEMU tools under os/yocto/tools/, and repository utilities under tools/
  • harden image selection and release validation, including unified CPU/GPU image fallback and excluding UKI-only archives from dstackup

Build and migration notes

  • imported histories are retained, so this PR intentionally contains a large commit range; the integration work is summarized by the 12 first-parent commits
  • make os is the native default guest-OS build, while make os-image remains the reproducible container entrypoint
  • Docker Compose's first Yocto fetch contains roughly 670 independently checksummed sources; BitBake resets the displayed 0–100% progress for each source under one do_fetch task, and completed downloads resume from the cache

Validation

  • make os — full native Yocto build, bare and UKI archives generated
  • release metadata Git revision, UKI contents, and artifact-manifest schema/path validation
  • make core-check
  • make core-test
  • make sdk-test / direct root invocation of ./sdk/run-tests.sh
  • cargo test --manifest-path dstack/Cargo.toml -p dstackup (17 passed)
  • Rust SDK crate packaging checks
  • prek run on all changed files
  • reuse lint
  • Bash syntax, ShellCheck, submodule, stale-path, and relative Markdown-link checks

Non-blocking note

The existing JavaScript dependency tree reports 1 low and 3 moderate npm audit findings; all 99 JavaScript tests pass and this PR does not change those dependencies.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
kvinwang added 30 commits December 24, 2025 07:22
@kvinwang
Update dstack/
a9295ba
@kvinwang
Output gcp.tar.gz inside the image dir
a4fbb92
@kvinwang
Add cli dstack-cloud
c22dfd4
@kvinwang
Sync dstack/
9163e80
@kvinwang
Update dstack
373ba08
@kvinwang
Update url of dstack submodule
44a4444
@kvinwang
Fix reproducibility issues
ea76d25
@kvinwang
Update dstack
268ce48
@kvinwang
dstack-cloud: Add fw command group
d06a4d6
@kvinwang
dstack-cloud: Disable .env when kms is off
3dea1d5
@kvinwang
dstack-cloud: Auto upload data-disk image
8aa5409
@kvinwang
Update dstack submodule url
5858bc0
@kvinwang
Update dstack
14b119f
@kvinwang
Volatile /etc/
2f1b299
@kvinwang
Suppress the warn Text file busy in build.sh
642c225
@kvinwang
Remove CF_ZONE_ID
5beaebe
@kvinwang
ssh: Disable password auth
c195dc6
@kvinwang
Update dstack/
8b06b6b
@kvinwang
Merge pull request #33 from Dstack-TEE/ds-up
080aded
Update dstack/ and corresponding refactor
@kvinwang
Update submodules
8980c09
@kvinwang
Update LICENSE
4da51e9
@kvinwang
Update submodule URL
4f72c0c
@kvinwang
Update URL in README.md
d90c9fa
@kvinwang
Update dstack/
9a88cf4
@kvinwang
Fix random fakeroot bb build error
78082be
@kvinwang
bb: Rename image from dstack to dstack-cloud
04288d0
@kvinwang
bb: Refactor image recipes to use multiconfig
7cc276f
- Consolidate four separate image recipes (dstack-cloud-rootfs,
  dstack-dev-rootfs, dstack-cloud-nvidia-rootfs, dstack-nvidia-dev-rootfs)
  into a single dstack-rootfs.bb with conditional includes
- Add multiconfig support with separate TMPDIR per flavor to avoid
  build conflicts
- Build flavors serially in Makefile to avoid BitBake runqueue deadlock
- Update mkimage.sh to support --flavor parameter for multiconfig builds
- Copy multiconfig to new build directories in dev-setup
@kvinwang
bb: Move build config from bb-build to meta-dstack/conf
37531fe
- Move local.conf and multiconfig/ to meta-dstack/conf/
- Update dev-setup to always sync config to build directory
- bb-build is now fully excluded from git (build artifact only)
@kvinwang
Rename dist image prefix from dstack to dstack-cloud
6a0ae2a
- dstack-0.6.0/ -> dstack-cloud-0.6.0/
- dstack-nvidia-0.6.0.tar.gz -> dstack-cloud-nvidia-0.6.0.tar.gz
- Update download URL to meta-dstack-cloud repo
@kvinwang
mkimage: Fix UKI auth_hash not being written to output
04100cd
Move write_authenticode_hash_if_missing call to main flow instead of
only in create_gcp_artifacts. This ensures the hash file is always
generated when UKI exists, regardless of GCP image creation.
kvinwang added 15 commits July 10, 2026 05:23
@kvinwang
meta-nvidia: gate GPU ready state on local TEE attestation (nvattest)
8ef9a55
Add an nvattest recipe building NVIDIA's attestation-sdk CLI (pinned
SRCREV, Apache-2.0). GPU TEE attestation runs inside `dstack-util setup`
(dstack-prepare.service), driven by the app-compose requirement
`requirements.verify_gpu` (default true): the conf-compute ready state
is set only after nvattest succeeds (previously nvidia-persistenced set
it unconditionally), and attestation failure -- including a non-CC GPU
or CC mode left off by the host -- aborts boot before key provisioning.
Deployments can opt out with `requirements.verify_gpu: false`, which
sets the ready state without verification.

The recipe ships only the CLI plus a dstack-prepare.service ordering
drop-in (After=nvidia-persistenced/nvidia-fabricmanager); there is no
dedicated attestation service or unit gating. GPU-less instances are
unaffected (dstack-util skips when no NVIDIA GPU is on the PCI bus).

Build notes:
- regorus (Rego engine, Rust) is embedded via Corrosion; use the
  prebuilt meta-rust-bin toolchain (cargo-bin-native), with host/target
  linker split for cargo build scripts (host triple == target triple)
- USE_SYSTEM_DEPS=ON: link sysroot openssl/curl/libxml2/xmlsec1 instead
  of ExternalProject-downloaded copies
- RUSTFLAGS remap-path-prefix keeps build paths out of libnvat
  ([buildpaths] QA / reproducible builds)
- only nvattest + libnvat are shipped; cargo proc-macro dylibs are
  excluded from the image
@kvinwang
Merge pull request #83 from Dstack-TEE/gpu-attestation-gate
e345138
meta-nvidia: gate GPU ready state on local TEE attestation (nvattest)
@kvinwang
refactor: group core sources under dstack
72d9f06
@kvinwang
refactor: relocate yocto build under os
b98f00d
@kvinwang
refactor: merge meta-dstack history
6d38c7c
@kvinwang
build: consolidate monorepo submodules
a15542b
@kvinwang
build: update consumers for monorepo layout
8935638
@kvinwang
refactor: define extensible guest os backend interface
132039c
@kvinwang
docs: update paths for monorepo layout
367e163
@kvinwang
build: fix verifier paths after relocation
a91bd7e
@kvinwang
chore: preserve merged repository license scopes
d26ab35
@kvinwang
chore: align checks with relocated files
3db2890
@kvinwang
build: expose guest os release targets
43bce0c
@kvinwang
docs: add guest os build guide
452947e
@kvinwang
fix: harden monorepo integration
7d4cb9e
Repair guest OS and SDK entrypoints, make release image selection safe, and relocate imported helpers to clear ownership boundaries. Document the multi-source docker-compose fetch behavior and validate release artifacts before publishing.
Copilot AI review requested due to automatic review settings July 13, 2026 01:17
Copilot started reviewing on behalf of kvinwang July 13, 2026 01:17
View session
kvinwang added 2 commits July 12, 2026 18:19
@kvinwang
fix: fetch nested Foundry dependencies
d7e0553
@kvinwang
fix: align CI Rust toolchain
1cf62f2
Keep the repository-wide Rust pin at the monorepo root so both the core workspace and SDK simulator inherit Rust 1.92. Update the CI action refs to the same toolchain and clean simulator sockets after core tests.
Copilot stopped reviewing on behalf of kvinwang due to an error July 13, 2026 01:37
Copilot had to stop work due to a timeout.
Copilot AI reviewed Jul 13, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
kvinwang added 5 commits July 12, 2026 19:11
@kvinwang
fix: route legacy guest OS releases
cb51f44
@kvinwang
fix: avoid hard-coded key false positive
13e382a
@kvinwang
refactor: clarify docs and tool ownership
1b47d90
@kvinwang
refactor: flatten tools and adopt Apache-2.0
cac342b
@kvinwang
fix: use current GPL SPDX identifier
858419b
@kvinwang
kvinwang merged commit 8e9c13c into master Jul 13, 2026
16 checks passed

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Jul 13, 2026
VMM: networking mode management #756
Merged
verity volumes: attach verified read-only data disks to CVMs #752
Merged
@kvinwang
kvinwang deleted the chore/monorepo-layout branch July 20, 2026 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@kvinwang @Longarithm @jerryrhyu @h4x3rotab
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.