Thanks for your interest in contributing to MostroP2P Tools! This library aims to make it easier for developers to interact with the MostroP2P protocol. Anyone is welcome to contribute.
If you're looking for somewhere to start contributing, check out the good first issue list.
- Development Discussion: Join our Telegram developer group
- General Discussion: Join our main Telegram group
- Technical Discussion: GitHub issues and pull requests
- Nostr: Follow us at
npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0
- Fork the repository
- Create a topic branch from the
main
branchgit checkout -b feat/new-feature # or git checkout -b fix/some-bug
- Make your changes
- Write tests for your changes
- Run tests and ensure all pass
npm run test
- Run linting and type checking
npm run lint npm run type-check
- Commit your changes with a clear message
- Submit a pull request
feat/
- New featuresfix/
- Bug fixesdocs/
- Documentation changesrefactor/
- Code refactoringtest/
- Adding or updating testschore/
- Maintenance tasks
Each pull request should focus on a single change. For example:
- ✅ Add new feature to orders handling
- ✅ Fix bug in message encryption
- ❌ Add new feature AND refactor message handling (should be two PRs)
- Update the README.md and documentation with details of any changes to the interface
- Update the CHANGELOG.md following Keep a Changelog format
- Update the examples if necessary
- Ensure all tests pass and no linting errors exist
- Request review from maintainers
We use ESLint and Prettier to maintain code quality. Before committing, run:
npm run lint
npm run format
- Prefer interfaces over types unless you need specific type features
- Use meaningful variable names
- Document public APIs using JSDoc comments
- Use strict TypeScript settings (strict: true)
- All new features must include unit tests
- Integration tests for new features are highly encouraged
- Maintain or improve code coverage
- Tests should be meaningful and not just for coverage
<type>(<scope>): <subject>
<body>
<footer>
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- refactor: Code change that neither fixes a bug nor adds a feature
- test: Adding missing tests or correcting existing tests
- chore: Changes to the build process or auxiliary tools
We follow a review process similar to Bitcoin Core:
ACK
: Tested the code and agree it should be mergedNACK
: Disagree with the merge (must include technical justification)utACK
: Code looks good but haven't testedConcept ACK
: Agree with the concept but haven't reviewed in detailNit
: Minor, non-blocking issues
-
Clone your fork:
git clone https://github.com/your-username/mostro-tools.git
-
Install dependencies:
npm install
-
Create a branch for your changes:
git checkout -b feat/my-feature
-
Run tests:
npm test
Feel free to ask questions in our Telegram developer group or open an issue on GitHub.
Thank you for contributing to MostroP2P Tools! 🚀