Thanks for considering a contribution to BXP. Contributions of all shapes are welcome — bug reports, broker templates, code, documentation, and especially datasets (real broker exports + expected outputs) that lock in edge cases for future releases.
Open an issue at https://github.com/zaxified/bxp/issues.
For bugs, please include:
- The binary version (
bxp-cli --version/bxp-fmt --version, orHelp → Aboutinbxp-gui). - A minimal config snippet plus a short input sample that reproduces the problem.
- Expected vs. actual output, and the exit code.
For feature requests, describe the broker or use-case first and the
implementation idea second. Planned work is in
docs/roadmap.md — check there before opening a new
issue in case something is already queued.
The datasets/ directory is the regression-test corpus
exercised by scripts/test.sh. Each entry pairs a real (anonymised)
broker export with its expected .csvx output, so changes to the
engine cannot silently break a real-world template.
Each dataset folder is named <template_id>/ and contains:
sample.json— short description of the case.sample_<from>_<to>.csv(or.xlsx/.json) — the anonymised input.sample_<from>_<to>.expected— the expected.csvxoutput, byte-for-byte.
To submit:
- Anonymise the export — strip account numbers, names, exact amounts if sensitive, but preserve the format quirks that matter.
- Add the folder under
datasets/<template_id>/. - Run
bash scripts/test.shlocally — it must pass. - Open a PR with a short description of what edge case is covered.
If your contribution uncovers a bug in an existing template, fix the template in the same PR.
If your broker is not in the built-in conversion_templates list, the
workflow is:
- Draft a template with the AI workflow described in
resources/console/readme.md("Need a broker that isn't listed?" section). - Verify it with
bxp-fmt --config(validation) andbxp-cli --debug(runtime check). - Add the template to
resources/bxp-cli.examples.jsonand a paired dataset underdatasets/. - Open a PR.
For build / test commands, repo layout, and architecture see
docs/devel.md. Module-level conventions live in the
CLAUDE.md file inside each package
(bxp-cli/, bxp-core/,
bxp-fmt/, bxp-gui/).
- Run
bash scripts/test.shbefore opening a PR. - Keep one logical change per PR — bundle dataset + template + code in one PR only when they really belong together.
- Don't commit secrets or non-anonymised broker data.
Fixes to docs/ and the user-facing readmes in
resources/console/ /
resources/desktop/ are welcome as
small PRs. If a section is unclear or wrong, file an issue or open the
PR directly.
Contributors of merged PRs are credited in the GitHub release notes for the version that ships their change.