diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3d1a5be..a1287f0b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,8 +31,8 @@ jobs: run: pkf run check - name: Build native binary for wbtests run: | - moon build --target native --release - cp _build/native/release/build/cmd/bit/bit.exe tools/git-shim/moon + moon build --target native --release modules/bit/src/cmd/bit + cp _build/native/release/build/mizchi/bit/cmd/bit/bit.exe tools/git-shim/moon chmod +x tools/git-shim/moon # Set system git as fallback for wbtests (third_party/git/git is not built in test job) which git > tools/git-shim/real-git-path @@ -40,17 +40,85 @@ jobs: git config --global protocol.file.allow always - name: Run JS and WASM tests run: | - moon test --target js -p mizchi/bit -p mizchi/bit/lib - moon test --target wasm -p mizchi/bit/runtime -f storage_runtime_wbtest.mbt - moon test --target wasm -p mizchi/bit/diff3 - moon test --target wasm -p mizchi/bit/repo - moon test --target wasm -p mizchi/bit/grep + moon test --target js -p mizchi/bit -p mizchi/bit_lib + moon test --target wasm -p mizchi/bit_runtime -f storage_runtime_wbtest.mbt + moon test --target wasm -p mizchi/bit_diff3 + moon test --target wasm -p mizchi/bit_repo + moon test --target wasm -p mizchi/bit_grep # Kill any orphan moon processes and remove stale lock before native tests pkill -f "moon" || true rm -f _build/.moon-lock - - name: Run native tests + - name: Run native tests (non-cmd modules) timeout-minutes: 30 - run: moon test --target native --no-parallelize -j 1 + run: | + # Test extracted bit_* and bitx_* modules + mizchi/bit (without cmd). + # cmd/bit native tests run in the separate cmd-native-test job because + # they dominate runtime (~50 min for the linker pass). + modules=$(awk '/members = \[/,/\]/' moon.work | grep -oE '"[^"]+"' | tr -d '"' | sed 's|^\./||') + for m in $modules; do + case "$m" in + modules/bit) continue ;; # cmd lives here — handled separately + esac + mod_name="mizchi/$(basename "$m")" + echo "::group::moon test --target native -p $mod_name" + moon test --target native -p "$mod_name" + echo "::endgroup::" + done + # Test mizchi/bit's non-cmd packages (tests + fuzz_tests). + moon test --target native -p mizchi/bit/tests + moon test --target native -p mizchi/bit/fuzz_tests || true + + cmd-native-test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - { name: cmd-bit, pkg: mizchi/bit/cmd/bit, timeout: 120 } + - { name: cmd-git-bit, pkg: mizchi/bit/cmd/git-bit, timeout: 30 } + name: cmd-native-test (${{ matrix.name }}) + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install pkfire + pkspec + uses: mizchi/pkfire@v0 + - name: Install pkspec + uses: mizchi/pkspec@v0.2.1 + with: + pkl-version: none + - name: Install MoonBit CLI + run: | + curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash + echo "$HOME/.moon/bin" >> "$GITHUB_PATH" + - name: Moon update + run: moon update + - name: Build native binary for wbtests + run: | + set -euo pipefail + moon --version + moon build --target native --release modules/bit/src/cmd/bit + bin_path=$(find _build/native -maxdepth 8 -type f -name 'bit.exe' | head -1) + if [ -z "$bin_path" ]; then + echo "bit.exe not found after moon build" + find _build/native -maxdepth 8 -type f | head -20 || true + exit 1 + fi + echo "bit.exe found at: $bin_path" + cp "$bin_path" tools/git-shim/moon + chmod +x tools/git-shim/moon + which git > tools/git-shim/real-git-path + git config --global protocol.file.allow always + - name: Clear stale processes and moon lock + run: | + pkill -f "moon" || true + pkill -f "clang" || true + sleep 1 + rm -f _build/.moon-lock + - name: Run ${{ matrix.pkg }} native tests + timeout-minutes: ${{ matrix.timeout }} + run: moon test --target native -p ${{ matrix.pkg }} distributed-test: runs-on: ubuntu-latest @@ -67,13 +135,9 @@ jobs: run: moon update - name: Distributed tests run: | - moon test --target native -p mizchi/bit/x/agent - moon test --target native -p mizchi/bit/x/agent/llm - moon test --target native -p mizchi/bit/x/agent/mcp - moon test --target native -p mizchi/bit/x/agent/native - moon test --target native -p mizchi/bit/x-hub - moon test --target native -p mizchi/bit/x-hub/native - moon test --target native -p mizchi/bit/x-kv + moon test --target native -p mizchi/bitx_hub + moon test --target native -p mizchi/bitx_hub/native + moon test --target native -p mizchi/bitx_kv nix-build: runs-on: ubuntu-latest @@ -124,14 +188,15 @@ jobs: - name: Build bit run: | set -euo pipefail - moon build --target native --release - bin_path="_build/native/release/build/cmd/bit/bit.exe" - if [ ! -f "$bin_path" ]; then - echo "bit binary not found at $bin_path" - find _build/native -maxdepth 8 -type f -name 'bit.exe' || true + moon --version + moon build --target native --release modules/bit/src/cmd/bit + bin_path=$(find _build/native -maxdepth 8 -type f -name 'bit.exe' | head -1) + if [ -z "$bin_path" ]; then + echo "bit.exe not found after moon build" + find _build/native -maxdepth 8 -type f | head -20 || true exit 1 fi - echo "Using bit binary: $bin_path" + echo "bit.exe found at: $bin_path" cp "$bin_path" tools/git-shim/moon chmod +x tools/git-shim/moon diff --git a/.github/workflows/pages-demo.yml b/.github/workflows/pages-demo.yml index 1c6a94f4..657c116e 100644 --- a/.github/workflows/pages-demo.yml +++ b/.github/workflows/pages-demo.yml @@ -15,8 +15,9 @@ on: - "Taskfile.pkl" - "Test.pkl" - "pkspec/**" - - "moon.mod.json" - - "src/lib/**" + - "moon.work" + - "modules/bit/moon.mod.json" + - "modules/bit/src/lib/**" - "tools/bit-git.mjs" workflow_dispatch: diff --git a/Taskfile.pkl b/Taskfile.pkl index 9fbc6ad0..972b0161 100644 --- a/Taskfile.pkl +++ b/Taskfile.pkl @@ -6,9 +6,11 @@ amends "package://pkg.pkl-lang.org/github.com/mizchi/pkfire/pkfire@0.10.0#/Taskfile.pkl" local moonbitSources: Listing = new { - "src/**/*.mbt" - "src/**/moon.pkg.json" - "moon.mod.json" + "modules/**/*.mbt" + "modules/**/moon.pkg" + "modules/**/moon.pkg.json" + "modules/**/moon.mod.json" + "moon.work" } // -- formatting ----------------------------------------------------------- @@ -48,7 +50,8 @@ local checkLayers: Task = new { cmd = "node tools/check-layers.mjs" inputs { "tools/check-layers.mjs" - "src/**/moon.pkg.json" + "modules/**/moon.pkg" + "modules/**/moon.pkg.json" } } @@ -57,7 +60,7 @@ local checkGuards: Task = new { description = "Layer-boundary guards (runtime/storage_runtime)" cmd = "tools/check-layer-guards.sh" inputs { - "src/**/*.mbt" + "modules/**/*.mbt" "tools/check-layer-guards.sh" } } @@ -76,42 +79,42 @@ local build: Task = new { cmd = "tools/build-bit-native.sh" inputs = moonbitSources outputs { - "_build/native/release/build/cmd/bit/bit.exe" + "_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" "tools/git-shim/moon" } } local buildJsLib: Task = new { name = "build-js-lib" - description = "JS release build of src/lib" - cmd = "moon build --target js --release src/lib" + description = "JS release build of mizchi/bit/lib" + cmd = "moon build --target js --release modules/bit_lib/src" inputs = moonbitSources - outputs { "_build/js/release/build/lib/lib.js" } + outputs { "_build/js/release/build/mizchi/bit_lib/bit_lib.js" } } local buildJsCli: Task = new { name = "build-js-cli" - description = "JS release build of src/cmd/bit" - cmd = "moon build --target js --release src/cmd/bit" + description = "JS release build of mizchi/bit/cmd/bit" + cmd = "moon build --target js --release modules/bit/src/cmd/bit" inputs = moonbitSources - outputs { "_build/js/release/build/cmd/bit/bit.js" } + outputs { "_build/js/release/build/mizchi/bit/cmd/bit/bit.js" } } local syncNpmLibRaw: Task = new { name = "sync-npm-lib-raw" description = "Copy the JS lib payload into the checked-in npm wrapper" - cmd = "cp _build/js/release/build/lib/lib.js npm/lib.raw.js" + cmd = "cp _build/js/release/build/mizchi/bit_lib/bit_lib.js npm/lib.raw.js" deps { buildJsLib } - inputs { "_build/js/release/build/lib/lib.js" } + inputs { "_build/js/release/build/mizchi/bit_lib/bit_lib.js" } outputs { "npm/lib.raw.js" } } local syncNpmBitCjs: Task = new { name = "sync-npm-bit-cjs" description = "Copy the JS CLI payload into the checked-in npm wrapper" - cmd = "cp _build/js/release/build/cmd/bit/bit.js npm/bit.cjs" + cmd = "cp _build/js/release/build/mizchi/bit/cmd/bit/bit.js npm/bit.cjs" deps { buildJsCli } - inputs { "_build/js/release/build/cmd/bit/bit.js" } + inputs { "_build/js/release/build/mizchi/bit/cmd/bit/bit.js" } outputs { "npm/bit.cjs" } } @@ -126,7 +129,7 @@ local bundleJsLibMinimal: Task = new { """# deps { buildJsLib } inputs { - "_build/js/release/build/lib/lib.js" + "_build/js/release/build/mizchi/bit_lib/bit_lib.js" "tools/lib-js-minimal.mjs" } outputs { "target/lib-js-minimal.bundle.mjs" } @@ -143,7 +146,7 @@ local bundleJsLibGitOps: Task = new { """# deps { buildJsLib } inputs { - "_build/js/release/build/lib/lib.js" + "_build/js/release/build/mizchi/bit_lib/bit_lib.js" "tools/lib-js-git-ops.mjs" } outputs { "target/lib-js-git-ops.bundle.mjs" } @@ -203,7 +206,7 @@ local verifyJsLibTreeshake: Task = new { local sizeJsLib: Task = new { name = "size-js-lib" description = "Report raw + gzip size of the JS lib" - cmd = "tools/size-bytes.sh _build/js/release/build/lib/lib.js" + cmd = "tools/size-bytes.sh _build/js/release/build/mizchi/bit_lib/bit_lib.js" deps { buildJsLib } } @@ -233,7 +236,7 @@ local buildDocsDemo: Task = new { """# deps { buildJsLib } inputs { - "_build/js/release/build/lib/lib.js" + "_build/js/release/build/mizchi/bit_lib/bit_lib.js" "docs/demo/main.js" "docs/demo/**/*.js" } @@ -318,10 +321,10 @@ local testDistributed: Task = new { description = "Agent/orchestration focused native checks" cmd = #""" moon test --target native -p mizchi/bit/x-mcp - moon test --target native -p mizchi/bit/x-rebase-ai - moon test --target native -p mizchi/bit/x-hub - moon test --target native -p mizchi/bit/x-hub/native - moon test --target native -p mizchi/bit/x-kv + moon test --target native -p mizchi/bitx_rebase_ai + moon test --target native -p mizchi/bitx_hub + moon test --target native -p mizchi/bitx_hub/native + moon test --target native -p mizchi/bitx_kv """# } @@ -477,7 +480,7 @@ local benchFsReal: Task = new { local benchKv: Task = new { name = "bench-kv" - cmd = "moon bench --target native -p mizchi/bit/x-kv" + cmd = "moon bench --target native -p mizchi/bitx_kv" } local benchLib: Task = new { diff --git a/docs/distributed-testing.md b/docs/distributed-testing.md index 6a4548d3..593710d4 100644 --- a/docs/distributed-testing.md +++ b/docs/distributed-testing.md @@ -9,17 +9,17 @@ Older agent/orchestrator notes still exist in `docs/`, but this guide is scoped 1. Pure logic (fast) - Purpose: Detect regressions in pure coordination and serialization logic -- Target: `src/x-hub/*_test.mbt`, `src/x-kv/*_test.mbt`, `src/x-rebase-ai/*_wbtest.mbt` +- Target: `modules/bitx_hub/src/*_test.mbt`, `modules/bitx_kv/src/*_test.mbt`, `modules/bitx_rebase_ai/src/*_wbtest.mbt` - Examples: Hub record round-trips, issue/PR state transitions, KV merge behavior, rebase-ai parser logic 2. Coordination/State (medium) - Purpose: Verify read/write consistency across relay, native sync, and repo-backed state -- Target: `src/x-hub/native/*_wbtest.mbt`, `src/x-kv/native/*_wbtest.mbt` +- Target: `modules/bitx_hub/src/native/*_wbtest.mbt`, `modules/bitx_kv/src/native/*_wbtest.mbt` - Examples: relay fetch/push behavior, sync conflict handling 3. Hub/Sync contract (medium) - Purpose: Verify PR/Issue/Review representation and sync contracts -- Target: `src/x-hub/*_test.mbt`, `src/x-hub/*_wbtest.mbt`, `src/x-hub/native/*_wbtest.mbt` +- Target: `modules/bitx_hub/src/*_test.mbt`, `modules/bitx_hub/src/*_wbtest.mbt`, `modules/bitx_hub/src/native/*_wbtest.mbt` 4. End-to-end simulation (heavy) - Purpose: End-to-end connectivity of repository collaboration and relay-oriented flows @@ -46,10 +46,10 @@ pkf run check Current `pkf run test-distributed` runs: -- `mizchi/bit/x-rebase-ai` -- `mizchi/bit/x-hub` -- `mizchi/bit/x-hub/native` -- `mizchi/bit/x-kv` +- `mizchi/bitx_rebase_ai` +- `mizchi/bitx_hub` +- `mizchi/bitx_hub/native` +- `mizchi/bitx_kv` ## 4. Minimal Fault Injection Set diff --git a/docs/package-layout.md b/docs/package-layout.md index e2eb3eb9..0752a076 100644 --- a/docs/package-layout.md +++ b/docs/package-layout.md @@ -1,16 +1,77 @@ # Package Layout -`mizchi/bit` is a single MoonBit module (`moon.mod.json`), but its packages are -organized into a layered structure inspired by [gitoxide]'s `gix-*` plumbing / -`gix` porcelain / `gitoxide` CLI split. +The repository is a MoonBit workspace (`moon.work`). Every module lives under +`modules//`. The main module `mizchi/bit` (under `modules/bit/`) contains +Git plumbing / porcelain organized in a layered structure inspired by +[gitoxide]'s `gix-*` plumbing / `gix` porcelain / `gitoxide` CLI split. +Non-Git extensions live in their own `mizchi/bitx_*` modules so consumers can +pick only the features they need. [gitoxide]: https://github.com/Byron/gitoxide +## Repository layout + +``` +moon.work ← workspace manifest +modules/ + bit/ ← residual main: just the CLI + integration tests + moon.mod.json + src/ + top.mbt + moon.pkg (thin facade re-exports) + cmd/bit/ cmd/git-bit/ (CLI binaries) + tests/ fuzz_tests/ (integration + fuzz suites) + bit_apply/ ← standalone core modules (gix-* equivalents) + bit_archive/ + bit_bootstrap/ + bit_config/ + bit_date/ + bit_diff/ + bit_diff3/ + bit_diff_core/ + bit_fast_import/ + bit_fingerprint/ + bit_grep/ + bit_hash/ + bit_ignore/ + bit_io/ + bit_lib/ + bit_object/ + bit_osfs/ + bit_pack/ + bit_pack_ops/ + bit_protocol/ + bit_refs/ + bit_reftable/ + bit_remote/ + bit_repo/ + bit_repo_ops/ + bit_runtime/ + bit_trailers/ + bit_types/ + bit_utils/ + bit_vfs/ + bit_worktree/ + bitx_bitconfig/ ← extension modules (non-Git features) + bitx_doc/ + bitx_hq/ + bitx_hub/ + bitx_kv/ + bitx_rebase_ai/ + bitx_subdir/ + bitx_workspace/ +``` + +Naming conventions: +- `bit_` (no x) — extracted core plumbing modules, one Git primitive + each, mirroring gitoxide's `gix-*` crates. +- `bitx_` (with x) — extensions for non-Git features (PR metadata, + KV store, AI rebase, etc.). + ## Layers ``` -cmd ─→ x-* ─→ lib (high) ─→ mid ─→ core - x-* ─→ mid ─→ core (x-* may bypass `lib`) +cmd ─→ bitx_* ─→ lib (high) ─→ mid ─→ core (bit_* + mizchi/bit subpkgs) + bitx_* ─→ mid ─→ core (bitx_* may bypass `lib`) ``` Dependencies must flow only in one direction. A package in a lower layer must @@ -18,47 +79,56 @@ never import a package from a higher layer. ### core (gitoxide `gix-*` plumbing 相当) -Single-purpose, low-level packages. Each package is responsible for one Git -primitive and may only depend on other `core/*` packages it strictly needs. - -| Package | Path | gitoxide analogue | -|-------------------------------|-----------------------|------------------------------------| -| `mizchi/bit/types` | `src/types` | (shared types) | -| `mizchi/bit/hash` | `src/hash` | `gix-hash` | -| `mizchi/bit/date_parse` | `src/date_parse` | `gix-date` | -| `mizchi/bit/string_utils` | `src/string_utils` | `gix-utils`, `gix-quote` | -| `mizchi/bit/config_parse` | `src/config_parse` | `gix-config` | -| `mizchi/bit/object` | `src/object` | `gix-object` | -| `mizchi/bit/trailers` | `src/trailers` | `gix-trailers` | -| `mizchi/bit/ignore` | `src/ignore` | `gix-ignore` + `gix-glob` | -| `mizchi/bit/tar` | `src/tar` | `gix-archive` | -| `mizchi/bit/diff_core` | `src/diff_core` | `gix-diff` (low-level) | -| `mizchi/bit/diff3` | `src/diff3` | `gix-merge` (low-level) | -| `mizchi/bit/apply` | `src/apply` | (patch application) | -| `mizchi/bit/fast_import` | `src/fast_import` | (fast-import stream) | -| `mizchi/bit/grep` | `src/grep` | (grep engine) | -| `mizchi/bit/io` | `src/io` | `gix-fs` (abstract) | -| `mizchi/bit/io/native` | `src/io/native` | `gix-fs` (native bindings) | -| `mizchi/bit/osfs` | `src/osfs` | `gix-fs` (OS-backed impl) | -| `mizchi/bit/pack` | `src/pack` | `gix-pack` | -| `mizchi/bit/refs` | `src/refs` | `gix-ref` | -| `mizchi/bit/reftable` | `src/reftable` | (reftable backend) | -| `mizchi/bit/protocol` | `src/protocol` | `gix-protocol`/`gix-transport` | -| `mizchi/bit/runtime` | `src/runtime` | (runtime helpers) | -| `mizchi/bit/bootstrap` | `src/bootstrap` | (bootstrap helpers) | +Single-purpose, low-level packages. Each is responsible for one Git +primitive. Standalone modules (under `modules/bit_/`) and packages +that still live inside `mizchi/bit` are both shown — the long-term direction +is to keep extracting until every core package is its own module. + +| Module / Package | Path | gitoxide analogue | +|-------------------------------|-----------------------------------|------------------------------------| +| `mizchi/bit_hash` | `modules/bit_hash/src` | `gix-hash` | +| `mizchi/bit_date` | `modules/bit_date/src` | `gix-date` | +| `mizchi/bit_utils` | `modules/bit_utils/src` | `gix-utils`, `gix-quote` | +| `mizchi/bit_trailers` | `modules/bit_trailers/src` | `gix-trailers` | +| `mizchi/bit_ignore` | `modules/bit_ignore/src` | `gix-ignore` + `gix-glob` | +| `mizchi/bit_archive` | `modules/bit_archive/src` | `gix-archive` | +| `mizchi/bit_diff_core` | `modules/bit_diff_core/src` | `gix-diff` (low-level) | +| `mizchi/bit_diff3` | `modules/bit_diff3/src` | `gix-merge` (low-level) | +| `mizchi/bit_apply` | `modules/bit_apply/src` | (patch application) | +| `mizchi/bit_fast_import` | `modules/bit_fast_import/src` | (fast-import stream) | +| `mizchi/bit_osfs` | `modules/bit_osfs/src` | `gix-fs` (OS-backed impl) | +| `mizchi/bit_bootstrap` | `modules/bit_bootstrap/src` | (bootstrap helpers) | +| `mizchi/bit_config` | `modules/bit_config/src` | `gix-config` | +| `mizchi/bit_object` | `modules/bit_object/src` | `gix-object` | +| `mizchi/bit_pack` | `modules/bit_pack/src` | `gix-pack` | +| `mizchi/bit_protocol` | `modules/bit_protocol/src` | `gix-protocol` + `gix-transport` | +| `mizchi/bit_reftable` | `modules/bit_reftable/src` | (reftable backend) | +| `mizchi/bit_types` | `modules/bit_types/src` | (shared types, re-exports object) | +| `mizchi/bit_io` | `modules/bit_io/src` | `gix-fs` (abstract + native) | +| `mizchi/bit_io/native` | `modules/bit_io/src/native` | `gix-fs` (native bindings) | +| `mizchi/bit_refs` | `modules/bit_refs/src` | `gix-ref` | +| `mizchi/bit_remote` | `modules/bit_remote/src` | `gix-url` + `gix-discover` | +| `mizchi/bit_repo` | `modules/bit_repo/src` | (repo handle) | +| `mizchi/bit/reftable` | `modules/bit/src/reftable` | (reftable backend) | +| `mizchi/bit/protocol` | `modules/bit/src/protocol` | `gix-protocol`/`gix-transport` | +| `mizchi/bit/remote` | `modules/bit/src/remote` | `gix-url` / discover | +| `mizchi/bit/repo` | `modules/bit/src/repo` | (repo handle) | ### mid (gitoxide `gitoxide-core` 相当) Operations layered on top of `core/*`. May depend on `core/*` only. -| Package | Path | Notes | -|--------------------------|------------------|--------------------------------------| -| `mizchi/bit/repo` | `src/repo` | Repository handle / materialization | -| `mizchi/bit/repo_ops` | `src/repo_ops` | Repository-level operations | -| `mizchi/bit/pack_ops` | `src/pack_ops` | `collect_reachable_objects`, etc. | -| `mizchi/bit/remote` | `src/remote` | URL / shorthand / `.git` discovery | -| `mizchi/bit/worktree` | `src/worktree` | status / add / commit / rm / mv | -| `mizchi/bit/diff` | `src/diff` | High-level diff / show | +| Module / Package | Path | Notes | +|--------------------------|-----------------------------------|--------------------------------------| +| `mizchi/bit_repo_ops` | `modules/bit_repo_ops/src` | Repository-level operations | +| `mizchi/bit_pack_ops` | `modules/bit_pack_ops/src` | `collect_reachable_objects`, etc. | +| `mizchi/bit_worktree` | `modules/bit_worktree/src` | status / add / commit / rm / mv | +| `mizchi/bit_diff` | `modules/bit_diff/src` | High-level diff / show | + +(These currently still import `mizchi/bit/lib`, so they are tracked as +**high** by `tools/check-layers.mjs` even though gitoxide-style they +belong to mid. Promoting them once their `lib` dep is broken is on the +roadmap.) ### high (gitoxide `gix` porcelain 相当) @@ -67,28 +137,34 @@ Porcelain layer. May depend on `core/*` and `mid/*`. Used by `cmd/*` and | Package | Path | Notes | |-------------------------------|--------------------|----------------------------------------------------| -| `mizchi/bit/lib` | `src/lib` | High-level / backward-compatible facade | -| `mizchi/bit/vfs` | `src/vfs` | Virtual FS over commits (used by `lib`, `x-kv`, `x-subdir`) | -| `mizchi/bit/fingerprint` | `src/fingerprint` | Workspace fingerprint (used by `x-workspace`) | - -### x-* (extensions, gitoxide にはない bit 独自機能) - -Optional features. Each `x-*` package is independent and must not depend on -other `x-*` packages. May depend on `core/*`, `mid/*`, and `high/*`. - -| Package | Path | Description | -|----------------------------------|---------------------------|------------------------------| -| `mizchi/bit/x-hub` | `src/x-hub` | Local PR / Issue metadata | -| `mizchi/bit/x-hub/crypto` | `src/x-hub/crypto` | Hub signing primitives | -| `mizchi/bit/x-hub/native` | `src/x-hub/native` | Hub native bindings | -| `mizchi/bit/x-kv` | `src/x-kv` | Git-backed KV store | -| `mizchi/bit/x-kv/native` | `src/x-kv/native` | KV native sync | -| `mizchi/bit/x-hq` | `src/x-hq` | `ghq`-compatible repo mgr | -| `mizchi/bit/x-rebase-ai` | `src/x-rebase-ai` | AI rebase helpers | -| `mizchi/bit/x-subdir` | `src/x-subdir` | Subdirectory clone | -| `mizchi/bit/x-workspace` | `src/x-workspace` | Workspace flow | -| `mizchi/bit/x-bitconfig` | `src/x-bitconfig` | bit-specific config | -| `mizchi/bit/x-doc` | `src/x-doc` | Doc rendering | +| `mizchi/bit_lib` | `modules/bit_lib/src` | High-level porcelain facade (gix-equivalent) | +| `mizchi/bit_lib/native` | `modules/bit_lib/src/native` | Native-only porcelain helpers | +| `mizchi/bit_vfs` | `modules/bit_vfs/src` | Virtual FS over commits (used by `lib`, `bitx_kv`, `bitx_subdir`) | +| `mizchi/bit_fingerprint` | `modules/bit_fingerprint/src` | Workspace fingerprint (used by `bitx_workspace`) | +| `mizchi/bit_grep` | `modules/bit_grep/src` | Grep engine over the working tree | +| `mizchi/bit_runtime` | `modules/bit_runtime/src` | Runtime helpers (storage_runtime, etc.) | + +### bitx_* (extensions, gitoxide にはない bit 独自機能) + +Optional features. Each extension is its own MoonBit module under +`modules/`, so consumers can pull in only the features they need. An +extension may depend on `mizchi/bit` (core / mid / high) but must not +depend on another extension module — shared logic should be promoted into +`mid` or `core` of the main module. + +| Module | Path | Description | +|------------------------------|---------------------------------|---------------------------------| +| `mizchi/bitx_bitconfig` | `modules/bitx_bitconfig/src` | bit-specific config | +| `mizchi/bitx_doc` | `modules/bitx_doc/src` | Repo-stored markdown docs | +| `mizchi/bitx_hq` | `modules/bitx_hq/src` | `ghq`-compatible repo manager | +| `mizchi/bitx_hub` | `modules/bitx_hub/src` | Local PR / Issue metadata | +| `mizchi/bitx_hub/crypto` | `modules/bitx_hub/src/crypto` | Hub signing primitives | +| `mizchi/bitx_hub/native` | `modules/bitx_hub/src/native` | Hub native bindings + GitHub | +| `mizchi/bitx_kv` | `modules/bitx_kv/src` | Git-backed KV store | +| `mizchi/bitx_kv/native` | `modules/bitx_kv/src/native` | KV native sync | +| `mizchi/bitx_rebase_ai` | `modules/bitx_rebase_ai/src` | AI-assisted rebase helpers | +| `mizchi/bitx_subdir` | `modules/bitx_subdir/src` | Subdirectory clone | +| `mizchi/bitx_workspace` | `modules/bitx_workspace/src` | Workspace flow | ### cmd (binaries) @@ -96,23 +172,24 @@ CLI entry points. May depend on any layer. | Package | Path | Notes | |--------------------------|------------------|----------------------------------------| -| `mizchi/bit/cmd/bit` | `src/cmd/bit` | Main `bit` CLI | -| `mizchi/bit/cmd/git-bit` | `src/cmd/git-bit`| `git-bit` shim CLI | +| `mizchi/bit/cmd/bit` | `modules/bit/src/cmd/bit` | Main `bit` CLI | +| `mizchi/bit/cmd/git-bit` | `modules/bit/src/cmd/git-bit`| `git-bit` shim CLI | ## Allowed dependency directions Each layer may import from itself and lower layers only: -| From | core | mid | high (lib) | x-* | cmd | -|---------|:----:|:---:|:----------:|:----:|:----:| -| core | ✓ | | | | | -| mid | ✓ | ✓ | | | | -| high | ✓ | ✓ | ✓ | | | -| x-* | ✓ | ✓ | ✓ | (1) | | -| cmd | ✓ | ✓ | ✓ | ✓ | ✓ | +| From | core | mid | high (lib) | bitx_* | cmd | +|---------|:----:|:---:|:----------:|:------:|:----:| +| core | ✓ | | | | | +| mid | ✓ | ✓ | | | | +| high | ✓ | ✓ | ✓ | | | +| bitx_* | ✓ | ✓ | ✓ | (1) | | +| cmd | ✓ | ✓ | ✓ | ✓ | ✓ | -(1) An `x-*` package must not import another `x-*` package. Shared logic -should be lifted into `high`, `mid`, or `core`. +(1) A `bitx_*` module must not import another `bitx_*` module. Shared logic +should be lifted into `high`, `mid`, or `core` of the main `mizchi/bit` +module. ## Lint @@ -125,5 +202,43 @@ rules above. CI runs the same script. - `lib` (high) is a thin facade. Do not put new logic into `lib`; instead, add it to a focused `core/*` or `mid/*` package and re-export through `lib` if callers need the convenience. -- `x-*` packages are independent. If two `x-*` packages need to share code, - promote the shared piece into `mid` or `core`. +- `bitx_*` modules are independent. If two of them need to share code, + promote the shared piece into `mid` or `core` of the main `mizchi/bit` + module. + +## Multi-module workspace + +The main `mizchi/bit` module is kept focused on Git plumbing/porcelain. All +non-Git extensions are extracted into their own MoonBit modules under +`modules/`, so a consumer can pull in only the features they need. This +mirrors gitoxide's split between `gix-*` plumbing crates and feature-specific +crates. + +The repo root has a `moon.work` file listing every workspace member. When +`moon build` resolves dependencies it picks the listed members up locally +instead of from `mooncakes.io`. The naming convention is `bitx_` +(underscore-separated, single underscore-prefixed segment per feature). + +### Cross-module dependencies + +`mizchi/bit` declares each `bitx_*` it consumes (via `cmd/*`) in its +`moon.mod.json` `deps`. Each `bitx_*` module declares `mizchi/bit` in its +own `deps` when it needs core types. MoonBit's workspace resolver allows +this module-level cycle because the in-package dependency graph remains +acyclic. + +### How to add a new extracted module + +1. Create `modules/bitx_/moon.mod.json` with `"name": + "mizchi/bitx_"` and the minimum `deps` set. +2. Move the package directory under `modules/bitx_/src/` with + `git mv`. +3. Replace any self-import inside the moved package's `moon.pkg` files + (e.g. `"mizchi/bit/x-foo"` → `"mizchi/bitx_foo"`). +4. Add the new directory to `moon.work`'s `members`. +5. For every consumer in `mizchi/bit` (typically `cmd/*`), update the + `moon.pkg` import path and add the new module to the root + `moon.mod.json`'s `deps`. +6. Update this document and any references in `Taskfile.pkl`. +7. Run `moon check` and `moon test --target native -p mizchi/bitx_` + to confirm the move is clean. diff --git a/flake.nix b/flake.nix index 5e80b9ef..848d163d 100644 --- a/flake.nix +++ b/flake.nix @@ -49,9 +49,19 @@ moonRegistryIndex = inputs.moon-registry; }; + # Strip workspace-local deps so buildCachedRegistry only resolves + # packages that actually exist on mooncakes.io. + bitMod = builtins.fromJSON (builtins.readFile ./modules/bit/moon.mod.json); + registryOnlyMod = bitMod // { + deps = pkgs.lib.filterAttrs ( + name: _: !(pkgs.lib.hasPrefix "mizchi/bit_" name || pkgs.lib.hasPrefix "mizchi/bitx_" name) + ) bitMod.deps; + }; + registryOnlyModFile = pkgs.writeText "moon.mod.json" (builtins.toJSON registryOnlyMod); + moonHome = pkgs.moonPlatform.bundleWithRegistry { cachedRegistry = pkgs.moonPlatform.buildCachedRegistry { - moonModJson = ./moon.mod.json; + moonModJson = registryOnlyModFile; registryIndexSrc = inputs.moon-registry; }; }; diff --git a/README.mbt.md b/modules/bit/README.mbt.md similarity index 100% rename from README.mbt.md rename to modules/bit/README.mbt.md diff --git a/modules/bit/moon.mod.json b/modules/bit/moon.mod.json new file mode 100644 index 00000000..ff68df20 --- /dev/null +++ b/modules/bit/moon.mod.json @@ -0,0 +1,64 @@ +{ + "name": "mizchi/bit", + "version": "0.42.2", + "deps": { + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40", + "mizchi/tempfile": "0.1.0", + "mizchi/llm": "0.2.2", + "mizchi/bitflow": "0.4.0", + "mizchi/x": "0.2.0", + "bobzhang/toml": "0.1.7", + "mizchi/libgit2": "0.1.0", + "mizchi/zlib": "0.4.5", + "mizchi/bit_apply": "0.42.2", + "mizchi/bit_archive": "0.42.2", + "mizchi/bit_bootstrap": "0.42.2", + "mizchi/bit_config": "0.42.2", + "mizchi/bit_date": "0.42.2", + "mizchi/bit_diff": "0.42.2", + "mizchi/bit_diff3": "0.42.2", + "mizchi/bit_diff_core": "0.42.2", + "mizchi/bit_fast_import": "0.42.2", + "mizchi/bit_fingerprint": "0.42.2", + "mizchi/bit_grep": "0.42.2", + "mizchi/bit_hash": "0.42.2", + "mizchi/bit_ignore": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "mizchi/bit_pack": "0.42.2", + "mizchi/bit_pack_ops": "0.42.2", + "mizchi/bit_protocol": "0.42.2", + "mizchi/bit_refs": "0.42.2", + "mizchi/bit_reftable": "0.42.2", + "mizchi/bit_remote": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_repo_ops": "0.42.2", + "mizchi/bit_runtime": "0.42.2", + "mizchi/bit_trailers": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_utils": "0.42.2", + "mizchi/bit_vfs": "0.42.2", + "mizchi/bit_worktree": "0.42.2", + "mizchi/bitx_bitconfig": "0.42.2", + "mizchi/bitx_doc": "0.42.2", + "mizchi/bitx_hq": "0.42.2", + "mizchi/bitx_hub": "0.42.2", + "mizchi/bitx_rebase_ai": "0.42.2", + "mizchi/bitx_subdir": "0.42.2", + "mizchi/bitx_workspace": "0.42.2" + }, + "readme": "README.mbt.md", + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": [ + "git", + "packfile", + "protocol" + ], + "description": "Pure MoonBit Git implementation", + "source": "src", + "preferred-target": "native" +} \ No newline at end of file diff --git a/src/TODO.md b/modules/bit/src/TODO.md similarity index 100% rename from src/TODO.md rename to modules/bit/src/TODO.md diff --git a/src/cmd/bit/add.mbt b/modules/bit/src/cmd/bit/add.mbt similarity index 100% rename from src/cmd/bit/add.mbt rename to modules/bit/src/cmd/bit/add.mbt diff --git a/src/cmd/bit/add_wbtest.mbt b/modules/bit/src/cmd/bit/add_wbtest.mbt similarity index 100% rename from src/cmd/bit/add_wbtest.mbt rename to modules/bit/src/cmd/bit/add_wbtest.mbt diff --git a/src/cmd/bit/ai.mbt b/modules/bit/src/cmd/bit/ai.mbt similarity index 100% rename from src/cmd/bit/ai.mbt rename to modules/bit/src/cmd/bit/ai.mbt diff --git a/src/cmd/bit/am.mbt b/modules/bit/src/cmd/bit/am.mbt similarity index 100% rename from src/cmd/bit/am.mbt rename to modules/bit/src/cmd/bit/am.mbt diff --git a/src/cmd/bit/apply.mbt b/modules/bit/src/cmd/bit/apply.mbt similarity index 100% rename from src/cmd/bit/apply.mbt rename to modules/bit/src/cmd/bit/apply.mbt diff --git a/src/cmd/bit/archive.mbt b/modules/bit/src/cmd/bit/archive.mbt similarity index 100% rename from src/cmd/bit/archive.mbt rename to modules/bit/src/cmd/bit/archive.mbt diff --git a/src/cmd/bit/bench_apply_wbtest.mbt b/modules/bit/src/cmd/bit/bench_apply_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_apply_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_apply_wbtest.mbt diff --git a/src/cmd/bit/bench_cat_file_wbtest.mbt b/modules/bit/src/cmd/bit/bench_cat_file_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_cat_file_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_cat_file_wbtest.mbt diff --git a/src/cmd/bit/bench_e2e_clone_fetch_wbtest.mbt b/modules/bit/src/cmd/bit/bench_e2e_clone_fetch_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_e2e_clone_fetch_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_e2e_clone_fetch_wbtest.mbt diff --git a/src/cmd/bit/bench_fsck_wbtest.mbt b/modules/bit/src/cmd/bit/bench_fsck_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_fsck_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_fsck_wbtest.mbt diff --git a/src/cmd/bit/bench_grep_wbtest.mbt b/modules/bit/src/cmd/bit/bench_grep_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_grep_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_grep_wbtest.mbt diff --git a/src/cmd/bit/bench_init_wbtest.mbt b/modules/bit/src/cmd/bit/bench_init_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_init_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_init_wbtest.mbt diff --git a/src/cmd/bit/bench_log_wbtest.mbt b/modules/bit/src/cmd/bit/bench_log_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_log_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_log_wbtest.mbt diff --git a/src/cmd/bit/bench_midx_clone_wbtest.mbt b/modules/bit/src/cmd/bit/bench_midx_clone_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_midx_clone_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_midx_clone_wbtest.mbt diff --git a/src/cmd/bit/bench_repack_wbtest.mbt b/modules/bit/src/cmd/bit/bench_repack_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_repack_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_repack_wbtest.mbt diff --git a/src/cmd/bit/bench_stash_wbtest.mbt b/modules/bit/src/cmd/bit/bench_stash_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_stash_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_stash_wbtest.mbt diff --git a/src/cmd/bit/bench_status_wbtest.mbt b/modules/bit/src/cmd/bit/bench_status_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_status_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_status_wbtest.mbt diff --git a/src/cmd/bit/bench_suppress_stub.c b/modules/bit/src/cmd/bit/bench_suppress_stub.c similarity index 100% rename from src/cmd/bit/bench_suppress_stub.c rename to modules/bit/src/cmd/bit/bench_suppress_stub.c diff --git a/src/cmd/bit/bench_suppress_wbtest.mbt b/modules/bit/src/cmd/bit/bench_suppress_wbtest.mbt similarity index 100% rename from src/cmd/bit/bench_suppress_wbtest.mbt rename to modules/bit/src/cmd/bit/bench_suppress_wbtest.mbt diff --git a/src/cmd/bit/bisect.mbt b/modules/bit/src/cmd/bit/bisect.mbt similarity index 100% rename from src/cmd/bit/bisect.mbt rename to modules/bit/src/cmd/bit/bisect.mbt diff --git a/src/cmd/bit/bisect_wbtest.mbt b/modules/bit/src/cmd/bit/bisect_wbtest.mbt similarity index 100% rename from src/cmd/bit/bisect_wbtest.mbt rename to modules/bit/src/cmd/bit/bisect_wbtest.mbt diff --git a/src/cmd/bit/blame.mbt b/modules/bit/src/cmd/bit/blame.mbt similarity index 100% rename from src/cmd/bit/blame.mbt rename to modules/bit/src/cmd/bit/blame.mbt diff --git a/src/cmd/bit/blame_wbtest.mbt b/modules/bit/src/cmd/bit/blame_wbtest.mbt similarity index 100% rename from src/cmd/bit/blame_wbtest.mbt rename to modules/bit/src/cmd/bit/blame_wbtest.mbt diff --git a/src/cmd/bit/branch.mbt b/modules/bit/src/cmd/bit/branch.mbt similarity index 100% rename from src/cmd/bit/branch.mbt rename to modules/bit/src/cmd/bit/branch.mbt diff --git a/src/cmd/bit/branch_wbtest.mbt b/modules/bit/src/cmd/bit/branch_wbtest.mbt similarity index 100% rename from src/cmd/bit/branch_wbtest.mbt rename to modules/bit/src/cmd/bit/branch_wbtest.mbt diff --git a/src/cmd/bit/bundle.mbt b/modules/bit/src/cmd/bit/bundle.mbt similarity index 100% rename from src/cmd/bit/bundle.mbt rename to modules/bit/src/cmd/bit/bundle.mbt diff --git a/src/cmd/bit/cat.mbt b/modules/bit/src/cmd/bit/cat.mbt similarity index 100% rename from src/cmd/bit/cat.mbt rename to modules/bit/src/cmd/bit/cat.mbt diff --git a/src/cmd/bit/cat_file.mbt b/modules/bit/src/cmd/bit/cat_file.mbt similarity index 100% rename from src/cmd/bit/cat_file.mbt rename to modules/bit/src/cmd/bit/cat_file.mbt diff --git a/src/cmd/bit/cat_file_wbtest.mbt b/modules/bit/src/cmd/bit/cat_file_wbtest.mbt similarity index 100% rename from src/cmd/bit/cat_file_wbtest.mbt rename to modules/bit/src/cmd/bit/cat_file_wbtest.mbt diff --git a/src/cmd/bit/check_attr.mbt b/modules/bit/src/cmd/bit/check_attr.mbt similarity index 100% rename from src/cmd/bit/check_attr.mbt rename to modules/bit/src/cmd/bit/check_attr.mbt diff --git a/src/cmd/bit/check_ignore.mbt b/modules/bit/src/cmd/bit/check_ignore.mbt similarity index 100% rename from src/cmd/bit/check_ignore.mbt rename to modules/bit/src/cmd/bit/check_ignore.mbt diff --git a/src/cmd/bit/check_ignore_wbtest.mbt b/modules/bit/src/cmd/bit/check_ignore_wbtest.mbt similarity index 100% rename from src/cmd/bit/check_ignore_wbtest.mbt rename to modules/bit/src/cmd/bit/check_ignore_wbtest.mbt diff --git a/src/cmd/bit/check_mailmap.mbt b/modules/bit/src/cmd/bit/check_mailmap.mbt similarity index 100% rename from src/cmd/bit/check_mailmap.mbt rename to modules/bit/src/cmd/bit/check_mailmap.mbt diff --git a/src/cmd/bit/check_ref_format.mbt b/modules/bit/src/cmd/bit/check_ref_format.mbt similarity index 100% rename from src/cmd/bit/check_ref_format.mbt rename to modules/bit/src/cmd/bit/check_ref_format.mbt diff --git a/src/cmd/bit/checkout.mbt b/modules/bit/src/cmd/bit/checkout.mbt similarity index 100% rename from src/cmd/bit/checkout.mbt rename to modules/bit/src/cmd/bit/checkout.mbt diff --git a/src/cmd/bit/checkout_index.mbt b/modules/bit/src/cmd/bit/checkout_index.mbt similarity index 100% rename from src/cmd/bit/checkout_index.mbt rename to modules/bit/src/cmd/bit/checkout_index.mbt diff --git a/src/cmd/bit/checkout_wbtest.mbt b/modules/bit/src/cmd/bit/checkout_wbtest.mbt similarity index 99% rename from src/cmd/bit/checkout_wbtest.mbt rename to modules/bit/src/cmd/bit/checkout_wbtest.mbt index ff0006b5..65d7aaca 100644 --- a/src/cmd/bit/checkout_wbtest.mbt +++ b/modules/bit/src/cmd/bit/checkout_wbtest.mbt @@ -17,7 +17,7 @@ async fn checkout_wbtest_collect_shim_git_output( let fs = OsFs::new() // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/cherry.mbt b/modules/bit/src/cmd/bit/cherry.mbt similarity index 100% rename from src/cmd/bit/cherry.mbt rename to modules/bit/src/cmd/bit/cherry.mbt diff --git a/src/cmd/bit/cherry_pick.mbt b/modules/bit/src/cmd/bit/cherry_pick.mbt similarity index 100% rename from src/cmd/bit/cherry_pick.mbt rename to modules/bit/src/cmd/bit/cherry_pick.mbt diff --git a/src/cmd/bit/cherry_pick_wbtest.mbt b/modules/bit/src/cmd/bit/cherry_pick_wbtest.mbt similarity index 100% rename from src/cmd/bit/cherry_pick_wbtest.mbt rename to modules/bit/src/cmd/bit/cherry_pick_wbtest.mbt diff --git a/src/cmd/bit/clean.mbt b/modules/bit/src/cmd/bit/clean.mbt similarity index 100% rename from src/cmd/bit/clean.mbt rename to modules/bit/src/cmd/bit/clean.mbt diff --git a/src/cmd/bit/clone.mbt b/modules/bit/src/cmd/bit/clone.mbt similarity index 100% rename from src/cmd/bit/clone.mbt rename to modules/bit/src/cmd/bit/clone.mbt diff --git a/src/cmd/bit/clone_wbtest.mbt b/modules/bit/src/cmd/bit/clone_wbtest.mbt similarity index 100% rename from src/cmd/bit/clone_wbtest.mbt rename to modules/bit/src/cmd/bit/clone_wbtest.mbt diff --git a/src/cmd/bit/column.mbt b/modules/bit/src/cmd/bit/column.mbt similarity index 100% rename from src/cmd/bit/column.mbt rename to modules/bit/src/cmd/bit/column.mbt diff --git a/src/cmd/bit/commit.mbt b/modules/bit/src/cmd/bit/commit.mbt similarity index 100% rename from src/cmd/bit/commit.mbt rename to modules/bit/src/cmd/bit/commit.mbt diff --git a/src/cmd/bit/commit_graph.mbt b/modules/bit/src/cmd/bit/commit_graph.mbt similarity index 100% rename from src/cmd/bit/commit_graph.mbt rename to modules/bit/src/cmd/bit/commit_graph.mbt diff --git a/src/cmd/bit/commit_graph_write.mbt b/modules/bit/src/cmd/bit/commit_graph_write.mbt similarity index 100% rename from src/cmd/bit/commit_graph_write.mbt rename to modules/bit/src/cmd/bit/commit_graph_write.mbt diff --git a/src/cmd/bit/commit_graph_write_wbtest.mbt b/modules/bit/src/cmd/bit/commit_graph_write_wbtest.mbt similarity index 100% rename from src/cmd/bit/commit_graph_write_wbtest.mbt rename to modules/bit/src/cmd/bit/commit_graph_write_wbtest.mbt diff --git a/src/cmd/bit/commit_tree.mbt b/modules/bit/src/cmd/bit/commit_tree.mbt similarity index 100% rename from src/cmd/bit/commit_tree.mbt rename to modules/bit/src/cmd/bit/commit_tree.mbt diff --git a/src/cmd/bit/commit_wbtest.mbt b/modules/bit/src/cmd/bit/commit_wbtest.mbt similarity index 100% rename from src/cmd/bit/commit_wbtest.mbt rename to modules/bit/src/cmd/bit/commit_wbtest.mbt diff --git a/src/cmd/bit/completion.mbt b/modules/bit/src/cmd/bit/completion.mbt similarity index 100% rename from src/cmd/bit/completion.mbt rename to modules/bit/src/cmd/bit/completion.mbt diff --git a/src/cmd/bit/config.mbt b/modules/bit/src/cmd/bit/config.mbt similarity index 100% rename from src/cmd/bit/config.mbt rename to modules/bit/src/cmd/bit/config.mbt diff --git a/src/cmd/bit/count_objects.mbt b/modules/bit/src/cmd/bit/count_objects.mbt similarity index 100% rename from src/cmd/bit/count_objects.mbt rename to modules/bit/src/cmd/bit/count_objects.mbt diff --git a/src/cmd/bit/credential.mbt b/modules/bit/src/cmd/bit/credential.mbt similarity index 100% rename from src/cmd/bit/credential.mbt rename to modules/bit/src/cmd/bit/credential.mbt diff --git a/src/cmd/bit/debug.mbt b/modules/bit/src/cmd/bit/debug.mbt similarity index 100% rename from src/cmd/bit/debug.mbt rename to modules/bit/src/cmd/bit/debug.mbt diff --git a/src/cmd/bit/delegation_cleanup_wbtest.mbt b/modules/bit/src/cmd/bit/delegation_cleanup_wbtest.mbt similarity index 100% rename from src/cmd/bit/delegation_cleanup_wbtest.mbt rename to modules/bit/src/cmd/bit/delegation_cleanup_wbtest.mbt diff --git a/src/cmd/bit/describe.mbt b/modules/bit/src/cmd/bit/describe.mbt similarity index 100% rename from src/cmd/bit/describe.mbt rename to modules/bit/src/cmd/bit/describe.mbt diff --git a/src/cmd/bit/diff.mbt b/modules/bit/src/cmd/bit/diff.mbt similarity index 100% rename from src/cmd/bit/diff.mbt rename to modules/bit/src/cmd/bit/diff.mbt diff --git a/src/cmd/bit/diff_tree.mbt b/modules/bit/src/cmd/bit/diff_tree.mbt similarity index 100% rename from src/cmd/bit/diff_tree.mbt rename to modules/bit/src/cmd/bit/diff_tree.mbt diff --git a/src/cmd/bit/diff_wbtest.mbt b/modules/bit/src/cmd/bit/diff_wbtest.mbt similarity index 100% rename from src/cmd/bit/diff_wbtest.mbt rename to modules/bit/src/cmd/bit/diff_wbtest.mbt diff --git a/src/cmd/bit/difftool.mbt b/modules/bit/src/cmd/bit/difftool.mbt similarity index 100% rename from src/cmd/bit/difftool.mbt rename to modules/bit/src/cmd/bit/difftool.mbt diff --git a/src/cmd/bit/doc.mbt b/modules/bit/src/cmd/bit/doc.mbt similarity index 100% rename from src/cmd/bit/doc.mbt rename to modules/bit/src/cmd/bit/doc.mbt diff --git a/src/cmd/bit/fallback.mbt b/modules/bit/src/cmd/bit/fallback.mbt similarity index 100% rename from src/cmd/bit/fallback.mbt rename to modules/bit/src/cmd/bit/fallback.mbt diff --git a/src/cmd/bit/fallback_wbtest.mbt b/modules/bit/src/cmd/bit/fallback_wbtest.mbt similarity index 100% rename from src/cmd/bit/fallback_wbtest.mbt rename to modules/bit/src/cmd/bit/fallback_wbtest.mbt diff --git a/src/cmd/bit/fast_export.mbt b/modules/bit/src/cmd/bit/fast_export.mbt similarity index 100% rename from src/cmd/bit/fast_export.mbt rename to modules/bit/src/cmd/bit/fast_export.mbt diff --git a/src/cmd/bit/fast_import.mbt b/modules/bit/src/cmd/bit/fast_import.mbt similarity index 100% rename from src/cmd/bit/fast_import.mbt rename to modules/bit/src/cmd/bit/fast_import.mbt diff --git a/src/cmd/bit/fetch.mbt b/modules/bit/src/cmd/bit/fetch.mbt similarity index 100% rename from src/cmd/bit/fetch.mbt rename to modules/bit/src/cmd/bit/fetch.mbt diff --git a/src/cmd/bit/fetch_pack.mbt b/modules/bit/src/cmd/bit/fetch_pack.mbt similarity index 100% rename from src/cmd/bit/fetch_pack.mbt rename to modules/bit/src/cmd/bit/fetch_pack.mbt diff --git a/src/cmd/bit/fetch_serve_js.mbt b/modules/bit/src/cmd/bit/fetch_serve_js.mbt similarity index 100% rename from src/cmd/bit/fetch_serve_js.mbt rename to modules/bit/src/cmd/bit/fetch_serve_js.mbt diff --git a/src/cmd/bit/fetch_serve_native.mbt b/modules/bit/src/cmd/bit/fetch_serve_native.mbt similarity index 100% rename from src/cmd/bit/fetch_serve_native.mbt rename to modules/bit/src/cmd/bit/fetch_serve_native.mbt diff --git a/src/cmd/bit/fetch_wbtest.mbt b/modules/bit/src/cmd/bit/fetch_wbtest.mbt similarity index 100% rename from src/cmd/bit/fetch_wbtest.mbt rename to modules/bit/src/cmd/bit/fetch_wbtest.mbt diff --git a/src/cmd/bit/filter_branch.mbt b/modules/bit/src/cmd/bit/filter_branch.mbt similarity index 100% rename from src/cmd/bit/filter_branch.mbt rename to modules/bit/src/cmd/bit/filter_branch.mbt diff --git a/src/cmd/bit/fmt_merge_msg.mbt b/modules/bit/src/cmd/bit/fmt_merge_msg.mbt similarity index 100% rename from src/cmd/bit/fmt_merge_msg.mbt rename to modules/bit/src/cmd/bit/fmt_merge_msg.mbt diff --git a/src/cmd/bit/for_each_ref.mbt b/modules/bit/src/cmd/bit/for_each_ref.mbt similarity index 100% rename from src/cmd/bit/for_each_ref.mbt rename to modules/bit/src/cmd/bit/for_each_ref.mbt diff --git a/src/cmd/bit/for_each_repo.mbt b/modules/bit/src/cmd/bit/for_each_repo.mbt similarity index 100% rename from src/cmd/bit/for_each_repo.mbt rename to modules/bit/src/cmd/bit/for_each_repo.mbt diff --git a/src/cmd/bit/format_patch.mbt b/modules/bit/src/cmd/bit/format_patch.mbt similarity index 100% rename from src/cmd/bit/format_patch.mbt rename to modules/bit/src/cmd/bit/format_patch.mbt diff --git a/src/cmd/bit/format_patch_wbtest.mbt b/modules/bit/src/cmd/bit/format_patch_wbtest.mbt similarity index 100% rename from src/cmd/bit/format_patch_wbtest.mbt rename to modules/bit/src/cmd/bit/format_patch_wbtest.mbt diff --git a/src/cmd/bit/fsck.mbt b/modules/bit/src/cmd/bit/fsck.mbt similarity index 100% rename from src/cmd/bit/fsck.mbt rename to modules/bit/src/cmd/bit/fsck.mbt diff --git a/src/cmd/bit/gc.mbt b/modules/bit/src/cmd/bit/gc.mbt similarity index 100% rename from src/cmd/bit/gc.mbt rename to modules/bit/src/cmd/bit/gc.mbt diff --git a/src/cmd/bit/get_tar_commit_id.mbt b/modules/bit/src/cmd/bit/get_tar_commit_id.mbt similarity index 100% rename from src/cmd/bit/get_tar_commit_id.mbt rename to modules/bit/src/cmd/bit/get_tar_commit_id.mbt diff --git a/src/cmd/bit/gitconfig.mbt b/modules/bit/src/cmd/bit/gitconfig.mbt similarity index 100% rename from src/cmd/bit/gitconfig.mbt rename to modules/bit/src/cmd/bit/gitconfig.mbt diff --git a/src/cmd/bit/gitconfig_wbtest.mbt b/modules/bit/src/cmd/bit/gitconfig_wbtest.mbt similarity index 100% rename from src/cmd/bit/gitconfig_wbtest.mbt rename to modules/bit/src/cmd/bit/gitconfig_wbtest.mbt diff --git a/src/cmd/bit/grep.mbt b/modules/bit/src/cmd/bit/grep.mbt similarity index 100% rename from src/cmd/bit/grep.mbt rename to modules/bit/src/cmd/bit/grep.mbt diff --git a/src/cmd/bit/grep_filter.mbt b/modules/bit/src/cmd/bit/grep_filter.mbt similarity index 100% rename from src/cmd/bit/grep_filter.mbt rename to modules/bit/src/cmd/bit/grep_filter.mbt diff --git a/src/cmd/bit/grep_filter_wbtest.mbt b/modules/bit/src/cmd/bit/grep_filter_wbtest.mbt similarity index 100% rename from src/cmd/bit/grep_filter_wbtest.mbt rename to modules/bit/src/cmd/bit/grep_filter_wbtest.mbt diff --git a/src/cmd/bit/grep_wbtest.mbt b/modules/bit/src/cmd/bit/grep_wbtest.mbt similarity index 100% rename from src/cmd/bit/grep_wbtest.mbt rename to modules/bit/src/cmd/bit/grep_wbtest.mbt diff --git a/src/cmd/bit/handlers_core_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_core_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_core_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_core_wbtest.mbt diff --git a/src/cmd/bit/handlers_hub_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_hub_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_hub_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_hub_wbtest.mbt diff --git a/src/cmd/bit/handlers_interactive_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_interactive_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_interactive_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_interactive_wbtest.mbt diff --git a/src/cmd/bit/handlers_misc_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_misc_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_misc_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_misc_wbtest.mbt diff --git a/src/cmd/bit/handlers_remote_pull_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_remote_pull_wbtest.mbt similarity index 99% rename from src/cmd/bit/handlers_remote_pull_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_remote_pull_wbtest.mbt index a89a53cd..d6780e70 100644 --- a/src/cmd/bit/handlers_remote_pull_wbtest.mbt +++ b/modules/bit/src/cmd/bit/handlers_remote_pull_wbtest.mbt @@ -247,7 +247,7 @@ async fn handlers_remote_pull_wbtest_collect_shim_git( Some(d) => d None => { let exe = @sys.get_cli_args()[0] - // exe is like /path/to/bit/_build/native/release/build/cmd/bit/bit.exe + // exe is like /path/to/bit/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe // or the test binary — fallback to current_dir let idx = exe.find("/_build/") match idx { @@ -261,7 +261,7 @@ async fn handlers_remote_pull_wbtest_collect_shim_git( let fs = OsFs::new() // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/handlers_remote_push_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_remote_push_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_remote_push_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_remote_push_wbtest.mbt diff --git a/src/cmd/bit/handlers_scalar_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_scalar_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_scalar_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_scalar_wbtest.mbt diff --git a/src/cmd/bit/handlers_shell_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_shell_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_shell_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_shell_wbtest.mbt diff --git a/src/cmd/bit/handlers_subdir_wbtest.mbt b/modules/bit/src/cmd/bit/handlers_subdir_wbtest.mbt similarity index 100% rename from src/cmd/bit/handlers_subdir_wbtest.mbt rename to modules/bit/src/cmd/bit/handlers_subdir_wbtest.mbt diff --git a/src/cmd/bit/hash_object.mbt b/modules/bit/src/cmd/bit/hash_object.mbt similarity index 100% rename from src/cmd/bit/hash_object.mbt rename to modules/bit/src/cmd/bit/hash_object.mbt diff --git a/src/cmd/bit/hash_object_wbtest.mbt b/modules/bit/src/cmd/bit/hash_object_wbtest.mbt similarity index 100% rename from src/cmd/bit/hash_object_wbtest.mbt rename to modules/bit/src/cmd/bit/hash_object_wbtest.mbt diff --git a/src/cmd/bit/helpers.mbt b/modules/bit/src/cmd/bit/helpers.mbt similarity index 100% rename from src/cmd/bit/helpers.mbt rename to modules/bit/src/cmd/bit/helpers.mbt diff --git a/src/cmd/bit/helpers_js.mbt b/modules/bit/src/cmd/bit/helpers_js.mbt similarity index 100% rename from src/cmd/bit/helpers_js.mbt rename to modules/bit/src/cmd/bit/helpers_js.mbt diff --git a/src/cmd/bit/helpers_shared.mbt b/modules/bit/src/cmd/bit/helpers_shared.mbt similarity index 100% rename from src/cmd/bit/helpers_shared.mbt rename to modules/bit/src/cmd/bit/helpers_shared.mbt diff --git a/src/cmd/bit/helpers_wbtest.mbt b/modules/bit/src/cmd/bit/helpers_wbtest.mbt similarity index 100% rename from src/cmd/bit/helpers_wbtest.mbt rename to modules/bit/src/cmd/bit/helpers_wbtest.mbt diff --git a/src/cmd/bit/hook_runner.mbt b/modules/bit/src/cmd/bit/hook_runner.mbt similarity index 100% rename from src/cmd/bit/hook_runner.mbt rename to modules/bit/src/cmd/bit/hook_runner.mbt diff --git a/src/cmd/bit/hooks.mbt b/modules/bit/src/cmd/bit/hooks.mbt similarity index 100% rename from src/cmd/bit/hooks.mbt rename to modules/bit/src/cmd/bit/hooks.mbt diff --git a/src/cmd/bit/hooks_wbtest.mbt b/modules/bit/src/cmd/bit/hooks_wbtest.mbt similarity index 100% rename from src/cmd/bit/hooks_wbtest.mbt rename to modules/bit/src/cmd/bit/hooks_wbtest.mbt diff --git a/src/cmd/bit/hq.mbt b/modules/bit/src/cmd/bit/hq.mbt similarity index 100% rename from src/cmd/bit/hq.mbt rename to modules/bit/src/cmd/bit/hq.mbt diff --git a/src/cmd/bit/http_fetch.mbt b/modules/bit/src/cmd/bit/http_fetch.mbt similarity index 100% rename from src/cmd/bit/http_fetch.mbt rename to modules/bit/src/cmd/bit/http_fetch.mbt diff --git a/src/cmd/bit/http_serve_js.mbt b/modules/bit/src/cmd/bit/http_serve_js.mbt similarity index 100% rename from src/cmd/bit/http_serve_js.mbt rename to modules/bit/src/cmd/bit/http_serve_js.mbt diff --git a/src/cmd/bit/http_serve_native.mbt b/modules/bit/src/cmd/bit/http_serve_native.mbt similarity index 100% rename from src/cmd/bit/http_serve_native.mbt rename to modules/bit/src/cmd/bit/http_serve_native.mbt diff --git a/src/cmd/bit/hub_active.mbt b/modules/bit/src/cmd/bit/hub_active.mbt similarity index 100% rename from src/cmd/bit/hub_active.mbt rename to modules/bit/src/cmd/bit/hub_active.mbt diff --git a/src/cmd/bit/hub_active_wbtest.mbt b/modules/bit/src/cmd/bit/hub_active_wbtest.mbt similarity index 100% rename from src/cmd/bit/hub_active_wbtest.mbt rename to modules/bit/src/cmd/bit/hub_active_wbtest.mbt diff --git a/src/cmd/bit/hub_compat.mbt b/modules/bit/src/cmd/bit/hub_compat.mbt similarity index 100% rename from src/cmd/bit/hub_compat.mbt rename to modules/bit/src/cmd/bit/hub_compat.mbt diff --git a/src/cmd/bit/hub_debug.mbt b/modules/bit/src/cmd/bit/hub_debug.mbt similarity index 100% rename from src/cmd/bit/hub_debug.mbt rename to modules/bit/src/cmd/bit/hub_debug.mbt diff --git a/src/cmd/bit/hub_github_sync.mbt b/modules/bit/src/cmd/bit/hub_github_sync.mbt similarity index 100% rename from src/cmd/bit/hub_github_sync.mbt rename to modules/bit/src/cmd/bit/hub_github_sync.mbt diff --git a/src/cmd/bit/hub_helpers.mbt b/modules/bit/src/cmd/bit/hub_helpers.mbt similarity index 100% rename from src/cmd/bit/hub_helpers.mbt rename to modules/bit/src/cmd/bit/hub_helpers.mbt diff --git a/src/cmd/bit/hub_import.mbt b/modules/bit/src/cmd/bit/hub_import.mbt similarity index 100% rename from src/cmd/bit/hub_import.mbt rename to modules/bit/src/cmd/bit/hub_import.mbt diff --git a/src/cmd/bit/hub_issue.mbt b/modules/bit/src/cmd/bit/hub_issue.mbt similarity index 100% rename from src/cmd/bit/hub_issue.mbt rename to modules/bit/src/cmd/bit/hub_issue.mbt diff --git a/src/cmd/bit/hub_note.mbt b/modules/bit/src/cmd/bit/hub_note.mbt similarity index 100% rename from src/cmd/bit/hub_note.mbt rename to modules/bit/src/cmd/bit/hub_note.mbt diff --git a/src/cmd/bit/hub_pr.mbt b/modules/bit/src/cmd/bit/hub_pr.mbt similarity index 100% rename from src/cmd/bit/hub_pr.mbt rename to modules/bit/src/cmd/bit/hub_pr.mbt diff --git a/src/cmd/bit/hub_remote.mbt b/modules/bit/src/cmd/bit/hub_remote.mbt similarity index 100% rename from src/cmd/bit/hub_remote.mbt rename to modules/bit/src/cmd/bit/hub_remote.mbt diff --git a/src/cmd/bit/hub_remote_wbtest.mbt b/modules/bit/src/cmd/bit/hub_remote_wbtest.mbt similarity index 100% rename from src/cmd/bit/hub_remote_wbtest.mbt rename to modules/bit/src/cmd/bit/hub_remote_wbtest.mbt diff --git a/src/cmd/bit/hub_search.mbt b/modules/bit/src/cmd/bit/hub_search.mbt similarity index 100% rename from src/cmd/bit/hub_search.mbt rename to modules/bit/src/cmd/bit/hub_search.mbt diff --git a/src/cmd/bit/hub_stores.mbt b/modules/bit/src/cmd/bit/hub_stores.mbt similarity index 100% rename from src/cmd/bit/hub_stores.mbt rename to modules/bit/src/cmd/bit/hub_stores.mbt diff --git a/src/cmd/bit/hub_sync.mbt b/modules/bit/src/cmd/bit/hub_sync.mbt similarity index 100% rename from src/cmd/bit/hub_sync.mbt rename to modules/bit/src/cmd/bit/hub_sync.mbt diff --git a/src/cmd/bit/hub_tty_stub.c b/modules/bit/src/cmd/bit/hub_tty_stub.c similarity index 100% rename from src/cmd/bit/hub_tty_stub.c rename to modules/bit/src/cmd/bit/hub_tty_stub.c diff --git a/src/cmd/bit/index_pack.mbt b/modules/bit/src/cmd/bit/index_pack.mbt similarity index 100% rename from src/cmd/bit/index_pack.mbt rename to modules/bit/src/cmd/bit/index_pack.mbt diff --git a/src/cmd/bit/init.mbt b/modules/bit/src/cmd/bit/init.mbt similarity index 100% rename from src/cmd/bit/init.mbt rename to modules/bit/src/cmd/bit/init.mbt diff --git a/src/cmd/bit/init_wbtest.mbt b/modules/bit/src/cmd/bit/init_wbtest.mbt similarity index 100% rename from src/cmd/bit/init_wbtest.mbt rename to modules/bit/src/cmd/bit/init_wbtest.mbt diff --git a/src/cmd/bit/interactive.mbt b/modules/bit/src/cmd/bit/interactive.mbt similarity index 100% rename from src/cmd/bit/interactive.mbt rename to modules/bit/src/cmd/bit/interactive.mbt diff --git a/src/cmd/bit/interpret_trailers.mbt b/modules/bit/src/cmd/bit/interpret_trailers.mbt similarity index 100% rename from src/cmd/bit/interpret_trailers.mbt rename to modules/bit/src/cmd/bit/interpret_trailers.mbt diff --git a/src/cmd/bit/log.mbt b/modules/bit/src/cmd/bit/log.mbt similarity index 100% rename from src/cmd/bit/log.mbt rename to modules/bit/src/cmd/bit/log.mbt diff --git a/src/cmd/bit/log_wbtest.mbt b/modules/bit/src/cmd/bit/log_wbtest.mbt similarity index 100% rename from src/cmd/bit/log_wbtest.mbt rename to modules/bit/src/cmd/bit/log_wbtest.mbt diff --git a/src/cmd/bit/ls_files.mbt b/modules/bit/src/cmd/bit/ls_files.mbt similarity index 100% rename from src/cmd/bit/ls_files.mbt rename to modules/bit/src/cmd/bit/ls_files.mbt diff --git a/src/cmd/bit/ls_files_wbtest.mbt b/modules/bit/src/cmd/bit/ls_files_wbtest.mbt similarity index 100% rename from src/cmd/bit/ls_files_wbtest.mbt rename to modules/bit/src/cmd/bit/ls_files_wbtest.mbt diff --git a/src/cmd/bit/ls_remote.mbt b/modules/bit/src/cmd/bit/ls_remote.mbt similarity index 100% rename from src/cmd/bit/ls_remote.mbt rename to modules/bit/src/cmd/bit/ls_remote.mbt diff --git a/src/cmd/bit/ls_tree.mbt b/modules/bit/src/cmd/bit/ls_tree.mbt similarity index 100% rename from src/cmd/bit/ls_tree.mbt rename to modules/bit/src/cmd/bit/ls_tree.mbt diff --git a/src/cmd/bit/mailinfo.mbt b/modules/bit/src/cmd/bit/mailinfo.mbt similarity index 100% rename from src/cmd/bit/mailinfo.mbt rename to modules/bit/src/cmd/bit/mailinfo.mbt diff --git a/src/cmd/bit/mailsplit.mbt b/modules/bit/src/cmd/bit/mailsplit.mbt similarity index 100% rename from src/cmd/bit/mailsplit.mbt rename to modules/bit/src/cmd/bit/mailsplit.mbt diff --git a/src/cmd/bit/main.mbt b/modules/bit/src/cmd/bit/main.mbt similarity index 100% rename from src/cmd/bit/main.mbt rename to modules/bit/src/cmd/bit/main.mbt diff --git a/src/cmd/bit/main_js.mbt b/modules/bit/src/cmd/bit/main_js.mbt similarity index 100% rename from src/cmd/bit/main_js.mbt rename to modules/bit/src/cmd/bit/main_js.mbt diff --git a/src/cmd/bit/main_wasm.mbt b/modules/bit/src/cmd/bit/main_wasm.mbt similarity index 100% rename from src/cmd/bit/main_wasm.mbt rename to modules/bit/src/cmd/bit/main_wasm.mbt diff --git a/src/cmd/bit/main_wbtest.mbt b/modules/bit/src/cmd/bit/main_wbtest.mbt similarity index 100% rename from src/cmd/bit/main_wbtest.mbt rename to modules/bit/src/cmd/bit/main_wbtest.mbt diff --git a/src/cmd/bit/maintenance.mbt b/modules/bit/src/cmd/bit/maintenance.mbt similarity index 100% rename from src/cmd/bit/maintenance.mbt rename to modules/bit/src/cmd/bit/maintenance.mbt diff --git a/src/cmd/bit/merge.mbt b/modules/bit/src/cmd/bit/merge.mbt similarity index 100% rename from src/cmd/bit/merge.mbt rename to modules/bit/src/cmd/bit/merge.mbt diff --git a/src/cmd/bit/merge_base.mbt b/modules/bit/src/cmd/bit/merge_base.mbt similarity index 100% rename from src/cmd/bit/merge_base.mbt rename to modules/bit/src/cmd/bit/merge_base.mbt diff --git a/src/cmd/bit/merge_file.mbt b/modules/bit/src/cmd/bit/merge_file.mbt similarity index 100% rename from src/cmd/bit/merge_file.mbt rename to modules/bit/src/cmd/bit/merge_file.mbt diff --git a/src/cmd/bit/merge_index.mbt b/modules/bit/src/cmd/bit/merge_index.mbt similarity index 100% rename from src/cmd/bit/merge_index.mbt rename to modules/bit/src/cmd/bit/merge_index.mbt diff --git a/src/cmd/bit/merge_one_file.mbt b/modules/bit/src/cmd/bit/merge_one_file.mbt similarity index 100% rename from src/cmd/bit/merge_one_file.mbt rename to modules/bit/src/cmd/bit/merge_one_file.mbt diff --git a/src/cmd/bit/merge_tree.mbt b/modules/bit/src/cmd/bit/merge_tree.mbt similarity index 100% rename from src/cmd/bit/merge_tree.mbt rename to modules/bit/src/cmd/bit/merge_tree.mbt diff --git a/src/cmd/bit/merge_wbtest.mbt b/modules/bit/src/cmd/bit/merge_wbtest.mbt similarity index 99% rename from src/cmd/bit/merge_wbtest.mbt rename to modules/bit/src/cmd/bit/merge_wbtest.mbt index 3c1f8bed..b8c61485 100644 --- a/src/cmd/bit/merge_wbtest.mbt +++ b/modules/bit/src/cmd/bit/merge_wbtest.mbt @@ -106,7 +106,7 @@ async fn merge_wbtest_collect_shim_git( let fs = OsFs::new() // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/mktag_cmd.mbt b/modules/bit/src/cmd/bit/mktag_cmd.mbt similarity index 100% rename from src/cmd/bit/mktag_cmd.mbt rename to modules/bit/src/cmd/bit/mktag_cmd.mbt diff --git a/src/cmd/bit/mktree.mbt b/modules/bit/src/cmd/bit/mktree.mbt similarity index 100% rename from src/cmd/bit/mktree.mbt rename to modules/bit/src/cmd/bit/mktree.mbt diff --git a/src/cmd/bit/moon.pkg b/modules/bit/src/cmd/bit/moon.pkg similarity index 90% rename from src/cmd/bit/moon.pkg rename to modules/bit/src/cmd/bit/moon.pkg index c74e6dad..b936e784 100644 --- a/src/cmd/bit/moon.pkg +++ b/modules/bit/src/cmd/bit/moon.pkg @@ -1,37 +1,40 @@ import { - "mizchi/bit/bootstrap" @bootstrap, + "mizchi/bit_bootstrap" @bootstrap, "mizchi/bit" @bitcore, - "mizchi/bit/object" @bitobject, - "mizchi/bit/config_parse" @config_parse, - "mizchi/bit/hash" @bithash, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/tar" @tar, - "mizchi/bit/apply" @apply, - "mizchi/bit/diff3" @diff3, - "mizchi/bit/date_parse" @date_parse, - "mizchi/bit/trailers" @trailers, - "mizchi/bit/fast_import" @fast_import, - "mizchi/bit/repo_ops" @bitrepo, - "mizchi/bit/diff" @bitdiff, - "mizchi/bit/grep" @bitgrep, - "mizchi/bit/ignore" @ignore, - "mizchi/bit/io" @bitio, - "mizchi/bit/lib/native" @bitlibnative, - "mizchi/bit/io/native" @bitnative, - "mizchi/bit/x-hub" @hub, - "mizchi/bit/x-hub/native" @hub_native, - "mizchi/bit/x-rebase-ai" @rebase_ai, - "mizchi/bit/vfs" @bitfs, - "mizchi/bit/x-doc" @xdoc, - "mizchi/bit/x-hq" @hq, - "mizchi/bit/x-subdir" @subdir, - "mizchi/bit/x-bitconfig" @bitconfig, - "mizchi/bit/x-workspace" @workspace, - "mizchi/bit/reftable" @reftable, - "mizchi/bit/runtime" @runtime, - "mizchi/bit/string_utils" @string_utils, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_object" @bitobject, + "mizchi/bit_repo" @repo, + "mizchi/bit_config" @config_parse, + "mizchi/bit_hash" @bithash, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_archive" @tar, + "mizchi/bit_apply" @apply, + "mizchi/bit_diff3" @diff3, + "mizchi/bit_date" @date_parse, + "mizchi/bit_trailers" @trailers, + "mizchi/bit_fast_import" @fast_import, + "mizchi/bit_repo_ops" @bitrepo, + "mizchi/bit_diff" @bitdiff, + "mizchi/bit_grep" @bitgrep, + "mizchi/bit_ignore" @ignore, + "mizchi/bit_io" @bitio, + "mizchi/bit_lib/native" @bitlibnative, + "mizchi/bit_io/native" @bitnative, + "mizchi/bitx_hub" @hub, + "mizchi/bitx_hub/native" @hub_native, + "mizchi/bitx_rebase_ai" @rebase_ai, + "mizchi/bit_vfs" @bitfs, + "mizchi/bitx_doc" @xdoc, + "mizchi/bitx_hq" @hq, + "mizchi/bitx_subdir" @subdir, + "mizchi/bitx_bitconfig" @bitconfig, + "mizchi/bitx_workspace" @workspace, + "mizchi/bit_reftable" @reftable, + "mizchi/bit_runtime" @runtime, + "mizchi/bit_utils" @string_utils, "mizchi/zlib" @zlib, "moonbitlang/async" @async, "moonbitlang/async/js_async" @js_async, diff --git a/src/cmd/bit/multi_pack_index.mbt b/modules/bit/src/cmd/bit/multi_pack_index.mbt similarity index 100% rename from src/cmd/bit/multi_pack_index.mbt rename to modules/bit/src/cmd/bit/multi_pack_index.mbt diff --git a/src/cmd/bit/multi_pack_index_wbtest.mbt b/modules/bit/src/cmd/bit/multi_pack_index_wbtest.mbt similarity index 100% rename from src/cmd/bit/multi_pack_index_wbtest.mbt rename to modules/bit/src/cmd/bit/multi_pack_index_wbtest.mbt diff --git a/src/cmd/bit/mv.mbt b/modules/bit/src/cmd/bit/mv.mbt similarity index 100% rename from src/cmd/bit/mv.mbt rename to modules/bit/src/cmd/bit/mv.mbt diff --git a/src/cmd/bit/name_rev.mbt b/modules/bit/src/cmd/bit/name_rev.mbt similarity index 100% rename from src/cmd/bit/name_rev.mbt rename to modules/bit/src/cmd/bit/name_rev.mbt diff --git a/src/cmd/bit/notes.mbt b/modules/bit/src/cmd/bit/notes.mbt similarity index 100% rename from src/cmd/bit/notes.mbt rename to modules/bit/src/cmd/bit/notes.mbt diff --git a/src/cmd/bit/osfs.mbt b/modules/bit/src/cmd/bit/osfs.mbt similarity index 100% rename from src/cmd/bit/osfs.mbt rename to modules/bit/src/cmd/bit/osfs.mbt diff --git a/src/cmd/bit/pack_bitmap_read.mbt b/modules/bit/src/cmd/bit/pack_bitmap_read.mbt similarity index 100% rename from src/cmd/bit/pack_bitmap_read.mbt rename to modules/bit/src/cmd/bit/pack_bitmap_read.mbt diff --git a/src/cmd/bit/pack_bitmap_write.mbt b/modules/bit/src/cmd/bit/pack_bitmap_write.mbt similarity index 100% rename from src/cmd/bit/pack_bitmap_write.mbt rename to modules/bit/src/cmd/bit/pack_bitmap_write.mbt diff --git a/src/cmd/bit/pack_bitmap_write_wbtest.mbt b/modules/bit/src/cmd/bit/pack_bitmap_write_wbtest.mbt similarity index 100% rename from src/cmd/bit/pack_bitmap_write_wbtest.mbt rename to modules/bit/src/cmd/bit/pack_bitmap_write_wbtest.mbt diff --git a/src/cmd/bit/pack_helpers.mbt b/modules/bit/src/cmd/bit/pack_helpers.mbt similarity index 100% rename from src/cmd/bit/pack_helpers.mbt rename to modules/bit/src/cmd/bit/pack_helpers.mbt diff --git a/src/cmd/bit/pack_helpers_wbtest.mbt b/modules/bit/src/cmd/bit/pack_helpers_wbtest.mbt similarity index 100% rename from src/cmd/bit/pack_helpers_wbtest.mbt rename to modules/bit/src/cmd/bit/pack_helpers_wbtest.mbt diff --git a/src/cmd/bit/pack_objects.mbt b/modules/bit/src/cmd/bit/pack_objects.mbt similarity index 100% rename from src/cmd/bit/pack_objects.mbt rename to modules/bit/src/cmd/bit/pack_objects.mbt diff --git a/src/cmd/bit/pack_objects_cruft.mbt b/modules/bit/src/cmd/bit/pack_objects_cruft.mbt similarity index 100% rename from src/cmd/bit/pack_objects_cruft.mbt rename to modules/bit/src/cmd/bit/pack_objects_cruft.mbt diff --git a/src/cmd/bit/pack_redundant.mbt b/modules/bit/src/cmd/bit/pack_redundant.mbt similarity index 100% rename from src/cmd/bit/pack_redundant.mbt rename to modules/bit/src/cmd/bit/pack_redundant.mbt diff --git a/src/cmd/bit/pack_refs.mbt b/modules/bit/src/cmd/bit/pack_refs.mbt similarity index 100% rename from src/cmd/bit/pack_refs.mbt rename to modules/bit/src/cmd/bit/pack_refs.mbt diff --git a/src/cmd/bit/patch_id.mbt b/modules/bit/src/cmd/bit/patch_id.mbt similarity index 100% rename from src/cmd/bit/patch_id.mbt rename to modules/bit/src/cmd/bit/patch_id.mbt diff --git a/src/cmd/bit/pkg.generated.mbti b/modules/bit/src/cmd/bit/pkg.generated.mbti similarity index 100% rename from src/cmd/bit/pkg.generated.mbti rename to modules/bit/src/cmd/bit/pkg.generated.mbti diff --git a/src/cmd/bit/prune.mbt b/modules/bit/src/cmd/bit/prune.mbt similarity index 100% rename from src/cmd/bit/prune.mbt rename to modules/bit/src/cmd/bit/prune.mbt diff --git a/src/cmd/bit/prune_packed.mbt b/modules/bit/src/cmd/bit/prune_packed.mbt similarity index 100% rename from src/cmd/bit/prune_packed.mbt rename to modules/bit/src/cmd/bit/prune_packed.mbt diff --git a/src/cmd/bit/pull.mbt b/modules/bit/src/cmd/bit/pull.mbt similarity index 100% rename from src/cmd/bit/pull.mbt rename to modules/bit/src/cmd/bit/pull.mbt diff --git a/src/cmd/bit/push.mbt b/modules/bit/src/cmd/bit/push.mbt similarity index 100% rename from src/cmd/bit/push.mbt rename to modules/bit/src/cmd/bit/push.mbt diff --git a/src/cmd/bit/quiltimport.mbt b/modules/bit/src/cmd/bit/quiltimport.mbt similarity index 100% rename from src/cmd/bit/quiltimport.mbt rename to modules/bit/src/cmd/bit/quiltimport.mbt diff --git a/src/cmd/bit/range_diff.mbt b/modules/bit/src/cmd/bit/range_diff.mbt similarity index 100% rename from src/cmd/bit/range_diff.mbt rename to modules/bit/src/cmd/bit/range_diff.mbt diff --git a/src/cmd/bit/read_tree.mbt b/modules/bit/src/cmd/bit/read_tree.mbt similarity index 100% rename from src/cmd/bit/read_tree.mbt rename to modules/bit/src/cmd/bit/read_tree.mbt diff --git a/src/cmd/bit/rebase.mbt b/modules/bit/src/cmd/bit/rebase.mbt similarity index 100% rename from src/cmd/bit/rebase.mbt rename to modules/bit/src/cmd/bit/rebase.mbt diff --git a/src/cmd/bit/rebase_ai.mbt b/modules/bit/src/cmd/bit/rebase_ai.mbt similarity index 100% rename from src/cmd/bit/rebase_ai.mbt rename to modules/bit/src/cmd/bit/rebase_ai.mbt diff --git a/src/cmd/bit/rebase_ai_wbtest.mbt b/modules/bit/src/cmd/bit/rebase_ai_wbtest.mbt similarity index 100% rename from src/cmd/bit/rebase_ai_wbtest.mbt rename to modules/bit/src/cmd/bit/rebase_ai_wbtest.mbt diff --git a/src/cmd/bit/rebase_wbtest.mbt b/modules/bit/src/cmd/bit/rebase_wbtest.mbt similarity index 100% rename from src/cmd/bit/rebase_wbtest.mbt rename to modules/bit/src/cmd/bit/rebase_wbtest.mbt diff --git a/src/cmd/bit/receive_pack.mbt b/modules/bit/src/cmd/bit/receive_pack.mbt similarity index 100% rename from src/cmd/bit/receive_pack.mbt rename to modules/bit/src/cmd/bit/receive_pack.mbt diff --git a/src/cmd/bit/reflog.mbt b/modules/bit/src/cmd/bit/reflog.mbt similarity index 100% rename from src/cmd/bit/reflog.mbt rename to modules/bit/src/cmd/bit/reflog.mbt diff --git a/src/cmd/bit/reflog_wbtest.mbt b/modules/bit/src/cmd/bit/reflog_wbtest.mbt similarity index 100% rename from src/cmd/bit/reflog_wbtest.mbt rename to modules/bit/src/cmd/bit/reflog_wbtest.mbt diff --git a/src/cmd/bit/relay.mbt b/modules/bit/src/cmd/bit/relay.mbt similarity index 100% rename from src/cmd/bit/relay.mbt rename to modules/bit/src/cmd/bit/relay.mbt diff --git a/src/cmd/bit/relay_ci_review.mbt b/modules/bit/src/cmd/bit/relay_ci_review.mbt similarity index 100% rename from src/cmd/bit/relay_ci_review.mbt rename to modules/bit/src/cmd/bit/relay_ci_review.mbt diff --git a/src/cmd/bit/relay_js.mbt b/modules/bit/src/cmd/bit/relay_js.mbt similarity index 100% rename from src/cmd/bit/relay_js.mbt rename to modules/bit/src/cmd/bit/relay_js.mbt diff --git a/src/cmd/bit/relay_watch.mbt b/modules/bit/src/cmd/bit/relay_watch.mbt similarity index 100% rename from src/cmd/bit/relay_watch.mbt rename to modules/bit/src/cmd/bit/relay_watch.mbt diff --git a/src/cmd/bit/relay_watch_wbtest.mbt b/modules/bit/src/cmd/bit/relay_watch_wbtest.mbt similarity index 100% rename from src/cmd/bit/relay_watch_wbtest.mbt rename to modules/bit/src/cmd/bit/relay_watch_wbtest.mbt diff --git a/src/cmd/bit/remote.mbt b/modules/bit/src/cmd/bit/remote.mbt similarity index 100% rename from src/cmd/bit/remote.mbt rename to modules/bit/src/cmd/bit/remote.mbt diff --git a/src/cmd/bit/remote_wbtest.mbt b/modules/bit/src/cmd/bit/remote_wbtest.mbt similarity index 100% rename from src/cmd/bit/remote_wbtest.mbt rename to modules/bit/src/cmd/bit/remote_wbtest.mbt diff --git a/src/cmd/bit/repack.mbt b/modules/bit/src/cmd/bit/repack.mbt similarity index 99% rename from src/cmd/bit/repack.mbt rename to modules/bit/src/cmd/bit/repack.mbt index 8b100b97..842f5f14 100644 --- a/src/cmd/bit/repack.mbt +++ b/modules/bit/src/cmd/bit/repack.mbt @@ -335,7 +335,7 @@ fn repack_find_bit_exe(git_dir : String) -> String { } // Try relative to git_dir (standard build location) let fs = OsFs::new() - let build_path = git_dir + "/../_build/native/release/build/cmd/bit/bit.exe" + let build_path = git_dir + "/../_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if fs.is_file(build_path) { return build_path } diff --git a/src/cmd/bit/replace.mbt b/modules/bit/src/cmd/bit/replace.mbt similarity index 100% rename from src/cmd/bit/replace.mbt rename to modules/bit/src/cmd/bit/replace.mbt diff --git a/src/cmd/bit/request_pull.mbt b/modules/bit/src/cmd/bit/request_pull.mbt similarity index 100% rename from src/cmd/bit/request_pull.mbt rename to modules/bit/src/cmd/bit/request_pull.mbt diff --git a/src/cmd/bit/rerere.mbt b/modules/bit/src/cmd/bit/rerere.mbt similarity index 100% rename from src/cmd/bit/rerere.mbt rename to modules/bit/src/cmd/bit/rerere.mbt diff --git a/src/cmd/bit/reset.mbt b/modules/bit/src/cmd/bit/reset.mbt similarity index 100% rename from src/cmd/bit/reset.mbt rename to modules/bit/src/cmd/bit/reset.mbt diff --git a/src/cmd/bit/reset_wbtest.mbt b/modules/bit/src/cmd/bit/reset_wbtest.mbt similarity index 100% rename from src/cmd/bit/reset_wbtest.mbt rename to modules/bit/src/cmd/bit/reset_wbtest.mbt diff --git a/src/cmd/bit/restore.mbt b/modules/bit/src/cmd/bit/restore.mbt similarity index 100% rename from src/cmd/bit/restore.mbt rename to modules/bit/src/cmd/bit/restore.mbt diff --git a/src/cmd/bit/restore_wbtest.mbt b/modules/bit/src/cmd/bit/restore_wbtest.mbt similarity index 100% rename from src/cmd/bit/restore_wbtest.mbt rename to modules/bit/src/cmd/bit/restore_wbtest.mbt diff --git a/src/cmd/bit/rev_list.mbt b/modules/bit/src/cmd/bit/rev_list.mbt similarity index 100% rename from src/cmd/bit/rev_list.mbt rename to modules/bit/src/cmd/bit/rev_list.mbt diff --git a/src/cmd/bit/rev_list_wbtest.mbt b/modules/bit/src/cmd/bit/rev_list_wbtest.mbt similarity index 98% rename from src/cmd/bit/rev_list_wbtest.mbt rename to modules/bit/src/cmd/bit/rev_list_wbtest.mbt index 547a7fc9..3297c5f9 100644 --- a/src/cmd/bit/rev_list_wbtest.mbt +++ b/modules/bit/src/cmd/bit/rev_list_wbtest.mbt @@ -76,7 +76,7 @@ async fn rev_list_test_bit_stdout( args : Array[String], ) -> String raise Error { let repo_root = @env.current_dir().unwrap_or(".") - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" let bit_args : Array[String] = ["-C", root] for arg in args { bit_args.push(arg) @@ -117,7 +117,7 @@ async fn rev_list_test_run_shim_git( "SHIM_REAL_GIT": wbtest_resolve_real_git(repo_root), "SHIM_REAL_GIT_FALLBACK": "", "SHIM_EXEC_PATH": repo_root + "/third_party/git", - "SHIM_MOON": repo_root + "/_build/native/release/build/cmd/bit/bit.exe", + "SHIM_MOON": repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe", "SHIM_CMDS": "init status add commit log show branch checkout switch reset rebase stash cherry-pick diff diff-files diff-index merge tag rm mv config sparse-checkout restore rev-parse cat-file ls-files hash-object ls-tree write-tree show-ref update-ref update-index symbolic-ref reflog worktree gc clean grep submodule revert notes bisect describe blame format-patch shortlog remote clone fetch pull push receive-pack upload-pack pack-objects index-pack shell", "SHIM_STRICT": "1", } @@ -147,7 +147,7 @@ async fn rev_list_test_shim_git_stdout( "SHIM_REAL_GIT": wbtest_resolve_real_git(repo_root), "SHIM_REAL_GIT_FALLBACK": "", "SHIM_EXEC_PATH": repo_root + "/third_party/git", - "SHIM_MOON": repo_root + "/_build/native/release/build/cmd/bit/bit.exe", + "SHIM_MOON": repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe", "SHIM_CMDS": "init status add commit log show branch checkout switch reset rebase stash cherry-pick diff diff-files diff-index merge tag rm mv config sparse-checkout restore rev-parse cat-file ls-files hash-object ls-tree write-tree show-ref update-ref update-index symbolic-ref reflog worktree gc clean grep submodule revert notes bisect describe blame format-patch shortlog remote clone fetch pull push receive-pack upload-pack pack-objects index-pack shell", "SHIM_STRICT": "1", } diff --git a/src/cmd/bit/rev_parse.mbt b/modules/bit/src/cmd/bit/rev_parse.mbt similarity index 100% rename from src/cmd/bit/rev_parse.mbt rename to modules/bit/src/cmd/bit/rev_parse.mbt diff --git a/src/cmd/bit/rev_parse_wbtest.mbt b/modules/bit/src/cmd/bit/rev_parse_wbtest.mbt similarity index 100% rename from src/cmd/bit/rev_parse_wbtest.mbt rename to modules/bit/src/cmd/bit/rev_parse_wbtest.mbt diff --git a/src/cmd/bit/revert.mbt b/modules/bit/src/cmd/bit/revert.mbt similarity index 100% rename from src/cmd/bit/revert.mbt rename to modules/bit/src/cmd/bit/revert.mbt diff --git a/src/cmd/bit/rm.mbt b/modules/bit/src/cmd/bit/rm.mbt similarity index 100% rename from src/cmd/bit/rm.mbt rename to modules/bit/src/cmd/bit/rm.mbt diff --git a/src/cmd/bit/rm_wbtest.mbt b/modules/bit/src/cmd/bit/rm_wbtest.mbt similarity index 100% rename from src/cmd/bit/rm_wbtest.mbt rename to modules/bit/src/cmd/bit/rm_wbtest.mbt diff --git a/src/cmd/bit/scalar.mbt b/modules/bit/src/cmd/bit/scalar.mbt similarity index 100% rename from src/cmd/bit/scalar.mbt rename to modules/bit/src/cmd/bit/scalar.mbt diff --git a/src/cmd/bit/send_pack.mbt b/modules/bit/src/cmd/bit/send_pack.mbt similarity index 100% rename from src/cmd/bit/send_pack.mbt rename to modules/bit/src/cmd/bit/send_pack.mbt diff --git a/src/cmd/bit/serve.mbt b/modules/bit/src/cmd/bit/serve.mbt similarity index 100% rename from src/cmd/bit/serve.mbt rename to modules/bit/src/cmd/bit/serve.mbt diff --git a/src/cmd/bit/shell.mbt b/modules/bit/src/cmd/bit/shell.mbt similarity index 100% rename from src/cmd/bit/shell.mbt rename to modules/bit/src/cmd/bit/shell.mbt diff --git a/src/cmd/bit/shortlog.mbt b/modules/bit/src/cmd/bit/shortlog.mbt similarity index 100% rename from src/cmd/bit/shortlog.mbt rename to modules/bit/src/cmd/bit/shortlog.mbt diff --git a/src/cmd/bit/shortlog_wbtest.mbt b/modules/bit/src/cmd/bit/shortlog_wbtest.mbt similarity index 100% rename from src/cmd/bit/shortlog_wbtest.mbt rename to modules/bit/src/cmd/bit/shortlog_wbtest.mbt diff --git a/src/cmd/bit/show.mbt b/modules/bit/src/cmd/bit/show.mbt similarity index 100% rename from src/cmd/bit/show.mbt rename to modules/bit/src/cmd/bit/show.mbt diff --git a/src/cmd/bit/show_branches.mbt b/modules/bit/src/cmd/bit/show_branches.mbt similarity index 100% rename from src/cmd/bit/show_branches.mbt rename to modules/bit/src/cmd/bit/show_branches.mbt diff --git a/src/cmd/bit/show_index.mbt b/modules/bit/src/cmd/bit/show_index.mbt similarity index 100% rename from src/cmd/bit/show_index.mbt rename to modules/bit/src/cmd/bit/show_index.mbt diff --git a/src/cmd/bit/show_ref.mbt b/modules/bit/src/cmd/bit/show_ref.mbt similarity index 100% rename from src/cmd/bit/show_ref.mbt rename to modules/bit/src/cmd/bit/show_ref.mbt diff --git a/src/cmd/bit/show_wbtest.mbt b/modules/bit/src/cmd/bit/show_wbtest.mbt similarity index 99% rename from src/cmd/bit/show_wbtest.mbt rename to modules/bit/src/cmd/bit/show_wbtest.mbt index 97a437a7..a52e6083 100644 --- a/src/cmd/bit/show_wbtest.mbt +++ b/modules/bit/src/cmd/bit/show_wbtest.mbt @@ -45,7 +45,7 @@ async fn show_wbtest_collect_shim_git_stderr( "SHIM_REAL_GIT": wbtest_resolve_real_git(repo_root), "SHIM_REAL_GIT_FALLBACK": "", "SHIM_EXEC_PATH": repo_root + "/third_party/git", - "SHIM_MOON": repo_root + "/_build/native/release/build/cmd/bit/bit.exe", + "SHIM_MOON": repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe", "SHIM_CMDS": "show", "SHIM_STRICT": "1", } diff --git a/src/cmd/bit/signing_helpers.mbt b/modules/bit/src/cmd/bit/signing_helpers.mbt similarity index 100% rename from src/cmd/bit/signing_helpers.mbt rename to modules/bit/src/cmd/bit/signing_helpers.mbt diff --git a/src/cmd/bit/sigpipe_js.mbt b/modules/bit/src/cmd/bit/sigpipe_js.mbt similarity index 100% rename from src/cmd/bit/sigpipe_js.mbt rename to modules/bit/src/cmd/bit/sigpipe_js.mbt diff --git a/src/cmd/bit/sigpipe_native.mbt b/modules/bit/src/cmd/bit/sigpipe_native.mbt similarity index 100% rename from src/cmd/bit/sigpipe_native.mbt rename to modules/bit/src/cmd/bit/sigpipe_native.mbt diff --git a/src/cmd/bit/sigpipe_stub.c b/modules/bit/src/cmd/bit/sigpipe_stub.c similarity index 100% rename from src/cmd/bit/sigpipe_stub.c rename to modules/bit/src/cmd/bit/sigpipe_stub.c diff --git a/src/cmd/bit/sparse_checkout.mbt b/modules/bit/src/cmd/bit/sparse_checkout.mbt similarity index 100% rename from src/cmd/bit/sparse_checkout.mbt rename to modules/bit/src/cmd/bit/sparse_checkout.mbt diff --git a/src/cmd/bit/sparse_checkout_wbtest.mbt b/modules/bit/src/cmd/bit/sparse_checkout_wbtest.mbt similarity index 99% rename from src/cmd/bit/sparse_checkout_wbtest.mbt rename to modules/bit/src/cmd/bit/sparse_checkout_wbtest.mbt index 306ad45b..0acbeb58 100644 --- a/src/cmd/bit/sparse_checkout_wbtest.mbt +++ b/modules/bit/src/cmd/bit/sparse_checkout_wbtest.mbt @@ -60,7 +60,7 @@ async fn sparse_checkout_wbtest_shim_moon_path( let wrapper_path = "/tmp/bit-sparse-shim-moon.sh" // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/stash.mbt b/modules/bit/src/cmd/bit/stash.mbt similarity index 100% rename from src/cmd/bit/stash.mbt rename to modules/bit/src/cmd/bit/stash.mbt diff --git a/src/cmd/bit/status.mbt b/modules/bit/src/cmd/bit/status.mbt similarity index 100% rename from src/cmd/bit/status.mbt rename to modules/bit/src/cmd/bit/status.mbt diff --git a/src/cmd/bit/status_wbtest.mbt b/modules/bit/src/cmd/bit/status_wbtest.mbt similarity index 100% rename from src/cmd/bit/status_wbtest.mbt rename to modules/bit/src/cmd/bit/status_wbtest.mbt diff --git a/src/cmd/bit/storage_runtime.mbt b/modules/bit/src/cmd/bit/storage_runtime.mbt similarity index 100% rename from src/cmd/bit/storage_runtime.mbt rename to modules/bit/src/cmd/bit/storage_runtime.mbt diff --git a/src/cmd/bit/storage_runtime_wbtest.mbt b/modules/bit/src/cmd/bit/storage_runtime_wbtest.mbt similarity index 100% rename from src/cmd/bit/storage_runtime_wbtest.mbt rename to modules/bit/src/cmd/bit/storage_runtime_wbtest.mbt diff --git a/src/cmd/bit/stripspace.mbt b/modules/bit/src/cmd/bit/stripspace.mbt similarity index 100% rename from src/cmd/bit/stripspace.mbt rename to modules/bit/src/cmd/bit/stripspace.mbt diff --git a/src/cmd/bit/subdir_clone.mbt b/modules/bit/src/cmd/bit/subdir_clone.mbt similarity index 100% rename from src/cmd/bit/subdir_clone.mbt rename to modules/bit/src/cmd/bit/subdir_clone.mbt diff --git a/src/cmd/bit/subdir_ops.mbt b/modules/bit/src/cmd/bit/subdir_ops.mbt similarity index 100% rename from src/cmd/bit/subdir_ops.mbt rename to modules/bit/src/cmd/bit/subdir_ops.mbt diff --git a/src/cmd/bit/subdir_shorthand_wbtest.mbt b/modules/bit/src/cmd/bit/subdir_shorthand_wbtest.mbt similarity index 100% rename from src/cmd/bit/subdir_shorthand_wbtest.mbt rename to modules/bit/src/cmd/bit/subdir_shorthand_wbtest.mbt diff --git a/src/cmd/bit/submodule.mbt b/modules/bit/src/cmd/bit/submodule.mbt similarity index 100% rename from src/cmd/bit/submodule.mbt rename to modules/bit/src/cmd/bit/submodule.mbt diff --git a/src/cmd/bit/submodule_wbtest.mbt b/modules/bit/src/cmd/bit/submodule_wbtest.mbt similarity index 99% rename from src/cmd/bit/submodule_wbtest.mbt rename to modules/bit/src/cmd/bit/submodule_wbtest.mbt index 0a5e9fe4..3f1c749c 100644 --- a/src/cmd/bit/submodule_wbtest.mbt +++ b/modules/bit/src/cmd/bit/submodule_wbtest.mbt @@ -73,7 +73,7 @@ async fn submodule_wbtest_collect_shim_git_stderr( let env : Map[String, String] = { "SHIM_REAL_GIT": wbtest_resolve_real_git(repo_root), "SHIM_EXEC_PATH": repo_root + "/third_party/git", - "SHIM_MOON": repo_root + "/_build/native/release/build/cmd/bit/bit.exe", + "SHIM_MOON": repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe", "SHIM_CMDS": "submodule submodule--helper", "SHIM_STRICT": "1", } diff --git a/src/cmd/bit/switch.mbt b/modules/bit/src/cmd/bit/switch.mbt similarity index 100% rename from src/cmd/bit/switch.mbt rename to modules/bit/src/cmd/bit/switch.mbt diff --git a/src/cmd/bit/switch_wbtest.mbt b/modules/bit/src/cmd/bit/switch_wbtest.mbt similarity index 98% rename from src/cmd/bit/switch_wbtest.mbt rename to modules/bit/src/cmd/bit/switch_wbtest.mbt index b6c11942..3a7e918e 100644 --- a/src/cmd/bit/switch_wbtest.mbt +++ b/modules/bit/src/cmd/bit/switch_wbtest.mbt @@ -17,7 +17,7 @@ async fn switch_wbtest_run_shim_git( let fs = OsFs::new() // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/symbolic_ref.mbt b/modules/bit/src/cmd/bit/symbolic_ref.mbt similarity index 100% rename from src/cmd/bit/symbolic_ref.mbt rename to modules/bit/src/cmd/bit/symbolic_ref.mbt diff --git a/src/cmd/bit/tag.mbt b/modules/bit/src/cmd/bit/tag.mbt similarity index 100% rename from src/cmd/bit/tag.mbt rename to modules/bit/src/cmd/bit/tag.mbt diff --git a/src/cmd/bit/tag_wbtest.mbt b/modules/bit/src/cmd/bit/tag_wbtest.mbt similarity index 100% rename from src/cmd/bit/tag_wbtest.mbt rename to modules/bit/src/cmd/bit/tag_wbtest.mbt diff --git a/src/cmd/bit/time_js.mbt b/modules/bit/src/cmd/bit/time_js.mbt similarity index 100% rename from src/cmd/bit/time_js.mbt rename to modules/bit/src/cmd/bit/time_js.mbt diff --git a/src/cmd/bit/time_native.mbt b/modules/bit/src/cmd/bit/time_native.mbt similarity index 100% rename from src/cmd/bit/time_native.mbt rename to modules/bit/src/cmd/bit/time_native.mbt diff --git a/src/cmd/bit/time_stub.c b/modules/bit/src/cmd/bit/time_stub.c similarity index 100% rename from src/cmd/bit/time_stub.c rename to modules/bit/src/cmd/bit/time_stub.c diff --git a/src/cmd/bit/time_wasm.mbt b/modules/bit/src/cmd/bit/time_wasm.mbt similarity index 100% rename from src/cmd/bit/time_wasm.mbt rename to modules/bit/src/cmd/bit/time_wasm.mbt diff --git a/src/cmd/bit/time_web_wbtest.mbt b/modules/bit/src/cmd/bit/time_web_wbtest.mbt similarity index 100% rename from src/cmd/bit/time_web_wbtest.mbt rename to modules/bit/src/cmd/bit/time_web_wbtest.mbt diff --git a/src/cmd/bit/tree.mbt b/modules/bit/src/cmd/bit/tree.mbt similarity index 100% rename from src/cmd/bit/tree.mbt rename to modules/bit/src/cmd/bit/tree.mbt diff --git a/src/cmd/bit/unpack_file.mbt b/modules/bit/src/cmd/bit/unpack_file.mbt similarity index 100% rename from src/cmd/bit/unpack_file.mbt rename to modules/bit/src/cmd/bit/unpack_file.mbt diff --git a/src/cmd/bit/unpack_objects.mbt b/modules/bit/src/cmd/bit/unpack_objects.mbt similarity index 100% rename from src/cmd/bit/unpack_objects.mbt rename to modules/bit/src/cmd/bit/unpack_objects.mbt diff --git a/src/cmd/bit/update_index.mbt b/modules/bit/src/cmd/bit/update_index.mbt similarity index 100% rename from src/cmd/bit/update_index.mbt rename to modules/bit/src/cmd/bit/update_index.mbt diff --git a/src/cmd/bit/update_index_wbtest.mbt b/modules/bit/src/cmd/bit/update_index_wbtest.mbt similarity index 98% rename from src/cmd/bit/update_index_wbtest.mbt rename to modules/bit/src/cmd/bit/update_index_wbtest.mbt index 8921c5d3..26477e42 100644 --- a/src/cmd/bit/update_index_wbtest.mbt +++ b/modules/bit/src/cmd/bit/update_index_wbtest.mbt @@ -94,7 +94,7 @@ async fn update_index_wbtest_run_sparse_checkout_shim( let fs = OsFs::new() // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/update_ref.mbt b/modules/bit/src/cmd/bit/update_ref.mbt similarity index 100% rename from src/cmd/bit/update_ref.mbt rename to modules/bit/src/cmd/bit/update_ref.mbt diff --git a/src/cmd/bit/update_ref_wbtest.mbt b/modules/bit/src/cmd/bit/update_ref_wbtest.mbt similarity index 100% rename from src/cmd/bit/update_ref_wbtest.mbt rename to modules/bit/src/cmd/bit/update_ref_wbtest.mbt diff --git a/src/cmd/bit/update_server_info.mbt b/modules/bit/src/cmd/bit/update_server_info.mbt similarity index 100% rename from src/cmd/bit/update_server_info.mbt rename to modules/bit/src/cmd/bit/update_server_info.mbt diff --git a/src/cmd/bit/upload_archive.mbt b/modules/bit/src/cmd/bit/upload_archive.mbt similarity index 100% rename from src/cmd/bit/upload_archive.mbt rename to modules/bit/src/cmd/bit/upload_archive.mbt diff --git a/src/cmd/bit/upload_pack.mbt b/modules/bit/src/cmd/bit/upload_pack.mbt similarity index 100% rename from src/cmd/bit/upload_pack.mbt rename to modules/bit/src/cmd/bit/upload_pack.mbt diff --git a/src/cmd/bit/var.mbt b/modules/bit/src/cmd/bit/var.mbt similarity index 100% rename from src/cmd/bit/var.mbt rename to modules/bit/src/cmd/bit/var.mbt diff --git a/src/cmd/bit/verify_commit.mbt b/modules/bit/src/cmd/bit/verify_commit.mbt similarity index 100% rename from src/cmd/bit/verify_commit.mbt rename to modules/bit/src/cmd/bit/verify_commit.mbt diff --git a/src/cmd/bit/verify_pack.mbt b/modules/bit/src/cmd/bit/verify_pack.mbt similarity index 100% rename from src/cmd/bit/verify_pack.mbt rename to modules/bit/src/cmd/bit/verify_pack.mbt diff --git a/src/cmd/bit/verify_tag.mbt b/modules/bit/src/cmd/bit/verify_tag.mbt similarity index 100% rename from src/cmd/bit/verify_tag.mbt rename to modules/bit/src/cmd/bit/verify_tag.mbt diff --git a/src/cmd/bit/verify_wbtest.mbt b/modules/bit/src/cmd/bit/verify_wbtest.mbt similarity index 100% rename from src/cmd/bit/verify_wbtest.mbt rename to modules/bit/src/cmd/bit/verify_wbtest.mbt diff --git a/src/cmd/bit/wbtest_env_lock_shared.mbt b/modules/bit/src/cmd/bit/wbtest_env_lock_shared.mbt similarity index 100% rename from src/cmd/bit/wbtest_env_lock_shared.mbt rename to modules/bit/src/cmd/bit/wbtest_env_lock_shared.mbt diff --git a/src/cmd/bit/web_browse.mbt b/modules/bit/src/cmd/bit/web_browse.mbt similarity index 100% rename from src/cmd/bit/web_browse.mbt rename to modules/bit/src/cmd/bit/web_browse.mbt diff --git a/src/cmd/bit/workspace.mbt b/modules/bit/src/cmd/bit/workspace.mbt similarity index 100% rename from src/cmd/bit/workspace.mbt rename to modules/bit/src/cmd/bit/workspace.mbt diff --git a/src/cmd/bit/worktree.mbt b/modules/bit/src/cmd/bit/worktree.mbt similarity index 100% rename from src/cmd/bit/worktree.mbt rename to modules/bit/src/cmd/bit/worktree.mbt diff --git a/src/cmd/bit/worktree_wbtest.mbt b/modules/bit/src/cmd/bit/worktree_wbtest.mbt similarity index 99% rename from src/cmd/bit/worktree_wbtest.mbt rename to modules/bit/src/cmd/bit/worktree_wbtest.mbt index 3e578520..d820cf51 100644 --- a/src/cmd/bit/worktree_wbtest.mbt +++ b/modules/bit/src/cmd/bit/worktree_wbtest.mbt @@ -21,7 +21,7 @@ async fn worktree_wbtest_collect_shim_git( let fs = OsFs::new() // Build the native binary first so exit codes propagate correctly // (moon run swallows non-zero exit codes) - let bit_exe = repo_root + "/_build/native/release/build/cmd/bit/bit.exe" + let bit_exe = repo_root + "/_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if !fs.is_file(bit_exe) { let build_code = @process.run( "moon", diff --git a/src/cmd/bit/write_tree.mbt b/modules/bit/src/cmd/bit/write_tree.mbt similarity index 100% rename from src/cmd/bit/write_tree.mbt rename to modules/bit/src/cmd/bit/write_tree.mbt diff --git a/src/cmd/bit/write_tree_wbtest.mbt b/modules/bit/src/cmd/bit/write_tree_wbtest.mbt similarity index 100% rename from src/cmd/bit/write_tree_wbtest.mbt rename to modules/bit/src/cmd/bit/write_tree_wbtest.mbt diff --git a/src/cmd/git-bit/git_helpers.mbt b/modules/bit/src/cmd/git-bit/git_helpers.mbt similarity index 100% rename from src/cmd/git-bit/git_helpers.mbt rename to modules/bit/src/cmd/git-bit/git_helpers.mbt diff --git a/src/cmd/git-bit/helpers_shared.mbt b/modules/bit/src/cmd/git-bit/helpers_shared.mbt similarity index 100% rename from src/cmd/git-bit/helpers_shared.mbt rename to modules/bit/src/cmd/git-bit/helpers_shared.mbt diff --git a/src/cmd/git-bit/hub_active.mbt b/modules/bit/src/cmd/git-bit/hub_active.mbt similarity index 100% rename from src/cmd/git-bit/hub_active.mbt rename to modules/bit/src/cmd/git-bit/hub_active.mbt diff --git a/src/cmd/git-bit/hub_debug.mbt b/modules/bit/src/cmd/git-bit/hub_debug.mbt similarity index 100% rename from src/cmd/git-bit/hub_debug.mbt rename to modules/bit/src/cmd/git-bit/hub_debug.mbt diff --git a/src/cmd/git-bit/hub_github_sync.mbt b/modules/bit/src/cmd/git-bit/hub_github_sync.mbt similarity index 100% rename from src/cmd/git-bit/hub_github_sync.mbt rename to modules/bit/src/cmd/git-bit/hub_github_sync.mbt diff --git a/src/cmd/git-bit/hub_helpers.mbt b/modules/bit/src/cmd/git-bit/hub_helpers.mbt similarity index 100% rename from src/cmd/git-bit/hub_helpers.mbt rename to modules/bit/src/cmd/git-bit/hub_helpers.mbt diff --git a/src/cmd/git-bit/hub_import.mbt b/modules/bit/src/cmd/git-bit/hub_import.mbt similarity index 100% rename from src/cmd/git-bit/hub_import.mbt rename to modules/bit/src/cmd/git-bit/hub_import.mbt diff --git a/src/cmd/git-bit/hub_issue.mbt b/modules/bit/src/cmd/git-bit/hub_issue.mbt similarity index 100% rename from src/cmd/git-bit/hub_issue.mbt rename to modules/bit/src/cmd/git-bit/hub_issue.mbt diff --git a/src/cmd/git-bit/hub_libgit2_native.mbt b/modules/bit/src/cmd/git-bit/hub_libgit2_native.mbt similarity index 100% rename from src/cmd/git-bit/hub_libgit2_native.mbt rename to modules/bit/src/cmd/git-bit/hub_libgit2_native.mbt diff --git a/src/cmd/git-bit/hub_libgit2_stub.c b/modules/bit/src/cmd/git-bit/hub_libgit2_stub.c similarity index 100% rename from src/cmd/git-bit/hub_libgit2_stub.c rename to modules/bit/src/cmd/git-bit/hub_libgit2_stub.c diff --git a/src/cmd/git-bit/hub_note.mbt b/modules/bit/src/cmd/git-bit/hub_note.mbt similarity index 100% rename from src/cmd/git-bit/hub_note.mbt rename to modules/bit/src/cmd/git-bit/hub_note.mbt diff --git a/src/cmd/git-bit/hub_pr.mbt b/modules/bit/src/cmd/git-bit/hub_pr.mbt similarity index 100% rename from src/cmd/git-bit/hub_pr.mbt rename to modules/bit/src/cmd/git-bit/hub_pr.mbt diff --git a/src/cmd/git-bit/hub_remote.mbt b/modules/bit/src/cmd/git-bit/hub_remote.mbt similarity index 100% rename from src/cmd/git-bit/hub_remote.mbt rename to modules/bit/src/cmd/git-bit/hub_remote.mbt diff --git a/src/cmd/git-bit/hub_search.mbt b/modules/bit/src/cmd/git-bit/hub_search.mbt similarity index 100% rename from src/cmd/git-bit/hub_search.mbt rename to modules/bit/src/cmd/git-bit/hub_search.mbt diff --git a/src/cmd/git-bit/hub_stores.mbt b/modules/bit/src/cmd/git-bit/hub_stores.mbt similarity index 100% rename from src/cmd/git-bit/hub_stores.mbt rename to modules/bit/src/cmd/git-bit/hub_stores.mbt diff --git a/src/cmd/git-bit/hub_stores_wbtest.mbt b/modules/bit/src/cmd/git-bit/hub_stores_wbtest.mbt similarity index 100% rename from src/cmd/git-bit/hub_stores_wbtest.mbt rename to modules/bit/src/cmd/git-bit/hub_stores_wbtest.mbt diff --git a/src/cmd/git-bit/main.mbt b/modules/bit/src/cmd/git-bit/main.mbt similarity index 100% rename from src/cmd/git-bit/main.mbt rename to modules/bit/src/cmd/git-bit/main.mbt diff --git a/src/cmd/git-bit/main_js.mbt b/modules/bit/src/cmd/git-bit/main_js.mbt similarity index 100% rename from src/cmd/git-bit/main_js.mbt rename to modules/bit/src/cmd/git-bit/main_js.mbt diff --git a/src/cmd/git-bit/main_wasm.mbt b/modules/bit/src/cmd/git-bit/main_wasm.mbt similarity index 100% rename from src/cmd/git-bit/main_wasm.mbt rename to modules/bit/src/cmd/git-bit/main_wasm.mbt diff --git a/src/cmd/git-bit/moon.pkg b/modules/bit/src/cmd/git-bit/moon.pkg similarity index 79% rename from src/cmd/git-bit/moon.pkg rename to modules/bit/src/cmd/git-bit/moon.pkg index 0de1684b..caa20dcd 100644 --- a/src/cmd/git-bit/moon.pkg +++ b/modules/bit/src/cmd/git-bit/moon.pkg @@ -1,13 +1,16 @@ import { "mizchi/bit" @bitcore, - "mizchi/bit/config_parse" @config_parse, - "mizchi/bit/hash" @bithash, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/repo_ops" @bitrepo, - "mizchi/bit/string_utils" @string_utils, - "mizchi/bit/x-hq" @hq, - "mizchi/bit/x-hub" @hub, - "mizchi/bit/x-hub/native" @hub_native, + "mizchi/bit_object" @object, + "mizchi/bit_repo" @repo, + "mizchi/bit_types" @types, + "mizchi/bit_config" @config_parse, + "mizchi/bit_hash" @bithash, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_repo_ops" @bitrepo, + "mizchi/bit_utils" @string_utils, + "mizchi/bitx_hq" @hq, + "mizchi/bitx_hub" @hub, + "mizchi/bitx_hub/native" @hub_native, "moonbitlang/async" @async, "moonbitlang/async/process" @process, "moonbitlang/async/stdio" @stdio, diff --git a/src/cmd/git-bit/osfs.mbt b/modules/bit/src/cmd/git-bit/osfs.mbt similarity index 100% rename from src/cmd/git-bit/osfs.mbt rename to modules/bit/src/cmd/git-bit/osfs.mbt diff --git a/src/cmd/git-bit/pkg.generated.mbti b/modules/bit/src/cmd/git-bit/pkg.generated.mbti similarity index 100% rename from src/cmd/git-bit/pkg.generated.mbti rename to modules/bit/src/cmd/git-bit/pkg.generated.mbti diff --git a/src/cmd/git-bit/time_native.mbt b/modules/bit/src/cmd/git-bit/time_native.mbt similarity index 100% rename from src/cmd/git-bit/time_native.mbt rename to modules/bit/src/cmd/git-bit/time_native.mbt diff --git a/src/cmd/git-bit/time_stub.c b/modules/bit/src/cmd/git-bit/time_stub.c similarity index 100% rename from src/cmd/git-bit/time_stub.c rename to modules/bit/src/cmd/git-bit/time_stub.c diff --git a/src/fuzz_tests/core_fuzz_test.mbt b/modules/bit/src/fuzz_tests/core_fuzz_test.mbt similarity index 100% rename from src/fuzz_tests/core_fuzz_test.mbt rename to modules/bit/src/fuzz_tests/core_fuzz_test.mbt diff --git a/src/fuzz_tests/ignore_fuzz_test.mbt b/modules/bit/src/fuzz_tests/ignore_fuzz_test.mbt similarity index 100% rename from src/fuzz_tests/ignore_fuzz_test.mbt rename to modules/bit/src/fuzz_tests/ignore_fuzz_test.mbt diff --git a/src/fuzz_tests/lcg_test.mbt b/modules/bit/src/fuzz_tests/lcg_test.mbt similarity index 100% rename from src/fuzz_tests/lcg_test.mbt rename to modules/bit/src/fuzz_tests/lcg_test.mbt diff --git a/modules/bit/src/fuzz_tests/moon.pkg b/modules/bit/src/fuzz_tests/moon.pkg new file mode 100644 index 00000000..f05eaac8 --- /dev/null +++ b/modules/bit/src/fuzz_tests/moon.pkg @@ -0,0 +1,15 @@ +import { + "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, + "mizchi/bit_ignore" @ignore, + "moonbitlang/core/encoding/utf8" @utf8, + "mizchi/bit_config" @config_parse, + "mizchi/bit_date" @date_parse, + "mizchi/bit_repo" @repo, + "mizchi/bit_lib" @bitlib, +} + +warnings = "-29" diff --git a/src/fuzz_tests/pack_corpus_fuzz_test.mbt b/modules/bit/src/fuzz_tests/pack_corpus_fuzz_test.mbt similarity index 100% rename from src/fuzz_tests/pack_corpus_fuzz_test.mbt rename to modules/bit/src/fuzz_tests/pack_corpus_fuzz_test.mbt diff --git a/src/fuzz_tests/parsers_fuzz_test.mbt b/modules/bit/src/fuzz_tests/parsers_fuzz_test.mbt similarity index 100% rename from src/fuzz_tests/parsers_fuzz_test.mbt rename to modules/bit/src/fuzz_tests/parsers_fuzz_test.mbt diff --git a/src/fuzz_tests/pkg.generated.mbti b/modules/bit/src/fuzz_tests/pkg.generated.mbti similarity index 100% rename from src/fuzz_tests/pkg.generated.mbti rename to modules/bit/src/fuzz_tests/pkg.generated.mbti diff --git a/src/fuzz_tests/repo_objects_fuzz_test.mbt b/modules/bit/src/fuzz_tests/repo_objects_fuzz_test.mbt similarity index 100% rename from src/fuzz_tests/repo_objects_fuzz_test.mbt rename to modules/bit/src/fuzz_tests/repo_objects_fuzz_test.mbt diff --git a/src/fuzz_tests/security_test.mbt b/modules/bit/src/fuzz_tests/security_test.mbt similarity index 100% rename from src/fuzz_tests/security_test.mbt rename to modules/bit/src/fuzz_tests/security_test.mbt diff --git a/modules/bit/src/moon.pkg b/modules/bit/src/moon.pkg new file mode 100644 index 00000000..da813835 --- /dev/null +++ b/modules/bit/src/moon.pkg @@ -0,0 +1,8 @@ +import { + "mizchi/bit_io" @io, + "mizchi/bit_object" @object, + "mizchi/bit_repo" @repo, + "mizchi/bit_types" @types, +} + +warnings = "-29" diff --git a/src/pkg.generated.mbti b/modules/bit/src/pkg.generated.mbti similarity index 100% rename from src/pkg.generated.mbti rename to modules/bit/src/pkg.generated.mbti diff --git a/src/tests/git_compat_test.mbt b/modules/bit/src/tests/git_compat_test.mbt similarity index 100% rename from src/tests/git_compat_test.mbt rename to modules/bit/src/tests/git_compat_test.mbt diff --git a/src/tests/integration_test.mbt b/modules/bit/src/tests/integration_test.mbt similarity index 100% rename from src/tests/integration_test.mbt rename to modules/bit/src/tests/integration_test.mbt diff --git a/src/tests/moon.pkg b/modules/bit/src/tests/moon.pkg similarity index 53% rename from src/tests/moon.pkg rename to modules/bit/src/tests/moon.pkg index 6ca02bde..4bab5079 100644 --- a/src/tests/moon.pkg +++ b/modules/bit/src/tests/moon.pkg @@ -1,7 +1,11 @@ import { "mizchi/bit" @bit, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_io" @io, + "mizchi/bit_repo" @repo, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, "mizchi/zlib" @zlib, "moonbitlang/core/encoding/utf8", } for "test" diff --git a/src/tests/pkg.generated.mbti b/modules/bit/src/tests/pkg.generated.mbti similarity index 100% rename from src/tests/pkg.generated.mbti rename to modules/bit/src/tests/pkg.generated.mbti diff --git a/src/tests/scripts/test_with_git.sh b/modules/bit/src/tests/scripts/test_with_git.sh similarity index 100% rename from src/tests/scripts/test_with_git.sh rename to modules/bit/src/tests/scripts/test_with_git.sh diff --git a/src/tests/scripts/verify_packfile.sh b/modules/bit/src/tests/scripts/verify_packfile.sh similarity index 100% rename from src/tests/scripts/verify_packfile.sh rename to modules/bit/src/tests/scripts/verify_packfile.sh diff --git a/src/tests/upload_pack_fixture_test.mbt b/modules/bit/src/tests/upload_pack_fixture_test.mbt similarity index 100% rename from src/tests/upload_pack_fixture_test.mbt rename to modules/bit/src/tests/upload_pack_fixture_test.mbt diff --git a/src/top.mbt b/modules/bit/src/top.mbt similarity index 100% rename from src/top.mbt rename to modules/bit/src/top.mbt diff --git a/modules/bit_apply/moon.mod.json b/modules/bit_apply/moon.mod.json new file mode 100644 index 00000000..7c36ebb9 --- /dev/null +++ b/modules/bit_apply/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_apply", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "patch", "apply"], + "description": "Unified-diff patch application", + "source": "src", + "preferred-target": "native" +} diff --git a/src/apply/apply.mbt b/modules/bit_apply/src/apply.mbt similarity index 100% rename from src/apply/apply.mbt rename to modules/bit_apply/src/apply.mbt diff --git a/src/apply/apply_test.mbt b/modules/bit_apply/src/apply_test.mbt similarity index 80% rename from src/apply/apply_test.mbt rename to modules/bit_apply/src/apply_test.mbt index 0a59c946..83224772 100644 --- a/src/apply/apply_test.mbt +++ b/modules/bit_apply/src/apply_test.mbt @@ -1,7 +1,7 @@ ///| test "reverse_patch swaps add/delete lines" { let patch = "--- a/file.txt\n+++ b/file.txt\n@@ -1,3 +1,3 @@\n context\n-old line\n+new line\n context\n" - let reversed = @apply.reverse_patch(patch) + let reversed = @bit_apply.reverse_patch(patch) assert_true(reversed.contains("+++ b/file.txt")) assert_true(reversed.contains("--- a/file.txt")) assert_true(reversed.contains("+old line")) @@ -11,7 +11,7 @@ test "reverse_patch swaps add/delete lines" { ///| test "reverse_patch empty input" { - let result = @apply.reverse_patch("") + let result = @bit_apply.reverse_patch("") assert_eq(result, "") } @@ -26,7 +26,7 @@ test "parse_patches simple diff" { #|-world #|+world! #|+extra - let patches = @apply.parse_patches(patch) + let patches = @bit_apply.parse_patches(patch) assert_eq(patches.length(), 1) assert_eq(patches[0].display_name, "foo.txt") assert_eq(patches[0].additions, 2) @@ -44,7 +44,7 @@ test "parse_patches new file" { #|+++ b/new.txt #|@@ -0,0 +1 @@ #|+hello - let patches = @apply.parse_patches(patch) + let patches = @bit_apply.parse_patches(patch) assert_eq(patches.length(), 1) assert_true(patches[0].is_new) assert_eq(patches[0].new_mode, "100644") @@ -58,7 +58,7 @@ test "parse_patches rename" { #|similarity index 95% #|rename from old.txt #|rename to new.txt - let patches = @apply.parse_patches(patch) + let patches = @bit_apply.parse_patches(patch) assert_eq(patches.length(), 1) assert_true(patches[0].is_rename) assert_eq(patches[0].old_name, "old.txt") @@ -68,7 +68,7 @@ test "parse_patches rename" { ///| test "parse_diff_git_header" { - let (old_name, new_name) = @apply.parse_diff_git_header( + let (old_name, new_name) = @bit_apply.parse_diff_git_header( "a/src/main.mbt b/src/main.mbt", ) assert_eq(old_name, "src/main.mbt") @@ -77,7 +77,7 @@ test "parse_diff_git_header" { ///| test "parse_pct" { - assert_eq(@apply.parse_pct("95%"), 95) - assert_eq(@apply.parse_pct("100%"), 100) - assert_eq(@apply.parse_pct("0%"), 0) + assert_eq(@bit_apply.parse_pct("95%"), 95) + assert_eq(@bit_apply.parse_pct("100%"), 100) + assert_eq(@bit_apply.parse_pct("0%"), 0) } diff --git a/src/apply/moon.pkg b/modules/bit_apply/src/moon.pkg similarity index 100% rename from src/apply/moon.pkg rename to modules/bit_apply/src/moon.pkg diff --git a/src/apply/pkg.generated.mbti b/modules/bit_apply/src/pkg.generated.mbti similarity index 100% rename from src/apply/pkg.generated.mbti rename to modules/bit_apply/src/pkg.generated.mbti diff --git a/modules/bit_archive/moon.mod.json b/modules/bit_archive/moon.mod.json new file mode 100644 index 00000000..e98532a0 --- /dev/null +++ b/modules/bit_archive/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_archive", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "archive", "tar"], + "description": "Tar archive writing (gix-archive equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/tar/moon.pkg b/modules/bit_archive/src/moon.pkg similarity index 100% rename from src/tar/moon.pkg rename to modules/bit_archive/src/moon.pkg diff --git a/src/tar/pkg.generated.mbti b/modules/bit_archive/src/pkg.generated.mbti similarity index 100% rename from src/tar/pkg.generated.mbti rename to modules/bit_archive/src/pkg.generated.mbti diff --git a/src/tar/tar.mbt b/modules/bit_archive/src/tar.mbt similarity index 100% rename from src/tar/tar.mbt rename to modules/bit_archive/src/tar.mbt diff --git a/src/tar/tar_test.mbt b/modules/bit_archive/src/tar_test.mbt similarity index 100% rename from src/tar/tar_test.mbt rename to modules/bit_archive/src/tar_test.mbt diff --git a/modules/bit_bootstrap/moon.mod.json b/modules/bit_bootstrap/moon.mod.json new file mode 100644 index 00000000..80aab011 --- /dev/null +++ b/modules/bit_bootstrap/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_bootstrap", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "bootstrap"], + "description": "Native-stub bootstrap helpers (stdio guard)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/bootstrap/bootstrap.mbt b/modules/bit_bootstrap/src/bootstrap.mbt similarity index 100% rename from src/bootstrap/bootstrap.mbt rename to modules/bit_bootstrap/src/bootstrap.mbt diff --git a/src/bootstrap/moon.pkg b/modules/bit_bootstrap/src/moon.pkg similarity index 100% rename from src/bootstrap/moon.pkg rename to modules/bit_bootstrap/src/moon.pkg diff --git a/src/bootstrap/pkg.generated.mbti b/modules/bit_bootstrap/src/pkg.generated.mbti similarity index 100% rename from src/bootstrap/pkg.generated.mbti rename to modules/bit_bootstrap/src/pkg.generated.mbti diff --git a/src/bootstrap/stdio_guard_stub.c b/modules/bit_bootstrap/src/stdio_guard_stub.c similarity index 100% rename from src/bootstrap/stdio_guard_stub.c rename to modules/bit_bootstrap/src/stdio_guard_stub.c diff --git a/modules/bit_config/moon.mod.json b/modules/bit_config/moon.mod.json new file mode 100644 index 00000000..0eadcc9d --- /dev/null +++ b/modules/bit_config/moon.mod.json @@ -0,0 +1,13 @@ +{ + "name": "mizchi/bit_config", + "version": "0.42.2", + "deps": { + "mizchi/bit_utils": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "config", "gitconfig"], + "description": "Git config file parser (gix-config equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/config_parse/bench_test.mbt b/modules/bit_config/src/bench_test.mbt similarity index 100% rename from src/config_parse/bench_test.mbt rename to modules/bit_config/src/bench_test.mbt diff --git a/src/config_parse/config_parse.mbt b/modules/bit_config/src/config_parse.mbt similarity index 100% rename from src/config_parse/config_parse.mbt rename to modules/bit_config/src/config_parse.mbt diff --git a/modules/bit_config/src/config_parse_test.mbt b/modules/bit_config/src/config_parse_test.mbt new file mode 100644 index 00000000..b93afb97 --- /dev/null +++ b/modules/bit_config/src/config_parse_test.mbt @@ -0,0 +1,103 @@ +///| +test "parse_config_value simple" { + @test.assert_eq(@bit_config.parse_config_value(" hello "), "hello") + @test.assert_eq(@bit_config.parse_config_value(" world "), "world") +} + +///| +test "parse_config_value quoted" { + @test.assert_eq(@bit_config.parse_config_value("\"hello world\""), "hello world") + @test.assert_eq( + @bit_config.parse_config_value("\"with \\n newline\""), + "with \n newline", + ) +} + +///| +test "parse_config_value comment stripping" { + @test.assert_eq(@bit_config.parse_config_value("value # comment"), "value") + @test.assert_eq(@bit_config.parse_config_value("value ; comment"), "value") +} + +///| +test "parse_bool_keyword_value" { + @test.assert_eq(@bit_config.parse_bool_keyword_value("true"), Some(true)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("yes"), Some(true)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("on"), Some(true)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("1"), Some(true)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("false"), Some(false)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("no"), Some(false)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("off"), Some(false)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("0"), Some(false)) + @test.assert_eq(@bit_config.parse_bool_keyword_value(""), Some(false)) + @test.assert_eq(@bit_config.parse_bool_keyword_value("maybe"), None) +} + +///| +test "config_parse_size_value" { + @test.assert_eq(@bit_config.config_parse_size_value("1024"), Some(1024L)) + @test.assert_eq(@bit_config.config_parse_size_value("1k"), Some(1024L)) + @test.assert_eq(@bit_config.config_parse_size_value("1m"), Some(1048576L)) + @test.assert_eq(@bit_config.config_parse_size_value("1g"), Some(1073741824L)) + @test.assert_eq(@bit_config.config_parse_size_value(""), None) + @test.assert_eq(@bit_config.config_parse_size_value("abc"), None) +} + +///| +test "parse_config_key" { + @test.assert_eq( + @bit_config.parse_config_key("core.bare"), + Some(("core", None, "bare")), + ) + @test.assert_eq( + @bit_config.parse_config_key("remote.origin.url"), + Some(("remote", Some("origin"), "url")), + ) + @test.assert_eq(@bit_config.parse_config_key("nokey"), None) + @test.assert_eq(@bit_config.parse_config_key(""), None) + @test.assert_eq(@bit_config.parse_config_key("section."), None) +} + +///| +test "get_config_value_from_content" { + let content = + #|[core] + #| bare = false + #| autocrlf = true + #|[user] + #| name = Test User + let bare = @bit_config.get_config_value_from_content( + content, + "core.bare", + None, + false, + ) + @test.assert_eq(bare, Some("false")) + let name = @bit_config.get_config_value_from_content( + content, + "user.name", + None, + false, + ) + @test.assert_eq(name, Some("Test User")) + let missing = @bit_config.get_config_value_from_content( + content, + "core.missing", + None, + false, + ) + @test.assert_eq(missing, None) +} + +///| +test "parse_config_int_value" { + let (val, err) = @bit_config.parse_config_int_value("42") + @test.assert_eq(val, Some(42L)) + @test.assert_eq(err, None) + let (val2, err2) = @bit_config.parse_config_int_value("2k") + @test.assert_eq(val2, Some(2048L)) + @test.assert_eq(err2, None) + let (val3, err3) = @bit_config.parse_config_int_value("abc") + @test.assert_eq(val3, None) + @test.assert_eq(err3, Some("invalid unit")) +} diff --git a/src/config_parse/moon.pkg b/modules/bit_config/src/moon.pkg similarity index 85% rename from src/config_parse/moon.pkg rename to modules/bit_config/src/moon.pkg index aacce696..11193c9c 100644 --- a/src/config_parse/moon.pkg +++ b/modules/bit_config/src/moon.pkg @@ -1,5 +1,5 @@ import { - "mizchi/bit/string_utils" @string_utils, + "mizchi/bit_utils" @string_utils, "moonbitlang/core/string" @string, "moonbitlang/core/strconv", } diff --git a/src/config_parse/pkg.generated.mbti b/modules/bit_config/src/pkg.generated.mbti similarity index 100% rename from src/config_parse/pkg.generated.mbti rename to modules/bit_config/src/pkg.generated.mbti diff --git a/modules/bit_date/moon.mod.json b/modules/bit_date/moon.mod.json new file mode 100644 index 00000000..5b43d7fe --- /dev/null +++ b/modules/bit_date/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_date", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "date", "rfc2822"], + "description": "Git date parsing primitives (gix-date equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/date_parse/date_parse.mbt b/modules/bit_date/src/date_parse.mbt similarity index 100% rename from src/date_parse/date_parse.mbt rename to modules/bit_date/src/date_parse.mbt diff --git a/modules/bit_date/src/date_parse_test.mbt b/modules/bit_date/src/date_parse_test.mbt new file mode 100644 index 00000000..a3efd18f --- /dev/null +++ b/modules/bit_date/src/date_parse_test.mbt @@ -0,0 +1,57 @@ +///| +test "date_is_leap_year" { + assert_true(@bit_date.date_is_leap_year(2000)) + assert_true(@bit_date.date_is_leap_year(2024)) + assert_false(@bit_date.date_is_leap_year(1900)) + assert_false(@bit_date.date_is_leap_year(2023)) +} + +///| +test "days_since_epoch known dates" { + // 1970-01-01 = day 0 + @test.assert_eq(@bit_date.days_since_epoch(1970, 1, 1), 0) + // 1970-01-02 = day 1 + @test.assert_eq(@bit_date.days_since_epoch(1970, 1, 2), 1) + // 2000-01-01 = 10957 days + @test.assert_eq(@bit_date.days_since_epoch(2000, 1, 1), 10957) +} + +///| +test "month_name_to_number" { + @test.assert_eq(@bit_date.month_name_to_number("jan"), Some(1)) + @test.assert_eq(@bit_date.month_name_to_number("January"), Some(1)) + @test.assert_eq(@bit_date.month_name_to_number("dec"), Some(12)) + @test.assert_eq(@bit_date.month_name_to_number("December"), Some(12)) + @test.assert_eq(@bit_date.month_name_to_number("may"), Some(5)) + @test.assert_eq(@bit_date.month_name_to_number("xyz"), None) + @test.assert_eq(@bit_date.month_name_to_number(""), None) +} + +///| +test "parse_approxidate ISO 8601" { + // 2024-01-15T00:00:00 => days_since_epoch(2024,1,15) * 86400 + let result = @bit_date.parse_approxidate("2024-01-15T00:00:00", 0L) + assert_true(result is Some(_)) + let ts = result.unwrap() + let expected = @bit_date.days_since_epoch(2024, 1, 15).to_int64() * 86400L + @test.assert_eq(ts, expected) +} + +///| +test "parse_approxidate relative" { + let now = 1000000L + let result = @bit_date.parse_approxidate("3 days ago", now) + @test.assert_eq(result, Some(now - 3L * 86400L)) + let yesterday = @bit_date.parse_approxidate("yesterday", now) + @test.assert_eq(yesterday, Some(now - 86400L)) + let now_result = @bit_date.parse_approxidate("now", now) + @test.assert_eq(now_result, Some(now)) +} + +///| +test "parse_approxidate human readable" { + let result = @bit_date.parse_approxidate("Jan 1 2000", 0L) + assert_true(result is Some(_)) + let expected = @bit_date.days_since_epoch(2000, 1, 1).to_int64() * 86400L + @test.assert_eq(result.unwrap(), expected) +} diff --git a/src/date_parse/moon.pkg b/modules/bit_date/src/moon.pkg similarity index 100% rename from src/date_parse/moon.pkg rename to modules/bit_date/src/moon.pkg diff --git a/src/date_parse/pkg.generated.mbti b/modules/bit_date/src/pkg.generated.mbti similarity index 100% rename from src/date_parse/pkg.generated.mbti rename to modules/bit_date/src/pkg.generated.mbti diff --git a/modules/bit_diff/moon.mod.json b/modules/bit_diff/moon.mod.json new file mode 100644 index 00000000..bd726e5a --- /dev/null +++ b/modules/bit_diff/moon.mod.json @@ -0,0 +1,20 @@ +{ + "name": "mizchi/bit_diff", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_diff_core": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_utils": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "diff"], + "description": "High-level diff / show", + "source": "src", + "preferred-target": "native" +} diff --git a/src/diff/bench_test.mbt b/modules/bit_diff/src/bench_test.mbt similarity index 100% rename from src/diff/bench_test.mbt rename to modules/bit_diff/src/bench_test.mbt diff --git a/src/diff/diff_ops.mbt b/modules/bit_diff/src/diff_ops.mbt similarity index 100% rename from src/diff/diff_ops.mbt rename to modules/bit_diff/src/diff_ops.mbt diff --git a/modules/bit_diff/src/moon.pkg b/modules/bit_diff/src/moon.pkg new file mode 100644 index 00000000..fb7877c1 --- /dev/null +++ b/modules/bit_diff/src/moon.pkg @@ -0,0 +1,18 @@ +import { + "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_diff_core" @diff_core, + "mizchi/bit_io" @bitio, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_utils" @string_utils, + "moonbitlang/core/bench" @bench, + "moonbitlang/core/encoding/utf8" @utf8, +} + +warnings = "-29" + +options( + targets: { "bench_test.mbt": [ "native" ] }, +) diff --git a/src/diff/pkg.generated.mbti b/modules/bit_diff/src/pkg.generated.mbti similarity index 100% rename from src/diff/pkg.generated.mbti rename to modules/bit_diff/src/pkg.generated.mbti diff --git a/modules/bit_diff3/moon.mod.json b/modules/bit_diff3/moon.mod.json new file mode 100644 index 00000000..a0deb8df --- /dev/null +++ b/modules/bit_diff3/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_diff3", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "merge", "diff3"], + "description": "3-way merge primitives (gix-merge low-level equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/diff3/diff3.mbt b/modules/bit_diff3/src/diff3.mbt similarity index 100% rename from src/diff3/diff3.mbt rename to modules/bit_diff3/src/diff3.mbt diff --git a/src/diff3/diff3_wbtest.mbt b/modules/bit_diff3/src/diff3_wbtest.mbt similarity index 100% rename from src/diff3/diff3_wbtest.mbt rename to modules/bit_diff3/src/diff3_wbtest.mbt diff --git a/src/diff3/moon.pkg b/modules/bit_diff3/src/moon.pkg similarity index 100% rename from src/diff3/moon.pkg rename to modules/bit_diff3/src/moon.pkg diff --git a/src/diff3/pkg.generated.mbti b/modules/bit_diff3/src/pkg.generated.mbti similarity index 100% rename from src/diff3/pkg.generated.mbti rename to modules/bit_diff3/src/pkg.generated.mbti diff --git a/modules/bit_diff_core/moon.mod.json b/modules/bit_diff_core/moon.mod.json new file mode 100644 index 00000000..595e06c9 --- /dev/null +++ b/modules/bit_diff_core/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_diff_core", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "diff"], + "description": "Low-level diff algorithm (gix-diff equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/diff_core/bench_test.mbt b/modules/bit_diff_core/src/bench_test.mbt similarity index 100% rename from src/diff_core/bench_test.mbt rename to modules/bit_diff_core/src/bench_test.mbt diff --git a/src/diff_core/diff_core.mbt b/modules/bit_diff_core/src/diff_core.mbt similarity index 100% rename from src/diff_core/diff_core.mbt rename to modules/bit_diff_core/src/diff_core.mbt diff --git a/src/diff_core/diff_core_test.mbt b/modules/bit_diff_core/src/diff_core_test.mbt similarity index 58% rename from src/diff_core/diff_core_test.mbt rename to modules/bit_diff_core/src/diff_core_test.mbt index 0f8f74fe..cfa86787 100644 --- a/src/diff_core/diff_core_test.mbt +++ b/modules/bit_diff_core/src/diff_core_test.mbt @@ -2,27 +2,27 @@ test "myers_diff identical" { let old = ["a", "b", "c"] let new_ = ["a", "b", "c"] - let edits = @diff_core.myers_diff(old, new_) + let edits = @bit_diff_core.myers_diff(old, new_) assert_eq(edits.length(), 3) // All should be Keep for edit in edits { - assert_true(edit is @diff_core.DiffEditOp::Keep(_, _)) + assert_true(edit is @bit_diff_core.DiffEditOp::Keep(_, _)) } } ///| test "myers_diff empty inputs" { - let edits = @diff_core.myers_diff([], []) + let edits = @bit_diff_core.myers_diff([], []) assert_eq(edits.length(), 0) - let inserts = @diff_core.myers_diff([], ["a", "b"]) + let inserts = @bit_diff_core.myers_diff([], ["a", "b"]) assert_eq(inserts.length(), 2) for edit in inserts { - assert_true(edit is @diff_core.DiffEditOp::Insert(_)) + assert_true(edit is @bit_diff_core.DiffEditOp::Insert(_)) } - let deletes = @diff_core.myers_diff(["a", "b"], []) + let deletes = @bit_diff_core.myers_diff(["a", "b"], []) assert_eq(deletes.length(), 2) for edit in deletes { - assert_true(edit is @diff_core.DiffEditOp::Delete(_)) + assert_true(edit is @bit_diff_core.DiffEditOp::Delete(_)) } } @@ -30,15 +30,15 @@ test "myers_diff empty inputs" { test "myers_diff simple change" { let old = ["a", "b", "c"] let new_ = ["a", "x", "c"] - let edits = @diff_core.myers_diff(old, new_) + let edits = @bit_diff_core.myers_diff(old, new_) let mut deletes = 0 let mut inserts = 0 let mut keeps = 0 for edit in edits { match edit { - @diff_core.DiffEditOp::Keep(_, _) => keeps += 1 - @diff_core.DiffEditOp::Delete(_) => deletes += 1 - @diff_core.DiffEditOp::Insert(_) => inserts += 1 + @bit_diff_core.DiffEditOp::Keep(_, _) => keeps += 1 + @bit_diff_core.DiffEditOp::Delete(_) => deletes += 1 + @bit_diff_core.DiffEditOp::Insert(_) => inserts += 1 } } assert_eq(keeps, 2) @@ -49,14 +49,14 @@ test "myers_diff simple change" { ///| test "split_lines" { let data = b"line1\nline2\nline3\n" - let lines = @diff_core.split_lines(data) + let lines = @bit_diff_core.split_lines(data) assert_eq(lines.length(), 3) assert_eq(lines[0], "line1") assert_eq(lines[1], "line2") assert_eq(lines[2], "line3") // No trailing newline -> no empty trailing element let data2 = b"a\nb" - let lines2 = @diff_core.split_lines(data2) + let lines2 = @bit_diff_core.split_lines(data2) assert_eq(lines2.length(), 2) assert_eq(lines2[0], "a") assert_eq(lines2[1], "b") @@ -64,10 +64,10 @@ test "split_lines" { ///| test "count_lines" { - assert_eq(@diff_core.count_lines(b"hello\nworld\n"), 2) - assert_eq(@diff_core.count_lines(b"hello\nworld"), 2) - assert_eq(@diff_core.count_lines(b"hello"), 1) - assert_eq(@diff_core.count_lines(b""), 0) + assert_eq(@bit_diff_core.count_lines(b"hello\nworld\n"), 2) + assert_eq(@bit_diff_core.count_lines(b"hello\nworld"), 2) + assert_eq(@bit_diff_core.count_lines(b"hello"), 1) + assert_eq(@bit_diff_core.count_lines(b""), 0) } ///| @@ -75,7 +75,7 @@ test "unified_hunks basic" { let old_content : Bytes = b"line1\nline2\nline3\n" let new_content : Bytes = b"line1\nmodified\nline3\n" let out : Array[String] = [] - @diff_core.unified_hunks(out, Some(old_content), Some(new_content)) + @bit_diff_core.unified_hunks(out, Some(old_content), Some(new_content)) assert_true(out.length() > 0) // Should contain hunk header assert_true(out[0].has_prefix("@@")) diff --git a/src/diff_core/moon.pkg b/modules/bit_diff_core/src/moon.pkg similarity index 100% rename from src/diff_core/moon.pkg rename to modules/bit_diff_core/src/moon.pkg diff --git a/src/diff_core/pkg.generated.mbti b/modules/bit_diff_core/src/pkg.generated.mbti similarity index 100% rename from src/diff_core/pkg.generated.mbti rename to modules/bit_diff_core/src/pkg.generated.mbti diff --git a/modules/bit_fast_import/moon.mod.json b/modules/bit_fast_import/moon.mod.json new file mode 100644 index 00000000..73c19df8 --- /dev/null +++ b/modules/bit_fast_import/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_fast_import", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "fast-import"], + "description": "git fast-import stream parser", + "source": "src", + "preferred-target": "native" +} diff --git a/src/fast_import/fast_import_parse.mbt b/modules/bit_fast_import/src/fast_import_parse.mbt similarity index 100% rename from src/fast_import/fast_import_parse.mbt rename to modules/bit_fast_import/src/fast_import_parse.mbt diff --git a/src/fast_import/fast_import_parse_test.mbt b/modules/bit_fast_import/src/fast_import_parse_test.mbt similarity index 100% rename from src/fast_import/fast_import_parse_test.mbt rename to modules/bit_fast_import/src/fast_import_parse_test.mbt diff --git a/src/fast_import/moon.pkg b/modules/bit_fast_import/src/moon.pkg similarity index 100% rename from src/fast_import/moon.pkg rename to modules/bit_fast_import/src/moon.pkg diff --git a/src/fast_import/pkg.generated.mbti b/modules/bit_fast_import/src/pkg.generated.mbti similarity index 100% rename from src/fast_import/pkg.generated.mbti rename to modules/bit_fast_import/src/pkg.generated.mbti diff --git a/modules/bit_fingerprint/moon.mod.json b/modules/bit_fingerprint/moon.mod.json new file mode 100644 index 00000000..20ec71fa --- /dev/null +++ b/modules/bit_fingerprint/moon.mod.json @@ -0,0 +1,19 @@ +{ + "name": "mizchi/bit_fingerprint", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_utils": "0.42.2", + "moonbitlang/async": "0.16.6" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "workspace"], + "description": "Workspace fingerprint", + "source": "src", + "preferred-target": "native" +} diff --git a/src/fingerprint/fingerprint.mbt b/modules/bit_fingerprint/src/fingerprint.mbt similarity index 100% rename from src/fingerprint/fingerprint.mbt rename to modules/bit_fingerprint/src/fingerprint.mbt diff --git a/src/fingerprint/fingerprint_wbtest.mbt b/modules/bit_fingerprint/src/fingerprint_wbtest.mbt similarity index 100% rename from src/fingerprint/fingerprint_wbtest.mbt rename to modules/bit_fingerprint/src/fingerprint_wbtest.mbt diff --git a/src/fingerprint/moon.pkg b/modules/bit_fingerprint/src/moon.pkg similarity index 67% rename from src/fingerprint/moon.pkg rename to modules/bit_fingerprint/src/moon.pkg index f0d142c5..645ea47e 100644 --- a/src/fingerprint/moon.pkg +++ b/modules/bit_fingerprint/src/moon.pkg @@ -1,8 +1,10 @@ import { "mizchi/bit" @bit, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/string_utils" @string_utils, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_utils" @string_utils, + "mizchi/bit_osfs" @osfs, "moonbitlang/async" @async, "moonbitlang/async/process" @process, "moonbitlang/core/encoding/utf8" @utf8, diff --git a/src/fingerprint/pkg.generated.mbti b/modules/bit_fingerprint/src/pkg.generated.mbti similarity index 100% rename from src/fingerprint/pkg.generated.mbti rename to modules/bit_fingerprint/src/pkg.generated.mbti diff --git a/modules/bit_grep/moon.mod.json b/modules/bit_grep/moon.mod.json new file mode 100644 index 00000000..06db9b1d --- /dev/null +++ b/modules/bit_grep/moon.mod.json @@ -0,0 +1,19 @@ +{ + "name": "mizchi/bit_grep", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_ignore": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo_ops": "0.42.2", + "mizchi/bit_types": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "grep"], + "description": "Grep engine over the working tree", + "source": "src", + "preferred-target": "native" +} diff --git a/src/grep/moon.pkg b/modules/bit_grep/src/moon.pkg similarity index 60% rename from src/grep/moon.pkg rename to modules/bit_grep/src/moon.pkg index e1735823..5d845fae 100644 --- a/src/grep/moon.pkg +++ b/modules/bit_grep/src/moon.pkg @@ -1,9 +1,11 @@ import { "mizchi/bit" @bit, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/repo_ops" @bitrepo, - "mizchi/bit/ignore" @ignore, - "mizchi/bit/io" @bitio, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_repo_ops" @bitrepo, + "mizchi/bit_ignore" @ignore, + "mizchi/bit_io" @bitio, "moonbitlang/core/encoding/utf8" @utf8, } diff --git a/src/grep/pattern.mbt b/modules/bit_grep/src/pattern.mbt similarity index 100% rename from src/grep/pattern.mbt rename to modules/bit_grep/src/pattern.mbt diff --git a/src/grep/pattern_wbtest.mbt b/modules/bit_grep/src/pattern_wbtest.mbt similarity index 100% rename from src/grep/pattern_wbtest.mbt rename to modules/bit_grep/src/pattern_wbtest.mbt diff --git a/src/grep/pkg.generated.mbti b/modules/bit_grep/src/pkg.generated.mbti similarity index 100% rename from src/grep/pkg.generated.mbti rename to modules/bit_grep/src/pkg.generated.mbti diff --git a/src/grep/search.mbt b/modules/bit_grep/src/search.mbt similarity index 100% rename from src/grep/search.mbt rename to modules/bit_grep/src/search.mbt diff --git a/src/grep/search_wbtest.mbt b/modules/bit_grep/src/search_wbtest.mbt similarity index 100% rename from src/grep/search_wbtest.mbt rename to modules/bit_grep/src/search_wbtest.mbt diff --git a/modules/bit_hash/moon.mod.json b/modules/bit_hash/moon.mod.json new file mode 100644 index 00000000..4fd2435e --- /dev/null +++ b/modules/bit_hash/moon.mod.json @@ -0,0 +1,13 @@ +{ + "name": "mizchi/bit_hash", + "version": "0.42.2", + "deps": { + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "hash", "sha1", "sha256"], + "description": "Git object hashing primitives (gix-hash equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/hash/bench_test.mbt b/modules/bit_hash/src/bench_test.mbt similarity index 100% rename from src/hash/bench_test.mbt rename to modules/bit_hash/src/bench_test.mbt diff --git a/src/hash/hex.mbt b/modules/bit_hash/src/hex.mbt similarity index 100% rename from src/hash/hex.mbt rename to modules/bit_hash/src/hex.mbt diff --git a/src/hash/hex_test.mbt b/modules/bit_hash/src/hex_test.mbt similarity index 100% rename from src/hash/hex_test.mbt rename to modules/bit_hash/src/hex_test.mbt diff --git a/src/hash/moon.pkg b/modules/bit_hash/src/moon.pkg similarity index 100% rename from src/hash/moon.pkg rename to modules/bit_hash/src/moon.pkg diff --git a/src/hash/pkg.generated.mbti b/modules/bit_hash/src/pkg.generated.mbti similarity index 100% rename from src/hash/pkg.generated.mbti rename to modules/bit_hash/src/pkg.generated.mbti diff --git a/src/hash/sha1.mbt b/modules/bit_hash/src/sha1.mbt similarity index 100% rename from src/hash/sha1.mbt rename to modules/bit_hash/src/sha1.mbt diff --git a/src/hash/sha1_test.mbt b/modules/bit_hash/src/sha1_test.mbt similarity index 100% rename from src/hash/sha1_test.mbt rename to modules/bit_hash/src/sha1_test.mbt diff --git a/src/hash/sha256.mbt b/modules/bit_hash/src/sha256.mbt similarity index 100% rename from src/hash/sha256.mbt rename to modules/bit_hash/src/sha256.mbt diff --git a/src/hash/sha256_test.mbt b/modules/bit_hash/src/sha256_test.mbt similarity index 100% rename from src/hash/sha256_test.mbt rename to modules/bit_hash/src/sha256_test.mbt diff --git a/modules/bit_ignore/moon.mod.json b/modules/bit_ignore/moon.mod.json new file mode 100644 index 00000000..ede365ba --- /dev/null +++ b/modules/bit_ignore/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_ignore", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "gitignore", "glob"], + "description": ".gitignore + glob matching (gix-ignore + gix-glob equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/ignore/bench_test.mbt b/modules/bit_ignore/src/bench_test.mbt similarity index 86% rename from src/ignore/bench_test.mbt rename to modules/bit_ignore/src/bench_test.mbt index ce770428..238ae40f 100644 --- a/src/ignore/bench_test.mbt +++ b/modules/bit_ignore/src/bench_test.mbt @@ -3,21 +3,21 @@ ///| test "bench match_glob simple" (b : @bench.T) { b.bench(fn() { - b.keep(@ignore.match_glob("*.txt", "some/deep/path/to/file.txt")) + b.keep(@bit_ignore.match_glob("*.txt", "some/deep/path/to/file.txt")) }) } ///| test "bench match_glob no match" (b : @bench.T) { b.bench(fn() { - b.keep(@ignore.match_glob("*.txt", "some/deep/path/to/file.rs")) + b.keep(@bit_ignore.match_glob("*.txt", "some/deep/path/to/file.rs")) }) } ///| test "bench match_glob double star" (b : @bench.T) { b.bench(fn() { - b.keep(@ignore.match_glob("**/*.test.js", "src/components/Button.test.js")) + b.keep(@bit_ignore.match_glob("**/*.test.js", "src/components/Button.test.js")) }) } @@ -48,7 +48,7 @@ test "bench parse gitignore 20 rules" (b : @bench.T) { #|.DS_Store #|Thumbs.db #| - b.bench(fn() { b.keep(@ignore.parse(content, "")) }) + b.bench(fn() { b.keep(@bit_ignore.parse(content, "")) }) } ///| @@ -75,7 +75,7 @@ test "bench is_ignored 20 rules not ignored" (b : @bench.T) { #|.env #|coverage/ #| - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", content) b.bench(fn() { b.keep(m.is_ignored("src/components/Button.tsx", false)) }) } @@ -104,7 +104,7 @@ test "bench is_ignored 20 rules ignored" (b : @bench.T) { #|.env #|coverage/ #| - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", content) b.bench(fn() { b.keep(m.is_ignored("node_modules/express/lib/index.js", false)) @@ -113,7 +113,7 @@ test "bench is_ignored 20 rules ignored" (b : @bench.T) { ///| test "bench is_ignored nested bases" (b : @bench.T) { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "*.log\n*.tmp\n/build\n") m.add_rules("src", "*.generated.*\n!keep.generated.ts\n") m.add_rules("src/vendor", "*\n!README.md\n") @@ -144,7 +144,7 @@ test "bench 1000 paths against 20 rules" (b : @bench.T) { #|coverage/ #|*.min.js #| - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", content) let paths : Array[String] = [] for i in 0..<1000 { diff --git a/src/ignore/ignore.mbt b/modules/bit_ignore/src/ignore.mbt similarity index 100% rename from src/ignore/ignore.mbt rename to modules/bit_ignore/src/ignore.mbt diff --git a/src/ignore/ignore_test.mbt b/modules/bit_ignore/src/ignore_test.mbt similarity index 72% rename from src/ignore/ignore_test.mbt rename to modules/bit_ignore/src/ignore_test.mbt index e3d1ab4e..0d25b58c 100644 --- a/src/ignore/ignore_test.mbt +++ b/modules/bit_ignore/src/ignore_test.mbt @@ -1,7 +1,7 @@ ///| /// Tests for gitignore pattern matching test "parse simple patterns" { - let rules = @ignore.parse("*.txt\nnode_modules/\n", "") + let rules = @bit_ignore.parse("*.txt\nnode_modules/\n", "") assert_eq(rules.length(), 2) assert_eq(rules[0].pattern, "*.txt") assert_eq(rules[0].dir_only, false) @@ -11,7 +11,7 @@ test "parse simple patterns" { ///| test "parse negation" { - let rules = @ignore.parse("*.log\n!important.log\n", "") + let rules = @bit_ignore.parse("*.log\n!important.log\n", "") assert_eq(rules.length(), 2) assert_eq(rules[0].negated, false) assert_eq(rules[1].negated, true) @@ -20,7 +20,7 @@ test "parse negation" { ///| test "parse anchored patterns" { - let rules = @ignore.parse("/build\n*.o\n", "") + let rules = @bit_ignore.parse("/build\n*.o\n", "") assert_eq(rules.length(), 2) assert_eq(rules[0].anchored, true) assert_eq(rules[0].pattern, "build") @@ -29,14 +29,14 @@ test "parse anchored patterns" { ///| test "parse comments and empty lines" { - let rules = @ignore.parse("# comment\n\n*.txt\n \n", "") + let rules = @bit_ignore.parse("# comment\n\n*.txt\n \n", "") assert_eq(rules.length(), 1) assert_eq(rules[0].pattern, "*.txt") } ///| test "parse escaped characters" { - let rules = @ignore.parse("\\!important\n\\#hash\n", "") + let rules = @bit_ignore.parse("\\!important\n\\#hash\n", "") assert_eq(rules.length(), 2) assert_eq(rules[0].pattern, "!important") assert_eq(rules[0].negated, false) @@ -45,30 +45,30 @@ test "parse escaped characters" { ///| test "match_glob simple" { - assert_true(@ignore.match_glob("*.txt", "file.txt")) - assert_true(@ignore.match_glob("*.txt", "a.txt")) - assert_false(@ignore.match_glob("*.txt", "file.log")) - assert_false(@ignore.match_glob("*.txt", "txt")) + assert_true(@bit_ignore.match_glob("*.txt", "file.txt")) + assert_true(@bit_ignore.match_glob("*.txt", "a.txt")) + assert_false(@bit_ignore.match_glob("*.txt", "file.log")) + assert_false(@bit_ignore.match_glob("*.txt", "txt")) } ///| test "match_glob question mark" { - assert_true(@ignore.match_glob("file?.txt", "file1.txt")) - assert_true(@ignore.match_glob("file?.txt", "fileA.txt")) - assert_false(@ignore.match_glob("file?.txt", "file10.txt")) - assert_false(@ignore.match_glob("file?.txt", "file.txt")) + assert_true(@bit_ignore.match_glob("file?.txt", "file1.txt")) + assert_true(@bit_ignore.match_glob("file?.txt", "fileA.txt")) + assert_false(@bit_ignore.match_glob("file?.txt", "file10.txt")) + assert_false(@bit_ignore.match_glob("file?.txt", "file.txt")) } ///| test "match_glob multiple wildcards" { - assert_true(@ignore.match_glob("*.min.*", "app.min.js")) - assert_true(@ignore.match_glob("*.min.*", "lib.min.css")) - assert_false(@ignore.match_glob("*.min.*", "app.js")) + assert_true(@bit_ignore.match_glob("*.min.*", "app.min.js")) + assert_true(@bit_ignore.match_glob("*.min.*", "lib.min.css")) + assert_false(@bit_ignore.match_glob("*.min.*", "app.js")) } ///| test "matcher basic" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "*.log\nnode_modules/\n") assert_true(m.is_ignored("debug.log", false)) assert_true(m.is_ignored("logs/error.log", false)) @@ -79,7 +79,7 @@ test "matcher basic" { ///| test "matcher negation" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "*.log\n!important.log\n") assert_true(m.is_ignored("debug.log", false)) assert_false(m.is_ignored("important.log", false)) @@ -87,7 +87,7 @@ test "matcher negation" { ///| test "matcher anchored pattern" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "/build\n") assert_true(m.is_ignored("build", true)) assert_false(m.is_ignored("src/build", true)) @@ -95,7 +95,7 @@ test "matcher anchored pattern" { ///| test "matcher with base" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("src", "*.bak\n") assert_true(m.is_ignored("src/file.bak", false)) assert_false(m.is_ignored("file.bak", false)) @@ -104,7 +104,7 @@ test "matcher with base" { ///| test "matcher double star" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "**/test\n") assert_true(m.is_ignored("test", true)) assert_true(m.is_ignored("src/test", true)) @@ -113,7 +113,7 @@ test "matcher double star" { ///| test "matcher truncate" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "*.txt\n") let len = m.len() m.add_rules("src", "*.bak\n") @@ -125,7 +125,7 @@ test "matcher truncate" { ///| test "git-aware glob filter" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "*.log\n/dist/\nbuild/\n") m.add_rules("src", "*.generated.*\n!keep.generated.ts\n") let files : Array[String] = [ @@ -140,7 +140,7 @@ test "git-aware glob filter" { ///| test "directory traversal backtracking" { - let m = @ignore.Matcher::new() + let m = @bit_ignore.Matcher::new() m.add_rules("", "*.tmp\n") let saved = m.len() m.add_rules("src", "*.bak\n") diff --git a/src/ignore/moon.pkg b/modules/bit_ignore/src/moon.pkg similarity index 100% rename from src/ignore/moon.pkg rename to modules/bit_ignore/src/moon.pkg diff --git a/src/ignore/pkg.generated.mbti b/modules/bit_ignore/src/pkg.generated.mbti similarity index 100% rename from src/ignore/pkg.generated.mbti rename to modules/bit_ignore/src/pkg.generated.mbti diff --git a/modules/bit_io/moon.mod.json b/modules/bit_io/moon.mod.json new file mode 100644 index 00000000..c8ab0e98 --- /dev/null +++ b/modules/bit_io/moon.mod.json @@ -0,0 +1,20 @@ +{ + "name": "mizchi/bit_io", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_pack": "0.42.2", + "mizchi/bit_protocol": "0.42.2", + "mizchi/bit_types": "0.42.2", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "fs", "io"], + "description": "Abstract FileSystem traits + native HTTP/FS bindings (gix-fs abstract)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/io/env_provider.mbt b/modules/bit_io/src/env_provider.mbt similarity index 100% rename from src/io/env_provider.mbt rename to modules/bit_io/src/env_provider.mbt diff --git a/src/io/fs.mbt b/modules/bit_io/src/fs.mbt similarity index 100% rename from src/io/fs.mbt rename to modules/bit_io/src/fs.mbt diff --git a/src/io/http_client.mbt b/modules/bit_io/src/http_client.mbt similarity index 100% rename from src/io/http_client.mbt rename to modules/bit_io/src/http_client.mbt diff --git a/src/io/moon.pkg b/modules/bit_io/src/moon.pkg similarity index 54% rename from src/io/moon.pkg rename to modules/bit_io/src/moon.pkg index 967353de..2b16a218 100644 --- a/src/io/moon.pkg +++ b/modules/bit_io/src/moon.pkg @@ -1,5 +1,6 @@ import { - "mizchi/bit/types" @types, + "mizchi/bit_types" @types, + "mizchi/bit_object" @object, "moonbitlang/core/encoding/utf8" @utf8, } diff --git a/src/io/native/env_native.mbt b/modules/bit_io/src/native/env_native.mbt similarity index 100% rename from src/io/native/env_native.mbt rename to modules/bit_io/src/native/env_native.mbt diff --git a/src/io/native/http_client_native.mbt b/modules/bit_io/src/native/http_client_native.mbt similarity index 100% rename from src/io/native/http_client_native.mbt rename to modules/bit_io/src/native/http_client_native.mbt diff --git a/src/io/native/init_native.mbt b/modules/bit_io/src/native/init_native.mbt similarity index 100% rename from src/io/native/init_native.mbt rename to modules/bit_io/src/native/init_native.mbt diff --git a/src/io/native/lstat_stub.c b/modules/bit_io/src/native/lstat_stub.c similarity index 100% rename from src/io/native/lstat_stub.c rename to modules/bit_io/src/native/lstat_stub.c diff --git a/src/io/native/moon.pkg b/modules/bit_io/src/native/moon.pkg similarity index 84% rename from src/io/native/moon.pkg rename to modules/bit_io/src/native/moon.pkg index 2a22d7d4..251bc232 100644 --- a/src/io/native/moon.pkg +++ b/modules/bit_io/src/native/moon.pkg @@ -1,8 +1,11 @@ import { "mizchi/bit" @bit, - "mizchi/bit/io" @bitio, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @bitio, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, "moonbitlang/async" @async, "moonbitlang/async/fs" @afs, "moonbitlang/async/http" @http, diff --git a/src/io/native/pkg.generated.mbti b/modules/bit_io/src/native/pkg.generated.mbti similarity index 100% rename from src/io/native/pkg.generated.mbti rename to modules/bit_io/src/native/pkg.generated.mbti diff --git a/src/io/native/readdir_stub.c b/modules/bit_io/src/native/readdir_stub.c similarity index 100% rename from src/io/native/readdir_stub.c rename to modules/bit_io/src/native/readdir_stub.c diff --git a/src/io/native/remote.mbt b/modules/bit_io/src/native/remote.mbt similarity index 100% rename from src/io/native/remote.mbt rename to modules/bit_io/src/native/remote.mbt diff --git a/src/io/native/upload_pack_http.mbt b/modules/bit_io/src/native/upload_pack_http.mbt similarity index 100% rename from src/io/native/upload_pack_http.mbt rename to modules/bit_io/src/native/upload_pack_http.mbt diff --git a/src/io/native/upload_pack_http_common.mbt b/modules/bit_io/src/native/upload_pack_http_common.mbt similarity index 100% rename from src/io/native/upload_pack_http_common.mbt rename to modules/bit_io/src/native/upload_pack_http_common.mbt diff --git a/src/io/native/upload_pack_http_common_wbtest.mbt b/modules/bit_io/src/native/upload_pack_http_common_wbtest.mbt similarity index 100% rename from src/io/native/upload_pack_http_common_wbtest.mbt rename to modules/bit_io/src/native/upload_pack_http_common_wbtest.mbt diff --git a/src/io/native/upload_pack_process.mbt b/modules/bit_io/src/native/upload_pack_process.mbt similarity index 100% rename from src/io/native/upload_pack_process.mbt rename to modules/bit_io/src/native/upload_pack_process.mbt diff --git a/src/io/native/upload_pack_process_wbtest.mbt b/modules/bit_io/src/native/upload_pack_process_wbtest.mbt similarity index 100% rename from src/io/native/upload_pack_process_wbtest.mbt rename to modules/bit_io/src/native/upload_pack_process_wbtest.mbt diff --git a/src/io/native/upload_pack_remote_native.mbt b/modules/bit_io/src/native/upload_pack_remote_native.mbt similarity index 100% rename from src/io/native/upload_pack_remote_native.mbt rename to modules/bit_io/src/native/upload_pack_remote_native.mbt diff --git a/src/io/native/worktree_probe_native.mbt b/modules/bit_io/src/native/worktree_probe_native.mbt similarity index 100% rename from src/io/native/worktree_probe_native.mbt rename to modules/bit_io/src/native/worktree_probe_native.mbt diff --git a/src/io/pkg.generated.mbti b/modules/bit_io/src/pkg.generated.mbti similarity index 100% rename from src/io/pkg.generated.mbti rename to modules/bit_io/src/pkg.generated.mbti diff --git a/src/io/test_fs.mbt b/modules/bit_io/src/test_fs.mbt similarity index 100% rename from src/io/test_fs.mbt rename to modules/bit_io/src/test_fs.mbt diff --git a/src/io/worktree_probe.mbt b/modules/bit_io/src/worktree_probe.mbt similarity index 100% rename from src/io/worktree_probe.mbt rename to modules/bit_io/src/worktree_probe.mbt diff --git a/modules/bit_lib/moon.mod.json b/modules/bit_lib/moon.mod.json new file mode 100644 index 00000000..740e856f --- /dev/null +++ b/modules/bit_lib/moon.mod.json @@ -0,0 +1,33 @@ +{ + "name": "mizchi/bit_lib", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_date": "0.42.2", + "mizchi/bit_diff3": "0.42.2", + "mizchi/bit_diff_core": "0.42.2", + "mizchi/bit_hash": "0.42.2", + "mizchi/bit_ignore": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "mizchi/bit_pack": "0.42.2", + "mizchi/bit_protocol": "0.42.2", + "mizchi/bit_refs": "0.42.2", + "mizchi/bit_reftable": "0.42.2", + "mizchi/bit_remote": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_utils": "0.42.2", + "mizchi/bit_vfs": "0.42.2", + "mizchi/zlib": "0.4.5", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "porcelain"], + "description": "Porcelain (gix-equivalent): high-level Git operations facade", + "source": "src", + "preferred-target": "native" +} diff --git a/src/lib/bench_config_test.mbt b/modules/bit_lib/src/bench_config_test.mbt similarity index 100% rename from src/lib/bench_config_test.mbt rename to modules/bit_lib/src/bench_config_test.mbt diff --git a/src/lib/bench_index_diff_test.mbt b/modules/bit_lib/src/bench_index_diff_test.mbt similarity index 100% rename from src/lib/bench_index_diff_test.mbt rename to modules/bit_lib/src/bench_index_diff_test.mbt diff --git a/src/lib/bench_ops_test.mbt b/modules/bit_lib/src/bench_ops_test.mbt similarity index 100% rename from src/lib/bench_ops_test.mbt rename to modules/bit_lib/src/bench_ops_test.mbt diff --git a/src/lib/bench_status_test.mbt b/modules/bit_lib/src/bench_status_test.mbt similarity index 100% rename from src/lib/bench_status_test.mbt rename to modules/bit_lib/src/bench_status_test.mbt diff --git a/src/lib/bench_working_files_test.mbt b/modules/bit_lib/src/bench_working_files_test.mbt similarity index 100% rename from src/lib/bench_working_files_test.mbt rename to modules/bit_lib/src/bench_working_files_test.mbt diff --git a/src/lib/bisect.mbt b/modules/bit_lib/src/bisect.mbt similarity index 100% rename from src/lib/bisect.mbt rename to modules/bit_lib/src/bisect.mbt diff --git a/src/lib/branch.mbt b/modules/bit_lib/src/branch.mbt similarity index 100% rename from src/lib/branch.mbt rename to modules/bit_lib/src/branch.mbt diff --git a/src/lib/branch_test.mbt b/modules/bit_lib/src/branch_test.mbt similarity index 100% rename from src/lib/branch_test.mbt rename to modules/bit_lib/src/branch_test.mbt diff --git a/src/lib/checkout.mbt b/modules/bit_lib/src/checkout.mbt similarity index 100% rename from src/lib/checkout.mbt rename to modules/bit_lib/src/checkout.mbt diff --git a/src/lib/checkout_test.mbt b/modules/bit_lib/src/checkout_test.mbt similarity index 100% rename from src/lib/checkout_test.mbt rename to modules/bit_lib/src/checkout_test.mbt diff --git a/src/lib/checkout_wbtest.mbt b/modules/bit_lib/src/checkout_wbtest.mbt similarity index 100% rename from src/lib/checkout_wbtest.mbt rename to modules/bit_lib/src/checkout_wbtest.mbt diff --git a/src/lib/cherry_pick.mbt b/modules/bit_lib/src/cherry_pick.mbt similarity index 100% rename from src/lib/cherry_pick.mbt rename to modules/bit_lib/src/cherry_pick.mbt diff --git a/src/lib/commit_graph_reader.mbt b/modules/bit_lib/src/commit_graph_reader.mbt similarity index 100% rename from src/lib/commit_graph_reader.mbt rename to modules/bit_lib/src/commit_graph_reader.mbt diff --git a/src/lib/commit_graph_reader_wbtest.mbt b/modules/bit_lib/src/commit_graph_reader_wbtest.mbt similarity index 100% rename from src/lib/commit_graph_reader_wbtest.mbt rename to modules/bit_lib/src/commit_graph_reader_wbtest.mbt diff --git a/src/lib/commit_helpers.mbt b/modules/bit_lib/src/commit_helpers.mbt similarity index 100% rename from src/lib/commit_helpers.mbt rename to modules/bit_lib/src/commit_helpers.mbt diff --git a/src/lib/compat_object.mbt b/modules/bit_lib/src/compat_object.mbt similarity index 100% rename from src/lib/compat_object.mbt rename to modules/bit_lib/src/compat_object.mbt diff --git a/src/lib/core_interfaces.mbt b/modules/bit_lib/src/core_interfaces.mbt similarity index 100% rename from src/lib/core_interfaces.mbt rename to modules/bit_lib/src/core_interfaces.mbt diff --git a/src/lib/diff.mbt b/modules/bit_lib/src/diff.mbt similarity index 100% rename from src/lib/diff.mbt rename to modules/bit_lib/src/diff.mbt diff --git a/src/lib/diff_tree_helpers.mbt b/modules/bit_lib/src/diff_tree_helpers.mbt similarity index 100% rename from src/lib/diff_tree_helpers.mbt rename to modules/bit_lib/src/diff_tree_helpers.mbt diff --git a/src/lib/fs_tree.mbt b/modules/bit_lib/src/fs_tree.mbt similarity index 100% rename from src/lib/fs_tree.mbt rename to modules/bit_lib/src/fs_tree.mbt diff --git a/src/lib/fs_tree_test.mbt b/modules/bit_lib/src/fs_tree_test.mbt similarity index 100% rename from src/lib/fs_tree_test.mbt rename to modules/bit_lib/src/fs_tree_test.mbt diff --git a/src/lib/fsck.mbt b/modules/bit_lib/src/fsck.mbt similarity index 100% rename from src/lib/fsck.mbt rename to modules/bit_lib/src/fsck.mbt diff --git a/src/lib/fsck_test.mbt b/modules/bit_lib/src/fsck_test.mbt similarity index 78% rename from src/lib/fsck_test.mbt rename to modules/bit_lib/src/fsck_test.mbt index 0abec6ab..373e1b10 100644 --- a/src/lib/fsck_test.mbt +++ b/modules/bit_lib/src/fsck_test.mbt @@ -6,8 +6,8 @@ test "fsck_connectivity_check on empty repo" { let git_dir = "/repo/.git" fs.mkdir_p(git_dir + "/objects") fs.mkdir_p(git_dir + "/objects/pack") - let db = @lib.ObjectDb::load(fs, git_dir) - let result = @lib.fsck_connectivity_check(db, fs, []) + let db = @bit_lib.ObjectDb::load(fs, git_dir) + let result = @bit_lib.fsck_connectivity_check(db, fs, []) assert_eq(result.errors, 0) assert_eq(result.reachable.to_array().length(), 0) assert_eq(result.missing.to_array().length(), 0) @@ -22,12 +22,12 @@ test "fsck_connectivity_check finds reachable objects" { fs.mkdir_p(git_dir + "/refs") // Create a blob let (blob_id, blob_bytes) = @bit.create_blob_string("hello\n") - @lib.write_object_bytes(fs, git_dir, blob_id, blob_bytes) + @bit_lib.write_object_bytes(fs, git_dir, blob_id, blob_bytes) // Create a tree with the blob let (tree_id, tree_bytes) = @bit.create_tree([ @bit.TreeEntry::new("100644", "hello.txt", blob_id), ]) - @lib.write_object_bytes(fs, git_dir, tree_id, tree_bytes) + @bit_lib.write_object_bytes(fs, git_dir, tree_id, tree_bytes) // Create a root commit let commit = @bit.Commit::new( tree_id, @@ -41,9 +41,9 @@ test "fsck_connectivity_check finds reachable objects" { "test\n", ) let (commit_id, commit_bytes) = @bit.create_commit(commit) - @lib.write_object_bytes(fs, git_dir, commit_id, commit_bytes) - let db = @lib.ObjectDb::load(fs, git_dir) - let result = @lib.fsck_connectivity_check( + @bit_lib.write_object_bytes(fs, git_dir, commit_id, commit_bytes) + let db = @bit_lib.ObjectDb::load(fs, git_dir) + let result = @bit_lib.fsck_connectivity_check( db, fs, [commit_id], @@ -78,9 +78,9 @@ test "fsck_connectivity_check detects missing objects" { "test\n", ) let (commit_id, commit_bytes) = @bit.create_commit(commit) - @lib.write_object_bytes(fs, git_dir, commit_id, commit_bytes) - let db = @lib.ObjectDb::load(fs, git_dir) - let result = @lib.fsck_connectivity_check(db, fs, [commit_id]) + @bit_lib.write_object_bytes(fs, git_dir, commit_id, commit_bytes) + let db = @bit_lib.ObjectDb::load(fs, git_dir) + let result = @bit_lib.fsck_connectivity_check(db, fs, [commit_id]) assert_true(result.errors > 0) assert_true(result.missing.contains(fake_tree_hex)) } @@ -93,10 +93,10 @@ test "fsck_enumerate_objects lists all" { fs.mkdir_p(git_dir + "/objects") for i in 0..<3 { let (id, data) = @bit.create_blob_string("content \{i}\n") - @lib.write_object_bytes(fs, git_dir, id, data) + @bit_lib.write_object_bytes(fs, git_dir, id, data) } - let db = @lib.ObjectDb::load(fs, git_dir) - let all = @lib.fsck_enumerate_objects(db) + let db = @bit_lib.ObjectDb::load(fs, git_dir) + let all = @bit_lib.fsck_enumerate_objects(db) assert_eq(all.length(), 3) } @@ -120,9 +120,9 @@ test "fsck_verify_loose_hash valid" { }), ) let expected = @bit.sha1(raw) - assert_true(@lib.fsck_verify_loose_hash(raw, expected.to_hex())) + assert_true(@bit_lib.fsck_verify_loose_hash(raw, expected.to_hex())) assert_true( - !@lib.fsck_verify_loose_hash( + !@bit_lib.fsck_verify_loose_hash( raw, "0000000000000000000000000000000000000000", ), ) diff --git a/src/lib/gc.mbt b/modules/bit_lib/src/gc.mbt similarity index 100% rename from src/lib/gc.mbt rename to modules/bit_lib/src/gc.mbt diff --git a/src/lib/gc_test.mbt b/modules/bit_lib/src/gc_test.mbt similarity index 100% rename from src/lib/gc_test.mbt rename to modules/bit_lib/src/gc_test.mbt diff --git a/src/lib/gitattributes.mbt b/modules/bit_lib/src/gitattributes.mbt similarity index 100% rename from src/lib/gitattributes.mbt rename to modules/bit_lib/src/gitattributes.mbt diff --git a/src/lib/ignore_worktree.mbt b/modules/bit_lib/src/ignore_worktree.mbt similarity index 100% rename from src/lib/ignore_worktree.mbt rename to modules/bit_lib/src/ignore_worktree.mbt diff --git a/src/lib/ignore_worktree_async.mbt b/modules/bit_lib/src/ignore_worktree_async.mbt similarity index 100% rename from src/lib/ignore_worktree_async.mbt rename to modules/bit_lib/src/ignore_worktree_async.mbt diff --git a/src/lib/ignore_worktree_test.mbt b/modules/bit_lib/src/ignore_worktree_test.mbt similarity index 100% rename from src/lib/ignore_worktree_test.mbt rename to modules/bit_lib/src/ignore_worktree_test.mbt diff --git a/src/lib/index.mbt b/modules/bit_lib/src/index.mbt similarity index 100% rename from src/lib/index.mbt rename to modules/bit_lib/src/index.mbt diff --git a/src/lib/index_wbtest.mbt b/modules/bit_lib/src/index_wbtest.mbt similarity index 100% rename from src/lib/index_wbtest.mbt rename to modules/bit_lib/src/index_wbtest.mbt diff --git a/src/lib/init.mbt b/modules/bit_lib/src/init.mbt similarity index 100% rename from src/lib/init.mbt rename to modules/bit_lib/src/init.mbt diff --git a/src/lib/init_test.mbt b/modules/bit_lib/src/init_test.mbt similarity index 100% rename from src/lib/init_test.mbt rename to modules/bit_lib/src/init_test.mbt diff --git a/src/lib/js_api_exports.mbt b/modules/bit_lib/src/js_api_exports.mbt similarity index 100% rename from src/lib/js_api_exports.mbt rename to modules/bit_lib/src/js_api_exports.mbt diff --git a/src/lib/js_export_types.mbt b/modules/bit_lib/src/js_export_types.mbt similarity index 100% rename from src/lib/js_export_types.mbt rename to modules/bit_lib/src/js_export_types.mbt diff --git a/src/lib/js_exports_wbtest.mbt b/modules/bit_lib/src/js_exports_wbtest.mbt similarity index 99% rename from src/lib/js_exports_wbtest.mbt rename to modules/bit_lib/src/js_exports_wbtest.mbt index 40fbb0c6..263e0a3e 100644 --- a/src/lib/js_exports_wbtest.mbt +++ b/modules/bit_lib/src/js_exports_wbtest.mbt @@ -277,7 +277,7 @@ async test "js exports: clone clones ssh remote via https smart transport" { let result = js_exports_unwrap_ok( "clone", js_clone_remote( - host_id, "/repo-clone", "git@github.com:user/repo.git", transport_id, true, + host_id, "/repo-clone", "git@github.com:user/repo.git", transport_id, true, 0, ), ) assert_eq(result.status, "cloned") diff --git a/src/lib/js_host_bridge.mbt b/modules/bit_lib/src/js_host_bridge.mbt similarity index 100% rename from src/lib/js_host_bridge.mbt rename to modules/bit_lib/src/js_host_bridge.mbt diff --git a/src/lib/js_transport_bridge.mbt b/modules/bit_lib/src/js_transport_bridge.mbt similarity index 100% rename from src/lib/js_transport_bridge.mbt rename to modules/bit_lib/src/js_transport_bridge.mbt diff --git a/src/lib/lfs.mbt b/modules/bit_lib/src/lfs.mbt similarity index 100% rename from src/lib/lfs.mbt rename to modules/bit_lib/src/lfs.mbt diff --git a/src/lib/lfs_wbtest.mbt b/modules/bit_lib/src/lfs_wbtest.mbt similarity index 100% rename from src/lib/lfs_wbtest.mbt rename to modules/bit_lib/src/lfs_wbtest.mbt diff --git a/src/lib/log.mbt b/modules/bit_lib/src/log.mbt similarity index 100% rename from src/lib/log.mbt rename to modules/bit_lib/src/log.mbt diff --git a/src/lib/merge.mbt b/modules/bit_lib/src/merge.mbt similarity index 100% rename from src/lib/merge.mbt rename to modules/bit_lib/src/merge.mbt diff --git a/src/lib/merge_base.mbt b/modules/bit_lib/src/merge_base.mbt similarity index 100% rename from src/lib/merge_base.mbt rename to modules/bit_lib/src/merge_base.mbt diff --git a/src/lib/merge_base_test.mbt b/modules/bit_lib/src/merge_base_test.mbt similarity index 100% rename from src/lib/merge_base_test.mbt rename to modules/bit_lib/src/merge_base_test.mbt diff --git a/src/lib/merge_test.mbt b/modules/bit_lib/src/merge_test.mbt similarity index 100% rename from src/lib/merge_test.mbt rename to modules/bit_lib/src/merge_test.mbt diff --git a/src/lib/moon.pkg b/modules/bit_lib/src/moon.pkg similarity index 87% rename from src/lib/moon.pkg rename to modules/bit_lib/src/moon.pkg index 5bbc140a..b9bb8d5e 100644 --- a/src/lib/moon.pkg +++ b/modules/bit_lib/src/moon.pkg @@ -1,19 +1,21 @@ import { "mizchi/bit" @bit, - "mizchi/bit/object" @object, - "mizchi/bit/io" @bitio, - "mizchi/bit/io/native" @bitnative, - "mizchi/bit/refs" @bitrefs, - "mizchi/bit/remote" @bitremote, - "mizchi/bit/hash" @bithash, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, - "mizchi/bit/ignore" @ignore, - "mizchi/bit/reftable" @reftable, - "mizchi/bit/string_utils" @string_utils, - "mizchi/bit/date_parse" @date_parse, - "mizchi/bit/diff_core" @diff_core, - "mizchi/bit/diff3" @diff3, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @bitio, + "mizchi/bit_io/native" @bitnative, + "mizchi/bit_refs" @bitrefs, + "mizchi/bit_remote" @bitremote, + "mizchi/bit_hash" @bithash, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, + "mizchi/bit_ignore" @ignore, + "mizchi/bit_reftable" @reftable, + "mizchi/bit_utils" @string_utils, + "mizchi/bit_date" @date_parse, + "mizchi/bit_diff_core" @diff_core, + "mizchi/bit_diff3" @diff3, "mizchi/zlib" @zlib, "moonbitlang/async/js_async" @js_async, "moonbitlang/core/bench" @bench, @@ -26,15 +28,15 @@ import { "moonbitlang/async" @async, "moonbitlang/core/bench" @bench, "moonbitlang/x/fs", - "mizchi/bit/osfs" @osfs, + "mizchi/bit_osfs" @osfs, "moonbitlang/core/test" @test, } for "test" import { "moonbitlang/async" @async, "moonbitlang/core/bench" @bench, - "mizchi/bit/osfs" @osfs, - "mizchi/bit/vfs" @bitfs, + "mizchi/bit_osfs" @osfs, + "mizchi/bit_vfs" @bitfs, "moonbitlang/core/test" @test, } for "wbtest" diff --git a/src/lib/native/bench_worktree_entry_wbtest.mbt b/modules/bit_lib/src/native/bench_worktree_entry_wbtest.mbt similarity index 100% rename from src/lib/native/bench_worktree_entry_wbtest.mbt rename to modules/bit_lib/src/native/bench_worktree_entry_wbtest.mbt diff --git a/src/lib/native/filter.mbt b/modules/bit_lib/src/native/filter.mbt similarity index 100% rename from src/lib/native/filter.mbt rename to modules/bit_lib/src/native/filter.mbt diff --git a/src/lib/native/ignore_async_test.mbt b/modules/bit_lib/src/native/ignore_async_test.mbt similarity index 100% rename from src/lib/native/ignore_async_test.mbt rename to modules/bit_lib/src/native/ignore_async_test.mbt diff --git a/src/lib/native/lfs_client.mbt b/modules/bit_lib/src/native/lfs_client.mbt similarity index 100% rename from src/lib/native/lfs_client.mbt rename to modules/bit_lib/src/native/lfs_client.mbt diff --git a/src/lib/native/lfs_client_wbtest.mbt b/modules/bit_lib/src/native/lfs_client_wbtest.mbt similarity index 100% rename from src/lib/native/lfs_client_wbtest.mbt rename to modules/bit_lib/src/native/lfs_client_wbtest.mbt diff --git a/src/lib/native/lfs_prefetch.mbt b/modules/bit_lib/src/native/lfs_prefetch.mbt similarity index 100% rename from src/lib/native/lfs_prefetch.mbt rename to modules/bit_lib/src/native/lfs_prefetch.mbt diff --git a/src/lib/native/moon.pkg b/modules/bit_lib/src/native/moon.pkg similarity index 74% rename from src/lib/native/moon.pkg rename to modules/bit_lib/src/native/moon.pkg index 4f97d3f1..64981355 100644 --- a/src/lib/native/moon.pkg +++ b/modules/bit_lib/src/native/moon.pkg @@ -1,11 +1,14 @@ import { "mizchi/bit" @bit, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/ignore" @ignore, - "mizchi/bit/io" @bitio, - "mizchi/bit/io/native" @bitnative, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_ignore" @ignore, + "mizchi/bit_io" @bitio, + "mizchi/bit_io/native" @bitnative, "moonbitlang/async" @async, "moonbitlang/async/fs" @afs, "moonbitlang/async/http" @http, @@ -20,12 +23,12 @@ import { import { "moonbitlang/core/bench" @bench, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_osfs" @osfs, } for "test" import { "moonbitlang/core/bench" @bench, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_osfs" @osfs, "moonbitlang/core/test" @test, } for "wbtest" diff --git a/src/lib/native/pkg.generated.mbti b/modules/bit_lib/src/native/pkg.generated.mbti similarity index 100% rename from src/lib/native/pkg.generated.mbti rename to modules/bit_lib/src/native/pkg.generated.mbti diff --git a/src/lib/native/promisor.mbt b/modules/bit_lib/src/native/promisor.mbt similarity index 100% rename from src/lib/native/promisor.mbt rename to modules/bit_lib/src/native/promisor.mbt diff --git a/src/lib/native/remote_ref.mbt b/modules/bit_lib/src/native/remote_ref.mbt similarity index 100% rename from src/lib/native/remote_ref.mbt rename to modules/bit_lib/src/native/remote_ref.mbt diff --git a/src/lib/native/sync_http.mbt b/modules/bit_lib/src/native/sync_http.mbt similarity index 100% rename from src/lib/native/sync_http.mbt rename to modules/bit_lib/src/native/sync_http.mbt diff --git a/src/lib/native/worktree_modes.mbt b/modules/bit_lib/src/native/worktree_modes.mbt similarity index 100% rename from src/lib/native/worktree_modes.mbt rename to modules/bit_lib/src/native/worktree_modes.mbt diff --git a/src/lib/object_db.mbt b/modules/bit_lib/src/object_db.mbt similarity index 100% rename from src/lib/object_db.mbt rename to modules/bit_lib/src/object_db.mbt diff --git a/src/lib/pack_collect.mbt b/modules/bit_lib/src/pack_collect.mbt similarity index 100% rename from src/lib/pack_collect.mbt rename to modules/bit_lib/src/pack_collect.mbt diff --git a/src/lib/pack_collect_test.mbt b/modules/bit_lib/src/pack_collect_test.mbt similarity index 100% rename from src/lib/pack_collect_test.mbt rename to modules/bit_lib/src/pack_collect_test.mbt diff --git a/src/lib/path.mbt b/modules/bit_lib/src/path.mbt similarity index 100% rename from src/lib/path.mbt rename to modules/bit_lib/src/path.mbt diff --git a/src/lib/pkg.generated.mbti b/modules/bit_lib/src/pkg.generated.mbti similarity index 100% rename from src/lib/pkg.generated.mbti rename to modules/bit_lib/src/pkg.generated.mbti diff --git a/src/lib/profile.mbt b/modules/bit_lib/src/profile.mbt similarity index 100% rename from src/lib/profile.mbt rename to modules/bit_lib/src/profile.mbt diff --git a/src/lib/promisor.mbt b/modules/bit_lib/src/promisor.mbt similarity index 100% rename from src/lib/promisor.mbt rename to modules/bit_lib/src/promisor.mbt diff --git a/src/lib/prune_test.mbt b/modules/bit_lib/src/prune_test.mbt similarity index 100% rename from src/lib/prune_test.mbt rename to modules/bit_lib/src/prune_test.mbt diff --git a/src/lib/pure_runtime_test.mbt b/modules/bit_lib/src/pure_runtime_test.mbt similarity index 100% rename from src/lib/pure_runtime_test.mbt rename to modules/bit_lib/src/pure_runtime_test.mbt diff --git a/src/lib/rebase.mbt b/modules/bit_lib/src/rebase.mbt similarity index 100% rename from src/lib/rebase.mbt rename to modules/bit_lib/src/rebase.mbt diff --git a/src/lib/rebase_interactive.mbt b/modules/bit_lib/src/rebase_interactive.mbt similarity index 100% rename from src/lib/rebase_interactive.mbt rename to modules/bit_lib/src/rebase_interactive.mbt diff --git a/src/lib/rebase_interactive_wbtest.mbt b/modules/bit_lib/src/rebase_interactive_wbtest.mbt similarity index 100% rename from src/lib/rebase_interactive_wbtest.mbt rename to modules/bit_lib/src/rebase_interactive_wbtest.mbt diff --git a/src/lib/rebase_test.mbt b/modules/bit_lib/src/rebase_test.mbt similarity index 100% rename from src/lib/rebase_test.mbt rename to modules/bit_lib/src/rebase_test.mbt diff --git a/src/lib/receive_pack.mbt b/modules/bit_lib/src/receive_pack.mbt similarity index 100% rename from src/lib/receive_pack.mbt rename to modules/bit_lib/src/receive_pack.mbt diff --git a/src/lib/receive_pack_test.mbt b/modules/bit_lib/src/receive_pack_test.mbt similarity index 100% rename from src/lib/receive_pack_test.mbt rename to modules/bit_lib/src/receive_pack_test.mbt diff --git a/src/lib/reflog.mbt b/modules/bit_lib/src/reflog.mbt similarity index 100% rename from src/lib/reflog.mbt rename to modules/bit_lib/src/reflog.mbt diff --git a/src/lib/refs_store.mbt b/modules/bit_lib/src/refs_store.mbt similarity index 100% rename from src/lib/refs_store.mbt rename to modules/bit_lib/src/refs_store.mbt diff --git a/src/lib/remote_config.mbt b/modules/bit_lib/src/remote_config.mbt similarity index 100% rename from src/lib/remote_config.mbt rename to modules/bit_lib/src/remote_config.mbt diff --git a/src/lib/remote_helpers.mbt b/modules/bit_lib/src/remote_helpers.mbt similarity index 100% rename from src/lib/remote_helpers.mbt rename to modules/bit_lib/src/remote_helpers.mbt diff --git a/src/lib/remote_path.mbt b/modules/bit_lib/src/remote_path.mbt similarity index 100% rename from src/lib/remote_path.mbt rename to modules/bit_lib/src/remote_path.mbt diff --git a/src/lib/remote_path_test.mbt b/modules/bit_lib/src/remote_path_test.mbt similarity index 100% rename from src/lib/remote_path_test.mbt rename to modules/bit_lib/src/remote_path_test.mbt diff --git a/src/lib/remote_shorthand.mbt b/modules/bit_lib/src/remote_shorthand.mbt similarity index 100% rename from src/lib/remote_shorthand.mbt rename to modules/bit_lib/src/remote_shorthand.mbt diff --git a/src/lib/rename_detect.mbt b/modules/bit_lib/src/rename_detect.mbt similarity index 100% rename from src/lib/rename_detect.mbt rename to modules/bit_lib/src/rename_detect.mbt diff --git a/src/lib/reset.mbt b/modules/bit_lib/src/reset.mbt similarity index 100% rename from src/lib/reset.mbt rename to modules/bit_lib/src/reset.mbt diff --git a/src/lib/reset_test.mbt b/modules/bit_lib/src/reset_test.mbt similarity index 100% rename from src/lib/reset_test.mbt rename to modules/bit_lib/src/reset_test.mbt diff --git a/src/lib/rev_list_helpers.mbt b/modules/bit_lib/src/rev_list_helpers.mbt similarity index 100% rename from src/lib/rev_list_helpers.mbt rename to modules/bit_lib/src/rev_list_helpers.mbt diff --git a/src/lib/revparse.mbt b/modules/bit_lib/src/revparse.mbt similarity index 100% rename from src/lib/revparse.mbt rename to modules/bit_lib/src/revparse.mbt diff --git a/src/lib/revparse_test.mbt b/modules/bit_lib/src/revparse_test.mbt similarity index 100% rename from src/lib/revparse_test.mbt rename to modules/bit_lib/src/revparse_test.mbt diff --git a/src/lib/shallow_sparse_test.mbt b/modules/bit_lib/src/shallow_sparse_test.mbt similarity index 100% rename from src/lib/shallow_sparse_test.mbt rename to modules/bit_lib/src/shallow_sparse_test.mbt diff --git a/src/lib/smart_http.mbt b/modules/bit_lib/src/smart_http.mbt similarity index 100% rename from src/lib/smart_http.mbt rename to modules/bit_lib/src/smart_http.mbt diff --git a/src/lib/smart_http_test.mbt b/modules/bit_lib/src/smart_http_test.mbt similarity index 100% rename from src/lib/smart_http_test.mbt rename to modules/bit_lib/src/smart_http_test.mbt diff --git a/src/lib/sparse.mbt b/modules/bit_lib/src/sparse.mbt similarity index 100% rename from src/lib/sparse.mbt rename to modules/bit_lib/src/sparse.mbt diff --git a/src/lib/sparse_wbtest.mbt b/modules/bit_lib/src/sparse_wbtest.mbt similarity index 100% rename from src/lib/sparse_wbtest.mbt rename to modules/bit_lib/src/sparse_wbtest.mbt diff --git a/src/lib/stash.mbt b/modules/bit_lib/src/stash.mbt similarity index 100% rename from src/lib/stash.mbt rename to modules/bit_lib/src/stash.mbt diff --git a/src/lib/stash_test.mbt b/modules/bit_lib/src/stash_test.mbt similarity index 100% rename from src/lib/stash_test.mbt rename to modules/bit_lib/src/stash_test.mbt diff --git a/src/lib/status_text.mbt b/modules/bit_lib/src/status_text.mbt similarity index 100% rename from src/lib/status_text.mbt rename to modules/bit_lib/src/status_text.mbt diff --git a/src/lib/status_walk.mbt b/modules/bit_lib/src/status_walk.mbt similarity index 100% rename from src/lib/status_walk.mbt rename to modules/bit_lib/src/status_walk.mbt diff --git a/src/lib/subdir.mbt b/modules/bit_lib/src/subdir.mbt similarity index 100% rename from src/lib/subdir.mbt rename to modules/bit_lib/src/subdir.mbt diff --git a/src/lib/subdir_push_test.mbt b/modules/bit_lib/src/subdir_push_test.mbt similarity index 100% rename from src/lib/subdir_push_test.mbt rename to modules/bit_lib/src/subdir_push_test.mbt diff --git a/src/lib/subdir_test.mbt b/modules/bit_lib/src/subdir_test.mbt similarity index 100% rename from src/lib/subdir_test.mbt rename to modules/bit_lib/src/subdir_test.mbt diff --git a/src/lib/tree_mode.mbt b/modules/bit_lib/src/tree_mode.mbt similarity index 100% rename from src/lib/tree_mode.mbt rename to modules/bit_lib/src/tree_mode.mbt diff --git a/src/lib/tree_ops.mbt b/modules/bit_lib/src/tree_ops.mbt similarity index 100% rename from src/lib/tree_ops.mbt rename to modules/bit_lib/src/tree_ops.mbt diff --git a/src/lib/tree_path.mbt b/modules/bit_lib/src/tree_path.mbt similarity index 100% rename from src/lib/tree_path.mbt rename to modules/bit_lib/src/tree_path.mbt diff --git a/src/lib/upload_pack.mbt b/modules/bit_lib/src/upload_pack.mbt similarity index 100% rename from src/lib/upload_pack.mbt rename to modules/bit_lib/src/upload_pack.mbt diff --git a/src/lib/upload_pack_test.mbt b/modules/bit_lib/src/upload_pack_test.mbt similarity index 100% rename from src/lib/upload_pack_test.mbt rename to modules/bit_lib/src/upload_pack_test.mbt diff --git a/src/lib/worktree.mbt b/modules/bit_lib/src/worktree.mbt similarity index 100% rename from src/lib/worktree.mbt rename to modules/bit_lib/src/worktree.mbt diff --git a/src/lib/worktree_admin.mbt b/modules/bit_lib/src/worktree_admin.mbt similarity index 100% rename from src/lib/worktree_admin.mbt rename to modules/bit_lib/src/worktree_admin.mbt diff --git a/src/lib/worktree_admin_test.mbt b/modules/bit_lib/src/worktree_admin_test.mbt similarity index 100% rename from src/lib/worktree_admin_test.mbt rename to modules/bit_lib/src/worktree_admin_test.mbt diff --git a/src/lib/worktree_test.mbt b/modules/bit_lib/src/worktree_test.mbt similarity index 100% rename from src/lib/worktree_test.mbt rename to modules/bit_lib/src/worktree_test.mbt diff --git a/modules/bit_object/moon.mod.json b/modules/bit_object/moon.mod.json new file mode 100644 index 00000000..bae78873 --- /dev/null +++ b/modules/bit_object/moon.mod.json @@ -0,0 +1,14 @@ +{ + "name": "mizchi/bit_object", + "version": "0.42.2", + "deps": { + "mizchi/bit_hash": "0.42.2", + "mizchi/zlib": "0.4.5" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "object", "blob", "tree", "commit"], + "description": "Git object model (gix-object equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/object/bench_test.mbt b/modules/bit_object/src/bench_test.mbt similarity index 100% rename from src/object/bench_test.mbt rename to modules/bit_object/src/bench_test.mbt diff --git a/src/object/hash_algorithm.mbt b/modules/bit_object/src/hash_algorithm.mbt similarity index 100% rename from src/object/hash_algorithm.mbt rename to modules/bit_object/src/hash_algorithm.mbt diff --git a/src/object/hasher.mbt b/modules/bit_object/src/hasher.mbt similarity index 100% rename from src/object/hasher.mbt rename to modules/bit_object/src/hasher.mbt diff --git a/src/object/moon.pkg b/modules/bit_object/src/moon.pkg similarity index 90% rename from src/object/moon.pkg rename to modules/bit_object/src/moon.pkg index 9a3798aa..ce31ec73 100644 --- a/src/object/moon.pkg +++ b/modules/bit_object/src/moon.pkg @@ -1,6 +1,6 @@ import { "mizchi/zlib" @zlib, - "mizchi/bit/hash" @hash, + "mizchi/bit_hash" @hash, "moonbitlang/core/debug" @debug, "moonbitlang/core/encoding/utf8" @utf8, } diff --git a/src/object/object.mbt b/modules/bit_object/src/object.mbt similarity index 100% rename from src/object/object.mbt rename to modules/bit_object/src/object.mbt diff --git a/src/object/object_test.mbt b/modules/bit_object/src/object_test.mbt similarity index 100% rename from src/object/object_test.mbt rename to modules/bit_object/src/object_test.mbt diff --git a/src/object/pkg.generated.mbti b/modules/bit_object/src/pkg.generated.mbti similarity index 100% rename from src/object/pkg.generated.mbti rename to modules/bit_object/src/pkg.generated.mbti diff --git a/src/object/sha1.mbt b/modules/bit_object/src/sha1.mbt similarity index 100% rename from src/object/sha1.mbt rename to modules/bit_object/src/sha1.mbt diff --git a/src/object/sha1_test.mbt b/modules/bit_object/src/sha1_test.mbt similarity index 100% rename from src/object/sha1_test.mbt rename to modules/bit_object/src/sha1_test.mbt diff --git a/src/object/sha256.mbt b/modules/bit_object/src/sha256.mbt similarity index 100% rename from src/object/sha256.mbt rename to modules/bit_object/src/sha256.mbt diff --git a/src/object/sha256_test.mbt b/modules/bit_object/src/sha256_test.mbt similarity index 100% rename from src/object/sha256_test.mbt rename to modules/bit_object/src/sha256_test.mbt diff --git a/src/object/types.mbt b/modules/bit_object/src/types.mbt similarity index 100% rename from src/object/types.mbt rename to modules/bit_object/src/types.mbt diff --git a/modules/bit_osfs/moon.mod.json b/modules/bit_osfs/moon.mod.json new file mode 100644 index 00000000..a2a2a79f --- /dev/null +++ b/modules/bit_osfs/moon.mod.json @@ -0,0 +1,16 @@ +{ + "name": "mizchi/bit_osfs", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_types": "0.42.2", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "fs"], + "description": "OS-backed FileSystem / RepoFileSystem implementations (gix-fs OS impl)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/osfs/moon.pkg b/modules/bit_osfs/src/moon.pkg similarity index 68% rename from src/osfs/moon.pkg rename to modules/bit_osfs/src/moon.pkg index 42a3baea..1afa9537 100644 --- a/src/osfs/moon.pkg +++ b/modules/bit_osfs/src/moon.pkg @@ -1,5 +1,7 @@ import { "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, "moonbitlang/x/fs", } diff --git a/src/osfs/osfs.mbt b/modules/bit_osfs/src/osfs.mbt similarity index 100% rename from src/osfs/osfs.mbt rename to modules/bit_osfs/src/osfs.mbt diff --git a/src/osfs/pkg.generated.mbti b/modules/bit_osfs/src/pkg.generated.mbti similarity index 100% rename from src/osfs/pkg.generated.mbti rename to modules/bit_osfs/src/pkg.generated.mbti diff --git a/modules/bit_pack/moon.mod.json b/modules/bit_pack/moon.mod.json new file mode 100644 index 00000000..5c70c191 --- /dev/null +++ b/modules/bit_pack/moon.mod.json @@ -0,0 +1,21 @@ +{ + "name": "mizchi/bit_pack", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_protocol": "0.42.2", + "mizchi/tempfile": "0.1.0", + "mizchi/zlib": "0.4.5", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "pack", "packfile", "index"], + "description": "Git packfile encoder/decoder + index (gix-pack equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/pack/bench_profile_test.mbt b/modules/bit_pack/src/bench_profile_test.mbt similarity index 94% rename from src/pack/bench_profile_test.mbt rename to modules/bit_pack/src/bench_profile_test.mbt index 61ec265b..8e403e15 100644 --- a/src/pack/bench_profile_test.mbt +++ b/modules/bit_pack/src/bench_profile_test.mbt @@ -60,7 +60,7 @@ test "bench profile: delta compute 500 blobs" (b : @bench.T) { for obj in profile_500 { match prev { Some(p) => { - let delta = @pack.build_delta_pub(p.data, obj.data) + let delta = @bit_pack.build_delta_pub(p.data, obj.data) total += delta.length() } None => () @@ -106,7 +106,7 @@ test "bench profile: Array[Byte] collect 500x200B" (b : @bench.T) { ///| test "bench profile: full packfile 500 blobs" (b : @bench.T) { b.bench(fn() { - let pack = @pack.create_packfile(profile_500) + let pack = @bit_pack.create_packfile(profile_500) b.keep(pack.length()) }) } @@ -114,7 +114,7 @@ test "bench profile: full packfile 500 blobs" (b : @bench.T) { ///| test "bench profile: packfile with delta 500 blobs" (b : @bench.T) { b.bench(fn() { - let pack = @pack.create_packfile_with_delta( + let pack = @bit_pack.create_packfile_with_delta( profile_500, @bit.PackDeltaMode::OfsDelta, ) diff --git a/src/pack/bench_test.mbt b/modules/bit_pack/src/bench_test.mbt similarity index 79% rename from src/pack/bench_test.mbt rename to modules/bit_pack/src/bench_test.mbt index 8c26307d..4e42bbca 100644 --- a/src/pack/bench_test.mbt +++ b/modules/bit_pack/src/bench_test.mbt @@ -33,10 +33,10 @@ fn make_similar_blob_objects(count : Int) -> Array[@bit.PackObject] { } ///| -let bench_pack_small : Bytes = @pack.create_packfile(make_blob_objects(3)) +let bench_pack_small : Bytes = @bit_pack.create_packfile(make_blob_objects(3)) ///| -let bench_pack_100 : Bytes = @pack.create_packfile(make_blob_objects(100)) +let bench_pack_100 : Bytes = @bit_pack.create_packfile(make_blob_objects(100)) ///| let bench_objects_10 : Array[@bit.PackObject] = make_blob_objects(10) @@ -50,7 +50,7 @@ let bench_similar_100 : Array[@bit.PackObject] = make_similar_blob_objects(100) ///| test "bench parse_packfile small" (b : @bench.T) { b.bench(fn() { - let objs = try! @pack.parse_packfile(bench_pack_small) + let objs = try! @bit_pack.parse_packfile(bench_pack_small) b.keep(objs.length()) }) } @@ -58,7 +58,7 @@ test "bench parse_packfile small" (b : @bench.T) { ///| test "bench parse_packfile 100 objects" (b : @bench.T) { b.bench(fn() { - let objs = try! @pack.parse_packfile(bench_pack_100) + let objs = try! @bit_pack.parse_packfile(bench_pack_100) b.keep(objs.length()) }) } @@ -66,7 +66,7 @@ test "bench parse_packfile 100 objects" (b : @bench.T) { ///| test "bench create_packfile 10 objects" (b : @bench.T) { b.bench(fn() { - let pack = @pack.create_packfile(bench_objects_10) + let pack = @bit_pack.create_packfile(bench_objects_10) b.keep(pack.length()) }) } @@ -74,7 +74,7 @@ test "bench create_packfile 10 objects" (b : @bench.T) { ///| test "bench create_packfile 100 objects" (b : @bench.T) { b.bench(fn() { - let pack = @pack.create_packfile(bench_objects_100) + let pack = @bit_pack.create_packfile(bench_objects_100) b.keep(pack.length()) }) } @@ -82,7 +82,7 @@ test "bench create_packfile 100 objects" (b : @bench.T) { ///| test "bench create_packfile_with_delta 100" (b : @bench.T) { b.bench(fn() { - let pack = @pack.create_packfile_with_delta( + let pack = @bit_pack.create_packfile_with_delta( bench_similar_100, @bit.PackDeltaMode::OfsDelta, ) @@ -93,7 +93,7 @@ test "bench create_packfile_with_delta 100" (b : @bench.T) { ///| test "bench build_pack_index" (b : @bench.T) { b.bench(fn() { - let idx = try! @pack.build_pack_index(bench_pack_100) + let idx = try! @bit_pack.build_pack_index(bench_pack_100) b.keep(idx.length()) }) } @@ -104,7 +104,7 @@ test "bench encode_type_and_size" (b : @bench.T) { let buf : Array[Byte] = [] for i in 0..<1000 { buf.clear() - @pack.encode_type_and_size(3, i * 100, buf) + @bit_pack.encode_type_and_size(3, i * 100, buf) } b.keep(buf.length()) }) @@ -113,7 +113,7 @@ test "bench encode_type_and_size" (b : @bench.T) { ///| fn make_encoded_header() -> Bytes { let buf : Array[Byte] = [] - @pack.encode_type_and_size(3, 65536, buf) + @bit_pack.encode_type_and_size(3, 65536, buf) Bytes::from_array(buf) } @@ -125,7 +125,7 @@ test "bench decode_type_and_size_at" (b : @bench.T) { b.bench(fn() { let mut sum = 0 for _ in 0..<1000 { - let (type_id, size, _) = try! @pack.decode_type_and_size_at( + let (type_id, size, _) = try! @bit_pack.decode_type_and_size_at( bench_encoded_header, 0, ) sum = sum + type_id + size diff --git a/src/pack/bit_oracle_pack_test.mbt b/modules/bit_pack/src/bit_oracle_pack_test.mbt similarity index 100% rename from src/pack/bit_oracle_pack_test.mbt rename to modules/bit_pack/src/bit_oracle_pack_test.mbt diff --git a/src/pack/gen_packfile.mbt b/modules/bit_pack/src/gen_packfile.mbt similarity index 100% rename from src/pack/gen_packfile.mbt rename to modules/bit_pack/src/gen_packfile.mbt diff --git a/src/pack/moon.pkg b/modules/bit_pack/src/moon.pkg similarity index 76% rename from src/pack/moon.pkg rename to modules/bit_pack/src/moon.pkg index dcb6fb67..913a94df 100644 --- a/src/pack/moon.pkg +++ b/modules/bit_pack/src/moon.pkg @@ -1,5 +1,8 @@ import { "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, "mizchi/zlib" @zlib, "moonbitlang/core/encoding/utf8" @utf8, "moonbitlang/core/string" @string, @@ -7,7 +10,10 @@ import { import { "mizchi/bit" @bit, - "mizchi/bit/protocol" @protocol, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_protocol" @protocol, "moonbitlang/async" @async, "moonbitlang/async/process" @process, "moonbitlang/x/fs", diff --git a/src/pack/pack_index_write.mbt b/modules/bit_pack/src/pack_index_write.mbt similarity index 100% rename from src/pack/pack_index_write.mbt rename to modules/bit_pack/src/pack_index_write.mbt diff --git a/src/pack/pack_index_write_test.mbt b/modules/bit_pack/src/pack_index_write_test.mbt similarity index 100% rename from src/pack/pack_index_write_test.mbt rename to modules/bit_pack/src/pack_index_write_test.mbt diff --git a/src/pack/packfile.mbt b/modules/bit_pack/src/packfile.mbt similarity index 100% rename from src/pack/packfile.mbt rename to modules/bit_pack/src/packfile.mbt diff --git a/src/pack/packfile_fixture_test.mbt b/modules/bit_pack/src/packfile_fixture_test.mbt similarity index 100% rename from src/pack/packfile_fixture_test.mbt rename to modules/bit_pack/src/packfile_fixture_test.mbt diff --git a/src/pack/packfile_parse.mbt b/modules/bit_pack/src/packfile_parse.mbt similarity index 100% rename from src/pack/packfile_parse.mbt rename to modules/bit_pack/src/packfile_parse.mbt diff --git a/src/pack/packfile_parse_test.mbt b/modules/bit_pack/src/packfile_parse_test.mbt similarity index 100% rename from src/pack/packfile_parse_test.mbt rename to modules/bit_pack/src/packfile_parse_test.mbt diff --git a/src/pack/packfile_test.mbt b/modules/bit_pack/src/packfile_test.mbt similarity index 100% rename from src/pack/packfile_test.mbt rename to modules/bit_pack/src/packfile_test.mbt diff --git a/src/pack/packfile_wbtest.mbt b/modules/bit_pack/src/packfile_wbtest.mbt similarity index 100% rename from src/pack/packfile_wbtest.mbt rename to modules/bit_pack/src/packfile_wbtest.mbt diff --git a/src/pack/pkg.generated.mbti b/modules/bit_pack/src/pkg.generated.mbti similarity index 100% rename from src/pack/pkg.generated.mbti rename to modules/bit_pack/src/pkg.generated.mbti diff --git a/modules/bit_pack_ops/moon.mod.json b/modules/bit_pack_ops/moon.mod.json new file mode 100644 index 00000000..c72610a6 --- /dev/null +++ b/modules/bit_pack_ops/moon.mod.json @@ -0,0 +1,19 @@ +{ + "name": "mizchi/bit_pack_ops", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_pack": "0.42.2", + "mizchi/bit_types": "0.42.2", + "moonbitlang/async": "0.16.6" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "pack"], + "description": "High-level pack operations (collect_reachable_objects, etc.)", + "source": "src", + "preferred-target": "native" +} diff --git a/modules/bit_pack_ops/src/moon.pkg b/modules/bit_pack_ops/src/moon.pkg new file mode 100644 index 00000000..321090c4 --- /dev/null +++ b/modules/bit_pack_ops/src/moon.pkg @@ -0,0 +1,13 @@ +import { + "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @bitlib, +} + +import { + "moonbitlang/async" @async, +} for "test" + +warnings = "-29" diff --git a/src/pack_ops/pack.mbt b/modules/bit_pack_ops/src/pack.mbt similarity index 100% rename from src/pack_ops/pack.mbt rename to modules/bit_pack_ops/src/pack.mbt diff --git a/src/pack_ops/pack_test.mbt b/modules/bit_pack_ops/src/pack_test.mbt similarity index 100% rename from src/pack_ops/pack_test.mbt rename to modules/bit_pack_ops/src/pack_test.mbt diff --git a/src/pack_ops/pkg.generated.mbti b/modules/bit_pack_ops/src/pkg.generated.mbti similarity index 100% rename from src/pack_ops/pkg.generated.mbti rename to modules/bit_pack_ops/src/pkg.generated.mbti diff --git a/modules/bit_protocol/moon.mod.json b/modules/bit_protocol/moon.mod.json new file mode 100644 index 00000000..8d1617d0 --- /dev/null +++ b/modules/bit_protocol/moon.mod.json @@ -0,0 +1,19 @@ +{ + "name": "mizchi/bit_protocol", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_pack": "0.42.2", + "moonbitlang/async": "0.16.6" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "protocol", "transport"], + "description": "Git wire protocol + transport (gix-protocol + gix-transport)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/protocol/bench_test.mbt b/modules/bit_protocol/src/bench_test.mbt similarity index 76% rename from src/protocol/bench_test.mbt rename to modules/bit_protocol/src/bench_test.mbt index cef388b1..7370222a 100644 --- a/src/protocol/bench_test.mbt +++ b/modules/bit_protocol/src/bench_test.mbt @@ -24,12 +24,12 @@ fn make_encoded_packets(count : Int) -> Bytes { let parts : Array[Byte] = [] for i in 0.. Bytes { } else { hex + " refs/heads/branch-\{i}\n" } - let encoded = @protocol.pktline_encode(line) + let encoded = @bit_protocol.pktline_encode(line) for j in 0.. @protocol.PushRequest { +fn make_push_request() -> @bit_protocol.PushRequest { let old_id = @bit.ObjectId::zero() let new_id = try! @bit.ObjectId::from_hex( "ce013625030ba8dba906f756967f9e9ca394464a", @@ -93,16 +93,16 @@ fn make_push_request() -> @protocol.PushRequest { let packfile = Bytes::from_array([ b'P', b'A', b'C', b'K', 0, 0, 0, 2, 0, 0, 0, 0, ]) - @protocol.PushRequest::new(old_id, new_id, "refs/heads/main", packfile) + @bit_protocol.PushRequest::new(old_id, new_id, "refs/heads/main", packfile) } ///| -let bench_push_req : @protocol.PushRequest = make_push_request() +let bench_push_req : @bit_protocol.PushRequest = make_push_request() ///| test "bench pktline_encode" (b : @bench.T) { b.bench(fn() { - let encoded = @protocol.pktline_encode(bench_pktline_str) + let encoded = @bit_protocol.pktline_encode(bench_pktline_str) b.keep(encoded.length()) }) } @@ -110,7 +110,7 @@ test "bench pktline_encode" (b : @bench.T) { ///| test "bench pktline_encode_bytes 1KB" (b : @bench.T) { b.bench(fn() { - let encoded = @protocol.pktline_encode_bytes(bench_1kb_bytes) + let encoded = @bit_protocol.pktline_encode_bytes(bench_1kb_bytes) b.keep(encoded.length()) }) } @@ -118,7 +118,7 @@ test "bench pktline_encode_bytes 1KB" (b : @bench.T) { ///| test "bench pktline_decode 100 packets" (b : @bench.T) { b.bench(fn() { - let packets = try! @protocol.pktline_decode(bench_encoded_100) + let packets = try! @bit_protocol.pktline_decode(bench_encoded_100) b.keep(packets.length()) }) } @@ -126,7 +126,7 @@ test "bench pktline_decode 100 packets" (b : @bench.T) { ///| test "bench parse_refs 50 refs" (b : @bench.T) { b.bench(fn() { - let refs = try! @protocol.parse_refs(bench_refs_50) + let refs = try! @bit_protocol.parse_refs(bench_refs_50) b.keep(refs.length()) }) } @@ -134,7 +134,7 @@ test "bench parse_refs 50 refs" (b : @bench.T) { ///| test "bench build_fetch_request_v2" (b : @bench.T) { b.bench(fn() { - let req = @protocol.build_fetch_request_v2("git/moonbit", bench_want_ids, 0) + let req = @bit_protocol.build_fetch_request_v2("git/moonbit", bench_want_ids, 0) b.keep(req.length()) }) } @@ -142,7 +142,7 @@ test "bench build_fetch_request_v2" (b : @bench.T) { ///| test "bench build_fetch_request_v0" (b : @bench.T) { b.bench(fn() { - let req = @protocol.build_fetch_request_v0( + let req = @bit_protocol.build_fetch_request_v0( "git/moonbit", bench_want_ids, bench_caps, ) b.keep(req.length()) @@ -152,7 +152,7 @@ test "bench build_fetch_request_v0" (b : @bench.T) { ///| test "bench parse_remote http" (b : @bench.T) { b.bench(fn() { - let spec = @protocol.parse_remote("https://github.com/user/repo.git") + let spec = @bit_protocol.parse_remote("https://github.com/user/repo.git") b.keep(spec.path.length()) }) } @@ -160,7 +160,7 @@ test "bench parse_remote http" (b : @bench.T) { ///| test "bench parse_remote ssh" (b : @bench.T) { b.bench(fn() { - let spec = @protocol.parse_remote("git@github.com:user/repo.git") + let spec = @bit_protocol.parse_remote("git@github.com:user/repo.git") b.keep(spec.path.length()) }) } @@ -168,7 +168,7 @@ test "bench parse_remote ssh" (b : @bench.T) { ///| test "bench build_receive_pack_body" (b : @bench.T) { b.bench(fn() { - let body = @protocol.build_receive_pack_body(bench_push_req) + let body = @bit_protocol.build_receive_pack_body(bench_push_req) b.keep(body.length()) }) } diff --git a/src/protocol/moon.pkg b/modules/bit_protocol/src/moon.pkg similarity index 78% rename from src/protocol/moon.pkg rename to modules/bit_protocol/src/moon.pkg index e1b387d3..580680ab 100644 --- a/src/protocol/moon.pkg +++ b/modules/bit_protocol/src/moon.pkg @@ -1,6 +1,10 @@ import { "mizchi/bit" @bit, - "mizchi/bit/pack" @pack, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @io, + "mizchi/bit_pack" @pack, "moonbitlang/async" @async, "moonbitlang/core/encoding/utf8" @utf8, } @@ -11,7 +15,7 @@ import { import { "mizchi/bit" @bit, - "mizchi/bit/pack" @pack, + "mizchi/bit_pack" @pack, "moonbitlang/core/bench" @bench, "moonbitlang/core/test" @test, } for "test" diff --git a/src/protocol/pkg.generated.mbti b/modules/bit_protocol/src/pkg.generated.mbti similarity index 100% rename from src/protocol/pkg.generated.mbti rename to modules/bit_protocol/src/pkg.generated.mbti diff --git a/src/protocol/pktline.mbt b/modules/bit_protocol/src/pktline.mbt similarity index 100% rename from src/protocol/pktline.mbt rename to modules/bit_protocol/src/pktline.mbt diff --git a/src/protocol/pktline_test.mbt b/modules/bit_protocol/src/pktline_test.mbt similarity index 100% rename from src/protocol/pktline_test.mbt rename to modules/bit_protocol/src/pktline_test.mbt diff --git a/src/protocol/remote_common.mbt b/modules/bit_protocol/src/remote_common.mbt similarity index 100% rename from src/protocol/remote_common.mbt rename to modules/bit_protocol/src/remote_common.mbt diff --git a/src/protocol/remote_test.mbt b/modules/bit_protocol/src/remote_test.mbt similarity index 100% rename from src/protocol/remote_test.mbt rename to modules/bit_protocol/src/remote_test.mbt diff --git a/src/protocol/transport.mbt b/modules/bit_protocol/src/transport.mbt similarity index 100% rename from src/protocol/transport.mbt rename to modules/bit_protocol/src/transport.mbt diff --git a/src/protocol/upload_pack_common.mbt b/modules/bit_protocol/src/upload_pack_common.mbt similarity index 100% rename from src/protocol/upload_pack_common.mbt rename to modules/bit_protocol/src/upload_pack_common.mbt diff --git a/src/protocol/upload_pack_http_common.mbt b/modules/bit_protocol/src/upload_pack_http_common.mbt similarity index 100% rename from src/protocol/upload_pack_http_common.mbt rename to modules/bit_protocol/src/upload_pack_http_common.mbt diff --git a/src/protocol/upload_pack_http_wbtest.mbt b/modules/bit_protocol/src/upload_pack_http_wbtest.mbt similarity index 100% rename from src/protocol/upload_pack_http_wbtest.mbt rename to modules/bit_protocol/src/upload_pack_http_wbtest.mbt diff --git a/src/protocol/upload_pack_remote_wasm.mbt b/modules/bit_protocol/src/upload_pack_remote_wasm.mbt similarity index 100% rename from src/protocol/upload_pack_remote_wasm.mbt rename to modules/bit_protocol/src/upload_pack_remote_wasm.mbt diff --git a/src/protocol/upload_pack_remote_wasm_wbtest.mbt b/modules/bit_protocol/src/upload_pack_remote_wasm_wbtest.mbt similarity index 100% rename from src/protocol/upload_pack_remote_wasm_wbtest.mbt rename to modules/bit_protocol/src/upload_pack_remote_wasm_wbtest.mbt diff --git a/modules/bit_refs/moon.mod.json b/modules/bit_refs/moon.mod.json new file mode 100644 index 00000000..56e87edf --- /dev/null +++ b/modules/bit_refs/moon.mod.json @@ -0,0 +1,17 @@ +{ + "name": "mizchi/bit_refs", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_reftable": "0.42.2", + "mizchi/bit_types": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "ref"], + "description": "Git reference store (gix-ref equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/refs/bench_test.mbt b/modules/bit_refs/src/bench_test.mbt similarity index 100% rename from src/refs/bench_test.mbt rename to modules/bit_refs/src/bench_test.mbt diff --git a/src/refs/moon.pkg b/modules/bit_refs/src/moon.pkg similarity index 67% rename from src/refs/moon.pkg rename to modules/bit_refs/src/moon.pkg index aa8d88c2..9715fcd8 100644 --- a/src/refs/moon.pkg +++ b/modules/bit_refs/src/moon.pkg @@ -1,6 +1,9 @@ import { "mizchi/bit" @bit, - "mizchi/bit/reftable" @reftable, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_io" @io, + "mizchi/bit_reftable" @reftable, "moonbitlang/core/encoding/utf8" @utf8, } diff --git a/src/refs/pkg.generated.mbti b/modules/bit_refs/src/pkg.generated.mbti similarity index 100% rename from src/refs/pkg.generated.mbti rename to modules/bit_refs/src/pkg.generated.mbti diff --git a/src/refs/refs_store.mbt b/modules/bit_refs/src/refs_store.mbt similarity index 100% rename from src/refs/refs_store.mbt rename to modules/bit_refs/src/refs_store.mbt diff --git a/src/refs/refs_store_test.mbt b/modules/bit_refs/src/refs_store_test.mbt similarity index 100% rename from src/refs/refs_store_test.mbt rename to modules/bit_refs/src/refs_store_test.mbt diff --git a/modules/bit_reftable/moon.mod.json b/modules/bit_reftable/moon.mod.json new file mode 100644 index 00000000..5644ea26 --- /dev/null +++ b/modules/bit_reftable/moon.mod.json @@ -0,0 +1,15 @@ +{ + "name": "mizchi/bit_reftable", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_types": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "reftable"], + "description": "Git reftable backend", + "source": "src", + "preferred-target": "native" +} diff --git a/modules/bit_reftable/src/moon.pkg b/modules/bit_reftable/src/moon.pkg new file mode 100644 index 00000000..8d07f963 --- /dev/null +++ b/modules/bit_reftable/src/moon.pkg @@ -0,0 +1,7 @@ +import { + "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, +} + +warnings = "-29" diff --git a/src/reftable/pkg.generated.mbti b/modules/bit_reftable/src/pkg.generated.mbti similarity index 100% rename from src/reftable/pkg.generated.mbti rename to modules/bit_reftable/src/pkg.generated.mbti diff --git a/src/reftable/reftable.mbt b/modules/bit_reftable/src/reftable.mbt similarity index 100% rename from src/reftable/reftable.mbt rename to modules/bit_reftable/src/reftable.mbt diff --git a/src/reftable/reftable_wbtest.mbt b/modules/bit_reftable/src/reftable_wbtest.mbt similarity index 100% rename from src/reftable/reftable_wbtest.mbt rename to modules/bit_reftable/src/reftable_wbtest.mbt diff --git a/src/reftable/stack.mbt b/modules/bit_reftable/src/stack.mbt similarity index 100% rename from src/reftable/stack.mbt rename to modules/bit_reftable/src/stack.mbt diff --git a/src/reftable/writer.mbt b/modules/bit_reftable/src/writer.mbt similarity index 100% rename from src/reftable/writer.mbt rename to modules/bit_reftable/src/writer.mbt diff --git a/modules/bit_remote/moon.mod.json b/modules/bit_remote/moon.mod.json new file mode 100644 index 00000000..13ac4d38 --- /dev/null +++ b/modules/bit_remote/moon.mod.json @@ -0,0 +1,16 @@ +{ + "name": "mizchi/bit_remote", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_types": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "remote", "url"], + "description": "Remote URL parsing and .git path resolution (gix-url + gix-discover)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/remote/moon.pkg b/modules/bit_remote/src/moon.pkg similarity index 63% rename from src/remote/moon.pkg rename to modules/bit_remote/src/moon.pkg index 82726a2d..081d5c5b 100644 --- a/src/remote/moon.pkg +++ b/modules/bit_remote/src/moon.pkg @@ -1,6 +1,8 @@ import { "mizchi/bit" @bit, - "mizchi/bit/io" @bitio, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_io" @bitio, "moonbitlang/core/encoding/utf8" @utf8, } diff --git a/src/remote/pkg.generated.mbti b/modules/bit_remote/src/pkg.generated.mbti similarity index 100% rename from src/remote/pkg.generated.mbti rename to modules/bit_remote/src/pkg.generated.mbti diff --git a/src/remote/remote_path.mbt b/modules/bit_remote/src/remote_path.mbt similarity index 100% rename from src/remote/remote_path.mbt rename to modules/bit_remote/src/remote_path.mbt diff --git a/src/remote/remote_path_test.mbt b/modules/bit_remote/src/remote_path_test.mbt similarity index 100% rename from src/remote/remote_path_test.mbt rename to modules/bit_remote/src/remote_path_test.mbt diff --git a/src/remote/remote_shorthand.mbt b/modules/bit_remote/src/remote_shorthand.mbt similarity index 100% rename from src/remote/remote_shorthand.mbt rename to modules/bit_remote/src/remote_shorthand.mbt diff --git a/src/remote/remote_shorthand_test.mbt b/modules/bit_remote/src/remote_shorthand_test.mbt similarity index 100% rename from src/remote/remote_shorthand_test.mbt rename to modules/bit_remote/src/remote_shorthand_test.mbt diff --git a/modules/bit_repo/moon.mod.json b/modules/bit_repo/moon.mod.json new file mode 100644 index 00000000..ab2e7ab4 --- /dev/null +++ b/modules/bit_repo/moon.mod.json @@ -0,0 +1,15 @@ +{ + "name": "mizchi/bit_repo", + "version": "0.42.2", + "deps": { + "mizchi/bit_io": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_types": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "repo"], + "description": "Repository handle and materialization", + "source": "src", + "preferred-target": "native" +} diff --git a/src/repo/core.mbt b/modules/bit_repo/src/core.mbt similarity index 100% rename from src/repo/core.mbt rename to modules/bit_repo/src/core.mbt diff --git a/src/repo/materialize.mbt b/modules/bit_repo/src/materialize.mbt similarity index 100% rename from src/repo/materialize.mbt rename to modules/bit_repo/src/materialize.mbt diff --git a/src/repo/materialize_wbtest.mbt b/modules/bit_repo/src/materialize_wbtest.mbt similarity index 100% rename from src/repo/materialize_wbtest.mbt rename to modules/bit_repo/src/materialize_wbtest.mbt diff --git a/src/repo/moon.pkg b/modules/bit_repo/src/moon.pkg similarity index 54% rename from src/repo/moon.pkg rename to modules/bit_repo/src/moon.pkg index f6285d53..40f394d1 100644 --- a/src/repo/moon.pkg +++ b/modules/bit_repo/src/moon.pkg @@ -1,12 +1,12 @@ import { - "mizchi/bit/types" @types, - "mizchi/bit/object" @object, - "mizchi/bit/io" @io, + "mizchi/bit_types" @types, + "mizchi/bit_object" @object, + "mizchi/bit_io" @io, "moonbitlang/core/encoding/utf8" @utf8, } import { - "mizchi/bit/io" @io, + "mizchi/bit_io" @io, "moonbitlang/core/test" @test, } for "wbtest" diff --git a/src/repo/pkg.generated.mbti b/modules/bit_repo/src/pkg.generated.mbti similarity index 100% rename from src/repo/pkg.generated.mbti rename to modules/bit_repo/src/pkg.generated.mbti diff --git a/modules/bit_repo_ops/moon.mod.json b/modules/bit_repo_ops/moon.mod.json new file mode 100644 index 00000000..49a1401d --- /dev/null +++ b/modules/bit_repo_ops/moon.mod.json @@ -0,0 +1,19 @@ +{ + "name": "mizchi/bit_repo_ops", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_hash": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_utils": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "repo"], + "description": "Repository-level operations (revparse, etc.)", + "source": "src", + "preferred-target": "native" +} diff --git a/modules/bit_repo_ops/src/moon.pkg b/modules/bit_repo_ops/src/moon.pkg new file mode 100644 index 00000000..4103e714 --- /dev/null +++ b/modules/bit_repo_ops/src/moon.pkg @@ -0,0 +1,11 @@ +import { + "mizchi/bit_repo" @repo, + "mizchi/bit_types" @types, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_hash" @bithash, + "mizchi/bit_object" @object, + "mizchi/bit_utils" @string_utils, + "moonbitlang/core/encoding/utf8" @utf8, +} + +warnings = "-29" diff --git a/src/repo_ops/pkg.generated.mbti b/modules/bit_repo_ops/src/pkg.generated.mbti similarity index 100% rename from src/repo_ops/pkg.generated.mbti rename to modules/bit_repo_ops/src/pkg.generated.mbti diff --git a/src/repo_ops/repo_ops.mbt b/modules/bit_repo_ops/src/repo_ops.mbt similarity index 100% rename from src/repo_ops/repo_ops.mbt rename to modules/bit_repo_ops/src/repo_ops.mbt diff --git a/src/repo_ops/revparse_ops.mbt b/modules/bit_repo_ops/src/revparse_ops.mbt similarity index 100% rename from src/repo_ops/revparse_ops.mbt rename to modules/bit_repo_ops/src/revparse_ops.mbt diff --git a/modules/bit_runtime/moon.mod.json b/modules/bit_runtime/moon.mod.json new file mode 100644 index 00000000..088f795f --- /dev/null +++ b/modules/bit_runtime/moon.mod.json @@ -0,0 +1,21 @@ +{ + "name": "mizchi/bit_runtime", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_repo_ops": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_utils": "0.42.2", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "runtime"], + "description": "Runtime helpers (storage_runtime, etc.)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/runtime/moon.pkg b/modules/bit_runtime/src/moon.pkg similarity index 52% rename from src/runtime/moon.pkg rename to modules/bit_runtime/src/moon.pkg index 16f52a57..0b99f1d4 100644 --- a/src/runtime/moon.pkg +++ b/modules/bit_runtime/src/moon.pkg @@ -1,9 +1,12 @@ import { "mizchi/bit" @bit, - "mizchi/bit/object" @object, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/repo_ops" @bitrepo, - "mizchi/bit/string_utils" @string_utils, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_repo_ops" @bitrepo, + "mizchi/bit_utils" @string_utils, "moonbitlang/core/encoding/utf8" @utf8, "moonbitlang/core/env" @env, "moonbitlang/core/string" @string, diff --git a/src/runtime/pkg.generated.mbti b/modules/bit_runtime/src/pkg.generated.mbti similarity index 100% rename from src/runtime/pkg.generated.mbti rename to modules/bit_runtime/src/pkg.generated.mbti diff --git a/src/runtime/storage_runtime.mbt b/modules/bit_runtime/src/storage_runtime.mbt similarity index 100% rename from src/runtime/storage_runtime.mbt rename to modules/bit_runtime/src/storage_runtime.mbt diff --git a/src/runtime/storage_runtime_wbtest.mbt b/modules/bit_runtime/src/storage_runtime_wbtest.mbt similarity index 100% rename from src/runtime/storage_runtime_wbtest.mbt rename to modules/bit_runtime/src/storage_runtime_wbtest.mbt diff --git a/modules/bit_trailers/moon.mod.json b/modules/bit_trailers/moon.mod.json new file mode 100644 index 00000000..94a64038 --- /dev/null +++ b/modules/bit_trailers/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_trailers", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "trailers"], + "description": "Commit message trailers (gix-trailers equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/trailers/moon.pkg b/modules/bit_trailers/src/moon.pkg similarity index 100% rename from src/trailers/moon.pkg rename to modules/bit_trailers/src/moon.pkg diff --git a/src/trailers/pkg.generated.mbti b/modules/bit_trailers/src/pkg.generated.mbti similarity index 100% rename from src/trailers/pkg.generated.mbti rename to modules/bit_trailers/src/pkg.generated.mbti diff --git a/src/trailers/trailers.mbt b/modules/bit_trailers/src/trailers.mbt similarity index 100% rename from src/trailers/trailers.mbt rename to modules/bit_trailers/src/trailers.mbt diff --git a/src/trailers/trailers_test.mbt b/modules/bit_trailers/src/trailers_test.mbt similarity index 100% rename from src/trailers/trailers_test.mbt rename to modules/bit_trailers/src/trailers_test.mbt diff --git a/modules/bit_types/moon.mod.json b/modules/bit_types/moon.mod.json new file mode 100644 index 00000000..fd514abd --- /dev/null +++ b/modules/bit_types/moon.mod.json @@ -0,0 +1,13 @@ +{ + "name": "mizchi/bit_types", + "version": "0.42.2", + "deps": { + "mizchi/bit_object": "0.42.2" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "types"], + "description": "Shared types & traits (re-exports from bit_object)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/types/contracts.mbt b/modules/bit_types/src/contracts.mbt similarity index 100% rename from src/types/contracts.mbt rename to modules/bit_types/src/contracts.mbt diff --git a/src/types/git_types.mbt b/modules/bit_types/src/git_types.mbt similarity index 100% rename from src/types/git_types.mbt rename to modules/bit_types/src/git_types.mbt diff --git a/modules/bit_types/src/moon.pkg b/modules/bit_types/src/moon.pkg new file mode 100644 index 00000000..bd4dfd7e --- /dev/null +++ b/modules/bit_types/src/moon.pkg @@ -0,0 +1,5 @@ +import { + "mizchi/bit_object" @object, +} + +warnings = "-29" diff --git a/src/types/pkg.generated.mbti b/modules/bit_types/src/pkg.generated.mbti similarity index 100% rename from src/types/pkg.generated.mbti rename to modules/bit_types/src/pkg.generated.mbti diff --git a/modules/bit_utils/moon.mod.json b/modules/bit_utils/moon.mod.json new file mode 100644 index 00000000..4f9273fe --- /dev/null +++ b/modules/bit_utils/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bit_utils", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "utils", "quote"], + "description": "String and quoting utilities (gix-utils + gix-quote equivalent)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/string_utils/moon.pkg b/modules/bit_utils/src/moon.pkg similarity index 100% rename from src/string_utils/moon.pkg rename to modules/bit_utils/src/moon.pkg diff --git a/src/string_utils/pkg.generated.mbti b/modules/bit_utils/src/pkg.generated.mbti similarity index 100% rename from src/string_utils/pkg.generated.mbti rename to modules/bit_utils/src/pkg.generated.mbti diff --git a/src/string_utils/string_utils.mbt b/modules/bit_utils/src/string_utils.mbt similarity index 100% rename from src/string_utils/string_utils.mbt rename to modules/bit_utils/src/string_utils.mbt diff --git a/modules/bit_utils/src/string_utils_test.mbt b/modules/bit_utils/src/string_utils_test.mbt new file mode 100644 index 00000000..0da792dd --- /dev/null +++ b/modules/bit_utils/src/string_utils_test.mbt @@ -0,0 +1,32 @@ +///| +test "trim_string" { + assert_eq(@bit_utils.trim_string(" hello "), "hello") + assert_eq(@bit_utils.trim_string("\t\nhello\r\n"), "hello") + assert_eq(@bit_utils.trim_string("hello"), "hello") + assert_eq(@bit_utils.trim_string(""), "") + assert_eq(@bit_utils.trim_string(" "), "") +} + +///| +test "to_octal_string" { + assert_eq(@bit_utils.to_octal_string(0), "0") + assert_eq(@bit_utils.to_octal_string(8), "10") + assert_eq(@bit_utils.to_octal_string(0o100644), "100644") + assert_eq(@bit_utils.to_octal_string(0o100755), "100755") + assert_eq(@bit_utils.to_octal_string(0o40000), "40000") +} + +///| +test "mode_to_string" { + assert_eq(@bit_utils.mode_to_string(33188), "100644") + assert_eq(@bit_utils.mode_to_string(0o100755), "100755") + assert_eq(@bit_utils.mode_to_string(0o40000), "40000") +} + +///| +test "decode_bytes" { + let data = b"hello world" + assert_eq(@bit_utils.decode_bytes(data), "hello world") + let empty = b"" + assert_eq(@bit_utils.decode_bytes(empty), "") +} diff --git a/modules/bit_vfs/moon.mod.json b/modules/bit_vfs/moon.mod.json new file mode 100644 index 00000000..b8c3df25 --- /dev/null +++ b/modules/bit_vfs/moon.mod.json @@ -0,0 +1,22 @@ +{ + "name": "mizchi/bit_vfs", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/zlib": "0.4.5", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "vfs"], + "description": "Virtual FS over commits", + "source": "src", + "preferred-target": "native" +} diff --git a/src/vfs/bench_real_test.mbt b/modules/bit_vfs/src/bench_real_test.mbt similarity index 100% rename from src/vfs/bench_real_test.mbt rename to modules/bit_vfs/src/bench_real_test.mbt diff --git a/src/vfs/bench_test.mbt b/modules/bit_vfs/src/bench_test.mbt similarity index 100% rename from src/vfs/bench_test.mbt rename to modules/bit_vfs/src/bench_test.mbt diff --git a/src/vfs/cache.mbt b/modules/bit_vfs/src/cache.mbt similarity index 100% rename from src/vfs/cache.mbt rename to modules/bit_vfs/src/cache.mbt diff --git a/src/vfs/fs.mbt b/modules/bit_vfs/src/fs.mbt similarity index 100% rename from src/vfs/fs.mbt rename to modules/bit_vfs/src/fs.mbt diff --git a/src/vfs/fs_test.mbt b/modules/bit_vfs/src/fs_test.mbt similarity index 100% rename from src/vfs/fs_test.mbt rename to modules/bit_vfs/src/fs_test.mbt diff --git a/src/vfs/fs_wbtest.mbt b/modules/bit_vfs/src/fs_wbtest.mbt similarity index 100% rename from src/vfs/fs_wbtest.mbt rename to modules/bit_vfs/src/fs_wbtest.mbt diff --git a/src/vfs/integration_test.mbt b/modules/bit_vfs/src/integration_test.mbt similarity index 100% rename from src/vfs/integration_test.mbt rename to modules/bit_vfs/src/integration_test.mbt diff --git a/src/vfs/layer.mbt b/modules/bit_vfs/src/layer.mbt similarity index 100% rename from src/vfs/layer.mbt rename to modules/bit_vfs/src/layer.mbt diff --git a/src/vfs/lru.mbt b/modules/bit_vfs/src/lru.mbt similarity index 100% rename from src/vfs/lru.mbt rename to modules/bit_vfs/src/lru.mbt diff --git a/src/vfs/lru_test.mbt b/modules/bit_vfs/src/lru_test.mbt similarity index 100% rename from src/vfs/lru_test.mbt rename to modules/bit_vfs/src/lru_test.mbt diff --git a/src/vfs/moon.pkg b/modules/bit_vfs/src/moon.pkg similarity index 79% rename from src/vfs/moon.pkg rename to modules/bit_vfs/src/moon.pkg index eaa67df0..360e2d3b 100644 --- a/src/vfs/moon.pkg +++ b/modules/bit_vfs/src/moon.pkg @@ -1,12 +1,16 @@ import { "mizchi/bit" @bit, - "mizchi/bit/lib" @lib, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @lib, "moonbitlang/core/encoding/utf8" @utf8, } import { - "mizchi/bit/lib" @lib, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_lib" @lib, + "mizchi/bit_osfs" @osfs, "mizchi/zlib", "moonbitlang/core/bench" @bench, "moonbitlang/async", diff --git a/src/vfs/partial_clone_test.mbt b/modules/bit_vfs/src/partial_clone_test.mbt similarity index 100% rename from src/vfs/partial_clone_test.mbt rename to modules/bit_vfs/src/partial_clone_test.mbt diff --git a/src/vfs/path.mbt b/modules/bit_vfs/src/path.mbt similarity index 100% rename from src/vfs/path.mbt rename to modules/bit_vfs/src/path.mbt diff --git a/src/vfs/perf_partial_clone_test.mbt b/modules/bit_vfs/src/perf_partial_clone_test.mbt similarity index 100% rename from src/vfs/perf_partial_clone_test.mbt rename to modules/bit_vfs/src/perf_partial_clone_test.mbt diff --git a/src/vfs/pkg.generated.mbti b/modules/bit_vfs/src/pkg.generated.mbti similarity index 100% rename from src/vfs/pkg.generated.mbti rename to modules/bit_vfs/src/pkg.generated.mbti diff --git a/src/vfs/read_ops.mbt b/modules/bit_vfs/src/read_ops.mbt similarity index 100% rename from src/vfs/read_ops.mbt rename to modules/bit_vfs/src/read_ops.mbt diff --git a/src/vfs/snapshot.mbt b/modules/bit_vfs/src/snapshot.mbt similarity index 100% rename from src/vfs/snapshot.mbt rename to modules/bit_vfs/src/snapshot.mbt diff --git a/src/vfs/tree_builder.mbt b/modules/bit_vfs/src/tree_builder.mbt similarity index 100% rename from src/vfs/tree_builder.mbt rename to modules/bit_vfs/src/tree_builder.mbt diff --git a/src/vfs/types.mbt b/modules/bit_vfs/src/types.mbt similarity index 100% rename from src/vfs/types.mbt rename to modules/bit_vfs/src/types.mbt diff --git a/src/vfs/verify_lazy_test.mbt b/modules/bit_vfs/src/verify_lazy_test.mbt similarity index 100% rename from src/vfs/verify_lazy_test.mbt rename to modules/bit_vfs/src/verify_lazy_test.mbt diff --git a/src/vfs/write_ops.mbt b/modules/bit_vfs/src/write_ops.mbt similarity index 100% rename from src/vfs/write_ops.mbt rename to modules/bit_vfs/src/write_ops.mbt diff --git a/modules/bit_worktree/moon.mod.json b/modules/bit_worktree/moon.mod.json new file mode 100644 index 00000000..5449f269 --- /dev/null +++ b/modules/bit_worktree/moon.mod.json @@ -0,0 +1,18 @@ +{ + "name": "mizchi/bit_worktree", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_types": "0.42.2", + "moonbitlang/async": "0.16.6" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "worktree", "status"], + "description": "Working-tree operations (status / add / commit / rm / mv)", + "source": "src", + "preferred-target": "native" +} diff --git a/modules/bit_worktree/src/moon.pkg b/modules/bit_worktree/src/moon.pkg new file mode 100644 index 00000000..321090c4 --- /dev/null +++ b/modules/bit_worktree/src/moon.pkg @@ -0,0 +1,13 @@ +import { + "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @bitlib, +} + +import { + "moonbitlang/async" @async, +} for "test" + +warnings = "-29" diff --git a/src/worktree/pkg.generated.mbti b/modules/bit_worktree/src/pkg.generated.mbti similarity index 100% rename from src/worktree/pkg.generated.mbti rename to modules/bit_worktree/src/pkg.generated.mbti diff --git a/src/worktree/worktree.mbt b/modules/bit_worktree/src/worktree.mbt similarity index 100% rename from src/worktree/worktree.mbt rename to modules/bit_worktree/src/worktree.mbt diff --git a/src/worktree/worktree_test.mbt b/modules/bit_worktree/src/worktree_test.mbt similarity index 100% rename from src/worktree/worktree_test.mbt rename to modules/bit_worktree/src/worktree_test.mbt diff --git a/modules/bitx_bitconfig/moon.mod.json b/modules/bitx_bitconfig/moon.mod.json new file mode 100644 index 00000000..16d500e3 --- /dev/null +++ b/modules/bitx_bitconfig/moon.mod.json @@ -0,0 +1,14 @@ +{ + "name": "mizchi/bitx_bitconfig", + "version": "0.42.2", + "deps": { + "bobzhang/toml": "0.1.7", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "config"], + "description": "bit-specific config (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-bitconfig/load.mbt b/modules/bitx_bitconfig/src/load.mbt similarity index 100% rename from src/x-bitconfig/load.mbt rename to modules/bitx_bitconfig/src/load.mbt diff --git a/src/x-bitconfig/load_wbtest.mbt b/modules/bitx_bitconfig/src/load_wbtest.mbt similarity index 100% rename from src/x-bitconfig/load_wbtest.mbt rename to modules/bitx_bitconfig/src/load_wbtest.mbt diff --git a/src/x-bitconfig/moon.pkg b/modules/bitx_bitconfig/src/moon.pkg similarity index 100% rename from src/x-bitconfig/moon.pkg rename to modules/bitx_bitconfig/src/moon.pkg diff --git a/src/x-bitconfig/pkg.generated.mbti b/modules/bitx_bitconfig/src/pkg.generated.mbti similarity index 100% rename from src/x-bitconfig/pkg.generated.mbti rename to modules/bitx_bitconfig/src/pkg.generated.mbti diff --git a/modules/bitx_doc/moon.mod.json b/modules/bitx_doc/moon.mod.json new file mode 100644 index 00000000..8878366c --- /dev/null +++ b/modules/bitx_doc/moon.mod.json @@ -0,0 +1,20 @@ +{ + "name": "mizchi/bitx_doc", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": [ + "git", + "docs" + ], + "description": "Repo-stored markdown docs (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-doc/doc.mbt b/modules/bitx_doc/src/doc.mbt similarity index 100% rename from src/x-doc/doc.mbt rename to modules/bitx_doc/src/doc.mbt diff --git a/src/x-doc/doc_test.mbt b/modules/bitx_doc/src/doc_test.mbt similarity index 100% rename from src/x-doc/doc_test.mbt rename to modules/bitx_doc/src/doc_test.mbt diff --git a/src/x-doc/moon.pkg b/modules/bitx_doc/src/moon.pkg similarity index 72% rename from src/x-doc/moon.pkg rename to modules/bitx_doc/src/moon.pkg index cdb1b73a..c6566b5d 100644 --- a/src/x-doc/moon.pkg +++ b/modules/bitx_doc/src/moon.pkg @@ -1,11 +1,13 @@ import { "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, "moonbitlang/x/encoding" @encoding, "moonbitlang/x/path" @path, } import { - "mizchi/bit/osfs" @osfs, + "mizchi/bit_osfs" @osfs, "moonbitlang/core/test" @test, } for "test" diff --git a/src/x-doc/pkg.generated.mbti b/modules/bitx_doc/src/pkg.generated.mbti similarity index 100% rename from src/x-doc/pkg.generated.mbti rename to modules/bitx_doc/src/pkg.generated.mbti diff --git a/modules/bitx_hq/moon.mod.json b/modules/bitx_hq/moon.mod.json new file mode 100644 index 00000000..9725e778 --- /dev/null +++ b/modules/bitx_hq/moon.mod.json @@ -0,0 +1,11 @@ +{ + "name": "mizchi/bitx_hq", + "version": "0.42.2", + "deps": {}, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "ghq"], + "description": "ghq-compatible repo manager (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-hq/config.mbt b/modules/bitx_hq/src/config.mbt similarity index 100% rename from src/x-hq/config.mbt rename to modules/bitx_hq/src/config.mbt diff --git a/src/x-hq/get.mbt b/modules/bitx_hq/src/get.mbt similarity index 100% rename from src/x-hq/get.mbt rename to modules/bitx_hq/src/get.mbt diff --git a/src/x-hq/hq_test.mbt b/modules/bitx_hq/src/hq_test.mbt similarity index 100% rename from src/x-hq/hq_test.mbt rename to modules/bitx_hq/src/hq_test.mbt diff --git a/src/x-hq/list.mbt b/modules/bitx_hq/src/list.mbt similarity index 100% rename from src/x-hq/list.mbt rename to modules/bitx_hq/src/list.mbt diff --git a/src/x-hq/moon.pkg b/modules/bitx_hq/src/moon.pkg similarity index 100% rename from src/x-hq/moon.pkg rename to modules/bitx_hq/src/moon.pkg diff --git a/src/x-hq/pkg.generated.mbti b/modules/bitx_hq/src/pkg.generated.mbti similarity index 100% rename from src/x-hq/pkg.generated.mbti rename to modules/bitx_hq/src/pkg.generated.mbti diff --git a/src/x-hq/root.mbt b/modules/bitx_hq/src/root.mbt similarity index 100% rename from src/x-hq/root.mbt rename to modules/bitx_hq/src/root.mbt diff --git a/src/x-hq/types.mbt b/modules/bitx_hq/src/types.mbt similarity index 100% rename from src/x-hq/types.mbt rename to modules/bitx_hq/src/types.mbt diff --git a/src/x-hq/url_parse.mbt b/modules/bitx_hq/src/url_parse.mbt similarity index 100% rename from src/x-hq/url_parse.mbt rename to modules/bitx_hq/src/url_parse.mbt diff --git a/modules/bitx_hub/moon.mod.json b/modules/bitx_hub/moon.mod.json new file mode 100644 index 00000000..f122cc21 --- /dev/null +++ b/modules/bitx_hub/moon.mod.json @@ -0,0 +1,23 @@ +{ + "name": "mizchi/bitx_hub", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_pack": "0.42.2", + "mizchi/bit_protocol": "0.42.2", + "mizchi/x": "0.2.0", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "hub", "pr", "issue"], + "description": "Local PR/Issue metadata + GitHub sync (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-hub/claim.mbt b/modules/bitx_hub/src/claim.mbt similarity index 100% rename from src/x-hub/claim.mbt rename to modules/bitx_hub/src/claim.mbt diff --git a/src/x-hub/claim_wbtest.mbt b/modules/bitx_hub/src/claim_wbtest.mbt similarity index 100% rename from src/x-hub/claim_wbtest.mbt rename to modules/bitx_hub/src/claim_wbtest.mbt diff --git a/src/x-hub/comment.mbt b/modules/bitx_hub/src/comment.mbt similarity index 100% rename from src/x-hub/comment.mbt rename to modules/bitx_hub/src/comment.mbt diff --git a/src/x-hub/crypto/moon.pkg b/modules/bitx_hub/src/crypto/moon.pkg similarity index 92% rename from src/x-hub/crypto/moon.pkg rename to modules/bitx_hub/src/crypto/moon.pkg index e76bd069..8f6dcd52 100644 --- a/src/x-hub/crypto/moon.pkg +++ b/modules/bitx_hub/src/crypto/moon.pkg @@ -1,5 +1,7 @@ import { "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, "moonbitlang/async/process" @process, "moonbitlang/async/js_async" @js_async, "moonbitlang/core/env" @env, diff --git a/src/x-hub/crypto/pkg.generated.mbti b/modules/bitx_hub/src/crypto/pkg.generated.mbti similarity index 100% rename from src/x-hub/crypto/pkg.generated.mbti rename to modules/bitx_hub/src/crypto/pkg.generated.mbti diff --git a/src/x-hub/crypto/relay_sign.mbt b/modules/bitx_hub/src/crypto/relay_sign.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign.mbt rename to modules/bitx_hub/src/crypto/relay_sign.mbt diff --git a/src/x-hub/crypto/relay_sign_js.mbt b/modules/bitx_hub/src/crypto/relay_sign_js.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign_js.mbt rename to modules/bitx_hub/src/crypto/relay_sign_js.mbt diff --git a/src/x-hub/crypto/relay_sign_native.mbt b/modules/bitx_hub/src/crypto/relay_sign_native.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign_native.mbt rename to modules/bitx_hub/src/crypto/relay_sign_native.mbt diff --git a/src/x-hub/crypto/relay_sign_wasm.mbt b/modules/bitx_hub/src/crypto/relay_sign_wasm.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign_wasm.mbt rename to modules/bitx_hub/src/crypto/relay_sign_wasm.mbt diff --git a/src/x-hub/crypto/relay_sign_wasm_wbtest.mbt b/modules/bitx_hub/src/crypto/relay_sign_wasm_wbtest.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign_wasm_wbtest.mbt rename to modules/bitx_hub/src/crypto/relay_sign_wasm_wbtest.mbt diff --git a/src/x-hub/crypto/relay_sign_web_crypto.mbt b/modules/bitx_hub/src/crypto/relay_sign_web_crypto.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign_web_crypto.mbt rename to modules/bitx_hub/src/crypto/relay_sign_web_crypto.mbt diff --git a/src/x-hub/crypto/relay_sign_web_wbtest.mbt b/modules/bitx_hub/src/crypto/relay_sign_web_wbtest.mbt similarity index 100% rename from src/x-hub/crypto/relay_sign_web_wbtest.mbt rename to modules/bitx_hub/src/crypto/relay_sign_web_wbtest.mbt diff --git a/src/x-hub/format.mbt b/modules/bitx_hub/src/format.mbt similarity index 100% rename from src/x-hub/format.mbt rename to modules/bitx_hub/src/format.mbt diff --git a/src/x-hub/github_convert.mbt b/modules/bitx_hub/src/github_convert.mbt similarity index 100% rename from src/x-hub/github_convert.mbt rename to modules/bitx_hub/src/github_convert.mbt diff --git a/src/x-hub/github_convert_wbtest.mbt b/modules/bitx_hub/src/github_convert_wbtest.mbt similarity index 100% rename from src/x-hub/github_convert_wbtest.mbt rename to modules/bitx_hub/src/github_convert_wbtest.mbt diff --git a/src/x-hub/github_types.mbt b/modules/bitx_hub/src/github_types.mbt similarity index 100% rename from src/x-hub/github_types.mbt rename to modules/bitx_hub/src/github_types.mbt diff --git a/src/x-hub/hub.mbt b/modules/bitx_hub/src/hub.mbt similarity index 100% rename from src/x-hub/hub.mbt rename to modules/bitx_hub/src/hub.mbt diff --git a/src/x-hub/hub_test.mbt b/modules/bitx_hub/src/hub_test.mbt similarity index 100% rename from src/x-hub/hub_test.mbt rename to modules/bitx_hub/src/hub_test.mbt diff --git a/src/x-hub/import.mbt b/modules/bitx_hub/src/import.mbt similarity index 100% rename from src/x-hub/import.mbt rename to modules/bitx_hub/src/import.mbt diff --git a/src/x-hub/import_test.mbt b/modules/bitx_hub/src/import_test.mbt similarity index 100% rename from src/x-hub/import_test.mbt rename to modules/bitx_hub/src/import_test.mbt diff --git a/src/x-hub/issue.mbt b/modules/bitx_hub/src/issue.mbt similarity index 100% rename from src/x-hub/issue.mbt rename to modules/bitx_hub/src/issue.mbt diff --git a/src/x-hub/js_hub_exports.mbt b/modules/bitx_hub/src/js_hub_exports.mbt similarity index 100% rename from src/x-hub/js_hub_exports.mbt rename to modules/bitx_hub/src/js_hub_exports.mbt diff --git a/src/x-hub/js_hub_host_bridge.mbt b/modules/bitx_hub/src/js_hub_host_bridge.mbt similarity index 100% rename from src/x-hub/js_hub_host_bridge.mbt rename to modules/bitx_hub/src/js_hub_host_bridge.mbt diff --git a/src/x-hub/merge.mbt b/modules/bitx_hub/src/merge.mbt similarity index 100% rename from src/x-hub/merge.mbt rename to modules/bitx_hub/src/merge.mbt diff --git a/src/x-hub/moon.pkg b/modules/bitx_hub/src/moon.pkg similarity index 86% rename from src/x-hub/moon.pkg rename to modules/bitx_hub/src/moon.pkg index 7c570fd2..f629d21c 100644 --- a/src/x-hub/moon.pkg +++ b/modules/bitx_hub/src/moon.pkg @@ -1,6 +1,10 @@ import { "mizchi/bit" @bit, - "mizchi/bit/lib" @lib, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @lib, "moonbitlang/core/json" @json, "moonbitlang/core/encoding/utf8" @utf8, "moonbitlang/core/string" @string, @@ -8,7 +12,7 @@ import { } import { - "mizchi/bit/lib" @lib, + "mizchi/bit_lib" @lib, "moonbitlang/core/test" @test, } for "test" diff --git a/src/x-hub/native/claim_native.mbt b/modules/bitx_hub/src/native/claim_native.mbt similarity index 100% rename from src/x-hub/native/claim_native.mbt rename to modules/bitx_hub/src/native/claim_native.mbt diff --git a/src/x-hub/native/github_api.mbt b/modules/bitx_hub/src/native/github_api.mbt similarity index 100% rename from src/x-hub/native/github_api.mbt rename to modules/bitx_hub/src/native/github_api.mbt diff --git a/src/x-hub/native/github_api_wbtest.mbt b/modules/bitx_hub/src/native/github_api_wbtest.mbt similarity index 100% rename from src/x-hub/native/github_api_wbtest.mbt rename to modules/bitx_hub/src/native/github_api_wbtest.mbt diff --git a/src/x-hub/native/github_sync.mbt b/modules/bitx_hub/src/native/github_sync.mbt similarity index 100% rename from src/x-hub/native/github_sync.mbt rename to modules/bitx_hub/src/native/github_sync.mbt diff --git a/src/x-hub/native/moon.pkg b/modules/bitx_hub/src/native/moon.pkg similarity index 75% rename from src/x-hub/native/moon.pkg rename to modules/bitx_hub/src/native/moon.pkg index affe01da..5bb69180 100644 --- a/src/x-hub/native/moon.pkg +++ b/modules/bitx_hub/src/native/moon.pkg @@ -1,11 +1,14 @@ import { "mizchi/bit" @bit, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, - "mizchi/bit/io/native" @bitnative, - "mizchi/bit/lib" @lib, - "mizchi/bit/x-hub" @hub, - "mizchi/bit/x-hub/crypto" @crypto, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_pack" @pack, + "mizchi/bit_protocol" @protocol, + "mizchi/bit_io/native" @bitnative, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @lib, + "mizchi/bitx_hub" @hub, + "mizchi/bitx_hub/crypto" @crypto, "moonbitlang/async" @async, "moonbitlang/async/process" @process, "moonbitlang/core/bench" @bench, diff --git a/src/x-hub/native/pkg.generated.mbti b/modules/bitx_hub/src/native/pkg.generated.mbti similarity index 100% rename from src/x-hub/native/pkg.generated.mbti rename to modules/bitx_hub/src/native/pkg.generated.mbti diff --git a/src/x-hub/native/sync_native.mbt b/modules/bitx_hub/src/native/sync_native.mbt similarity index 100% rename from src/x-hub/native/sync_native.mbt rename to modules/bitx_hub/src/native/sync_native.mbt diff --git a/src/x-hub/native/sync_native_bench_wbtest.mbt b/modules/bitx_hub/src/native/sync_native_bench_wbtest.mbt similarity index 96% rename from src/x-hub/native/sync_native_bench_wbtest.mbt rename to modules/bitx_hub/src/native/sync_native_bench_wbtest.mbt index 804563c6..5899a202 100644 --- a/src/x-hub/native/sync_native_bench_wbtest.mbt +++ b/modules/bitx_hub/src/native/sync_native_bench_wbtest.mbt @@ -2,7 +2,7 @@ ///| /// Run with: -/// - moon bench -p mizchi/bit/x-hub/native --target native -f sync_native_bench_wbtest.mbt +/// - moon bench -p mizchi/bitx_hub/native --target native -f sync_native_bench_wbtest.mbt ///| priv struct BenchClock { diff --git a/src/x-hub/native/sync_native_wbtest.mbt b/modules/bitx_hub/src/native/sync_native_wbtest.mbt similarity index 100% rename from src/x-hub/native/sync_native_wbtest.mbt rename to modules/bitx_hub/src/native/sync_native_wbtest.mbt diff --git a/src/x-hub/notes.mbt b/modules/bitx_hub/src/notes.mbt similarity index 100% rename from src/x-hub/notes.mbt rename to modules/bitx_hub/src/notes.mbt diff --git a/src/x-hub/pkg.generated.mbti b/modules/bitx_hub/src/pkg.generated.mbti similarity index 100% rename from src/x-hub/pkg.generated.mbti rename to modules/bitx_hub/src/pkg.generated.mbti diff --git a/src/x-hub/proposal.mbt b/modules/bitx_hub/src/proposal.mbt similarity index 100% rename from src/x-hub/proposal.mbt rename to modules/bitx_hub/src/proposal.mbt diff --git a/src/x-hub/review.mbt b/modules/bitx_hub/src/review.mbt similarity index 100% rename from src/x-hub/review.mbt rename to modules/bitx_hub/src/review.mbt diff --git a/src/x-hub/store.mbt b/modules/bitx_hub/src/store.mbt similarity index 100% rename from src/x-hub/store.mbt rename to modules/bitx_hub/src/store.mbt diff --git a/src/x-hub/sync.mbt b/modules/bitx_hub/src/sync.mbt similarity index 100% rename from src/x-hub/sync.mbt rename to modules/bitx_hub/src/sync.mbt diff --git a/src/x-hub/sync_link.mbt b/modules/bitx_hub/src/sync_link.mbt similarity index 100% rename from src/x-hub/sync_link.mbt rename to modules/bitx_hub/src/sync_link.mbt diff --git a/src/x-hub/sync_link_ops.mbt b/modules/bitx_hub/src/sync_link_ops.mbt similarity index 100% rename from src/x-hub/sync_link_ops.mbt rename to modules/bitx_hub/src/sync_link_ops.mbt diff --git a/src/x-hub/sync_wbtest.mbt b/modules/bitx_hub/src/sync_wbtest.mbt similarity index 100% rename from src/x-hub/sync_wbtest.mbt rename to modules/bitx_hub/src/sync_wbtest.mbt diff --git a/src/x-hub/timestamp.mbt b/modules/bitx_hub/src/timestamp.mbt similarity index 100% rename from src/x-hub/timestamp.mbt rename to modules/bitx_hub/src/timestamp.mbt diff --git a/src/x-hub/types.mbt b/modules/bitx_hub/src/types.mbt similarity index 100% rename from src/x-hub/types.mbt rename to modules/bitx_hub/src/types.mbt diff --git a/src/x-hub/work_item.mbt b/modules/bitx_hub/src/work_item.mbt similarity index 100% rename from src/x-hub/work_item.mbt rename to modules/bitx_hub/src/work_item.mbt diff --git a/src/x-hub/workflow.mbt b/modules/bitx_hub/src/workflow.mbt similarity index 100% rename from src/x-hub/workflow.mbt rename to modules/bitx_hub/src/workflow.mbt diff --git a/modules/bitx_kv/moon.mod.json b/modules/bitx_kv/moon.mod.json new file mode 100644 index 00000000..3d74d608 --- /dev/null +++ b/modules/bitx_kv/moon.mod.json @@ -0,0 +1,28 @@ +{ + "name": "mizchi/bitx_kv", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_vfs": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40", + "mizchi/x": "0.2.0" + }, + "readme": "src/README.md", + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": [ + "git", + "kv", + "sync" + ], + "description": "Git-backed KV store with CRDT sync (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-kv/README.md b/modules/bitx_kv/src/README.md similarity index 100% rename from src/x-kv/README.md rename to modules/bitx_kv/src/README.md diff --git a/src/x-kv/bench_test.mbt b/modules/bitx_kv/src/bench_test.mbt similarity index 100% rename from src/x-kv/bench_test.mbt rename to modules/bitx_kv/src/bench_test.mbt diff --git a/src/x-kv/gossip.mbt b/modules/bitx_kv/src/gossip.mbt similarity index 100% rename from src/x-kv/gossip.mbt rename to modules/bitx_kv/src/gossip.mbt diff --git a/src/x-kv/kv.mbt b/modules/bitx_kv/src/kv.mbt similarity index 100% rename from src/x-kv/kv.mbt rename to modules/bitx_kv/src/kv.mbt diff --git a/src/x-kv/kv_test.mbt b/modules/bitx_kv/src/kv_test.mbt similarity index 100% rename from src/x-kv/kv_test.mbt rename to modules/bitx_kv/src/kv_test.mbt diff --git a/src/x-kv/merge.mbt b/modules/bitx_kv/src/merge.mbt similarity index 100% rename from src/x-kv/merge.mbt rename to modules/bitx_kv/src/merge.mbt diff --git a/src/x-kv/moon.pkg b/modules/bitx_kv/src/moon.pkg similarity index 67% rename from src/x-kv/moon.pkg rename to modules/bitx_kv/src/moon.pkg index 8ac3e466..0870a9d5 100644 --- a/src/x-kv/moon.pkg +++ b/modules/bitx_kv/src/moon.pkg @@ -1,14 +1,18 @@ import { "mizchi/bit" @bit, - "mizchi/bit/lib" @lib, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_repo" @repo, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @lib, "moonbitlang/core/buffer" @buffer, "moonbitlang/core/encoding/utf8" @utf8, } import { "moonbitlang/core/bench" @bench, - "mizchi/bit/vfs" @fs, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_vfs" @fs, + "mizchi/bit_osfs" @osfs, "moonbitlang/x/fs" @nfs, "moonbitlang/core/test" @test, } for "test" diff --git a/src/x-kv/native/moon.pkg b/modules/bitx_kv/src/native/moon.pkg similarity index 76% rename from src/x-kv/native/moon.pkg rename to modules/bitx_kv/src/native/moon.pkg index a2fda4fb..ad245373 100644 --- a/src/x-kv/native/moon.pkg +++ b/modules/bitx_kv/src/native/moon.pkg @@ -1,9 +1,12 @@ import { "moonbitlang/async" @async, "mizchi/bit" @bit, - "mizchi/bit/lib" @lib, - "mizchi/bit/vfs" @fs, - "mizchi/bit/x-kv" @kv, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @lib, + "mizchi/bit_vfs" @fs, + "mizchi/bitx_kv" @kv, "mizchi/x/http" @xhttp, "mizchi/x/websocket" @xws, "moonbitlang/core/encoding/base64" @base64, diff --git a/src/x-kv/native/pkg.generated.mbti b/modules/bitx_kv/src/native/pkg.generated.mbti similarity index 100% rename from src/x-kv/native/pkg.generated.mbti rename to modules/bitx_kv/src/native/pkg.generated.mbti diff --git a/src/x-kv/native/sync_native.mbt b/modules/bitx_kv/src/native/sync_native.mbt similarity index 100% rename from src/x-kv/native/sync_native.mbt rename to modules/bitx_kv/src/native/sync_native.mbt diff --git a/src/x-kv/native/sync_native_wbtest.mbt b/modules/bitx_kv/src/native/sync_native_wbtest.mbt similarity index 100% rename from src/x-kv/native/sync_native_wbtest.mbt rename to modules/bitx_kv/src/native/sync_native_wbtest.mbt diff --git a/src/x-kv/pkg.generated.mbti b/modules/bitx_kv/src/pkg.generated.mbti similarity index 100% rename from src/x-kv/pkg.generated.mbti rename to modules/bitx_kv/src/pkg.generated.mbti diff --git a/src/x-kv/serialization.mbt b/modules/bitx_kv/src/serialization.mbt similarity index 100% rename from src/x-kv/serialization.mbt rename to modules/bitx_kv/src/serialization.mbt diff --git a/src/x-kv/sync_engine.mbt b/modules/bitx_kv/src/sync_engine.mbt similarity index 100% rename from src/x-kv/sync_engine.mbt rename to modules/bitx_kv/src/sync_engine.mbt diff --git a/src/x-kv/sync_test.mbt b/modules/bitx_kv/src/sync_test.mbt similarity index 100% rename from src/x-kv/sync_test.mbt rename to modules/bitx_kv/src/sync_test.mbt diff --git a/src/x-kv/types.mbt b/modules/bitx_kv/src/types.mbt similarity index 100% rename from src/x-kv/types.mbt rename to modules/bitx_kv/src/types.mbt diff --git a/modules/bitx_rebase_ai/moon.mod.json b/modules/bitx_rebase_ai/moon.mod.json new file mode 100644 index 00000000..5a2269f2 --- /dev/null +++ b/modules/bitx_rebase_ai/moon.mod.json @@ -0,0 +1,22 @@ +{ + "name": "mizchi/bitx_rebase_ai", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_runtime": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "mizchi/bit_utils": "0.42.2", + "mizchi/llm": "0.2.2", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "ai", "rebase"], + "description": "AI-assisted rebase helpers (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-rebase-ai/moon.pkg b/modules/bitx_rebase_ai/src/moon.pkg similarity index 74% rename from src/x-rebase-ai/moon.pkg rename to modules/bitx_rebase_ai/src/moon.pkg index 4014a974..2a1f2195 100644 --- a/src/x-rebase-ai/moon.pkg +++ b/modules/bitx_rebase_ai/src/moon.pkg @@ -1,10 +1,12 @@ import { "moonbitlang/async" @async, "mizchi/bit" @bit, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/string_utils" @string_utils, - "mizchi/bit/runtime" @runtime, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_utils" @string_utils, + "mizchi/bit_runtime" @runtime, + "mizchi/bit_osfs" @osfs, "mizchi/llm" @llmlib, "mizchi/llm/openai" @openai, "mizchi/llm/ffi" @llm_ffi, diff --git a/src/x-rebase-ai/pkg.generated.mbti b/modules/bitx_rebase_ai/src/pkg.generated.mbti similarity index 100% rename from src/x-rebase-ai/pkg.generated.mbti rename to modules/bitx_rebase_ai/src/pkg.generated.mbti diff --git a/src/x-rebase-ai/rebase_ai.mbt b/modules/bitx_rebase_ai/src/rebase_ai.mbt similarity index 100% rename from src/x-rebase-ai/rebase_ai.mbt rename to modules/bitx_rebase_ai/src/rebase_ai.mbt diff --git a/src/x-rebase-ai/rebase_ai_wbtest.mbt b/modules/bitx_rebase_ai/src/rebase_ai_wbtest.mbt similarity index 100% rename from src/x-rebase-ai/rebase_ai_wbtest.mbt rename to modules/bitx_rebase_ai/src/rebase_ai_wbtest.mbt diff --git a/modules/bitx_subdir/moon.mod.json b/modules/bitx_subdir/moon.mod.json new file mode 100644 index 00000000..f8d3edf9 --- /dev/null +++ b/modules/bitx_subdir/moon.mod.json @@ -0,0 +1,20 @@ +{ + "name": "mizchi/bitx_subdir", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_repo": "0.42.2", + "mizchi/bit_io": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_vfs": "0.42.2", + "mizchi/zlib": "0.4.5" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "subdir"], + "description": "Subdirectory clone (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-subdir/commit.mbt b/modules/bitx_subdir/src/commit.mbt similarity index 100% rename from src/x-subdir/commit.mbt rename to modules/bitx_subdir/src/commit.mbt diff --git a/src/x-subdir/history.mbt b/modules/bitx_subdir/src/history.mbt similarity index 100% rename from src/x-subdir/history.mbt rename to modules/bitx_subdir/src/history.mbt diff --git a/src/x-subdir/init.mbt b/modules/bitx_subdir/src/init.mbt similarity index 100% rename from src/x-subdir/init.mbt rename to modules/bitx_subdir/src/init.mbt diff --git a/src/x-subdir/module.mbt b/modules/bitx_subdir/src/module.mbt similarity index 100% rename from src/x-subdir/module.mbt rename to modules/bitx_subdir/src/module.mbt diff --git a/modules/bitx_subdir/src/moon.pkg b/modules/bitx_subdir/src/moon.pkg new file mode 100644 index 00000000..cd549480 --- /dev/null +++ b/modules/bitx_subdir/src/moon.pkg @@ -0,0 +1,16 @@ +import { + "mizchi/bit" @bit, + "mizchi/bit_object" @object, + "mizchi/bit_repo" @repo, + "mizchi/bit_types" @types, + "mizchi/bit_io" @io, + "mizchi/bit_lib" @lib, + "mizchi/bit_vfs" @fs, + "mizchi/zlib" @zlib, +} + +warnings = "-unused_constructor-29" + +import { + "moonbitlang/core/test" @test, +} for "test" diff --git a/src/x-subdir/pkg.generated.mbti b/modules/bitx_subdir/src/pkg.generated.mbti similarity index 100% rename from src/x-subdir/pkg.generated.mbti rename to modules/bitx_subdir/src/pkg.generated.mbti diff --git a/src/x-subdir/sparse.mbt b/modules/bitx_subdir/src/sparse.mbt similarity index 100% rename from src/x-subdir/sparse.mbt rename to modules/bitx_subdir/src/sparse.mbt diff --git a/src/x-subdir/subdir.mbt b/modules/bitx_subdir/src/subdir.mbt similarity index 100% rename from src/x-subdir/subdir.mbt rename to modules/bitx_subdir/src/subdir.mbt diff --git a/src/x-subdir/subdir_test.mbt b/modules/bitx_subdir/src/subdir_test.mbt similarity index 100% rename from src/x-subdir/subdir_test.mbt rename to modules/bitx_subdir/src/subdir_test.mbt diff --git a/src/x-subdir/types.mbt b/modules/bitx_subdir/src/types.mbt similarity index 100% rename from src/x-subdir/types.mbt rename to modules/bitx_subdir/src/types.mbt diff --git a/modules/bitx_workspace/moon.mod.json b/modules/bitx_workspace/moon.mod.json new file mode 100644 index 00000000..86fa378c --- /dev/null +++ b/modules/bitx_workspace/moon.mod.json @@ -0,0 +1,22 @@ +{ + "name": "mizchi/bitx_workspace", + "version": "0.42.2", + "deps": { + "mizchi/bit": "0.42.2", + "mizchi/bit_object": "0.42.2", + "mizchi/bit_lib": "0.42.2", + "mizchi/bit_types": "0.42.2", + "mizchi/bit_fingerprint": "0.42.2", + "mizchi/bit_osfs": "0.42.2", + "mizchi/bit_utils": "0.42.2", + "mizchi/bitflow": "0.4.0", + "moonbitlang/async": "0.16.6", + "moonbitlang/x": "0.4.40" + }, + "repository": "https://github.com/mizchi/bit-vcs", + "license": "Apache-2.0", + "keywords": ["git", "workspace"], + "description": "Workspace flow (extension module for mizchi/bit)", + "source": "src", + "preferred-target": "native" +} diff --git a/src/x-workspace/moon.pkg b/modules/bitx_workspace/src/moon.pkg similarity index 74% rename from src/x-workspace/moon.pkg rename to modules/bitx_workspace/src/moon.pkg index 30bc4208..89cfacaf 100644 --- a/src/x-workspace/moon.pkg +++ b/modules/bitx_workspace/src/moon.pkg @@ -1,10 +1,12 @@ import { "mizchi/bit" @bit, - "mizchi/bit/fingerprint" @fingerprint, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/string_utils" @string_utils, + "mizchi/bit_object" @object, + "mizchi/bit_types" @types, + "mizchi/bit_fingerprint" @fingerprint, + "mizchi/bit_lib" @bitlib, + "mizchi/bit_utils" @string_utils, "mizchi/bitflow/workflow" @bitflow, - "mizchi/bit/osfs" @osfs, + "mizchi/bit_osfs" @osfs, "moonbitlang/async" @async, "moonbitlang/async/process" @process, "moonbitlang/async/stdio" @stdio, diff --git a/src/x-workspace/pkg.generated.mbti b/modules/bitx_workspace/src/pkg.generated.mbti similarity index 100% rename from src/x-workspace/pkg.generated.mbti rename to modules/bitx_workspace/src/pkg.generated.mbti diff --git a/src/x-workspace/workspace.mbt b/modules/bitx_workspace/src/workspace.mbt similarity index 100% rename from src/x-workspace/workspace.mbt rename to modules/bitx_workspace/src/workspace.mbt diff --git a/src/x-workspace/workspace_wbtest.mbt b/modules/bitx_workspace/src/workspace_wbtest.mbt similarity index 100% rename from src/x-workspace/workspace_wbtest.mbt rename to modules/bitx_workspace/src/workspace_wbtest.mbt diff --git a/moon.mod.json b/moon.mod.json deleted file mode 100644 index 4c559565..00000000 --- a/moon.mod.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "mizchi/bit", - "version": "0.42.2", - "deps": { - "moonbitlang/async": "0.16.6", - "moonbitlang/x": "0.4.40", - "mizchi/tempfile": "0.1.0", - "mizchi/llm": "0.2.2", - "mizchi/bitflow": "0.4.0", - "mizchi/x": "0.2.0", - "bobzhang/toml": "0.1.7", - "mizchi/libgit2": "0.1.0", - "mizchi/zlib": "0.4.5" - }, - "readme": "README.mbt.md", - "repository": "https://github.com/mizchi/bit-vcs", - "license": "Apache-2.0", - "keywords": [ - "git", - "packfile", - "protocol" - ], - "description": "Pure MoonBit Git implementation", - "source": "src", - "exclude": [ - "component", - "tools", - "e2e", - "fixtures", - "docs", - "t", - "octorus", - "third_party/git", - "file.txt", - "install.sh", - "Taskfile.pkl", - "Test.pkl", - "pkspec", - "AGENTS.md", - "CLAUDE.md", - "COMPAT_RESULTS.md", - "TODO.md" - ], - "preferred-target": "native" -} \ No newline at end of file diff --git a/moon.work b/moon.work new file mode 100644 index 00000000..9c519764 --- /dev/null +++ b/moon.work @@ -0,0 +1,42 @@ +members = [ + "./modules/bit", + "./modules/bit_apply", + "./modules/bit_archive", + "./modules/bit_bootstrap", + "./modules/bit_config", + "./modules/bit_date", + "./modules/bit_diff", + "./modules/bit_diff3", + "./modules/bit_diff_core", + "./modules/bit_fast_import", + "./modules/bit_fingerprint", + "./modules/bit_grep", + "./modules/bit_hash", + "./modules/bit_ignore", + "./modules/bit_io", + "./modules/bit_lib", + "./modules/bit_object", + "./modules/bit_osfs", + "./modules/bit_pack", + "./modules/bit_pack_ops", + "./modules/bit_protocol", + "./modules/bit_refs", + "./modules/bit_reftable", + "./modules/bit_remote", + "./modules/bit_repo", + "./modules/bit_repo_ops", + "./modules/bit_runtime", + "./modules/bit_trailers", + "./modules/bit_types", + "./modules/bit_utils", + "./modules/bit_vfs", + "./modules/bit_worktree", + "./modules/bitx_bitconfig", + "./modules/bitx_doc", + "./modules/bitx_hq", + "./modules/bitx_hub", + "./modules/bitx_kv", + "./modules/bitx_rebase_ai", + "./modules/bitx_subdir", + "./modules/bitx_workspace", +] diff --git a/package.nix b/package.nix index d3b6d10e..86b7d4a1 100644 --- a/package.nix +++ b/package.nix @@ -3,17 +3,61 @@ git, autoPatchelfHook, stdenv, + writeText, moonPlatform, moonRegistryIndex, }: -moonPlatform.buildMoonPackage { - src = ./.; - moonModJson = ./moon.mod.json; - inherit moonRegistryIndex; +let + bitMod = builtins.fromJSON (builtins.readFile ./modules/bit/moon.mod.json); + # buildCachedRegistry reads moon.mod.json to know which packages to fetch + # from mooncakes.io. Workspace-local deps (mizchi/bit_* and mizchi/bitx_*) + # aren't published there, so drop them and keep only registry deps. + registryOnlyDeps = lib.filterAttrs ( + name: _: !(lib.hasPrefix "mizchi/bit_" name || lib.hasPrefix "mizchi/bitx_" name) + ) bitMod.deps; + registryOnlyMod = bitMod // { + deps = registryOnlyDeps; + }; + registryOnlyModFile = writeText "moon.mod.json" (builtins.toJSON registryOnlyMod); - doCheck = false; + moonHome = moonPlatform.bundleWithRegistry { + cachedRegistry = moonPlatform.buildCachedRegistry { + moonModJson = registryOnlyModFile; + registryIndexSrc = moonRegistryIndex; + }; + }; +in +stdenv.mkDerivation { + pname = "bit"; + version = bitMod.version; + + src = lib.cleanSource ./.; + + nativeBuildInputs = [ moonHome ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; propagatedBuildInputs = [ git ]; - nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; + + configurePhase = '' + runHook preConfigure + export MOON_HOME=${moonHome} + export HOME=$TMPDIR + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + moon build --target native --release modules/bit/src/cmd/bit + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 \ + _build/native/release/build/mizchi/bit/cmd/bit/bit.exe \ + $out/bin/bit + runHook postInstall + ''; + + doCheck = false; meta = { description = "Git-compatible version control in MoonBit"; diff --git a/src/config_parse/config_parse_test.mbt b/src/config_parse/config_parse_test.mbt deleted file mode 100644 index b9c330e2..00000000 --- a/src/config_parse/config_parse_test.mbt +++ /dev/null @@ -1,103 +0,0 @@ -///| -test "parse_config_value simple" { - @test.assert_eq(@config_parse.parse_config_value(" hello "), "hello") - @test.assert_eq(@config_parse.parse_config_value(" world "), "world") -} - -///| -test "parse_config_value quoted" { - @test.assert_eq(@config_parse.parse_config_value("\"hello world\""), "hello world") - @test.assert_eq( - @config_parse.parse_config_value("\"with \\n newline\""), - "with \n newline", - ) -} - -///| -test "parse_config_value comment stripping" { - @test.assert_eq(@config_parse.parse_config_value("value # comment"), "value") - @test.assert_eq(@config_parse.parse_config_value("value ; comment"), "value") -} - -///| -test "parse_bool_keyword_value" { - @test.assert_eq(@config_parse.parse_bool_keyword_value("true"), Some(true)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("yes"), Some(true)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("on"), Some(true)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("1"), Some(true)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("false"), Some(false)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("no"), Some(false)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("off"), Some(false)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("0"), Some(false)) - @test.assert_eq(@config_parse.parse_bool_keyword_value(""), Some(false)) - @test.assert_eq(@config_parse.parse_bool_keyword_value("maybe"), None) -} - -///| -test "config_parse_size_value" { - @test.assert_eq(@config_parse.config_parse_size_value("1024"), Some(1024L)) - @test.assert_eq(@config_parse.config_parse_size_value("1k"), Some(1024L)) - @test.assert_eq(@config_parse.config_parse_size_value("1m"), Some(1048576L)) - @test.assert_eq(@config_parse.config_parse_size_value("1g"), Some(1073741824L)) - @test.assert_eq(@config_parse.config_parse_size_value(""), None) - @test.assert_eq(@config_parse.config_parse_size_value("abc"), None) -} - -///| -test "parse_config_key" { - @test.assert_eq( - @config_parse.parse_config_key("core.bare"), - Some(("core", None, "bare")), - ) - @test.assert_eq( - @config_parse.parse_config_key("remote.origin.url"), - Some(("remote", Some("origin"), "url")), - ) - @test.assert_eq(@config_parse.parse_config_key("nokey"), None) - @test.assert_eq(@config_parse.parse_config_key(""), None) - @test.assert_eq(@config_parse.parse_config_key("section."), None) -} - -///| -test "get_config_value_from_content" { - let content = - #|[core] - #| bare = false - #| autocrlf = true - #|[user] - #| name = Test User - let bare = @config_parse.get_config_value_from_content( - content, - "core.bare", - None, - false, - ) - @test.assert_eq(bare, Some("false")) - let name = @config_parse.get_config_value_from_content( - content, - "user.name", - None, - false, - ) - @test.assert_eq(name, Some("Test User")) - let missing = @config_parse.get_config_value_from_content( - content, - "core.missing", - None, - false, - ) - @test.assert_eq(missing, None) -} - -///| -test "parse_config_int_value" { - let (val, err) = @config_parse.parse_config_int_value("42") - @test.assert_eq(val, Some(42L)) - @test.assert_eq(err, None) - let (val2, err2) = @config_parse.parse_config_int_value("2k") - @test.assert_eq(val2, Some(2048L)) - @test.assert_eq(err2, None) - let (val3, err3) = @config_parse.parse_config_int_value("abc") - @test.assert_eq(val3, None) - @test.assert_eq(err3, Some("invalid unit")) -} diff --git a/src/date_parse/date_parse_test.mbt b/src/date_parse/date_parse_test.mbt deleted file mode 100644 index 58b0041a..00000000 --- a/src/date_parse/date_parse_test.mbt +++ /dev/null @@ -1,57 +0,0 @@ -///| -test "date_is_leap_year" { - assert_true(@date_parse.date_is_leap_year(2000)) - assert_true(@date_parse.date_is_leap_year(2024)) - assert_false(@date_parse.date_is_leap_year(1900)) - assert_false(@date_parse.date_is_leap_year(2023)) -} - -///| -test "days_since_epoch known dates" { - // 1970-01-01 = day 0 - @test.assert_eq(@date_parse.days_since_epoch(1970, 1, 1), 0) - // 1970-01-02 = day 1 - @test.assert_eq(@date_parse.days_since_epoch(1970, 1, 2), 1) - // 2000-01-01 = 10957 days - @test.assert_eq(@date_parse.days_since_epoch(2000, 1, 1), 10957) -} - -///| -test "month_name_to_number" { - @test.assert_eq(@date_parse.month_name_to_number("jan"), Some(1)) - @test.assert_eq(@date_parse.month_name_to_number("January"), Some(1)) - @test.assert_eq(@date_parse.month_name_to_number("dec"), Some(12)) - @test.assert_eq(@date_parse.month_name_to_number("December"), Some(12)) - @test.assert_eq(@date_parse.month_name_to_number("may"), Some(5)) - @test.assert_eq(@date_parse.month_name_to_number("xyz"), None) - @test.assert_eq(@date_parse.month_name_to_number(""), None) -} - -///| -test "parse_approxidate ISO 8601" { - // 2024-01-15T00:00:00 => days_since_epoch(2024,1,15) * 86400 - let result = @date_parse.parse_approxidate("2024-01-15T00:00:00", 0L) - assert_true(result is Some(_)) - let ts = result.unwrap() - let expected = @date_parse.days_since_epoch(2024, 1, 15).to_int64() * 86400L - @test.assert_eq(ts, expected) -} - -///| -test "parse_approxidate relative" { - let now = 1000000L - let result = @date_parse.parse_approxidate("3 days ago", now) - @test.assert_eq(result, Some(now - 3L * 86400L)) - let yesterday = @date_parse.parse_approxidate("yesterday", now) - @test.assert_eq(yesterday, Some(now - 86400L)) - let now_result = @date_parse.parse_approxidate("now", now) - @test.assert_eq(now_result, Some(now)) -} - -///| -test "parse_approxidate human readable" { - let result = @date_parse.parse_approxidate("Jan 1 2000", 0L) - assert_true(result is Some(_)) - let expected = @date_parse.days_since_epoch(2000, 1, 1).to_int64() * 86400L - @test.assert_eq(result.unwrap(), expected) -} diff --git a/src/diff/moon.pkg b/src/diff/moon.pkg deleted file mode 100644 index c4e3cc8b..00000000 --- a/src/diff/moon.pkg +++ /dev/null @@ -1,15 +0,0 @@ -import { - "mizchi/bit" @bit, - "mizchi/bit/diff_core" @diff_core, - "mizchi/bit/io" @bitio, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/string_utils" @string_utils, - "moonbitlang/core/bench" @bench, - "moonbitlang/core/encoding/utf8" @utf8, -} - -warnings = "-29" - -options( - targets: { "bench_test.mbt": [ "native" ] }, -) diff --git a/src/fuzz_tests/moon.pkg b/src/fuzz_tests/moon.pkg deleted file mode 100644 index b96bbe2a..00000000 --- a/src/fuzz_tests/moon.pkg +++ /dev/null @@ -1,13 +0,0 @@ -import { - "mizchi/bit" @bit, - "mizchi/bit/pack" @pack, - "mizchi/bit/protocol" @protocol, - "mizchi/bit/ignore" @ignore, - "moonbitlang/core/encoding/utf8" @utf8, - "mizchi/bit/config_parse" @config_parse, - "mizchi/bit/date_parse" @date_parse, - "mizchi/bit/repo" @repo, - "mizchi/bit/lib" @bitlib, -} - -warnings = "-29" diff --git a/src/moon.pkg b/src/moon.pkg deleted file mode 100644 index aedabe82..00000000 --- a/src/moon.pkg +++ /dev/null @@ -1,8 +0,0 @@ -import { - "mizchi/bit/io" @io, - "mizchi/bit/object" @object, - "mizchi/bit/repo" @repo, - "mizchi/bit/types" @types, -} - -warnings = "-29" diff --git a/src/pack_ops/moon.pkg b/src/pack_ops/moon.pkg deleted file mode 100644 index 6e77c5f2..00000000 --- a/src/pack_ops/moon.pkg +++ /dev/null @@ -1,10 +0,0 @@ -import { - "mizchi/bit" @bit, - "mizchi/bit/lib" @bitlib, -} - -import { - "moonbitlang/async" @async, -} for "test" - -warnings = "-29" diff --git a/src/reftable/moon.pkg b/src/reftable/moon.pkg deleted file mode 100644 index 77e91784..00000000 --- a/src/reftable/moon.pkg +++ /dev/null @@ -1,6 +0,0 @@ -import { - "mizchi/bit" @bit, - "mizchi/bit/object" @object, -} - -warnings = "-29" diff --git a/src/repo_ops/moon.pkg b/src/repo_ops/moon.pkg deleted file mode 100644 index 79623229..00000000 --- a/src/repo_ops/moon.pkg +++ /dev/null @@ -1,11 +0,0 @@ -import { - "mizchi/bit/repo" @repo, - "mizchi/bit/types" @types, - "mizchi/bit/lib" @bitlib, - "mizchi/bit/hash" @bithash, - "mizchi/bit/object" @object, - "mizchi/bit/string_utils" @string_utils, - "moonbitlang/core/encoding/utf8" @utf8, -} - -warnings = "-29" diff --git a/src/string_utils/string_utils_test.mbt b/src/string_utils/string_utils_test.mbt deleted file mode 100644 index c9ee23f1..00000000 --- a/src/string_utils/string_utils_test.mbt +++ /dev/null @@ -1,32 +0,0 @@ -///| -test "trim_string" { - assert_eq(@string_utils.trim_string(" hello "), "hello") - assert_eq(@string_utils.trim_string("\t\nhello\r\n"), "hello") - assert_eq(@string_utils.trim_string("hello"), "hello") - assert_eq(@string_utils.trim_string(""), "") - assert_eq(@string_utils.trim_string(" "), "") -} - -///| -test "to_octal_string" { - assert_eq(@string_utils.to_octal_string(0), "0") - assert_eq(@string_utils.to_octal_string(8), "10") - assert_eq(@string_utils.to_octal_string(0o100644), "100644") - assert_eq(@string_utils.to_octal_string(0o100755), "100755") - assert_eq(@string_utils.to_octal_string(0o40000), "40000") -} - -///| -test "mode_to_string" { - assert_eq(@string_utils.mode_to_string(33188), "100644") - assert_eq(@string_utils.mode_to_string(0o100755), "100755") - assert_eq(@string_utils.mode_to_string(0o40000), "40000") -} - -///| -test "decode_bytes" { - let data = b"hello world" - assert_eq(@string_utils.decode_bytes(data), "hello world") - let empty = b"" - assert_eq(@string_utils.decode_bytes(empty), "") -} diff --git a/src/types/moon.pkg b/src/types/moon.pkg deleted file mode 100644 index cb9eae20..00000000 --- a/src/types/moon.pkg +++ /dev/null @@ -1,5 +0,0 @@ -import { - "mizchi/bit/object" @object, -} - -warnings = "-29" diff --git a/src/worktree/moon.pkg b/src/worktree/moon.pkg deleted file mode 100644 index 6e77c5f2..00000000 --- a/src/worktree/moon.pkg +++ /dev/null @@ -1,10 +0,0 @@ -import { - "mizchi/bit" @bit, - "mizchi/bit/lib" @bitlib, -} - -import { - "moonbitlang/async" @async, -} for "test" - -warnings = "-29" diff --git a/src/x-subdir/moon.pkg b/src/x-subdir/moon.pkg deleted file mode 100644 index 6cd48b7a..00000000 --- a/src/x-subdir/moon.pkg +++ /dev/null @@ -1,12 +0,0 @@ -import { - "mizchi/bit" @bit, - "mizchi/bit/lib", - "mizchi/bit/vfs" @fs, - "mizchi/zlib" @zlib, -} - -warnings = "-unused_constructor-29" - -import { - "moonbitlang/core/test" @test, -} for "test" diff --git a/tools/bit-git.mjs b/tools/bit-git.mjs index 5a6e5d09..0fbb93ae 100644 --- a/tools/bit-git.mjs +++ b/tools/bit-git.mjs @@ -64,7 +64,7 @@ import { tagList as rawTagList, verifyCommitSshEd25519 as rawVerifyCommitSshEd25519, verifyGitPayloadSshEd25519 as rawVerifyGitPayloadSshEd25519, -} from "../_build/js/release/build/lib/lib.js"; +} from "../_build/js/release/build/mizchi/bit_lib/bit_lib.js"; const ensureState = () => ( globalThis.__bitGitJsState ??= { nextHostId: 1, hosts: new Map() } diff --git a/tools/build-bit-native.sh b/tools/build-bit-native.sh index 45573647..eb61553c 100755 --- a/tools/build-bit-native.sh +++ b/tools/build-bit-native.sh @@ -4,7 +4,7 @@ set -euo pipefail moon build --target native --release -bin_path="_build/native/release/build/cmd/bit/bit.exe" +bin_path="_build/native/release/build/mizchi/bit/cmd/bit/bit.exe" if [ ! -x "$bin_path" ]; then echo "bit binary not found at $bin_path" >&2 exit 1 diff --git a/tools/check-layer-guards.sh b/tools/check-layer-guards.sh index 4b32723f..9d482b86 100755 --- a/tools/check-layer-guards.sh +++ b/tools/check-layer-guards.sh @@ -2,15 +2,15 @@ # Static guards enforced by `pkf run check` after type-checks succeed. set -euo pipefail -if rg -n "OsFs::new|@process\\.run" src/runtime >/dev/null; then +if rg -n "OsFs::new|@process\\.run" modules/bit/src/runtime >/dev/null; then echo "runtime layer must not use OsFs::new or @process.run" exit 1 fi -if rg -n "run_storage_command_by_name\\(" src \ - -g '!src/cmd/bit/storage_runtime.mbt' \ - -g '!src/cmd/bit/storage_runtime_wbtest.mbt' \ - -g '!src/cmd/bit/pkg.generated.mbti' >/dev/null; then +if rg -n "run_storage_command_by_name\\(" modules \ + -g '!modules/bit/src/cmd/bit/storage_runtime.mbt' \ + -g '!modules/bit/src/cmd/bit/storage_runtime_wbtest.mbt' \ + -g '!modules/bit/src/cmd/bit/pkg.generated.mbti' >/dev/null; then echo "run_storage_command_by_name is only allowed in cmd storage_runtime boundary/wbtests" exit 1 fi diff --git a/tools/check-layers.mjs b/tools/check-layers.mjs index f19eda24..79749b19 100755 --- a/tools/check-layers.mjs +++ b/tools/check-layers.mjs @@ -6,13 +6,56 @@ // // Exit codes: 0 = clean, 1 = violations found. -import { readFileSync, readdirSync, statSync } from "node:fs"; +import { existsSync, readFileSync, readdirSync, statSync } from "node:fs"; import { join, relative } from "node:path"; import { fileURLToPath } from "node:url"; const REPO_ROOT = join(fileURLToPath(import.meta.url), "..", ".."); -const SRC = join(REPO_ROOT, "src"); +const MODULES_DIR = join(REPO_ROOT, "modules"); const MODULE_PREFIX = "mizchi/bit"; +const EXT_PREFIX = "mizchi/bitx_"; +// Standalone core modules extracted out of mizchi/bit. Each one is a +// gix-* plumbing equivalent that lives in its own MoonBit module under +// modules/bit_/. They are still classified as the "core" layer. +const CORE_MODULES = new Set([ + "mizchi/bit_apply", + "mizchi/bit_archive", + "mizchi/bit_bootstrap", + "mizchi/bit_config", + "mizchi/bit_date", + "mizchi/bit_diff3", + "mizchi/bit_diff_core", + "mizchi/bit_fast_import", + "mizchi/bit_hash", + "mizchi/bit_ignore", + "mizchi/bit_io", + "mizchi/bit_object", + "mizchi/bit_osfs", + "mizchi/bit_pack", + "mizchi/bit_protocol", + "mizchi/bit_refs", + "mizchi/bit_reftable", + "mizchi/bit_remote", + "mizchi/bit_repo", + "mizchi/bit_trailers", + "mizchi/bit_types", + "mizchi/bit_utils", +]); + +// Standalone "high"-layer modules (carved out of mizchi/bit, still depend +// on mizchi/bit/lib). Long-term direction: break their lib dependency +// and promote to MID, eventually shrinking lib to a thin facade. +const HIGH_MODULES = new Set([ + "mizchi/bit_diff", + "mizchi/bit_fingerprint", + "mizchi/bit_grep", + "mizchi/bit_lib", + "mizchi/bit_pack_ops", + "mizchi/bit_repo_ops", + "mizchi/bit_runtime", + "mizchi/bit_vfs", + "mizchi/bit_worktree", +]); // Layer order (low to high). A package may import from its own layer or any // lower layer. @@ -65,18 +108,40 @@ const HIGH = new Set([ "fingerprint", ]); +function isExtModule(pkgPath) { + return pkgPath === EXT_PREFIX.slice(0, -1) /* never matches */ || + pkgPath.startsWith(EXT_PREFIX); +} + +function isCoreModule(pkgPath) { + const head = pkgPath.split("/").slice(0, 2).join("/"); + return CORE_MODULES.has(head); +} + +function isHighModule(pkgPath) { + const head = pkgPath.split("/").slice(0, 2).join("/"); + return HIGH_MODULES.has(head); +} + function isOurModule(pkgPath) { - return pkgPath === MODULE_PREFIX || pkgPath.startsWith(MODULE_PREFIX + "/"); + if (pkgPath === MODULE_PREFIX || pkgPath.startsWith(MODULE_PREFIX + "/")) return true; + if (isExtModule(pkgPath)) return true; + if (isCoreModule(pkgPath)) return true; + if (isHighModule(pkgPath)) return true; + return false; } -// Map a package path (e.g. "mizchi/bit/hash") to its layer. +// Map a package path (e.g. "mizchi/bit/hash" or "mizchi/bitx_hub/native") +// to its layer. function classify(pkgPath) { if (!isOurModule(pkgPath)) return null; // external + if (isExtModule(pkgPath)) return "ext"; + if (isCoreModule(pkgPath)) return "core"; + if (isHighModule(pkgPath)) return "high"; const rel = pkgPath === MODULE_PREFIX ? "" : pkgPath.slice(MODULE_PREFIX.length + 1); const top = rel.split("/")[0]; if (rel === "") return "core"; if (top === "cmd" || top === "tests" || top === "fuzz_tests") return "cmd"; - if (top.startsWith("x-")) return "ext"; if (CORE.has(top)) return "core"; if (MID.has(top)) return "mid"; if (HIGH.has(top)) return "high"; @@ -85,6 +150,15 @@ function classify(pkgPath) { function topSegment(pkgPath) { if (!isOurModule(pkgPath)) return null; + if (isCoreModule(pkgPath) || isHighModule(pkgPath)) { + return pkgPath.split("/").slice(0, 2).join("/"); + } + if (isExtModule(pkgPath)) { + // For ext modules, the "family" is the module name itself + // (e.g. "mizchi/bitx_hub" is one family — its sub-packages /native, + // /crypto are the same family). + return pkgPath.split("/").slice(0, 2).join("/"); + } if (pkgPath === MODULE_PREFIX) return ""; return pkgPath.slice(MODULE_PREFIX.length + 1).split("/")[0]; } @@ -101,12 +175,27 @@ function* walkPkgFiles(dir) { } } -// Derive the package path "mizchi/bit/" from a moon.pkg location. -function pkgPathOf(moonPkgFile) { +// Roots to walk. Each root maps a moon.pkg file to a package path: +// { dir, prefix } → package path = prefix + ("" or "/") +function discoverRoots() { + const roots = []; + if (existsSync(MODULES_DIR)) { + for (const name of readdirSync(MODULES_DIR)) { + const modSrc = join(MODULES_DIR, name, "src"); + if (existsSync(modSrc)) { + roots.push({ dir: modSrc, prefix: `mizchi/${name}` }); + } + } + } + return roots; +} + +// Derive the package path from a moon.pkg location for a given root. +function pkgPathOf(moonPkgFile, root) { const dir = moonPkgFile.replace(/\/(moon\.pkg|moon\.pkg\.json)$/, ""); - const rel = relative(SRC, dir); - if (rel === "" || rel === ".") return MODULE_PREFIX; - return MODULE_PREFIX + "/" + rel.split("\\").join("/"); + const rel = relative(root.dir, dir); + if (rel === "" || rel === ".") return root.prefix; + return root.prefix + "/" + rel.split("\\").join("/"); } // Extract imported package paths from a moon.pkg / moon.pkg.json file. @@ -140,8 +229,16 @@ function extractImports(file) { const violations = []; -for (const file of walkPkgFiles(SRC)) { - const fromPath = pkgPathOf(file); +const roots = discoverRoots(); +const files = []; +for (const root of roots) { + for (const file of walkPkgFiles(root.dir)) { + files.push({ file, root }); + } +} + +for (const { file, root } of files) { + const fromPath = pkgPathOf(file, root); const fromLayer = classify(fromPath); if (fromLayer === null || fromLayer === "unknown") { violations.push({ diff --git a/tools/flaker-affected-rules.mjs b/tools/flaker-affected-rules.mjs index 53571ad0..c4ad481d 100644 --- a/tools/flaker-affected-rules.mjs +++ b/tools/flaker-affected-rules.mjs @@ -4,11 +4,11 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "infrastructure", changed: [ - "moon.mod.json", - "src/top.mbt", - "src/cmd/bit/main*.mbt", - "src/cmd/bit/helpers*.mbt", - "src/cmd/bit/fallback*.mbt", + "modules/bit/moon.mod.json", + "modules/bit/src/top.mbt", + "modules/bit/src/cmd/bit/main*.mbt", + "modules/bit/src/cmd/bit/helpers*.mbt", + "modules/bit/src/cmd/bit/fallback*.mbt", "tools/git-shim/**", "tools/run-git-test.sh", "tools/apply-git-test-patches.sh", @@ -20,18 +20,18 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:setup", changed: [ - "src/cmd/bit/init*.mbt", - "src/cmd/bit/config*.mbt", - "src/cmd/bit/gitconfig*.mbt", - "src/cmd/bit/show_ref.mbt", - "src/cmd/bit/symbolic_ref.mbt", - "src/cmd/bit/rev_parse*.mbt", - "src/cmd/bit/hash_object*.mbt", - "src/cmd/bit/cat_file*.mbt", - "src/object/**", - "src/hash/**", - "src/refs/**", - "src/repo_ops/revparse_ops.mbt", + "modules/bit/src/cmd/bit/init*.mbt", + "modules/bit/src/cmd/bit/config*.mbt", + "modules/bit/src/cmd/bit/gitconfig*.mbt", + "modules/bit/src/cmd/bit/show_ref.mbt", + "modules/bit/src/cmd/bit/symbolic_ref.mbt", + "modules/bit/src/cmd/bit/rev_parse*.mbt", + "modules/bit/src/cmd/bit/hash_object*.mbt", + "modules/bit/src/cmd/bit/cat_file*.mbt", + "modules/bit/src/object/**", + "modules/bit/src/hash/**", + "modules/bit/src/refs/**", + "modules/bit/src/repo_ops/revparse_ops.mbt", ], select: [ "third_party/git/t/t0000-basic.sh", @@ -49,13 +49,13 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:checkout", changed: [ - "src/cmd/bit/checkout*.mbt", - "src/cmd/bit/switch*.mbt", - "src/cmd/bit/restore*.mbt", - "src/cmd/bit/checkout_index.mbt", - "src/lib/checkout*.mbt", - "src/lib/path.mbt", - "src/worktree/**", + "modules/bit/src/cmd/bit/checkout*.mbt", + "modules/bit/src/cmd/bit/switch*.mbt", + "modules/bit/src/cmd/bit/restore*.mbt", + "modules/bit/src/cmd/bit/checkout_index.mbt", + "modules/bit/src/lib/checkout*.mbt", + "modules/bit/src/lib/path.mbt", + "modules/bit/src/worktree/**", ], select: [ "third_party/git/t/t2006-checkout-index-basic.sh", @@ -67,16 +67,16 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:index", changed: [ - "src/cmd/bit/ls_files*.mbt", - "src/cmd/bit/ls_tree.mbt", - "src/cmd/bit/read_tree.mbt", - "src/cmd/bit/update_index*.mbt", - "src/cmd/bit/sparse_checkout*.mbt", - "src/cmd/bit/check_attr.mbt", - "src/cmd/bit/check_ignore.mbt", - "src/lib/gitattributes.mbt", - "src/lib/tree_ops.mbt", - "src/worktree/**", + "modules/bit/src/cmd/bit/ls_files*.mbt", + "modules/bit/src/cmd/bit/ls_tree.mbt", + "modules/bit/src/cmd/bit/read_tree.mbt", + "modules/bit/src/cmd/bit/update_index*.mbt", + "modules/bit/src/cmd/bit/sparse_checkout*.mbt", + "modules/bit/src/cmd/bit/check_attr.mbt", + "modules/bit/src/cmd/bit/check_ignore.mbt", + "modules/bit/src/lib/gitattributes.mbt", + "modules/bit/src/lib/tree_ops.mbt", + "modules/bit/src/worktree/**", ], select: [ "third_party/git/t/t300*.sh", @@ -89,12 +89,12 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:branch", changed: [ - "src/cmd/bit/branch*.mbt", - "src/cmd/bit/check_ref_format.mbt", - "src/cmd/bit/show_branches.mbt", - "src/cmd/bit/for_each_ref.mbt", - "src/cmd/bit/show_ref.mbt", - "src/refs/**", + "modules/bit/src/cmd/bit/branch*.mbt", + "modules/bit/src/cmd/bit/check_ref_format.mbt", + "modules/bit/src/cmd/bit/show_branches.mbt", + "modules/bit/src/cmd/bit/for_each_ref.mbt", + "modules/bit/src/cmd/bit/show_ref.mbt", + "modules/bit/src/refs/**", ], select: [ "third_party/git/t/t320*.sh", @@ -105,10 +105,10 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:diff", changed: [ - "src/cmd/bit/diff*.mbt", - "src/cmd/bit/difftool.mbt", - "src/diff/**", - "src/diff_core/**", + "modules/bit/src/cmd/bit/diff*.mbt", + "modules/bit/src/cmd/bit/difftool.mbt", + "modules/bit/src/diff/**", + "modules/bit/src/diff_core/**", ], select: [ "third_party/git/t/t400*.sh", @@ -118,17 +118,17 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:history", changed: [ - "src/cmd/bit/log*.mbt", - "src/cmd/bit/rev_list*.mbt", - "src/cmd/bit/merge_base.mbt", - "src/cmd/bit/name_rev.mbt", - "src/cmd/bit/describe.mbt", - "src/cmd/bit/bisect*.mbt", - "src/cmd/bit/bundle.mbt", - "src/cmd/bit/fmt_merge_msg.mbt", - "src/lib/merge_base.mbt", - "src/repo/**", - "src/repo_ops/**", + "modules/bit/src/cmd/bit/log*.mbt", + "modules/bit/src/cmd/bit/rev_list*.mbt", + "modules/bit/src/cmd/bit/merge_base.mbt", + "modules/bit/src/cmd/bit/name_rev.mbt", + "modules/bit/src/cmd/bit/describe.mbt", + "modules/bit/src/cmd/bit/bisect*.mbt", + "modules/bit/src/cmd/bit/bundle.mbt", + "modules/bit/src/cmd/bit/fmt_merge_msg.mbt", + "modules/bit/src/lib/merge_base.mbt", + "modules/bit/src/repo/**", + "modules/bit/src/repo_ops/**", ], select: [ "third_party/git/t/t60*.sh", @@ -141,13 +141,13 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:merge", changed: [ - "src/cmd/bit/merge*.mbt", - "src/cmd/bit/cherry_pick*.mbt", - "src/cmd/bit/rebase*.mbt", - "src/cmd/bit/revert.mbt", - "src/lib/cherry_pick.mbt", - "src/lib/rebase.mbt", - "src/lib/merge*.mbt", + "modules/bit/src/cmd/bit/merge*.mbt", + "modules/bit/src/cmd/bit/cherry_pick*.mbt", + "modules/bit/src/cmd/bit/rebase*.mbt", + "modules/bit/src/cmd/bit/revert.mbt", + "modules/bit/src/lib/cherry_pick.mbt", + "modules/bit/src/lib/rebase.mbt", + "modules/bit/src/lib/merge*.mbt", ], select: [ "third_party/git/t/t640*.sh", @@ -162,14 +162,14 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:pack", changed: [ - "src/cmd/bit/pack*.mbt", - "src/cmd/bit/index_pack.mbt", - "src/cmd/bit/unpack_objects.mbt", - "src/cmd/bit/verify_pack.mbt", - "src/cmd/bit/multi_pack_index*.mbt", - "src/cmd/bit/commit_graph*.mbt", - "src/pack/**", - "src/pack_ops/**", + "modules/bit/src/cmd/bit/pack*.mbt", + "modules/bit/src/cmd/bit/index_pack.mbt", + "modules/bit/src/cmd/bit/unpack_objects.mbt", + "modules/bit/src/cmd/bit/verify_pack.mbt", + "modules/bit/src/cmd/bit/multi_pack_index*.mbt", + "modules/bit/src/cmd/bit/commit_graph*.mbt", + "modules/bit/src/pack/**", + "modules/bit/src/pack_ops/**", ], select: [ "third_party/git/t/t530*.sh", @@ -184,25 +184,25 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:transport", changed: [ - "src/cmd/bit/fetch*.mbt", - "src/cmd/bit/pull.mbt", - "src/cmd/bit/push.mbt", - "src/cmd/bit/clone*.mbt", - "src/cmd/bit/remote*.mbt", - "src/cmd/bit/receive_pack.mbt", - "src/cmd/bit/upload_pack.mbt", - "src/cmd/bit/fetch_pack.mbt", - "src/cmd/bit/send_pack.mbt", - "src/cmd/bit/http_fetch.mbt", - "src/cmd/bit/http_serve_*.mbt", - "src/cmd/bit/fetch_serve_*.mbt", - "src/lib/remote*.mbt", - "src/protocol/**", - "src/io/http_client.mbt", - "src/io/native/http_client_native.mbt", - "src/io/native/upload_pack*.mbt", - "src/io/native/remote.mbt", - "src/remote/**", + "modules/bit/src/cmd/bit/fetch*.mbt", + "modules/bit/src/cmd/bit/pull.mbt", + "modules/bit/src/cmd/bit/push.mbt", + "modules/bit/src/cmd/bit/clone*.mbt", + "modules/bit/src/cmd/bit/remote*.mbt", + "modules/bit/src/cmd/bit/receive_pack.mbt", + "modules/bit/src/cmd/bit/upload_pack.mbt", + "modules/bit/src/cmd/bit/fetch_pack.mbt", + "modules/bit/src/cmd/bit/send_pack.mbt", + "modules/bit/src/cmd/bit/http_fetch.mbt", + "modules/bit/src/cmd/bit/http_serve_*.mbt", + "modules/bit/src/cmd/bit/fetch_serve_*.mbt", + "modules/bit/src/lib/remote*.mbt", + "modules/bit/src/protocol/**", + "modules/bit/src/io/http_client.mbt", + "modules/bit/src/io/native/http_client_native.mbt", + "modules/bit/src/io/native/upload_pack*.mbt", + "modules/bit/src/io/native/remote.mbt", + "modules/bit/src/remote/**", ], select: [ "third_party/git/t/t550*.sh", @@ -218,16 +218,16 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:porcelain", changed: [ - "src/cmd/bit/add*.mbt", - "src/cmd/bit/commit*.mbt", - "src/cmd/bit/reset*.mbt", - "src/cmd/bit/status*.mbt", - "src/cmd/bit/show*.mbt", - "src/cmd/bit/rm*.mbt", - "src/cmd/bit/mv.mbt", - "src/cmd/bit/stash.mbt", - "src/cmd/bit/clean.mbt", - "src/lib/reset.mbt", + "modules/bit/src/cmd/bit/add*.mbt", + "modules/bit/src/cmd/bit/commit*.mbt", + "modules/bit/src/cmd/bit/reset*.mbt", + "modules/bit/src/cmd/bit/status*.mbt", + "modules/bit/src/cmd/bit/show*.mbt", + "modules/bit/src/cmd/bit/rm*.mbt", + "modules/bit/src/cmd/bit/mv.mbt", + "modules/bit/src/cmd/bit/stash.mbt", + "modules/bit/src/cmd/bit/clean.mbt", + "modules/bit/src/lib/reset.mbt", ], select: [ "third_party/git/t/t7001-mv.sh", @@ -245,9 +245,9 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:tag", changed: [ - "src/cmd/bit/mktag_cmd.mbt", - "src/cmd/bit/tag*.mbt", - "src/cmd/bit/verify_tag.mbt", + "modules/bit/src/cmd/bit/mktag_cmd.mbt", + "modules/bit/src/cmd/bit/tag*.mbt", + "modules/bit/src/cmd/bit/verify_tag.mbt", ], select: [ "third_party/git/t/t7004-tag.sh", @@ -258,10 +258,10 @@ export const GIT_COMPAT_AFFECTED_RULES = [ { reason: "command:submodule", changed: [ - "src/cmd/bit/submodule*.mbt", - "src/cmd/bit/worktree*.mbt", - "src/cmd/bit/sparse_checkout*.mbt", - "src/x-subdir/**", + "modules/bit/src/cmd/bit/submodule*.mbt", + "modules/bit/src/cmd/bit/worktree*.mbt", + "modules/bit/src/cmd/bit/sparse_checkout*.mbt", + "modules/bitx_subdir/src/**", ], select: [ "third_party/git/t/t6437-submodule-merge.sh", diff --git a/tools/flaker-affected-rules.test.mjs b/tools/flaker-affected-rules.test.mjs index a79e0b2c..099ee59a 100644 --- a/tools/flaker-affected-rules.test.mjs +++ b/tools/flaker-affected-rules.test.mjs @@ -15,7 +15,7 @@ test("renderAffectedRulesToml stays in sync with committed config", () => { test("merge-related changes select merge-focused git compat suites", () => { const selected = selectSuitesForChanges( - ["src/cmd/bit/merge.mbt"], + ["modules/bit/src/cmd/bit/merge.mbt"], [ "third_party/git/t/t6400-merge-df.sh", "third_party/git/t/t7600-merge.sh", @@ -32,7 +32,7 @@ test("merge-related changes select merge-focused git compat suites", () => { test("fetch and protocol changes include transport suites", () => { const selected = selectSuitesForChanges( - ["src/cmd/bit/fetch.mbt", "src/protocol/transport.mbt"], + ["modules/bit/src/cmd/bit/fetch.mbt", "modules/bit/src/protocol/transport.mbt"], [ "third_party/git/t/t5500-fetch-pack.sh", "third_party/git/t/t5700-protocol-v1.sh", @@ -49,7 +49,7 @@ test("fetch and protocol changes include transport suites", () => { test("refname validation changes include branch-oriented suites", () => { const selected = selectSuitesForChanges( - ["src/cmd/bit/check_ref_format.mbt"], + ["modules/bit/src/cmd/bit/check_ref_format.mbt"], [ "third_party/git/t/t3204-branch-name-interpretation.sh", "third_party/git/t/t7419-submodule-set-branch.sh", @@ -66,7 +66,7 @@ test("refname validation changes include branch-oriented suites", () => { test("tag verification changes include tag suites", () => { const selected = selectSuitesForChanges( - ["src/cmd/bit/verify_tag.mbt", "src/cmd/bit/mktag_cmd.mbt"], + ["modules/bit/src/cmd/bit/verify_tag.mbt", "modules/bit/src/cmd/bit/mktag_cmd.mbt"], [ "third_party/git/t/t7004-tag.sh", "third_party/git/t/t7030-verify-tag.sh", diff --git a/tools/flaker-affected-rules.toml b/tools/flaker-affected-rules.toml index bdf1df06..83fccf83 100644 --- a/tools/flaker-affected-rules.toml +++ b/tools/flaker-affected-rules.toml @@ -1,64 +1,64 @@ [[rules]] -changed = ["moon.mod.json", "src/top.mbt", "src/cmd/bit/main*.mbt", "src/cmd/bit/helpers*.mbt", "src/cmd/bit/fallback*.mbt", "tools/git-shim/**", "tools/run-git-test.sh", "tools/apply-git-test-patches.sh", "tools/select-git-tests.sh", "tools/flaker-run-git-compat-tests.mjs"] +changed = ["modules/bit/moon.mod.json", "modules/bit/src/top.mbt", "modules/bit/src/cmd/bit/main*.mbt", "modules/bit/src/cmd/bit/helpers*.mbt", "modules/bit/src/cmd/bit/fallback*.mbt", "tools/git-shim/**", "tools/run-git-test.sh", "tools/apply-git-test-patches.sh", "tools/select-git-tests.sh", "tools/flaker-run-git-compat-tests.mjs"] select = ["third_party/git/t/*.sh"] reason = "infrastructure" [[rules]] -changed = ["src/cmd/bit/init*.mbt", "src/cmd/bit/config*.mbt", "src/cmd/bit/gitconfig*.mbt", "src/cmd/bit/show_ref.mbt", "src/cmd/bit/symbolic_ref.mbt", "src/cmd/bit/rev_parse*.mbt", "src/cmd/bit/hash_object*.mbt", "src/cmd/bit/cat_file*.mbt", "src/object/**", "src/hash/**", "src/refs/**", "src/repo_ops/revparse_ops.mbt"] +changed = ["modules/bit/src/cmd/bit/init*.mbt", "modules/bit/src/cmd/bit/config*.mbt", "modules/bit/src/cmd/bit/gitconfig*.mbt", "modules/bit/src/cmd/bit/show_ref.mbt", "modules/bit/src/cmd/bit/symbolic_ref.mbt", "modules/bit/src/cmd/bit/rev_parse*.mbt", "modules/bit/src/cmd/bit/hash_object*.mbt", "modules/bit/src/cmd/bit/cat_file*.mbt", "modules/bit/src/object/**", "modules/bit/src/hash/**", "modules/bit/src/refs/**", "modules/bit/src/repo_ops/revparse_ops.mbt"] select = ["third_party/git/t/t0000-basic.sh", "third_party/git/t/t0001-init.sh", "third_party/git/t/t0012-help.sh", "third_party/git/t/t0450-txt-doc-vs-help.sh", "third_party/git/t/t1006-cat-file.sh", "third_party/git/t/t1007-hash-object.sh", "third_party/git/t/t1300-config.sh", "third_party/git/t/t1401-symbolic-ref.sh", "third_party/git/t/t1403-show-ref.sh", "third_party/git/t/t1500-rev-parse.sh"] reason = "command:setup" [[rules]] -changed = ["src/cmd/bit/checkout*.mbt", "src/cmd/bit/switch*.mbt", "src/cmd/bit/restore*.mbt", "src/cmd/bit/checkout_index.mbt", "src/lib/checkout*.mbt", "src/lib/path.mbt", "src/worktree/**"] +changed = ["modules/bit/src/cmd/bit/checkout*.mbt", "modules/bit/src/cmd/bit/switch*.mbt", "modules/bit/src/cmd/bit/restore*.mbt", "modules/bit/src/cmd/bit/checkout_index.mbt", "modules/bit/src/lib/checkout*.mbt", "modules/bit/src/lib/path.mbt", "modules/bit/src/worktree/**"] select = ["third_party/git/t/t2006-checkout-index-basic.sh", "third_party/git/t/t2014-checkout-switch.sh", "third_party/git/t/t2060-switch.sh", "third_party/git/t/t7201-co.sh"] reason = "command:checkout" [[rules]] -changed = ["src/cmd/bit/ls_files*.mbt", "src/cmd/bit/ls_tree.mbt", "src/cmd/bit/read_tree.mbt", "src/cmd/bit/update_index*.mbt", "src/cmd/bit/sparse_checkout*.mbt", "src/cmd/bit/check_attr.mbt", "src/cmd/bit/check_ignore.mbt", "src/lib/gitattributes.mbt", "src/lib/tree_ops.mbt", "src/worktree/**"] +changed = ["modules/bit/src/cmd/bit/ls_files*.mbt", "modules/bit/src/cmd/bit/ls_tree.mbt", "modules/bit/src/cmd/bit/read_tree.mbt", "modules/bit/src/cmd/bit/update_index*.mbt", "modules/bit/src/cmd/bit/sparse_checkout*.mbt", "modules/bit/src/cmd/bit/check_attr.mbt", "modules/bit/src/cmd/bit/check_ignore.mbt", "modules/bit/src/lib/gitattributes.mbt", "modules/bit/src/lib/tree_ops.mbt", "modules/bit/src/worktree/**"] select = ["third_party/git/t/t300*.sh", "third_party/git/t/t310*.sh", "third_party/git/t/t613*.sh", "third_party/git/t/t7011-skip-worktree-reading.sh", "third_party/git/t/t7012-skip-worktree-writing.sh"] reason = "command:index" [[rules]] -changed = ["src/cmd/bit/branch*.mbt", "src/cmd/bit/check_ref_format.mbt", "src/cmd/bit/show_branches.mbt", "src/cmd/bit/for_each_ref.mbt", "src/cmd/bit/show_ref.mbt", "src/refs/**"] +changed = ["modules/bit/src/cmd/bit/branch*.mbt", "modules/bit/src/cmd/bit/check_ref_format.mbt", "modules/bit/src/cmd/bit/show_branches.mbt", "modules/bit/src/cmd/bit/for_each_ref.mbt", "modules/bit/src/cmd/bit/show_ref.mbt", "modules/bit/src/refs/**"] select = ["third_party/git/t/t320*.sh", "third_party/git/t/t630*.sh", "third_party/git/t/t7419-submodule-set-branch.sh"] reason = "command:branch" [[rules]] -changed = ["src/cmd/bit/diff*.mbt", "src/cmd/bit/difftool.mbt", "src/diff/**", "src/diff_core/**"] +changed = ["modules/bit/src/cmd/bit/diff*.mbt", "modules/bit/src/cmd/bit/difftool.mbt", "modules/bit/src/diff/**", "modules/bit/src/diff_core/**"] select = ["third_party/git/t/t400*.sh", "third_party/git/t/t6427-diff3-conflict-markers.sh"] reason = "command:diff" [[rules]] -changed = ["src/cmd/bit/log*.mbt", "src/cmd/bit/rev_list*.mbt", "src/cmd/bit/merge_base.mbt", "src/cmd/bit/name_rev.mbt", "src/cmd/bit/describe.mbt", "src/cmd/bit/bisect*.mbt", "src/cmd/bit/bundle.mbt", "src/cmd/bit/fmt_merge_msg.mbt", "src/lib/merge_base.mbt", "src/repo/**", "src/repo_ops/**"] +changed = ["modules/bit/src/cmd/bit/log*.mbt", "modules/bit/src/cmd/bit/rev_list*.mbt", "modules/bit/src/cmd/bit/merge_base.mbt", "modules/bit/src/cmd/bit/name_rev.mbt", "modules/bit/src/cmd/bit/describe.mbt", "modules/bit/src/cmd/bit/bisect*.mbt", "modules/bit/src/cmd/bit/bundle.mbt", "modules/bit/src/cmd/bit/fmt_merge_msg.mbt", "modules/bit/src/lib/merge_base.mbt", "modules/bit/src/repo/**", "modules/bit/src/repo_ops/**"] select = ["third_party/git/t/t60*.sh", "third_party/git/t/t610*.sh", "third_party/git/t/t611*.sh", "third_party/git/t/t6120-describe.sh", "third_party/git/t/t6200-fmt-merge-msg.sh"] reason = "command:history" [[rules]] -changed = ["src/cmd/bit/merge*.mbt", "src/cmd/bit/cherry_pick*.mbt", "src/cmd/bit/rebase*.mbt", "src/cmd/bit/revert.mbt", "src/lib/cherry_pick.mbt", "src/lib/rebase.mbt", "src/lib/merge*.mbt"] +changed = ["modules/bit/src/cmd/bit/merge*.mbt", "modules/bit/src/cmd/bit/cherry_pick*.mbt", "modules/bit/src/cmd/bit/rebase*.mbt", "modules/bit/src/cmd/bit/revert.mbt", "modules/bit/src/lib/cherry_pick.mbt", "modules/bit/src/lib/rebase.mbt", "modules/bit/src/lib/merge*.mbt"] select = ["third_party/git/t/t640*.sh", "third_party/git/t/t641*.sh", "third_party/git/t/t642*.sh", "third_party/git/t/t643*.sh", "third_party/git/t/t7402-submodule-rebase.sh", "third_party/git/t/t760*.sh", "third_party/git/t/t761*.sh"] reason = "command:merge" [[rules]] -changed = ["src/cmd/bit/pack*.mbt", "src/cmd/bit/index_pack.mbt", "src/cmd/bit/unpack_objects.mbt", "src/cmd/bit/verify_pack.mbt", "src/cmd/bit/multi_pack_index*.mbt", "src/cmd/bit/commit_graph*.mbt", "src/pack/**", "src/pack_ops/**"] +changed = ["modules/bit/src/cmd/bit/pack*.mbt", "modules/bit/src/cmd/bit/index_pack.mbt", "modules/bit/src/cmd/bit/unpack_objects.mbt", "modules/bit/src/cmd/bit/verify_pack.mbt", "modules/bit/src/cmd/bit/multi_pack_index*.mbt", "modules/bit/src/cmd/bit/commit_graph*.mbt", "modules/bit/src/pack/**", "modules/bit/src/pack_ops/**"] select = ["third_party/git/t/t530*.sh", "third_party/git/t/t531*.sh", "third_party/git/t/t532*.sh", "third_party/git/t/t533*.sh", "third_party/git/t/t5351-unpack-large-objects.sh", "third_party/git/t/t6113-rev-list-bitmap-filters.sh", "third_party/git/t/t6114-keep-packs.sh"] reason = "command:pack" [[rules]] -changed = ["src/cmd/bit/fetch*.mbt", "src/cmd/bit/pull.mbt", "src/cmd/bit/push.mbt", "src/cmd/bit/clone*.mbt", "src/cmd/bit/remote*.mbt", "src/cmd/bit/receive_pack.mbt", "src/cmd/bit/upload_pack.mbt", "src/cmd/bit/fetch_pack.mbt", "src/cmd/bit/send_pack.mbt", "src/cmd/bit/http_fetch.mbt", "src/cmd/bit/http_serve_*.mbt", "src/cmd/bit/fetch_serve_*.mbt", "src/lib/remote*.mbt", "src/protocol/**", "src/io/http_client.mbt", "src/io/native/http_client_native.mbt", "src/io/native/upload_pack*.mbt", "src/io/native/remote.mbt", "src/remote/**"] +changed = ["modules/bit/src/cmd/bit/fetch*.mbt", "modules/bit/src/cmd/bit/pull.mbt", "modules/bit/src/cmd/bit/push.mbt", "modules/bit/src/cmd/bit/clone*.mbt", "modules/bit/src/cmd/bit/remote*.mbt", "modules/bit/src/cmd/bit/receive_pack.mbt", "modules/bit/src/cmd/bit/upload_pack.mbt", "modules/bit/src/cmd/bit/fetch_pack.mbt", "modules/bit/src/cmd/bit/send_pack.mbt", "modules/bit/src/cmd/bit/http_fetch.mbt", "modules/bit/src/cmd/bit/http_serve_*.mbt", "modules/bit/src/cmd/bit/fetch_serve_*.mbt", "modules/bit/src/lib/remote*.mbt", "modules/bit/src/protocol/**", "modules/bit/src/io/http_client.mbt", "modules/bit/src/io/native/http_client_native.mbt", "modules/bit/src/io/native/upload_pack*.mbt", "modules/bit/src/io/native/remote.mbt", "modules/bit/src/remote/**"] select = ["third_party/git/t/t550*.sh", "third_party/git/t/t551*.sh", "third_party/git/t/t552*.sh", "third_party/git/t/t553*.sh", "third_party/git/t/t570*.sh", "third_party/git/t/t5710-promisor-remote-capability.sh", "third_party/git/t/t573*.sh", "third_party/git/t/t5750-bundle-uri-parse.sh"] reason = "command:transport" [[rules]] -changed = ["src/cmd/bit/add*.mbt", "src/cmd/bit/commit*.mbt", "src/cmd/bit/reset*.mbt", "src/cmd/bit/status*.mbt", "src/cmd/bit/show*.mbt", "src/cmd/bit/rm*.mbt", "src/cmd/bit/mv.mbt", "src/cmd/bit/stash.mbt", "src/cmd/bit/clean.mbt", "src/lib/reset.mbt"] +changed = ["modules/bit/src/cmd/bit/add*.mbt", "modules/bit/src/cmd/bit/commit*.mbt", "modules/bit/src/cmd/bit/reset*.mbt", "modules/bit/src/cmd/bit/status*.mbt", "modules/bit/src/cmd/bit/show*.mbt", "modules/bit/src/cmd/bit/rm*.mbt", "modules/bit/src/cmd/bit/mv.mbt", "modules/bit/src/cmd/bit/stash.mbt", "modules/bit/src/cmd/bit/clean.mbt", "modules/bit/src/lib/reset.mbt"] select = ["third_party/git/t/t7001-mv.sh", "third_party/git/t/t7002-mv-sparse-checkout.sh", "third_party/git/t/t7007-show.sh", "third_party/git/t/t706*.sh", "third_party/git/t/t710*.sh", "third_party/git/t/t711*.sh", "third_party/git/t/t730*.sh", "third_party/git/t/t750*.sh", "third_party/git/t/t751*.sh", "third_party/git/t/t752*.sh"] reason = "command:porcelain" [[rules]] -changed = ["src/cmd/bit/mktag_cmd.mbt", "src/cmd/bit/tag*.mbt", "src/cmd/bit/verify_tag.mbt"] +changed = ["modules/bit/src/cmd/bit/mktag_cmd.mbt", "modules/bit/src/cmd/bit/tag*.mbt", "modules/bit/src/cmd/bit/verify_tag.mbt"] select = ["third_party/git/t/t7004-tag.sh", "third_party/git/t/t7030-verify-tag.sh", "third_party/git/t/t7031-verify-tag-signed-ssh.sh"] reason = "command:tag" [[rules]] -changed = ["src/cmd/bit/submodule*.mbt", "src/cmd/bit/worktree*.mbt", "src/cmd/bit/sparse_checkout*.mbt", "src/x-subdir/**"] +changed = ["modules/bit/src/cmd/bit/submodule*.mbt", "modules/bit/src/cmd/bit/worktree*.mbt", "modules/bit/src/cmd/bit/sparse_checkout*.mbt", "modules/bitx_subdir/src/**"] select = ["third_party/git/t/t6437-submodule-merge.sh", "third_party/git/t/t6438-submodule-directory-file-conflicts.sh", "third_party/git/t/t740*.sh", "third_party/git/t/t741*.sh", "third_party/git/t/t742*.sh", "third_party/git/t/t7450-bad-git-dotfiles.sh"] reason = "command:submodule" diff --git a/tools/install-bit.sh b/tools/install-bit.sh index 64828b89..6c902371 100755 --- a/tools/install-bit.sh +++ b/tools/install-bit.sh @@ -2,7 +2,7 @@ # Install bit to ~/.moon/bin and codesign on macOS. set -euo pipefail -moon install ./src/cmd/bit +moon install ./modules/bit/src/cmd/bit if command -v codesign >/dev/null 2>&1; then codesign -fs - ~/.moon/bin/bit diff --git a/tools/playground-dev.sh b/tools/playground-dev.sh index 83579d9e..80a318c9 100755 --- a/tools/playground-dev.sh +++ b/tools/playground-dev.sh @@ -2,7 +2,7 @@ # Boot the Vite-powered playground after building the JS lib. set -euo pipefail -moon build --target js --release src/lib +moon build --target js --release modules/bit_lib/src if [ ! -d node_modules ]; then pnpm install fi