* fix(docs): respect workspace.yaml packages_dir setting (fixes#46)
* fix(workspace): improve config loading logic (CR feedback)
- Expand ~ before resolving relative paths in cmd_registry
- Handle LoadWorkspaceConfig errors properly
- Update Repo.Path when PackagesDir overrides default
- Validate workspace config version
- Add unit tests for workspace config loading
* docs: add comments and increase test coverage (CR feedback)
- Add docstrings to exported functions in pkg/cli
- Add unit tests for Semantic Output (pkg/cli/output.go)
- Add unit tests for CheckBuilder (pkg/cli/check.go)
- Add unit tests for IPC Query/Perform (pkg/framework/core)
* fix(test): fix panics and failures in php package tests
- Fix panic in TestLookupLinuxKit_Bad by mocking paths
- Fix assertion errors in TestGetSSLDir_Bad and TestGetPackageInfo_Bad
- Fix formatting in test files
* fix(test): correct syntax in services_extended_test.go
* fix(ci): point coverage workflow to go.mod instead of go.work
* fix(ci): build CLI before running coverage
* fix(ci): run go generate for updater package in coverage workflow
* fix(github): allow dry-run publish without gh CLI authentication
Moves validation check after dry-run check so tests can verify dry-run behavior in CI environments.
LinuxKit v1.8.2+ requires double-dash flags (--format, --name, etc.)
instead of single-dash flags. The old flags were being parsed incorrectly,
e.g., `-name` was interpreted as `-n` with value `ame`.
Files updated:
- pkg/build/builders/linuxkit.go
- pkg/php/container.go
- pkg/release/publishers/linuxkit.go
- pkg/release/publishers/linuxkit_test.go
Fixes#50
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Move SDK generation to `core build sdk` subcommand
- Make `core ci` publish-only (expects artifacts in dist/)
- Add release.Publish() for publishing pre-built artifacts
- Keep `core sdk diff` and `core sdk validate` for API validation
- Update SKILL.md documentation
This separation prevents accidental releases - running `core ci`
without first building will fail safely.
Workflow:
core build # Build binaries
core build sdk # Build SDKs
core ci # Publish what's in dist/
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add RunSDK function that orchestrates SDK-only releases by:
- Validating config and SDK configuration
- Determining version from git tags or config override
- Running optional breaking change detection via oasdiff
- Generating SDKs for configured languages (unless dry run)
The function supports dry run mode for previewing what would be done
without actually generating SDKs.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add SDKRelease struct to hold SDK release results and toSDKConfig
helper function to convert release.SDKConfig to sdk.Config.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add SDKConfig struct and related types (SDKPackageConfig, SDKDiffConfig,
SDKPublishConfig) to support SDK generation configuration within the
release.yaml configuration file.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
LinuxKit can now output docker format tarballs that can be loaded with
`docker load`. This gives you immutable, reproducible LinuxKit images
in Docker-compatible format.
Supported formats now include:
- iso, iso-bios, iso-efi
- raw, raw-bios, raw-efi
- qcow2, qcow2-bios, qcow2-efi
- vmdk, vhd, gcp, aws
- docker (tarball for `docker load`)
- tar, kernel+initrd
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add publishers for distributing CLI binaries to package managers:
- npm: binary wrapper pattern with postinstall download
- Homebrew: formula generation + tap auto-commit
- Scoop: JSON manifest + bucket auto-commit
- AUR: PKGBUILD + .SRCINFO + AUR push
- Chocolatey: NuSpec + install script + optional push
Each publisher supports:
- Dry-run mode for previewing changes
- Auto-commit to own repos (tap/bucket/AUR)
- Generate files for PRs to official repos via `official` config
Also includes Docker and LinuxKit build helpers.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>