All checks were successful
ci/woodpecker/push/workflow Pipeline was successful
closes #10
112 lines
2.9 KiB
Markdown
112 lines
2.9 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
|
|
* `git tag vX.Y.Z`
|
|
* push commits and tags
|
|
|
|
`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
|