teilchensammler-cli/README.md
bronsen 7ab12023c3 doc: refine release instructions
Well, we are only tagging and not yet actually releasing.

ny;ml: not yet; maybe later
2026-02-16 21:23:08 +01:00

116 lines
3 KiB
Markdown

# Teilchensammler
This is a little TUI based on [Textual] for entering new Teilchen and for
searching for existing Teilchen. Data is kept in a sqlite database.
## Running tests
```sh
uv run pytest tests.py
```
## Observing the app's console
The console can be used to observe log messages, since those logs really should
not go to the terminal.
You will need two terminals:
1. one for showing the console,
2. the other to run the app.
Since we use uv, the incantation is bit different from the official documenation:
In one terminal:
```shell
uv run textual console
```
And in the other:
```shell
# run,textual,run! ;)
uv run textual run --dev src/teilchensammler_cli/__init__.py
```
## Developing
To re-create bronsen's development environment, you need several shiny new toys:
* [just] to run the recipes from `justfile` (think Makefile, but easier)
* [uv] for all the python executing stuff, also venv
* [prek] as a replacement for pre-commit
* [ruff] to lint and format the python code
* [markdownlint-cli2] to keep some sort of consistency in our markdowns
I use just; just uses uv, prek, ruff, and so on. It's indirection and
abstraction all the way down.
However, you can also do without all these!
### Merge Requests
You know how these work.
### Commit style
I prefer simple commit titles, and am not a fan of conventional commits. Do
provide as much detail as desired in the message's body. Commit early, commit
often; rebase frequently.
### Tests
Yes! Please write tests: simple ones, trivial ones; complicated ones, slow ones.
Tests must be written in pytest fashion. Use all the plugins. Tests and
fixtures should go into `tests.py`, until such time the file become too big and
unwieldy.
## Bug Reports, Feature Requests
Create them [under "Issues"] at the top the [repo page]. Do not worry too much
about labels.
Please be specific and provide logs, screenshots, a test that replicates the
problem.
### Architectural Changes
These are unlikely to be accepted. This tool is not intended to scale. There
might be web-frontend thing automatically provided by [Textual].
### Configs for tools the bronsen does not currently use
Oh sure, I'll accept those. Please create a merge request that adds the file.
I'll make an effort to update those to the best of my capabilities.
## AI
Please no: this is my little human-created thing.
## Creating a new release
(This is so bronsen can forget.)
* make code changes
* run tests; make them pass
* commit
* `uv version X.Y.Z`
* commit
* push commits
* use lazygit to create the new version tag
* remeber to prefix it with `v`
* push the tags, using lazygit
`uv build` will now create correctly named tar balls and wheels.
----
[Textual]: https://textual.textualize.io/
[uv]: https://astral.sh/uv
[just]: https://just.systems/
[prek]: https://prek.j178.dev/
[ruff]: https://astral.sh/ruff
[markdownlint-cli2]: https://github.com/DavidAnson/markdownlint-cli2
[under "Issues"]: https://code.c-base.org/infuanfu/teilchensammler-cli/issues/new