You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please file an issue in the [issue tracker](https://github.com/drivendataorg/repro-zipfile/issues).
8
10
9
11
## Developers guide
10
12
11
-
This project uses [Hatch](https://github.com/pypa/hatch) as its project management tool.
13
+
This project uses [uv](https://github.com/astral-sh/uv) as its project management tool and [Just](https://github.com/casey/just) as a task runner.
12
14
13
15
### Directory structure
14
16
15
17
This is a monorepo containing both the repro-zipfile library package and the rpzip CLI package. The root of the repository contains files relevant to the library package, and the CLI package is in the subdirectory `cli/`.
16
18
17
19
Tests for both packages are combined in `tests/`.
18
20
19
-
### Tests
21
+
### Configuring the development environment
20
22
21
-
To run tests in your current environment, you should install from source with the `tests` extra to additionally install test dependencies (pytest). Then, use pytest to run the tests.
23
+
Run:
22
24
23
25
```bash
24
-
# Install with test dependencies
25
-
pip install .[tests]
26
-
# Run tests
27
-
pytest tests.py
26
+
just sync
28
27
```
29
28
30
-
To run tests on the full test matrix, you should use Hatch:
29
+
This will create a virtual environment located at `.venv/`.
30
+
31
+
### Tests
32
+
33
+
To run tests for a single version of Python, use:
31
34
32
35
```bash
33
-
hatch run tests:test
36
+
just test
34
37
```
35
38
36
-
To run on a specific test environment, you reference that environment's name:
39
+
To specify a version of Python, use for example:
37
40
38
41
```bash
39
-
hatch run tests.py3.11:test
42
+
just python=3.11 test
40
43
```
41
44
42
-
To see all test environment names, run:
45
+
To run tests on the full test matrix, use:
43
46
44
47
```bash
45
-
hatch env show tests
48
+
just test-all
46
49
```
47
50
48
51
### Code Quality: Linting and Static Typechecking
@@ -52,29 +55,26 @@ All code quality dependencies are installed in the default environment.
52
55
To run linting:
53
56
54
57
```bash
55
-
hatch run lint
58
+
just lint
56
59
```
57
60
58
61
To run static typechecking:
59
62
60
63
```bash
61
-
hatch run typecheck
64
+
just typecheck
62
65
```
63
66
64
-
### Configuring IDEs with the Virtual Environment
65
-
66
-
The default hatch environment is configured to be located in `./venv/`. To configure your IDE to use it, point it at that environment's Python interpreter located at `./venv/bin/python`.
67
-
68
67
### Releases and publishing to PyPI
69
68
70
69
The release process of building and publishing the packages is done using GitHub Actions CI. There are two workflows:
71
70
72
-
-`release-lib` — for the repro-zipfile library package
73
-
-`release-cli` — for the rpzip CLI package
71
+
-**Release Library** — for the repro-zipfile library package
72
+
-**Release CLI** — for the rpzip CLI package
74
73
75
74
Each package should be released independently.
76
75
77
-
To trigger a release, publish a release through the GitHub web UI. Use a different tag naming scheme to determine which release workflow you trigger:
76
+
For both packages:
78
77
79
-
-`v*` (e.g., `v0.1.0`) to publish repro-zipfile
80
-
-`cli-v*` (e.g., `cli-v0.1.0`) to publish rpzip
78
+
1. Update the changelog
79
+
2. Ensure the static version declared in associated `pyproject.toml` is the version number of the new release
80
+
3. Run the appropriate release workflow using workflow dispatch, entering the intended versino number as an input parameter
0 commit comments