25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CONTRIBUTING.md 4.8 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Contributing to Kosmorro
  2. If you are reading this, then you are probably looking for a way to contribute to Kosmorro (you're in the good place!). Thank you!
  3. There are multiple ways to contribute that can match with your possibilities.
  4. ## Opening issues
  5. ### Reporting bugs
  6. If you found a bug, please check it is not already reported in the _Issues_ tab.
  7. If it is not, [create a bug report](https://github.com/Deuchnord/kosmorro/issues/new/choose) and fill in the template that offers to you. Feel free to give as much information as possible, as it will make the bug easier to fix.
  8. ### Suggest a new feature
  9. Have an idea of feature you think would be nice on Kosmorro? Time to suggest it!
  10. First, please check someone didn't suggest your next revolution in the _Issues_ tab. If it's not, [create a feature request](https://github.com/Deuchnord/kosmorro/issues/new/choose) and fill in the templace that offers to you.
  11. ## Translating
  12. If you speak another language than English, another nice way to enhance Kosmorro is to translate its messages. The recommended way to begin translating Kosmorro is to [join the POEditor team](https://poeditor.com/join/project/GXuhLpdaoh).
  13. ## Writing code
  14. First of all, if you are fixing an opened issue, check that nobody is already working on it — if someone seems to be but their Pull Request seems stuck, please ask them first if you can continue the development. If you retake the code they produced, **don't change the author of the commits**.
  15. Before writing the code, first create a fork of the repository and clone it. You may also want to add the original repository (`Deuchnord/kosmorro`), so you can update your fork with the last upstream commits.
  16. Then create a new branch and start coding. Finally, commit and push, then open a PR on this project. If your project is not complete, feel free to open it as Draft (if you forgot to activate the Draft status, just edit the first comment to say it), then mark it as ready for review when you're done.
  17. ### Dealing with the translations
  18. The messages file contains all the messages Kosmorro can display, in order to make them translatable. When you change code, you may change also the messages displayed by the software.
  19. When you add a new string that will be displayed to the end user, please pass it to the `_()` function made available in the `kosmorrolib.i18n` package, for instance:
  20. ```python
  21. # Dont:
  22. print('Note: All the hours are given in UTC.')
  23. # Do:
  24. from kosmorrolib.i18n import _
  25. print(_('Note: All the hours are given in UTC.'))
  26. ```
  27. This will allow Python's internationalization tool to translate the string in any available language.
  28. Once you have done your work, please remember to tell [Babel](http://babel.pocoo.org) to extract the new strings:
  29. ```console
  30. $ pipenv run python setup.py extract_messages --output-file=kosmorrolib/locales/messages.pot
  31. ```
  32. > If the `setup.py` script tells you that the `extract_messages` command does not exist, then run `kosmorro sync` to ensure all the dev dependencies are installed and try again.
  33. Note that if you forget to update the messages file, the CI will fail.
  34. ### Matching the coding standards
  35. Kosmorro's source code follows the major coding standards of Python (PEPs). Before marking your Pull Request as ready for review, don't forget to check that the code respects the coding standards with PyLint (it is run on the CI, but feel free to run it on your local machine too). Your PR must have a global note of 10/10 to be elligible to merge.
  36. ### Testing the code
  37. Sadly, Kosmorro currently has a poor code coverage, but feel free to add new unit tests to enhance its stability.
  38. Any new Pull requests should have at least one new unit test that checks the new development is correct.
  39. ### Commiting
  40. The commit messages of this project follow the [Conventional Commits Specification](https://www.conventionalcommits.org/en/v1.0.0/): basically, when you commit your changes, please prefix them with the following:
  41. - **`fix: `** if your changes fix a bug;
  42. - **`feat: `** if your changes add a new feature.
  43. The message of your commit must start with a lowercase.
  44. Finally, if your change introduce a BC-break, add a footer beginning with `BREAKING CHANGE:` and explaining precisely the BC-break.
  45. Once your PR is ready to review, please squash your commits so it contains only one commit.
  46. > To ensure your commits follow this convention, you can use [glint](https://github.com/brigand/glint).
  47. The commit messages are then used to generate the changelog using [`conventional-changelog`](https://github.com/conventional-changelog/conventional-changelog):
  48. ```bash
  49. conventional-changelog -p angular -i CHANGELOG.md -s
  50. ```
  51. ## Licensing and Copyright Attribution
  52. When you open a Pull Request to the project, you agree to license your code under the [GNU Affero General Public License version 3](https://www.gnu.org/licenses/agpl-3.0.html).