* refactor!: organize project layout
* refactor: organize tests
* fix: change main.py with __main__.py in tagstudio.spec
* refactor: rename renderer.py to file_renderer.py
* refactor: minor improvement of version check
* refactor: don't use Library._all_entries in migrations
* chore: ruff format
* refactor: get_version split
* fix: typo
* doc: update note on deprecation of preferences table
* feat: add per-tag display options.
* feat: bump DB_VERSION to 301, add migration.
* tests: add tests.
* docs: document cateogry display options.
* docs: document library versions 300 and 301.
* fix: resolve ruff and pyright issues.
* fix: redo migration in the new style.
* fix: Remove unnecessary @staticmethod decorators.
* fix: Bump library version to 400.
* fix: Fix color order in colored_radio_button_style.
* fix: Commit the library produced by pytest.
* test: Add test for removing a category during tag creation.
* fix: Fix removing categories during tag creation.
* test: Add test for adding another tag after removing an existing category.
* fix: Fix adding another tag after removing an existing category.
* feat: Add separators between widgets.
* docs: Fix version in library-changes.md.
* test: Test removing a category inherited both directly and indirectly.
* fix: Fix removing a category inherited both directly and indirectly.
---------
Co-authored-by: Travis Abendshien <46939827+cyanvoxel@users.noreply.github.com>
* chore(ci): move spec-file into scripts
* feat(ci)!: rework workflows and build processes
All Python setups route through one local action, and checks are much
more conditional. There is more to be done, but this is a significant
improvement in processing time and redundancy.
As well, nightly builds are made (though not made as GitHub releases..
yet).
* ci: remove symlinked CHANGELONG.md from build_docs.yml paths
* docs: update location of tagstudio.spec
* ci: enforce single quotes in github yaml files
* ci(tests): remove macOS pytest runner
---------
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Definition: https://packaging.python.org/en/latest/specifications/dependency-groups
The optional dependency table ([project.optional-dependencies]) is
supposed to be user-facing for installs of TagStudio. Meanwhile, the
replacement dependency groups is explicitly meant for extra development
tools, so lets use that.
This does mean the command for a full development environment has changed
from:
```sh
pip install -e '.[dev]'
```
To:
```sh
pip install -e . --group all
```
The documentation has been adjusted for a quick replacement, but
probably should have more information on a later time.
* fix: remove invalid child_id relationships from tag_parents
* fix: use single statements in DB 102 & 202 migrations
* fix: remove unnecessary session.scalars() from migrations
* feat: add basic field template editor
* fix: fix various issues with adding templates, reduce reused code
* feat: add field name editing on entries
* ui: add multiline checkbox to field template editor
* refactor: move stylesheets to central file
* fix(ui): fix untranslated key
* docs: update field documentation
* ui: add v9.6 assets, update misc resources
* ui: use symlink for favicon
* refactor: simplify icon switching methods in media_player.py
* ui: update about window
* fix(ui): apply dpi scaling to about window background
* fix(ui): fix image symlinks
* fix(ui): fix dark media player buttons in light theme
* ui: use TagStudio icon in update notification instead of warning
* fix: drop type_key column from text_fields and datetime_fields tables
* fix: commit empty DB_VERSION 200 library
* fix: use recommended renaming order for field tables