Skip to content
Snippets Groups Projects
Commit ff5d0518 authored by Daniel Stonier's avatar Daniel Stonier
Browse files

[readme] consolidate development instructions

parent 311f6dea
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@
"editor.formatOnSave": true
},
"cSpell.words": [
"backported",
"behaviour",
"behaviours",
"bierner",
......
......@@ -15,15 +15,14 @@ Refer to the [README - Getting Started](../README.md#geting-started) for details
Some recommendations to help align your contribution and minimise the eventual back and forth on a PR:
* Engage in an issue thread or in the discussion section.
* Actual code in the form of a minimal PR with a `status:do_not_merge` label is a great tool for generating useful dialogue.
* Actual code in the form of a minimal PR with a `status:do_not_merge` label helps generate useful dialogue.
### Which Branch?
* If it's a new feature, or bugfix applicable to the latest code, `devel`
* If it's a bugfix that can't be applied to `devel`, but critical for a release, point it at the release branch (e.g. `release/0.6.x`)
If it is a feature or bugfix that you'd like to see backported to one of the release branches, open a parallel PR for that
release branch or mention that you'd like to see it backported in the original PR's description.
If it is a feature or bugfix that you'd like to see backported to one of the release branches, open a parallel PR for that release branch or mention that you'd like to see it backported in the original PR's description.
### The Pull Request
......@@ -32,45 +31,13 @@ Be sure to state clearly in the pull request's **description** (this helps exped
* The motivation, i.e. what problem is this solving.
* A concise summary of what was done (and why if relevant).
### Format, Lint, Type-Check and Test
### Pre-Merge Checks
The repository aims to conform to PEP8, please endeavour to do so. CI will get cranky if you don't ;)
CI get cranky on a variety of things - if it complains, make sure your PR is passing the following checks
locally.
Test against at least one of `py38`, `py310`.
```
# Auto-format your code (if using VSCode, install the ufmt extension)
$ poetry run tox -e format
# Style, Format
$ poetry run tox -e check
# Type-Check
$ poetry run mypy38
# Tests
$ poetry run tox -e py38
```
### Documentation
Documentation is auto-generated as part of the PR process, but if you do wish to make changes and check locally:
Generate the docs, view them from `./docs/html` in a browser.
```
# Install dependencies
$ poetry install --with docs
# Build
$ poetry run make -C docs html
```
On doc dependency changes in `pyproject.toml`, export the requirements for ReadTheDocs.
```
$ poetry export -f requirements.txt --with docs -o docs/requirements.txt
```
* [Test-Lint-Format](./DEVELOPING.md#test-format-lint)
* [Make Docs](./DEVELOPING#documentation)
### Changelog
......@@ -80,8 +47,7 @@ $ poetry export -f requirements.txt --with docs -o docs/requirements.txt
### Review
Once submitted, a reviewer will be assigned. You do not need to select. If no-one has self-assigned in a reasonable time window,
feel free to append a *friendly bump* comment to your PR.
Once submitted, a reviewer will be assigned. You do not need to select. If no-one has self-assigned in a reasonable time window, feel free to append a *friendly bump* comment to your PR.
### Merging
......
# Developing
[[Test-Format-Lint](#test-format-lint)] [[Documentation](#documentation)] [[Packaging]](#packaging)]
## Test-Format-Lint
Check against at least one of py38 / py310 [1].
```
# Auto-format your code (if using VSCode, install the ufmt extension)
$ poetry run tox -e format
# Style, Format
$ poetry run tox -e check
# Type-Check
$ poetry run mypy38
# Tests
$ poetry run tox -e py38
```
[1] CI will test against both python versions for you, but should you wish to do so locally, open up two VSCode windows, one with the project opened in the default [py38 devcontainer](.devcontainer) and the other with the [py310 devcontainer](.devcontainer/py310).
## Documentation
Generate the docs, view them from `./docs/html` in a browser.
```
# Install dependencies
$ poetry install --with docs
# Build
$ poetry run make -C docs html
```
On Doc dependency changes, export the requirements for ReadTheDocs
```
$ poetry export -f requirements.txt --with docs -o docs/requirements.txt
```
## Packaging
If you have permission to publish on pypi:
```
$ poetry config http-basic.pypi ${POETRY_HTTP_BASIC_PYPI_USERNAME} ${POETRY_HTTP_BASIC_PYPI_PASSWORD}
$ poetry publish
```
# Py Trees
[[About](#about)] [[What's New?](#whats-new)] [[Documentation](#documentation)] [[Getting Started](#getting-started)] [[Next Steps](#next-steps)] [[Releases](#releases)] [[Developers](#developers)]
[[About](#about)] [[What's New?](#whats-new)] [[Documentation](#documentation)] [[Getting Started](#getting-started)] [[Next Steps](#next-steps)] [[Releases](#releases)]
----
......@@ -101,54 +101,6 @@ Robotics:
| CI | [![devel-Status][devel-build-status-image]][devel-build-status] | [![2.2.x-Status][2.2.x-build-status-image]][2.2.x-build-status] | - | - | - | - | - |
| Documentation | [![devel-Docs][rtd-devel-image]][docs-devel] | [![2.2.x-Docs][rtd-2.2.x-image]][docs-2.2.x] | [![2.1.x-Docs][rtd-2.1.x-image]][docs-2.1.x] | [![2.0.x-Docs][rtd-2.0.x-image]][docs-2.0.x] | [![1.2.x-Docs][rtd-1.2.x-image]][docs-1.2.x] | [![0.7.x-Docs][rtd-0.7.x-image]][docs-0.7.x] | [![0.6.x-Docs][rtd-0.6.x-image]][docs-0.6.x]
## Developers
### Format, Check, MyPy, Test
Check against at least one of py38 / py310 [1].
```
# Auto-format your code (if using VSCode, install the ufmt extension)
$ poetry run tox -e format
# Style, Format
$ poetry run tox -e check
# Type-Check
$ poetry run mypy38
# Tests
$ poetry run tox -e py38
```
[1] CI will test against both python versions for you, but should you wish to do so locally, open up two VSCode windows, one with the project opened in the default [py38 devcontainer](.devcontainer) and the other with the [py310 devcontainer](.devcontainer/py310).
### Generate Documentation
Generate the docs, view them from `./docs/html` in a browser.
```
# Install dependencies
$ poetry install --with docs
# Build
$ poetry run make -C docs html
```
On Doc dependency changes, export the requirements for ReadTheDocs
```
$ poetry export -f requirements.txt --with docs -o docs/requirements.txt
```
### Publish to PyPi
If you have permission to publish on pypi:
```
$ poetry config http-basic.pypi ${POETRY_HTTP_BASIC_PYPI_USERNAME} ${POETRY_HTTP_BASIC_PYPI_PASSWORD}
$ poetry publish
```
[license-image]: https://img.shields.io/badge/License-BSD%203--Clause-orange.svg?style=plastic
[license]: LICENSE
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment