Thank you for your interest in contributing to Invoice Liquidity Network (ILN).
- Node.js 18+
- pnpm 9+
- Rust 1.74+
- Docker
- Stellar CLI
git clone --recurse-submodules https://github.com/Invoice-Liquidity-Network/Invoice-Liquidity-Network.git
cd Invoice-Liquidity-Network
git submodule update --init --recursive
pnpm installThis repository uses pnpm. Run pnpm install from the repository root and do not create package-lock or yarn lockfiles.
Use README.md and docs/local-development.md for repository-specific development instructions.
Run the main test suite with:
pnpm testUseful checks include:
pnpm lint
pnpm type-check
pnpm format:check
pnpm buildThe repository uses a Husky pre-commit hook to run gitleaks against staged changes. After pnpm install, Husky installs the hook automatically through the root prepare script. The hook is deliberately limited to staged content so it does not perform a full-repository scan on every commit.
A commit containing a detected secret is rejected. Remove the secret from the staged changes, rotate or revoke it when appropriate, and then commit again. Do not add real credentials to source files, examples, documentation, tests, or local configuration that could be committed. Use environment variables and document required variables instead.
In a genuine emergency only, the hook can be bypassed with:
HUSKY=0 git commit -m "your commit message"Bypassing the hook is not a way to avoid remediation. It requires immediate follow-up: remove the secret from the commit and repository history as necessary, rotate or revoke the credential, run the gitleaks scan manually, and notify the maintainers if the secret may have been exposed.
You can run a scan manually with:
pnpm gitleaks:scan- Create a focused branch from the current main branch.
- Keep changes limited to the issue being addressed.
- Add or update tests for behavior changes.
- Run the relevant formatting, lint, type-check, build, and test commands locally.
- Open a pull request with a clear description of the change, verification performed, and any follow-up work.
Use conventional commit messages where possible, for example:
security: add gitleaks pre-commit hook via Husky
- Follow the existing TypeScript, Rust, and Markdown conventions in the affected area.
- Prefer small, explicit changes over unrelated refactors.
- Never commit credentials, private keys, tokens, or other sensitive data.
- Keep generated files and dependency lockfiles consistent with the repository's package-manager policy.
For questions about an issue or repository ownership, open an issue in Invoice-Liquidity-Network and describe the affected area and the steps already taken. Maintainers will route cross-repository work as needed.