First off, thanks for taking the time to contribute!
The following is a set of guidelines for contributing to Smapp, which is hosted in the Spacemesh Organization on GitHub. These are just guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Before reporting a bug, please check our Github issues, Discord channel, and Spacemesh Status to see if it's a known issue or it's already being worked on. If it's not, you can open a new issue, using a clear and descriptive title.
If you have an idea for a new feature or an enhancement for an existing one, please first check our Github issues and Discord channel to see if it has already been suggested. If not, feel free to open a new suggestion!
If you are new to the project or to open source in general, a great way to get started with contributing to Smapp is by tackling issues labeled as "good first issues". These are relatively small and straightforward issues that have been specifically identified as friendly to newcomers.
Here's how you can get started:
- Go to the Issues tab on the Smapp GitHub repository.
- Filter for issues labeled "good first issue".
- Select an issue that you find interesting and feel that you can handle. Don't hesitate to ask questions in the issue comments if something is unclear.
- Fork the repository, clone it to your local machine, and create a new branch for your work.
- After you have finished your work, create a Pull Request (PR) to the main repository. Be sure to link to the issue in your PR description.
The goal is to make a meaningful contribution to the project, learn something new, and have fun! If you have any questions or need help, don't hesitate to ask. We're a friendly community and we're always ready to help new contributors.
- Fork the repo and create your branch from
develop
(ormaster
ifdevelop
does not exist). - If you've added code that should be tested, add tests.
- Ensure the test suite passes.
- Make sure your code lints and follows the established coding standards and conventions.
- When opening a pull request, please mark it for project contributors to review. This will give them the rights to push to the branch and streamline the review process. If you are not able to mark the PR, leave a comment requesting the project contributors' review.
Note: Our CI pipeline won't trigger by default if you're not already a project contributor. However, we can trigger it for you upon request. We expect contributions to pass and not break the CI pipeline.
If you have decided to contribute (thanks!), here are the steps to take an issue and start contributing:
- Pick an Issue: Look through our open issues. Pick one that interests you and that no one else is already working on.
- Check with the Team: Before starting work on an issue, it is essential to check with the development team. The issue may be outdated or not relevant anymore. You can do this by leaving a comment on the issue asking if it's still valid and waiting for a response before proceeding.
- Assign the Issue to Yourself: If the issue is still relevant, assign it to yourself so that the community knows you're working on it. If you don't have the right to do that, leave a comment stating your intentions to work on it.
- Understand the Issue: Make sure you thoroughly understand the issue. This might involve some communication back and forth with the person who submitted the issue (the reporter) and/or others on the team.
- Fork & Clone: Once the issue is understood, fork the repository and clone it on your local machine. This will give you a copy of the code to play with locally.
- Branch: Create a new branch in your local clone of the repository. This new branch will contain your solution to the issue.
- Code: Work on the code, ensuring you stick to the coding standards and guidelines defined in this document.
- Test: Make sure you add appropriate tests and ensure all the existing tests pass.
- Commit & Push: Commit your changes with a clear, descriptive commit message. Push the changes to your repository.
- Pull Request: Create a pull request on the official repository, proposing to merge your new branch (in your fork) with the main branch of the official repository.
- Review & Iterate: Maintainers of the repository will review your pull request. They may suggest changes or improvements. This is part of the process, and it is common to iterate on your solution before it gets merged.
Remember, contributions are not limited to code. You can help with documentation, testing, translation, or any other aspect that you think will benefit the project!
Please ensure that your contributions adhere to the coding standards and conventions used in the Smapp project. This includes proper indentation, accurate comments, and following naming conventions. If the project includes a linter or formatter config (like .editorconfig, .eslintrc, .prettierrc), please make sure your contributions do not violate the rules.
Before you can start contributing to Smapp, you'll need to set up a development environment on your local machine. You can find instructions on how to do this in the README.md file of the Smapp repository.
Good commit messages serve at least three important purposes:
- Speeding up the reviewing process.
- Helping us write a good release note.
- Providing context for the change for future reference.
Read this practical guide for writing good commit messages.
Please note that the Smapp project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms.