# 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