Thank you for investing your time in contributing to our projects!
Read our Code of Conduct to keep our community approachable and respectable.
In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
Use the table of contents icon on the top left corner of this document to get to a specific section of this guide quickly.
To get an overview of the project, read the README. Here are some resources to help you get started with open source contributions:
- Finding ways to contribute to open source on GitHub
- Set up Git
- GitHub flow
- Collaborating with pull requests
- How to Contribute to Open Source
- Talk, then code
In addition to the general guides with open source contributions, you would also need to:
- Have basic knowledge about web applications development, database management systems and programming in Go.
- Have a working local development setup with a reasonable good IDE or editor like Visual Studio Code, GoLand or Vim.
- Set up your development environment.
Before opening an issue, please make sure the problem you're encountering isn't already addressed on the Troubleshooting and FAQs pages.
- For questions, ask in Discussions.
- Check to make sure someone hasn't already opened a similar issue.
- If a similar issue doesn't exist, open a new issue using a relevant issue form.
- Blank issues that are not coming from maintainers will be closed without a response.
- Scan through our existing issues to find one that interests you.
- The 👋 good first issue is a good place to start exploring issues that are well-groomed for newcomers.
- Do not hesitate to ask for more details or clarifying questions on the issue!
- Communicate on the issue you are intended to pick up before starting working on it.
- Every issue that gets picked up will have an expected timeline for the implementation, the issue may be reassigned after the expected timeline. Please be responsible and proactive on the communication 🙇♂️
New features or big changes require proposals before we may be able to accept any contribution. Proposals should be posted to the Discussions - Proposal category for review and discussions. GitHub Discussions provides sub-threading which is much more suitable than GitHub Issues for discussions to happen. Please read Write a proposal for open source contributions to begin with.
When you're finished with the changes, create a pull request, or a series of pull requests if necessary.
Contributing to another codebase is not as simple as code changes, it is also about contributing influence to the design. Therefore, we kindly ask you that:
- Please acknowledge that no pull request is guaranteed to be merged.
- Please always do a self-review before requesting reviews from others.
- Please expect code review to be strict and may have multiple rounds.
- Please make self-contained incremental changes, pull requests with huge diff may be rejected for review.
- Please use English in code comments and docstring.
- Please do not force push unless absolutely necessary. Force pushes make review much harder in multiple rounds, and we use Squash and merge so you don't need to worry about messy commits and just focus on the changes.
- Updates to locale files (
conf/locale_xx-XX.ini
) other than theconf/locale_en-US.ini
. Please read the guide for localizing Gogs. - Docker compose files.
- Please read the Sourcegraph's Go style guide.
- NO direct modifications to
.css
files,.css
files are all generated by.less
files. You can regenerate.css
files by executingtask less
.
Congratulations 🎉🎉 Thanks again for taking the effort to have this journey with us 🌟