First off, thank you for considering contributing to xnomad/core! We welcome contributions from everyone, regardless of experience level.
By contributing to xnomad/core, you agree that your contributions will be licensed under the MIT License. This means:
- You grant us (and everyone else) a perpetual, worldwide, non-exclusive, royalty-free license to use your contributions.
- Your contributions are and will be available as Free and Open Source Software (FOSS).
- You have the right to submit the work under this license.
- You understand that your contributions are public and that a record of the contribution is maintained indefinitely.
For Developers
- Enhance Core Functionality
- Implement new features, services, or modules.
- Optimize existing code for better performance and scalability.
- Fix Bugs
- Reproduce and resolve reported issues.
- Write tests to ensure bugs do not resurface.
- Improve Documentation
- Update existing documentation to reflect changes in the codebase.
- Add new guides or API references for better usability.
- Refactor Code
- Simplify complex code while maintaining functionality.
- Enhance readability and maintainability.
- Contribute to Testing
- Write unit tests and integration tests.
- Ensure comprehensive coverage of core features.
- Fork the repository and create a branch:
- Name your branch based on the issue or feature you are addressing. Example: 1234-add-nft-keypair-generation
- Implement your changes:
- Write clear, concise, and efficient code.
- Adhere to the coding standards outlined below.
- Add or update tests:
- Ensure your changes are well-tested.
- Validate that all tests pass before submitting.
- Submit a Pull Request:
- Provide a clear description of the changes.
- Reference related issues (if applicable).
Git Commit Messages
- Use the present tense (e.g., “Fix bug” instead of “Fixed bug”).
- Use the imperative mood (e.g., “Add feature” instead of “Adds feature”).
- Limit the first line to 72 characters or less.
- Reference issues and pull requests liberally.
Code Style
- Follow TypeScript Standard Style.
- Use consistent naming conventions for variables, functions, and files.
- Write self-documenting code where possible.
Documentation
- Use Markdown for documentation.
- Maintain a consistent tone and style across all documents.
Additional Notes
We use labels to help organize and prioritize contributions:
- bug - Issues related to bugs.
- feature - New features or enhancements.
- documentation - Documentation updates or additions.
- help wanted - Issues where we need help.
- good first issue - Great for newcomers to get started.