Contributing
How the Registry Works
The tbxmanager registry is a Git repository at MarekWadinger/tbxmanager-registry. Each package has a JSON file at packages/[name]/package.json containing metadata and download URLs for all versions.
When a PR is merged:
- CI rebuilds
index.json— a combined index of all packages - The index is deployed to GitHub Pages
- The MATLAB client fetches this index to discover packages
Submitting a New Package
- Fork the tbxmanager-registry repo
- Create
packages/your-package/package.jsonwith the required format - Open a PR — CI validates your submission automatically
- Fix any issues flagged by CI
- Maintainers review and merge
What CI Checks
- Valid JSON syntax
- Required fields present (name, description, versions)
- Package name matches directory name
- Valid version strings (semver)
- Valid platform names (win64, maci64, maca64, glnxa64, all)
- HTTPS download URLs
- SHA256 hash format (64-char hex)
- URL reachability (HEAD request)
Package JSON Format
See Creating Packages for the full format specification.
Updating an Existing Package
- Edit
packages/your-package/package.json - Add a new version entry to the
versionsobject - Open a PR
Reporting Issues
- Broken download links: Open an issue on the registry repo
- Package bugs: Contact the package author (see homepage/authors)
- tbxmanager client bugs: Open an issue on MarekWadinger/tbxmanager
Contributing to tbxmanager Itself
- Fork MarekWadinger/tbxmanager
- Create a feature branch from
dev - Make changes to
tbxmanager.mand add tests - Open a PR to
dev
Development Setup
Code Conventions
- All code in
tbxmanager.mas local functions tbx_prefix for internal helpers,main_prefix for commands- MATLAB R2022a+ features only
- Tests using
matlab.unittest.TestCase