Skip to content

Commit 41ba4e4

Browse files
committed
Update dev setup for uv workflow
1 parent 359aab4 commit 41ba4e4

File tree

1 file changed

+27
-97
lines changed

1 file changed

+27
-97
lines changed

CONTRIBUTING.md

+27-97
Original file line numberDiff line numberDiff line change
@@ -38,136 +38,72 @@ prior to submitting a pull request.
3838

3939
---
4040

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

4543
## Prerequisites
4644

47-
### Clone repo
48-
49-
```console
50-
git clone https://github.com/[ORG NAME]/[REPO NAME]
51-
52-
cd [REPO NAME]
53-
```
45+
- [**uv**] >= 0.6.3
5446

55-
### Virtual Environment
47+
[Installation options can be found here.](https://docs.astral.sh/uv/getting-started/installation/)
5648

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.
49+
Or just use [pipx](https://pypi.org/project/pipx/)
6150

62-
**Windows users**: Depending on your python install you will use `py` in place
63-
of `python` to create the `venv`.
64-
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`)
67-
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.
71-
72-
### Create the `venv`:
73-
74-
```console
75-
python -m venv .venv
51+
```bash
52+
pipx install uv
7653
```
7754

78-
Activate the `venv`:
7955

80-
```console
81-
# Linux/Mac
82-
. .venv/bin/activate
83-
84-
# Windows
85-
.venv\Scripts\activate
86-
```
87-
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`
90-
91-
To deactivate (exit) the `venv`:
56+
### Clone repo
9257

93-
```console
94-
deactivate
58+
```bash
59+
git clone https://github.com/[ORG NAME]/[REPO NAME]
9560
```
9661

9762
---
9863

99-
## Developer Installation Steps
64+
## Developer Installation Commands
10065

101-
### Install editable library and development requirements
66+
### 1. Install editable library and development requirements
10267

103-
```console
104-
python -m pip install --editable .[dev,test]
68+
```bash
69+
uv sync
10570
```
10671

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

109-
```console
74+
```bash
11075
pre-commit install
11176
```
11277

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-
12278
---
12379

124-
## Pre-commit and nox tools
125-
126-
### Run pre-commit on all files
80+
## Nox sessions
12781

128-
```console
129-
pre-commit run --all-files
130-
```
82+
This repo uses [nox](https://nox.thea.codes/en/stable/index.html) to simplify
83+
workflow actions.
13184

132-
### Run tests with coverage (quick)
85+
### Run tests and report coverage (quick):
13386

134-
```console
135-
nox -e coverage
87+
```bash
88+
nox --session coverage
13689
```
13790

138-
### Run tests (slow)
91+
### Run tests against all supported versions (slow):
13992

140-
```console
93+
```bash
14194
nox
14295
```
14396

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
97+
### Run pre-commit on all files
16298

16399
```console
164-
nox -e update
100+
nox --session pre_commit
165101
```
166102

167-
### Upgrade all generated dependencies
103+
### Build dist
168104

169105
```console
170-
nox -e upgrade
106+
nox --session build
171107
```
172108

173109
---
@@ -178,9 +114,3 @@ nox -e upgrade
178114
179115
This repo is setup with a `.pre-commit-config.yaml` with the expectation that
180116
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)