Skip to content

Commit 885f66e

Browse files
committed
Update dev setup for uv workflow
1 parent 359aab4 commit 885f66e

File tree

1 file changed

+29
-100
lines changed

1 file changed

+29
-100
lines changed

CONTRIBUTING.md

Lines changed: 29 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -35,139 +35,74 @@ prior to submitting a pull request.
3535
- No test should be dependent on another
3636
- No test should be dependent on secrets/tokens
3737

38-
3938
---
4039

41-
# Local developer installation
42-
43-
The following steps outline how to install this repo for local development.
40+
# Developer installation
4441

4542
## Prerequisites
4643

47-
### Clone repo
48-
49-
```console
50-
git clone https://github.com/[ORG NAME]/[REPO NAME]
51-
52-
cd [REPO NAME]
53-
```
54-
55-
### Virtual Environment
56-
57-
Use a ([`venv`](https://docs.python.org/3/library/venv.html)), or equivalent,
58-
when working with python projects. Leveraging a `venv` will ensure the installed
59-
dependency files will not impact other python projects or any system
60-
dependencies.
61-
62-
**Windows users**: Depending on your python install you will use `py` in place
63-
of `python` to create the `venv`.
44+
- [**uv**](https://docs.astral.sh/uv) >= 0.6.3
6445

65-
**Linux/Mac users**: Replace `python`, if needed, with the appropriate call to
66-
the desired version while creating the `venv`. (e.g. `python3` or `python3.12`)
46+
[Installation options can be found here.](https://docs.astral.sh/uv/getting-started/installation/)
6747

68-
**All users**: Once inside an active `venv` all systems should allow the use of
69-
`python` for command line instructions. This will ensure you are using the
70-
`venv`'s python and not the system level python.
48+
Or just use [pipx](https://pypi.org/project/pipx/)
7149

72-
### Create the `venv`:
73-
74-
```console
75-
python -m venv .venv
76-
```
77-
78-
Activate the `venv`:
79-
80-
```console
81-
# Linux/Mac
82-
. .venv/bin/activate
83-
84-
# Windows
85-
.venv\Scripts\activate
50+
```bash
51+
pipx install uv
8652
```
8753

88-
The command prompt should now have a `(venv)` prefix on it. `python` will now
89-
call the version of the interpreter used to create the `venv`
9054

91-
To deactivate (exit) the `venv`:
55+
### Clone repo
9256

93-
```console
94-
deactivate
57+
```bash
58+
git clone https://github.com/[ORG NAME]/[REPO NAME]
9559
```
9660

9761
---
9862

99-
## Developer Installation Steps
63+
## Developer Installation Commands
10064

101-
### Install editable library and development requirements
65+
### 1. Install editable library and development requirements
10266

103-
```console
104-
python -m pip install --editable .[dev,test]
67+
```bash
68+
uv sync
10569
```
10670

107-
### Install pre-commit [(see below for details)](#pre-commit)
71+
### 2. Install pre-commit [(see below for details)](#pre-commit)
10872

109-
```console
73+
```bash
11074
pre-commit install
11175
```
11276

113-
### Install with nox
114-
115-
If you have `nox` installed with `pipx` or in the current venv you can use the
116-
following session. This is an alternative to the two steps above.
117-
118-
```console
119-
nox -s install
120-
```
121-
12277
---
12378

124-
## Pre-commit and nox tools
79+
## Nox sessions
12580

126-
### Run pre-commit on all files
81+
This repo uses [nox](https://nox.thea.codes/en/stable/index.html) to simplify
82+
workflow actions.
12783

128-
```console
129-
pre-commit run --all-files
130-
```
84+
### Run tests and report coverage (quick):
13185

132-
### Run tests with coverage (quick)
133-
134-
```console
135-
nox -e coverage
86+
```bash
87+
nox --session coverage
13688
```
13789

138-
### Run tests (slow)
90+
### Run tests against all supported versions (slow):
13991

140-
```console
92+
```bash
14193
nox
14294
```
14395

144-
### Build dist
145-
146-
```console
147-
nox -e build
148-
```
149-
150-
---
151-
152-
## Updating dependencies
153-
154-
New dependencys can be added to the `requirements-*.in` file. It is recommended
155-
to only use pins when specific versions or upgrades beyond a certain version are
156-
to be avoided. Otherwise, allow `pip-compile` to manage the pins in the
157-
generated `requirements-*.txt` files.
158-
159-
Once updated following the steps below, the package can be installed if needed.
160-
161-
### Update the generated files with changes
96+
### Run pre-commit on all files
16297

163-
```console
164-
nox -e update
98+
```bash
99+
nox --session pre_commit
165100
```
166101

167-
### Upgrade all generated dependencies
102+
### Build dist
168103

169-
```console
170-
nox -e upgrade
104+
```bash
105+
nox --session build
171106
```
172107

173108
---
@@ -178,9 +113,3 @@ nox -e upgrade
178113
179114
This repo is setup with a `.pre-commit-config.yaml` with the expectation that
180115
any code submitted for review already passes all selected pre-commit checks.
181-
182-
---
183-
184-
## Error: File "setup.py" not found
185-
186-
Update `pip` to at least version 22.3.1

0 commit comments

Comments
 (0)