Skip to content

Commit 7c285a8

Browse files
committed
Update README with more dev instructions
1 parent 927b94d commit 7c285a8

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

README.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,42 @@ ambiguous.
134134

135135
## Development
136136

137-
This project has an extensive `Makefile` for development automation.
137+
This project has an extensive `Makefile` for development automation. To get started quick: after cloning this project, run `make all`. This should create a virtual environment, install all the required dev-time packages, lint, build, and test the project.
138138

139-
After cloning this project, run `make all` to get started.
139+
### Virtual Environment Setup
140140

141-
This should create a virtual environment and install all the required dev-time packages.
141+
You only have to run these once. And `make all` covers these steps automatically, but this is here for your reference.
142+
143+
Use `make reinit-venv` to create a new virtual environment from scratch. This will live inside the project's root. All subsequent make commands will automatically invoke python from inside this virtual environment. You may rerun this to completely wipe the virtual environment and start from scratch.
144+
145+
Use `make init-piptools` to bootstrap the virtual environment.
146+
147+
### Dependency Management
148+
149+
To add more runtime dependencies on pypi packages, add them to `requirements.in`. Then use `make install-requirements` to install them.
150+
151+
To add more devtime dependencies (these will not be deemed dependencies in the distributable/built version of the package), add them to any `*.in` file within the `requirements-devtime.d/` directory. Then use `make install-requirements` to install them.
152+
153+
To upgrade the pinned dependencies, run `make upgrade-requirements`. This will re-resolve the requirements to the latest versions, pin the newly resolved versions, and install them.
154+
155+
### Building
156+
157+
`make all` is the one-stop shop for building the project. It will fix auto-fixable linting errors, raise any additional linting errors, build, run unit tests, and produce a coverage report.
158+
159+
To only check lints or fix lints, use `make lint` or `make fix-lint`.
160+
161+
To only build, use `make build`.
162+
163+
To only test, use `make test`.
164+
165+
### Publishing
166+
167+
Use `make publish-test` to publish to the test pypi repository.
168+
169+
Use `make publish` to publish to the prod repository.
170+
171+
### Cleaning
172+
173+
Use `make clean` to remove build artifacts.
174+
175+
Use `make reinit-venv` if you need to completely reset your virtual environment.

0 commit comments

Comments
 (0)