feat(build): create vx-runtime-core and vx-runtime-archive (RFC 0032 Phase 2)#604
Merged
feat(build): create vx-runtime-core and vx-runtime-archive (RFC 0032 Phase 2)#604
Conversation
workspace-hack (RFC 0032 Plan D): - Add workspace-hack crate managed by cargo-hakari - Configure .config/hakari.toml for 4 target platforms - Auto-generate unified dependency declarations - Add workspace-hack dep to all 80+ workspace crates vx-runtime refactoring: - Extract HTTP client to dedicated vx-runtime-http crate - Remove old impls (context, http_client, installer) vx-config improvements: - Refactor types (container, dependencies, env, hooks, remote) - Enhance remote config with additional fields
… status - Plan D (workspace-hack): mark as implemented with full details - Plan E (Wild linker): update to v0.8, still no Windows support - Plan F (-Z threads): still nightly-only, stabilization delayed from 2024 - Add changelog entries for all changes
- Add hakari generate --diff and manage-deps --dry-run checks in code-quality job - Add .config/hakari.toml to rust change detection paths - Add hakari-verify and hakari-generate recipes to justfile
- Convert sevenz-rust to optional dependency with extended-formats feature - Add conditional compilation for 7z support across all affected crates - macOS builds now work without 7z support (no lld linker error) - Windows/Linux can enable 7z support via --features extended-formats - Update vx-installer, vx-runtime-archive, vx-runtime-http - Add documentation in docs/fixes/macos-sevenz-build-fix.md - Fix clippy warning: remove unused mut Fixes: clang error 'invalid linker name in argument -fuse-ld=lld' on macOS Ref: https://github.com/dyz1990/sevenz-rust/issues (lld not supported on macOS)
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
This PR implements Phase 2 of RFC 0032 (Build Time Optimization) by creating two new crates and integrating them into vx-runtime.
New Crates
1. vx-runtime-core
Lightweight trait crate (~5-8s compile time) containing:
Runtime,Provider,ProviderRegistrytraitsVersionInfo,InstallResult,ExecutionResult,RuntimeDependencyOs,Arch,Platform2. vx-runtime-archive
Archive extraction utilities (~30-40s compile time) supporting:
.tar.gz/.tgz- Gzip compressed tar.tar.xz/.txz- XZ compressed tar.tar.zst/.tzst- Zstandard compressed tar.zip- ZIP archives.7z- 7-Zip archivesIntegration
vx-runtime now:
Expected Benefits
After completing the full migration (subsequent PRs):
Files Changed
vx-runtime-core,vx-runtime-archivevx-runtime/Cargo.toml,vx-runtime/src/lib.rsCargo.tomlTesting
cargo check -p vx-runtime-core -p vx-runtime-archivepassescargo test -p vx-runtime-core -p vx-runtime-archive -p vx-runtime --libpasses (62 tests)Next Steps (Future PRs)
vx-runtime-coredirectlyvx-resolverto usevx-runtime-coreRelated