teilchensammler-cli/README.md
bronsen 9728e764e9
All checks were successful
ci/woodpecker/push/workflow Pipeline was successful
doc: fix typos in README
2026-02-17 21:17:20 +01:00

120 lines
3.1 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.
It is not yet usable.
## 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 a 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, sort of, you need several shiny
new toys:
* [just] to run the recipes from `justfile`
* [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 by clicking "Issues" at the top of the [repo page]. Do not worry
too much about labels.
Please be specific and provide logs, screenshots, or even 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 don't: this is my little human-created thing.
## Creating a new release
(This is so bronsen can forget.)
* run tests; make sure they pass
* commit
* `uv version --bump {segment}`
Where `segment` is one of: major, minor, patch, stable, alpha, beta, rc,
post, dev
* commit
* push commits
* use lazygit to create the new version tag
* remember to prefix it with "v"
* push the tags, using lazygit
----
[official documenation]: https://textual.textualize.io/guide/devtools/#console
[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
[repo page]: https://code.c-base.org/infuanfu/teilchensammler-cli