|
1 | | -## If you have found an error: |
| 1 | +Thanks for using OSMnet! |
2 | 2 |
|
3 | | - - check the error message and [documentation](https://udst.github.io/osmnet/index.html) |
4 | | - - search the previously opened and closed issues to see if the problem has already been reported |
5 | | - - if the problem is with a dependency of OSMnet, please open an issue on the dependency's repo |
6 | | - - if the problem is with OSMnet and you think you may have a fix, please submit a PR, otherwise please open an issue in the [issue tracker](https://github.com/UDST/osmnet/issues) following the issue template |
| 3 | +This is an open source project that's part of the Urban Data Science Toolkit. Development and maintenance is a collaboration between UrbanSim Inc, U.C. Berkeley's Urban Analytics Lab, and other contributors. |
7 | 4 |
|
8 | | -## Making a feature proposal or contributing code: |
| 5 | +## If you have a problem: |
| 6 | + |
| 7 | +- Take a look at the [open issues](https://github.com/UDST/osmnet/issues) and [closed issues](https://github.com/UDST/osmnet/issues?q=is%3Aissue+is%3Aclosed) to see if there's already a related discussion |
| 8 | + |
| 9 | +- Open a new issue describing the problem -- if possible, include any error messages, a full reproducible example of the code that generated the error, the operating system and version of Python you're using, and versions of any libraries that may be relevant |
| 10 | + |
| 11 | +## Feature proposals: |
| 12 | + |
| 13 | +- Take a look at the [open issues](https://github.com/UDST/osmnet/issues) and [closed issues](https://github.com/UDST/osmnet/issues?q=is%3Aissue+is%3Aclosed) to see if there's already a related discussion |
| 14 | + |
| 15 | +- Post your proposal as a new issue, so we can discuss it (some proposals may not be a good fit for the project) |
| 16 | + |
| 17 | +## Contributing code: |
| 18 | + |
| 19 | +- Create a new branch of `UDST/osmnet/dev`, or fork the repository to your own account |
| 20 | + |
| 21 | +- Make your changes, following the existing styles for code and inline documentation |
| 22 | + |
| 23 | +- Add [tests](https://github.com/UDST/osmnet/tree/dev/osmnet/tests) if possible |
| 24 | + - We use the test suite: Pytest |
| 25 | + |
| 26 | +- Run tests and address any issues that may be flagged. If flags are raised that are not due to the PR note that in a new comment in the PR |
| 27 | + - Run Pytest test suite: `py.test` |
| 28 | + - OSMnet currently supports Python 3.5, 3.6, 3.7, 3.8. Tests will be run in these environments when the PR is created but any flags raised in these environments should also be addressed |
| 29 | + - Run pycodestyle Python style guide checker: `pycodestyle --max-line-length=100 osmnet` |
| 30 | + |
| 31 | +- Open a pull request to the `UDST/osmnet` `dev` branch, including a writeup of your changes -- take a look at some of the closed PR's for examples |
| 32 | + |
| 33 | +- Current maintainers will review the code, suggest changes, and hopefully merge it and schedule it for an upcoming release |
9 | 34 |
|
10 | | - - post your requested feature on the [issue tracker](https://github.com/UDST/osmnet/issues) and mark it with a `New feature` label so it can be reviewed |
11 | | - - fork the repo, make your change (your code should attempt to conform to OSMnet's existing coding, commenting, and docstring styles), add new or update [unit tests](https://github.com/UDST/osmnet/tree/master/osmnet/tests), and submit a PR |
12 | | - - respond to the code review |
13 | 35 | ## Updating the documentation: |
14 | 36 |
|
15 | 37 | - See instructions in `docs/README.md` |
16 | 38 |
|
17 | | - |
18 | 39 | ## Preparing a release: |
19 | 40 |
|
20 | 41 | - Make a new branch for release prep |
21 | 42 |
|
22 | | -- Update the version number and changelog |
| 43 | +- Update the version number and changelog: |
23 | 44 | - `CHANGELOG.md` |
24 | 45 | - `setup.py` |
25 | 46 | - `osmnet/__init__.py` |
26 | 47 | - `docs/source/index.rst` |
| 48 | + - `docs/source/conf.py` |
27 | 49 |
|
28 | 50 | - Make sure all the tests are passing, and check if updates are needed to `README.md` or to the documentation |
29 | 51 |
|
30 | | -- Open a pull request to the master branch to finalize it |
31 | | - |
32 | | -- After merging, tag the release on GitHub and follow the distribution procedures below |
| 52 | +- Open a pull request to the `dev` branch to finalize it and wait for a PR review and approval |
33 | 53 |
|
| 54 | +- After the PR has been approved, it can be merged to `dev`. Then a release PR can be created from `dev` to merge into `master`. Once merged, tag the release on GitHub and follow the distribution procedures below: |
34 | 55 |
|
35 | 56 | ## Distributing a release on PyPI (for pip installation): |
36 | 57 |
|
37 | 58 | - Register an account at https://pypi.org, ask one of the current maintainers to add you to the project, and `pip install twine` |
38 | 59 |
|
39 | 60 | - Check out the copy of the code you'd like to release |
40 | 61 |
|
41 | | -- Run `python setup.py sdist bdist_wheel --universal` |
| 62 | +- Run `python setup.py sdist bdist_wheel` (WITHOUT the `--universal` flag, since OSMnet no longer supports Python 2) |
42 | 63 |
|
43 | | -- This should create a `dist` directory containing two package files -- delete any old ones before the next step |
| 64 | +- This should create a `dist` directory containing a gzip package file -- delete any old ones before the next step |
44 | 65 |
|
45 | 66 | - Run `twine upload dist/*` -- this will prompt you for your pypi.org credentials |
46 | 67 |
|
|
49 | 70 |
|
50 | 71 | ## Distributing a release on Conda Forge (for conda installation): |
51 | 72 |
|
52 | | -- The [conda-forge/osmnet-feedstock](https://github.com/conda-forge/osmnet-feedstock) repository controls the Conda Forge release |
| 73 | +- The [conda-forge/osmnet-feedstock](https://github.com/conda-forge/osmnet-feedstock) repository controls the Conda Forge release, including which GitHub users have maintainer status for the repo |
53 | 74 |
|
54 | 75 | - Conda Forge bots usually detect new releases on PyPI and set in motion the appropriate feedstock updates, which a current maintainer will need to approve and merge |
55 | 76 |
|
| 77 | +- Maintainers can add on additional changes before merging the PR, for example to update the requirements or edit the list of maintainers |
| 78 | + |
| 79 | +- You can also fork the feedstock and open a PR manually. It seems like this must be done from a personal account (not a group account like UDST) so that the bots can be granted permission for automated cleanup |
| 80 | + |
56 | 81 | - Check https://anaconda.org/conda-forge/osmnet for the new version (may take a few minutes for it to appear) |
0 commit comments