1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
# Contributing
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.
You can contribute in many ways:
## Types of Contributions
### Report Bugs
Report bugs at <https://github.com/tr4nt0r/pynecil/issues>.
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your local setup that might be helpful in
troubleshooting.
- Detailed steps to reproduce the bug.
### Fix Bugs
Look through the GitHub issues for bugs. Anything tagged with "bug"
and "help wanted" is open to whoever wants to implement it.
### Implement Features
Look through the GitHub issues for features. Anything tagged with
"enhancement" and "help wanted" is open to whoever wants to
implement it.
### Write Documentation
Pynecil could always use more documentation, whether as part of the
official Pynecil docs, in docstrings, or even on the web in blog
posts, articles, and such.
### Submit Feedback
The best way to send feedback is to file an issue at
<https://github.com/tr4nt0r/pynecil/issues>.
If you are proposing a feature:
- Explain in detail how it would work.
- Keep the scope as narrow as possible, to make it easier to
implement.
- Remember that this is a volunteer-driven project, and that
contributions are welcome :)
## Development
Ready to contribute? Here's how to set up `Pynecil` for
local development.
### Setup Git
[Fork](https://github.com/tr4nt0r/pynecil/fork) the `Pynecil` repo on GitHub.
Clone your fork locally:
```bash
$ git clone git@github.com:yourusername/pynecil.git
```
Create a branch for local development:
``` bash
$ git checkout -b name-of-your-bugfix-or-feature
```
Now you can make your changes locally.
### Setup environment
We use [Hatch](https://hatch.pypa.io/latest/install/) to manage the development environment and production build. Ensure it's installed on your system.
### Run unit tests
You can run all the tests with:
```bash
hatch run test
```
### Format the code
Execute the following command to apply linting and check typing:
```bash
hatch run lint
```
### Publish a new version
You can bump the version, create a commit and associated tag with one command:
```bash
hatch version patch
```
```bash
hatch version minor
```
```bash
hatch version major
```
Your default Git text editor will open so you can add information about the release.
When you push the tag on GitHub, the workflow will automatically publish it on PyPi and a GitHub release will be created as draft.
## Pull Request Guidelines
Before you submit a pull request, check that it meets these guidelines:
1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated.
Put your new functionality into a function with a docstring, and add
the feature to the list in README.md.
3. The pull request should work for Python 3.11 and 3.12. Check
<https://github.com/tr4nt0r/pynecil/actions/workflows/build.yaml>
and make sure that the tests pass for all supported Python versions.
## Serve the documentation
You can serve the Mkdocs documentation with:
```bash
hatch run docs-serve
```
|