Skip to content

Latest commit

 

History

History
197 lines (122 loc) · 2.72 KB

File metadata and controls

197 lines (122 loc) · 2.72 KB

Development

Install and [git] and uv

Clone:

$ git clone https://github.com/git-pull/gp-libs.git
$ cd gp-libs

Install packages:

$ uv sync --all-extras --dev

Makefile commands prefixed with watch_ will watch files and rerun.

Tests

uv run py.test

Helpers: make test

Automatically run tests on file save

  1. make start (via pytest-watcher)
  2. make watch_test (requires installing entr(1))

Documentation

Default preview server: http://localhost:8034

sphinx-autobuild will automatically build the docs, watch for file changes and launch a server.

From home directory: make start_docs From inside docs/: make start

Manual documentation (the hard way)

cd docs/ and make html to build. make serve to start http server.

Helpers: make build_docs, make serve_docs

Rebuild docs on file change: make watch_docs (requires entr(1))

Rebuild docs and run server via one terminal: make dev_docs (requires above, and a make(1) with -J support, e.g. GNU Make)

Formatting / Linting

ruff

The project uses ruff to handle formatting, sorting imports and linting.


uv:

```console
$ uv run ruff
```

If you setup manually:

```console
$ ruff check .
```


```console
$ make ruff
```


```console
$ make watch_ruff
```

requires [`entr(1)`].


uv:

```console
$ uv run ruff check . --fix
```

If you setup manually:

```console
$ ruff check . --fix
```

ruff format

ruff format is used for formatting.


uv:

```console
$ uv run ruff format .
```

If you setup manually:

```console
$ ruff format .
```


```console
$ make ruff_format
```

mypy

mypy is used for static type checking.


uv:

```console
$ uv run mypy .
```

If you setup manually:

```console
$ mypy .
```


```console
$ make mypy
```


```console
$ make watch_mypy
```

requires [`entr(1)`].

Releasing

uv handles virtualenv creation, package requirements, versioning, building, and publishing. Therefore there is no setup.py or requirements files.

Update __version__ in src/gp_libs.py and pyproject.toml::

git commit -m 'build(gp_libs): Tag v0.1.1'
git tag v0.1.1
git push
git push --tags