Skip to content

Add nvpkg CLI for NovusPack package management#6

Merged
cypher0n3 merged 6 commits intomainfrom
feature/nvpkg-cli
Feb 4, 2026
Merged

Add nvpkg CLI for NovusPack package management#6
cypher0n3 merged 6 commits intomainfrom
feature/nvpkg-cli

Conversation

@cypher0n3
Copy link
Copy Markdown
Contributor

@cypher0n3 cypher0n3 commented Feb 1, 2026

Add nvpkg CLI for NovusPack package management

Summary

Introduces nvpkg, a Go CLI for creating, inspecting, and modifying NovusPack (.nvpk) packages.
The CLI lives under cli/ with a dedicated cli/nvpkg/ implementation and is wired into the root Makefile for build, test, lint, and CI.
This PR also refactors API BDD steps to use the public API (with fixes to RemoveFilePattern/RemoveDirectory), adds go-bdd on main and nvpkg CI/release workflows, and updates docs and lint tooling.

Changes

New CLI: cli/nvpkg/

  • Commands: create, add, remove, list, read, header, info, extract, validate, comment, identity, metadata, and interactive mode.
  • Stack: Cobra, Go 1.25+, dependency on api/go via replace in go.mod.
  • Build: Release binary (make build / make build-nvpkg) with optional UPX; dev binary nvpkg-dev via make build-dev-nvpkg.
  • Tests: Unit tests and scripts for add/list/read, create, header/info, remove, validate; integrated into root make test and make ci.

Root integration

  • Makefile: test-nvpkg, ci-nvpkg, lint-nvpkg, coverage-nvpkg, build-nvpkg, build-dev-nvpkg, clean-nvpkg; test, ci, lint, and coverage now include nvpkg.
  • README: CLI section, Building (prereqs, nvpkg, Go API), repo tree updated with cli/; nvpkg CI badge and link; heading level fix for 2.1 Dual Modality.
  • Workflows: .github/workflows/go-bdd.yml (go-bdd now runs on main), .github/workflows/nvpkg-ci.yml (test, lint, coverage), .github/workflows/nvpkg-release.yml (cross-platform release builds).

Docs and layout

  • cli/README.md: Overview of CLI implementations (nvpkg, planned nvpkr/nvpkz) and dual modality (command-based + interactive).
  • cli/nvpkg/README.md: Install, build, commands, usage, and contribution notes.

API and BDD

  • api/go: BDD step definitions updated to call the public API instead of internals.
  • api/go/novus_package: Fixes to RemoveFilePattern and RemoveDirectory behavior; minor change in package_file_management.go to support CLI usage.
  • api/go/Makefile: Add clean target; go.mod/go.sum updated as needed.

Lint and tooling

  • Markdownlint: Ignore dist/ and **/dist.
  • scripts/validate_go_code_blocks.py: Preserve heading kind word in suggest_heading fixes.

Testing

  • make test (includes make test-nvpkg)
  • make ci (includes make ci-nvpkg)
  • make bdd / make bdd-ci (BDD tests)
  • From cli/nvpkg/: make test, make ci, and script-driven checks (add/list/read, create, header/info, remove, validate)

Checklist

  • CLI builds and tests pass locally and in CI
  • Root Makefile and README updated; docs-check and lint pass
  • nvpkg CI and release workflows added
  • go-bdd runs on main; BDD steps use public API

@cypher0n3 cypher0n3 requested a review from Zambito1 February 1, 2026 09:47
@cypher0n3 cypher0n3 self-assigned this Feb 1, 2026
@cypher0n3 cypher0n3 changed the title Add nvpkg CLI for NovusPack package management DRAFT: Add nvpkg CLI for NovusPack package management Feb 1, 2026
@cypher0n3 cypher0n3 marked this pull request as draft February 1, 2026 16:27
@cypher0n3 cypher0n3 changed the title DRAFT: Add nvpkg CLI for NovusPack package management Add nvpkg CLI for NovusPack package management Feb 1, 2026
@cypher0n3 cypher0n3 force-pushed the feature/nvpkg-cli branch 3 times, most recently from e2e19bf to ff3e041 Compare February 4, 2026 02:20
- Run go-bdd job on main branch in go-bdd.yml
- Add nvpkg-ci.yml for cli/nvpkg lint and test
- Add nvpkg-release.yml for release build and artifact
…Directory

- Update BDD step definitions to call public API instead of internals
- Fix RemoveFilePattern and RemoveDirectory behavior
- Add clean target to api/go Makefile
- Update go.mod/go.sum as needed
- Add cli/nvpkg Go module with Cobra-based nvpkg binary
- Commands: add, comment, create, extract, header, identity, info,
  list, metadata, read, remove, validate; interactive mode
- Wire nvpkg into root Makefile: test-nvpkg, ci-nvpkg, lint-nvpkg,
  coverage, build, clean targets
- Add CLI section documenting nvpkg and dual modality (API + CLI)
- Fix heading level for 2.1 Dual Modality
…est_heading

- Add dist/ and **/dist to markdownlint ignore list
- In validate_go_code_blocks suggest_heading, preserve heading kind word
  when suggesting fixes
- Dependabot: add github-actions, cli/nvpkg gomod, scripts pip; add labels
- Workflows: checkout@v6, setup-node@v6, golangci-lint-action@v9 (version: latest)
- api/go and cli/nvpkg Makefiles: run golangci-lint via 'go run' @ latest for CI/local sync
- interactive.go: use := in if err assignment
@cypher0n3 cypher0n3 marked this pull request as ready for review February 4, 2026 05:26
@cypher0n3 cypher0n3 merged commit 5629723 into main Feb 4, 2026
17 checks passed
@cypher0n3 cypher0n3 deleted the feature/nvpkg-cli branch February 4, 2026 05:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant