Once a release candidate for the spec and initial tooling has been released, contributions may be accepted.
/spec- The JSON Schema specification files for the supported versions of OpenCLI./<pkg>- public packages meant to be use used by other projects; API stability follows semantic versioning and semantic import versioning./internal- internal packages not meant to be distributed or used imported into other codebases; no API stability is guaranteed.main.go- entrypoint to the CLI
- Contract first development - focus on the ergonomics of your CLI before you write any code
- Remove the redundant work of writing docs pages for your CLI - Generate docs for your CLI automatically and keep them from going stale.
- Separate your services from the CLI framework - generate the framework-specific boilerplate that invokes your implementation, keeping your code framework-agnostic.
- Create a spec
- Create a JSON-Schema to validate the spec
- Generate a Markdown documentation file from a spec-compliant file
- Generate CLI boilerplate from a spec-compliant file
- Generate a static docs site
- Add support for additional CLI frameworks
- spf13/cobra
- yargs
- oclif
- ...
Some files rely on copied/generated files that must be in place before tests can run. Ensure those prerequesites are taken care of by using the Makefile targets
make testmake build