This project uses Semantic Versioning (semver).
- MAJOR (
vX.0.0): Changes that break existing CLI flags, output formats, or Go package APIs that downstream code depends on. - MINOR (
v0.X.0): New features, commands, or modes that don't break existing usage. - PATCH (
v0.0.X): Bug fixes and documentation updates.
Releases are tagged as vMAJOR.MINOR.PATCH and published via GitHub Releases.
This project follows the Conventional Commits specification.
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation only |
refactor |
Code change that neither fixes a bug nor adds a feature |
test |
Adding or updating tests |
perf |
Performance improvement |
build |
Changes to the build system or dependencies |
ci |
Changes to CI configuration |
chore |
Other changes that don't modify source or test files |
Use the package or command name as the scope:
manifest,archive,hash,naming,audio,texture,tint,assetevrtools,texconv,showtints,symhash
feat(evrtools): add inventory mode for asset catalog
fix(manifest): use base-16 parsing for hex symbol filenames
test(manifest): add scanner round-trip tests
docs: update README with new CLI flags
build: upgrade Go to 1.24
refactor(naming): consolidate type symbol lookups
Append ! after the type/scope, or add a BREAKING CHANGE: footer:
feat(evrtools)!: rename -data flag to -datadir
BREAKING CHANGE: The -data flag has been renamed to -datadir.
Scripts using the old flag name will need to be updated.
- Go 1.24 or later
- libsquish (optional, for texconv PNG encoding)
make build # Build all CLI tools to bin/
make test # Run all tests
make check # Format, vet, and test- Follow standard Go conventions (
gofmt,go vet) - Keep functions focused and small
- Handle errors explicitly; don't ignore return values from
Close()orFlush() - Use table-driven tests with
t.Run()subtests - Prefer
io.Reader/io.Writerinterfaces over concrete types in function signatures
- Create a feature branch from
main - Make focused, minimal changes
- Add tests for new functionality
- Ensure
make checkpasses - Use conventional commit messages
- Address all review comments before requesting re-review