summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2021-03-03 08:11:20 -0600
committerJordan Cook <jordan.cook@pioneer.com>2021-03-03 08:27:30 -0600
commitd424c38e59bca66492f90817a5990922b4b004d0 (patch)
tree8c4397d511db29029117d2f852609c5d39ec7e7a /CONTRIBUTING.md
parentab6848d7361e88ba3b3c06a9cdc93897cc779374 (diff)
downloadrequests-cache-d424c38e59bca66492f90817a5990922b4b004d0.tar.gz
Add a contributing guide
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md88
1 files changed, 88 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..a55da2a
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,88 @@
+# Contributing Guide
+
+## Development status
+While the original author no longer has time to work on requests-cache
+([see note here](https://github.com/reclosedev/requests-cache/blob/master/CODESHELTER.md)),
+one or more maintainers are available via [Code Shelter](https://www.codeshelter.co) to help keep
+this project going.
+
+Maintenance will mainly focus on bugfixes, security and compatibility updates, etc.
+If there is a new feature you would like to see, the best way to make that happen is to submit a PR
+for it!
+
+## Project Discussion
+If you have an issue or PR that hasn't received a response in a timely manner, or if you want to
+discuss ideas about the project in general, please reach out on the Code Shelter chat server, under
+[projects/requests-cache](https://codeshelter.zulipchat.com/#narrow/stream/186993-projects/topic/requests-cache).
+
+## Installation
+To set up for local development:
+
+```bash
+$ git clone https://github.com/reclosedev/requests-cache.git
+$ cd requests-cache
+$ pip install -Ue ".[dev]"
+```
+
+## Pre-commit hooks
+[Pre-commit](https://github.com/pre-commit/pre-commit) config is included to run the same checks
+locally that are run in CI jobs by GitHub Actions. This is optional but recommended.
+```bash
+$ pre-commit install --config .github/pre-commit.yml
+```
+
+To uninstall:
+```bash
+$ pre-commit uninstall
+```
+
+## Integration Tests
+Local databases are required to run integration tests, and docker-compose config is included to make
+this easier. First, [install docker](https://docs.docker.com/get-docker/) and
+[install docker-compose](https://docs.docker.com/compose/install/).
+
+Then, run:
+```bash
+$ docker-compose up -d
+pytest test/integration
+```
+
+## Documentation
+[Sphinx](http://www.sphinx-doc.org/en/master/) is used to generate documentation.
+
+To build the docs locally:
+```bash
+$ make -C docs html
+```
+
+To preview:
+```bash
+# MacOS:
+$ open docs/_build/index.html
+# Linux:
+$ xdg-open docs/_build/index.html
+```
+
+## Pull Requests
+Here are some general guidelines for submitting a pull request:
+
+- If the changes are trivial, just briefly explain the changes in the PR description.
+- Otherwise, please submit an issue describing the proposed change prior to submitting a PR.
+- Please add unit test coverage and updated docs (if applicable) for your changes.
+- Submit the PR to be merged into the `master` branch.
+
+## Releases
+Notes for maintainers:
+- Releases are built and published to pypi based on **git tags.**
+- [Milestones](https://github.com/reclosedev/requests-cache/milestones) will be used to track
+progress on major and minor releases.
+- GitHub Actions will build and deploy packages to PyPi on tagged commits
+on the `master` branch.
+
+Release steps:
+- Update the version in `pyinaturalist/__init__.py`
+- Update the release notes in `HISTORY.md`
+- Merge changes into the `master` branch
+- Push a new tag, e.g.: `git tag v0.1 && git push origin --tags`
+- This will trigger a deployment. Verify that this completes successfully and that the new version
+ can be installed from pypi with `pip install`