chore(just): adopt shared common task-runner submodule; workspace release layout #82

Merged
David merged 1 commit from feat/YTCLI-28-adopt-common-submodule into main 2026-07-02 13:08:25 +02:00
Owner

Summary

Replace the standalone ~320-line justfile with an import of the shared psa-systems/common task runner, vendored as the common git submodule. The buggy local create-release fork (bumped crates/yt-cli/Cargo.toml but never ran cargo update, shipping a stale Cargo.lock) is removed; release logic and the Cargo.lock-sync now come from common's workspace layout (GOV-38 / common#7).

Changes

  • Add common git submodule + .gitmodules; justfile does import 'common/common.just'.
  • Set app := "youtrack-cli", release_layout := "workspace", release_manifest := "crates/yt-cli/Cargo.toml" (release_crate defaults to app, which matches the crate name). No local create-release.
  • Keep only the youtrack-cli-specific overrides: docker-based pre-commit (per-user cargo caches), the compose dev-service dev-container recipes, arg-taking run/run-debug, the YOUTRACK_CLI_* build-arg docker builds (runtime/export targets), test --all-targets, and the three-volume dev-clean. Inherit checks, formatting, build, and release from common (its --all-features on clippy/typecheck is a no-op here: no crate defines [features]).
  • Commit the pending Cargo.lock sync (youtrack-cli 0.5.0 -> 0.6.0), the v0.6.0 release's leftover.
  • Update README.md and CLAUDE.md.

Depends on

common#7 (GOV-38). The submodule is currently pinned to the common feature commit e0bf775 so the workspace dispatch is testable now. After common#7 merges, the gitlink will be re-pinned to common main in a follow-up commit on this branch before merge.

Verification

  • just --list shows create-release (+ -generic/-workspace) from common; just --evaluate resolves release_layout=workspace, release_manifest=crates/yt-cli/Cargo.toml, release_crate=youtrack-cli.
  • just create-release hotfix dispatches create-release -> create-release-workspace -> _create-release "crates/yt-cli/Cargo.toml" "youtrack-cli" "hotfix", stopping at the dirty-tree guard (chain confirmed).
  • just pre-commit green: fmt, clippy -D warnings, build, test --all-targets (356 tests pass).

Note

The inherited web-service dev recipes (dev-local*) are inapplicable here (they target a compose app service); splitting them out of common's shared core is tracked in DI-13.

#YTCLI-28

## Summary Replace the standalone ~320-line `justfile` with an import of the shared psa-systems/common task runner, vendored as the `common` git submodule. The buggy local `create-release` fork (bumped `crates/yt-cli/Cargo.toml` but never ran `cargo update`, shipping a stale `Cargo.lock`) is removed; release logic and the Cargo.lock-sync now come from common's workspace layout (GOV-38 / common#7). ## Changes - Add `common` git submodule + `.gitmodules`; `justfile` does `import 'common/common.just'`. - Set `app := "youtrack-cli"`, `release_layout := "workspace"`, `release_manifest := "crates/yt-cli/Cargo.toml"` (`release_crate` defaults to `app`, which matches the crate name). No local `create-release`. - Keep only the youtrack-cli-specific overrides: docker-based `pre-commit` (per-user cargo caches), the compose `dev`-service dev-container recipes, arg-taking `run`/`run-debug`, the `YOUTRACK_CLI_*` build-arg docker builds (`runtime`/`export` targets), `test --all-targets`, and the three-volume `dev-clean`. Inherit checks, formatting, `build`, and release from common (its `--all-features` on clippy/typecheck is a no-op here: no crate defines `[features]`). - Commit the pending `Cargo.lock` sync (`youtrack-cli 0.5.0 -> 0.6.0`), the v0.6.0 release's leftover. - Update README.md and CLAUDE.md. ## Depends on common#7 (GOV-38). The submodule is currently pinned to the common feature commit `e0bf775` so the workspace dispatch is testable now. After common#7 merges, the gitlink will be re-pinned to common `main` in a follow-up commit on this branch before merge. ## Verification - `just --list` shows `create-release` (+ `-generic`/`-workspace`) from common; `just --evaluate` resolves `release_layout=workspace`, `release_manifest=crates/yt-cli/Cargo.toml`, `release_crate=youtrack-cli`. - `just create-release hotfix` dispatches `create-release` -> `create-release-workspace` -> `_create-release "crates/yt-cli/Cargo.toml" "youtrack-cli" "hotfix"`, stopping at the dirty-tree guard (chain confirmed). - `just pre-commit` green: fmt, clippy `-D warnings`, build, `test --all-targets` (356 tests pass). ## Note The inherited web-service dev recipes (`dev-local*`) are inapplicable here (they target a compose `app` service); splitting them out of common's shared core is tracked in DI-13. #YTCLI-28
chore(just): adopt shared common task-runner submodule; workspace release layout
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 14s
Create release / Create release from merged PR (pull_request) Has been skipped
287bd2bd92
Replace the standalone ~320-line justfile with an import of the shared psa-systems/common task runner, vendored as the `common` git submodule. Set app, release_layout=workspace, and release_manifest=crates/yt-cli/Cargo.toml so common's create-release dispatches to its workspace variant (added in GOV-38); the Cargo.lock-sync engine now lives in common instead of a local fork that bumped crates/yt-cli/Cargo.toml but never ran cargo update, shipping a stale lockfile.

Keep only the youtrack-cli-specific overrides: docker-based pre-commit with per-user cargo caches, the compose `dev`-service dev-container recipes, arg-taking run/run-debug, the YOUTRACK_CLI_* build-arg docker builds (runtime/export targets), test --all-targets, and the three-volume dev-clean. Inherit checks, formatting, build, and release from common; its --all-features on clippy/typecheck is a no-op here (no crate defines [features]).

Commit the pending Cargo.lock sync (youtrack-cli 0.5.0 -> 0.6.0), the v0.6.0 release's leftover. Update README.md and CLAUDE.md. The inherited web-service dev recipes (dev-local*) remain inapplicable here, tracked in DI-13.

#YTCLI-28

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
David merged commit 7df1bc01a0 into main 2026-07-02 13:08:25 +02:00
David deleted branch feat/YTCLI-28-adopt-common-submodule 2026-07-02 13:08:25 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
pandoras-box/youtrack-cli!82
No description provided.