...
1# Welcome to go-ini contributing guide
2
3Thank you for investing your time in contributing to our projects!
4
5Read our [Code of Conduct](https://go.dev/conduct) to keep our community approachable and respectable.
6
7In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
8
9Use the table of contents icon <img src="https://github.com/github/docs/raw/50561895328b8f369694973252127b7d93899d83/assets/images/table-of-contents.png" width="25" height="25" /> on the top left corner of this document to get to a specific section of this guide quickly.
10
11## New contributor guide
12
13To get an overview of the project, read the [README](/README.md). Here are some resources to help you get started with open source contributions:
14
15- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
16- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
17- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow)
18- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
19
20In addition to the general guides with open source contributions, you would also need to:
21
22- Have basic knowledge about INI configuration format and programming in [Go](https://go.dev/).
23- Have a working local development setup with a reasonable good IDE or editor like [Visual Studio Code](https://code.visualstudio.com/docs/languages/go), [GoLand](https://www.jetbrains.com/go/) or [Vim](https://github.com/fatih/vim-go).
24
25## Issues
26
27### Create a new issue
28
29- [Check to make sure](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments) someone hasn't already opened a similar [issue](https://github.com/go-ini/ini/issues).
30- If a similar issue doesn't exist, open a new issue using a relevant [issue form](https://github.com/go-ini/ini/issues/new/choose).
31
32### Pick up an issue to solve
33
34- Scan through our [existing issues](https://github.com/go-ini/ini/issues) to find one that interests you.
35- The [good first issue](https://github.com/go-ini/ini/labels/good%20first%20issue) is a good place to start exploring issues that are well-groomed for newcomers.
36- Do not hesitate to ask for more details or clarifying questions on the issue!
37- Communicate on the issue you are intended to pick up _before_ starting working on it.
38- 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 🙇♂️
39
40## Pull requests
41
42When you're finished with the changes, create a pull request, or a series of pull requests if necessary.
43
44Contributing 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:
45
46- Please acknowledge that no pull request is guaranteed to be merged.
47- Please always do a self-review before requesting reviews from others.
48- Please expect code review to be strict and may have multiple rounds.
49- Please make self-contained incremental changes, pull requests with huge diff may be rejected for review.
50- Please use English in code comments and docstring.
51- Please do not force push unless absolutely necessary. Force pushes make review much harder in multiple rounds, and we use [Squash and merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-pull-request-commits) so you don't need to worry about messy commits and just focus on the changes.
52
53## Your PR is merged!
54
55Congratulations 🎉🎉 Thanks again for taking the effort to have this journey with us 🌟
View as plain text