Skip to content

Commit 0c297b0

Browse files
New CONTRIBUTING.md (#22)
Added CONTRIBUTING appropriate for a new workflow.
1 parent 9fa70cc commit 0c297b0

File tree

1 file changed

+171
-15
lines changed

1 file changed

+171
-15
lines changed

β€ŽCONTRIBUTING.mdβ€Ž

Lines changed: 171 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,189 @@
1-
# Getting Involved
1+
# Guidelines For Contributing
22

3-
Thanks for your interest in the project, we'd love to have you involved! Check out sections below to find out more about what to do next...
3+
✨✨ First off, thanks for taking the time to contribute! ✨✨
44

5-
## Submitting an Issue
5+
The following is a set of guidelines for contributing to Infobip API Java client library, these are mostly guidelines, not rules. You are free to propose changes to this document in a pull request.
66

7-
If you've seen something that is or may seem like a bug or a mistake in documentation, or you simply have a suggestion for a new feature, please go ahead and open [an issue][issue-link].
8-
Include as much information as you have.
7+
## 🚩 Issues
98

10-
Before you submit your issue, please do the archive search first, as there may be a similar question that's already been answered or is pending a response.
9+
How to report a bug?
1110

12-
If you haven't found any related issues among the already asked, feel free to open a new one.
11+
If you've seen something that is or may seem like a bug or a mistake in documentation, or you simply have a suggestion for a new feature, please go ahead and open [an issue][issue-link].
12+
Include as much information as you have. Before you submit your issue, please do the archive search first, as there may be a similar question that's already been answered or is pending a response.
1313

14-
For new feature requests, any sort of bug, anomaly, issue, etc. please try to provide information, as structured below.
14+
If you haven't found any related issues among the already asked, feel free to open a new one. For new feature requests, any sort of bug, anomaly, issue, etc. please try to provide information, as structured below.
1515
You don't have to follow it to the letter, but having it structured like below may save us a lot of time to pinpoint and fix the issue quicker.
1616

1717
### New issue structure (bugs, anomalies, improvements...)
18+
1819
Providing the following information will increase the chances of your issue being dealt with quickly:
1920

2021
* **Short TO-THE-POINT Overview** - what seems to be the issue.
2122
* **Description** - more detailed explanation of the issue. The stack trace in cases where it is applicable.
22-
* **Which `infobip_api_client` version(s)** - which library version(s) you used when the issue occurred.
23-
* **Environment** - is this a problem with all development/testing/production environments or only a specific one(s)?
23+
* **Which `infobip-api-python-client` version(s)** - which library version(s) you used when the issue occurred.
2424
* **Reproducing** - how did it happen? Is it an isolated anomaly, can you recreate it, what are the steps to recreate it?
2525
* **Related Issues** - is there something similar to this issue that has been reported before? If so, please tag that issue(s) as a reference.
26-
* **Suggest a Fix** - this code is auto generated, but perhaps you can provide us with your code sample as a fix to the part of the code that is causing the bug.
2726

28-
## Pull requests disclaimer
29-
We will not be accepting any pull requests, as the source code within this repository is **auto generated**.
30-
Any change needs to be made by us within the library generation configuration.
31-
Having said that, we still fully encourage you to submit an issue, since that will help us track it and keep you up to date.
27+
If you want to provide the solution to the issue yourself, you are free to do that as well 😊
28+
We welcome and encourage any effort from the community to take part in solving the issues.
29+
For more details on how to properly provide bugfixes, please check the [Pull request](#%EF%B8%8F-pull-request) section.
30+
31+
## πŸš€ Enhancements/Suggestions/Improvements
32+
33+
We welcome any suggestion to improve the project! If you have an idea for a new feature or an improvement,
34+
please follow these guidelines to help us understand your proposal and evaluate its feasibility:
35+
36+
* **Check Existing Issues First** - before suggesting a new enhancement, please search the issue tracker to see if a similar idea or request has already been discussed or proposed.
37+
If you find a related issue, feel free to add a comment to it, offering additional context or your thoughts, instead of opening a new one.
38+
* **Open a New Enhancement Issue** - if your suggestion is new, please open a new issue and prefix it with "ENHANCEMENT" or "SUGGESTION".
39+
Please try to title your issue as clearly as possible to summarize your enhancement idea.
40+
* **Provide a Detailed Description** - in your issue description, try to include as much of the following information:
41+
* **Problem:** What problem does this enhancement solve? Why is this feature needed?
42+
* **Proposed Solution:** Describe the enhancement or feature you’re suggesting. How should it work? Provide as much detail as possible.
43+
* **Alternatives Considered:** Have you thought of other ways to solve the problem? If so, briefly explain why your proposed solution is better.
44+
* **Additional Context:** Share any examples, mockups, screenshots, or links to similar implementations (if applicable).
45+
* **Stay Focused and Specific** - try to keep your enhancement idea focused on a single problem or feature. If you have multiple ideas, consider creating separate issues for each to make the discussion easier to follow.
46+
* **Be Open to Feedback** - we encourage healthy discussion about proposed enhancements. Be open to feedback, as maintainers and other contributors may have questions or alternative suggestions.
47+
* **Contribute the Enhancement** - if you want implement your suggestion or if you're interested in working on the other people's enhancements yourself, please check the [Pull request](#%EF%B8%8F-pull-request) section on how to do that.
48+
49+
## ℹ️ Asking for General Help
50+
51+
The [Infobip website](https://www.infobip.com/docs/api) has a list of resources for getting programming help and more.
52+
For any question contributors are available at [DevRel@infobip.com](mailto:DevRel@infobip.com).
53+
54+
## ⬇️ Pull request
55+
56+
### 🍴 Step 1: Fork
57+
58+
Fork the project on GitHub and clone your fork locally:
59+
60+
```bash
61+
git clone https://github.com/<your username>/infobip-api-python-client.git
62+
cd infobip-api-python-client
63+
git remote add upstream https://github.com/infobip/infobip-api-python-client.git
64+
git fetch upstream
65+
```
66+
67+
### πŸ› οΈ Step 2: Build
68+
69+
Install all required packages. List of required packages can be found in [pip](requirements.txt).
70+
For installation, you will need [pip](https://pypi.org/project/pip/) (or some other package installer).
71+
Using pip you can install the required packages simply with:
72+
73+
```bash
74+
pip install -r requirements.txt
75+
```
76+
77+
Afterward, you can use pip to build the project locally:
78+
79+
```bash
80+
pip install .
81+
```
82+
83+
Install the required test packages and run the tests that are in repository, all test should pass.
84+
85+
```bash
86+
pip install -r test-requirements.txt
87+
pytest
88+
```
89+
90+
### 🌱 Step 3: Branch
91+
92+
To keep your development environment organized, create local branches to hold your work.
93+
These should be branched directly off of the master branch.
94+
95+
```bash
96+
git checkout -b my-branch -t upstream/main
97+
```
98+
99+
### πŸ’» Step 4: Code
100+
101+
Please follow code structure and naming structure that is already in the repository.
102+
Code follows [Black code](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html) style.
103+
Formatter for this code style can be found on [GitHub](https://github.com/psf/black)
104+
105+
### βœ… Step 5: Commit
106+
107+
#### Commit your changes
108+
109+
It is recommended to keep your changes grouped logically within individual commits.
110+
Many contributors find it easier to review changes that are split across multiple commits.
111+
There is no limit to the number of commits in a pull request.
112+
113+
```bash
114+
git add my/changed/files
115+
git commit -m "Commit message"
116+
```
117+
118+
Note that multiple commits get squashed when the branch is merged to master.
119+
A good commit message should describe what changed and why.
120+
Commit message should:
121+
122+
* Contain a short description of the change (preferably 50 characters or less, and no more than 72 characters)
123+
* First letter should be capital and rest entirely in lowercase with the exception of proper nouns, acronyms,
124+
and the words that refer to code, like function/variable names
125+
126+
#### ⚠️ Breaking Changes
127+
128+
When commit has the breaking change first line of commit text should be BREAKING CHANGE.
129+
130+
### πŸ“Œ Step 6: Rebase
131+
132+
Once you have committed your changes, it is a good idea to use git rebase (not git merge) to synchronize your work with the main repository.
133+
134+
```bash
135+
git fetch upstream
136+
git rebase upstream/main
137+
```
138+
139+
### πŸ§ͺ Step 7: Tests
140+
141+
Before submitting your changes in a pull request, always run the full test suite.
142+
You can take a look at other tests for inspiration. Bug fixes and features should always come with tests.
143+
Make sure the linter does not report any issues and that all tests pass. Please do not submit patches that fail either check.
144+
145+
### πŸš€ Step 8: Push
146+
147+
Once your commits are ready to go -- with passing tests and linting -- begin the process of opening a pull request by pushing your working branch to GitHub.
148+
```bash
149+
git push origin my-branch
150+
```
151+
152+
### πŸ“¬ Step 9: Opening the Pull Request
153+
154+
From within GitHub, open new pull request.
155+
Your PR may be delayed in being merged as maintainers seek more information or clarify ambiguities.
156+
157+
### 🀼 Step 10: Discuss and update
158+
159+
You will probably get feedback or requests for changes to your pull request.
160+
This is a big part of the submission process so don't be discouraged!
161+
162+
To make changes to an existing pull request, make the changes to your local branch,
163+
add a new commit with those changes, and push those to your fork. GitHub will automatically update the pull request.
164+
165+
```bash
166+
git add my/changed/files
167+
git commit -m "Commit message"
168+
git push origin my-branch
169+
```
170+
171+
Feel free to post a comment in the pull request to ping reviewers if you are awaiting an answer on something.
172+
173+
### 🌍 Step 11: Merging
174+
175+
In order for a pull request to be merged, it needs to be reviewed and approved by at least one repository owner and pass the CI.
176+
After that, if there are no objections from other contributors, the pull request can be merged.
177+
178+
πŸŽ‰πŸŽŠ Congratulations and thanks for your contribution! πŸŽŠπŸŽ‰
179+
180+
Every pull request is tested on the Continuous Integration (CI) system to confirm that it works.
181+
Ideally, the pull request will pass ("be green") on all of CI's tests.
182+
This means that all tests pass and there are no linting errors.
183+
184+
## πŸ“š Further Reading
185+
186+
For more in-depth guides on developing SDKs, see
187+
[Readme](README.md) and [Infobip's website](https://www.infobip.com/docs/api).
32188

33189
[issue-link]: https://github.com/infobip/infobip-api-python-client/issues/new

0 commit comments

Comments
Β (0)