|
1 | | -# Getting Involved |
| 1 | +# Guidelines For Contributing |
2 | 2 |
|
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! β¨β¨ |
4 | 4 |
|
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. |
6 | 6 |
|
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 |
9 | 8 |
|
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? |
11 | 10 |
|
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. |
13 | 13 |
|
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. |
15 | 15 | 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. |
16 | 16 |
|
17 | 17 | ### New issue structure (bugs, anomalies, improvements...) |
| 18 | + |
18 | 19 | Providing the following information will increase the chances of your issue being dealt with quickly: |
19 | 20 |
|
20 | 21 | * **Short TO-THE-POINT Overview** - what seems to be the issue. |
21 | 22 | * **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. |
24 | 24 | * **Reproducing** - how did it happen? Is it an isolated anomaly, can you recreate it, what are the steps to recreate it? |
25 | 25 | * **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. |
27 | 26 |
|
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). |
32 | 188 |
|
33 | 189 | [issue-link]: https://github.com/infobip/infobip-api-python-client/issues/new |
0 commit comments