Jann Stute
8369738c64
feat: log start and end of DB migrations
2026-07-06 22:02:33 +02:00
Jann Stute
81734c1373
fix(db migration 104): include/exclude list was loaded incorrectly
2026-07-06 21:45:35 +02:00
Jann Stute
33bc77cc9d
fix(db migration 9): filename property wasn't written correctly
2026-07-06 21:31:16 +02:00
Jann Stute
87822f6aa7
refactor: hide 'argument is not accessed' notices
2026-07-06 21:19:44 +02:00
Jann Stute
48612a5277
fix: enable sane transaction behaviour
...
By default in SQLAlchemy schema changes are automatically committed,
even if auto-commit is turned off.
This commit turns off auto-commit completely,
which caused some schema to not be applied correctly,
but those were fixed here as well.
2026-07-06 21:17:21 +02:00
Jann Stute
e5941b4942
fix(open_library): create TS directory only if not opened in memory
2026-07-06 19:13:46 +02:00
Jann Stute
6e64dc4427
fix: json migration used outdated interface
2026-07-06 19:05:48 +02:00
Jann Stute
660cc406b5
fix(db migration 8): only add colors that are actually new
...
DB Migration 8 was previously adding all colors except for the neon ones,
however, all but three of those have been around since DB version 4,
meaning that they don't need to be added at all (which caused the tests to fail).
2026-07-06 18:44:03 +02:00
Jann Stute
c374843e91
fix: pass library dir to migrations
2026-07-06 17:07:47 +02:00
Jann Stute
20dc5022e9
refactor: make sure the migration log statements are consistent
2026-07-06 16:54:30 +02:00
Jann Stute
577cf00453
refactor: replace all commits in the migrations with flushes
...
Also removes various try-except statements in the migrations.
These were introduced to catch the case where the migration is run twice due to a later migration failing,
this is not necessary anymore as every migration will only be executed at most once per library.
2026-07-06 16:53:52 +02:00
Jann Stute
d8b339a17c
refactor: apply migration and update version in same transaction
...
None of the content of the migrations is changed, only the `with session:` statements are removed.
2026-07-06 16:43:12 +02:00
Jann Stute
cc78c1abb9
refactor: rewrite migration procedure as loop
2026-07-06 16:29:46 +02:00
Jann Stute
e383cab402
refactor: update version after every successfull migration
...
Since every migration migrates the library to a certain DB_VERSION, we can simply update the library version after such a successfull migration.
This way if a migration fails, the previous migrations won't be rerun the next time the library is opened.
2026-07-06 16:14:39 +02:00
Jann Stute
eb41ed0eb9
refactor: move assurance 1 to a proper migration method
...
Moving the assurance after the migrations 7, 8, 9, and 100 is fine because it doesn't affect those.
2026-07-06 15:46:13 +02:00
Jann Stute
f4f33b0e01
refactor: add assurance 3 to DB 200 migration
2026-07-06 15:35:34 +02:00
Jann Stute
6679bb92fb
refactor: add version check for assurance 3
...
Assurance 3 was introduced in commit 47c3d5338f
shortly (24h 20min) after the DB version had been bumped to 200.
Since it was also included in the first release with DB version 200,
all libraries created on DB version 200 and above
can be presumed to have already had this applied on creation.
2026-07-06 15:30:56 +02:00
Jann Stute
67fe77a67c
refactor: move engine creation to static method
2026-07-06 15:21:20 +02:00
Jann Stute
4a8d404905
refactor: massively simplify open_library
2026-07-06 15:13:48 +02:00
Jann Stute
804bb89b91
refactor: move folder assurance after migrations
...
The folder assurance has been present since the very first SQL commit e5e7b8afc6 ,
and thus only has an effect when the library is moved, meaning that is semantically not part of the migrations.
2026-07-06 14:49:00 +02:00
Jann Stute
a7985b971a
refactor: remove unnecessary check in new_lib
2026-07-06 14:32:41 +02:00
Jann Stute
fda10ec67c
refactor: remove various unnecessary try-except statements in new_lib
...
All of these were introduced to account for the differences between new libraries and existing ones,
which makes them unnecessary after this split.
2026-07-06 14:28:52 +02:00
Jann Stute
db520890a2
refactor: add assurance 1 version check
...
Assurance 1 was introduced with library version 101, specifically commmit 12e074b71d .
Thus all libraries created on version 101 and above already fullfill it and don't need it.
Furthermore, it only fails if the library didn't need the assurance, meaning the try-except and warning catching can be removed
2026-07-06 14:17:31 +02:00
Jann Stute
6266ba7a06
doc: add todos and remove trivially true assert
2026-07-06 13:57:05 +02:00
Jann Stute
bdc8e4b59d
refactor: remove dead code
2026-07-06 01:16:41 +02:00
Jann Stute
02a9295743
refactor: split open_library into new and not new case
...
Functionality is entirely unchanged, but entire method is duplicated.
Removing dead code from either copy is next.
2026-07-06 01:07:50 +02:00
Jann Stute
194b2b82cc
refactor: minor simplification
2026-07-06 01:01:14 +02:00
purpletennisball
85a51f8e2b
feat(ui): organize settings into panels ( #1425 )
...
* feat(ui): organize settings into new panels
* fix: typo
* fix(ui): add localization for setting panels
* fix(ui): move language to localization panel
2026-07-04 17:39:13 -07:00
Travis Abendshien
34814e8723
fix: fix "search for tag" function in tag manager ( #1411 )
...
* fix: set driver for tag manager
* refactor(ui): require titles for TagSearch widgets
2026-07-04 13:35:51 -07:00
Travis Abendshien
95e2fe7b44
fix: remove invalid child_id relationships from tag_parents ( #1423 )
...
* 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
2026-07-04 13:35:40 -07:00
purpletennisball
83473379db
feat: on click edit tag while in tag manager ( #1416 )
2026-07-04 13:13:53 -07:00
Travis Abendshien
5af3cc4faf
docs: update library-changes
2026-07-03 10:15:35 -07:00
Andreas Heglingegård
4a543396ae
fix: use optimized SQL when selecting non-hidden entries ( #1240 )
2026-07-02 16:38:29 -07:00
Jann Stute
3ffa012857
fix: make tagstudio python package executable ( #1414 )
...
* fix: make tagstudio python package executable by adding stub __main__.py
* fix: add license note + set exec bit
* Update src/tagstudio/__main__.py
Co-authored-by: Xarvex <60973030+xarvex@users.noreply.github.com >
---------
Co-authored-by: Xarvex <60973030+xarvex@users.noreply.github.com >
2026-07-02 21:44:03 +02:00
Jann Stute
00b6f918f3
fix(nix): add pyright to devshell ( #1415 )
...
---------
Co-authored-by: Xarvex <dev.ellz6@xarvex.simplelogin.com >
2026-07-02 14:15:32 -05:00
Travis Abendshien
7c1c1dd6ae
fix: fix issues with tag alias updating ( #1412 )
2026-07-02 20:16:35 +02:00
Travis Abendshien
d7918fd82c
tests: filter irrelevant SQLAlchemy or_() warning
2026-07-01 23:20:45 -07:00
Travis Abendshien
c062f6b6bd
build: relax Send2Trash version
2026-07-01 23:20:03 -07:00
Travis Abendshien
26e04e829c
docs: update roadmap
2026-07-01 21:37:50 -07:00
Travis Abendshien
4d49e9c270
translations: translate language names
2026-07-01 21:37:16 -07:00
Travis Abendshien
daaae17113
tests: filter irrelevant SQLAlchemy DISTINCT ON warning spam
2026-06-30 14:17:05 -07:00
Xarvex
c38fbb034d
chore(nix): relax more dependencies
...
fixes : #1403
2026-06-30 12:51:39 -05:00
Travis Abendshien
0433908ae8
refactor: remove QPushButtonWrapper
2026-06-30 02:22:48 -07:00
Travis Abendshien
9e04922e7b
fix(docs): fix header levels in changelog
2026-06-29 14:36:10 -07:00
Travis Abendshien
c6f2e3c7d1
docs: update changelog
2026-06-29 14:33:56 -07:00
Travis Abendshien
4e93e953d9
chore: fix missing ext in REUSE.toml
v9.6.0
2026-06-29 13:30:43 -07:00
Travis Abendshien
008cef363d
chore: remove REUSE comments from PULL_REQUEST_TEMPLATE.md and FUNDING.yml
2026-06-29 13:29:12 -07:00
Travis Abendshien
727f441c55
fix(ci): bump pyinstaller version to 6.21
2026-06-29 13:25:07 -07:00
Travis Abendshien
e327dc7ee1
chore: bump version to v9.6.0
2026-06-29 11:56:39 -07:00
Weblate (bot)
8eded29f45
translations: update from Hosted Weblate ( #1401 )
...
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Russian)
Currently translated at 97.0% (362 of 373 strings)
Co-authored-by: Dott-rus <antonamelin8@gmail.com >
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Portuguese)
Currently translated at 87.1% (325 of 373 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: ssantos <ssantos@web.de >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Hungarian)
Currently translated at 100.0% (373 of 373 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
---------
Co-authored-by: Dott-rus <antonamelin8@gmail.com >
Co-authored-by: ssantos <ssantos@web.de >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
2026-06-29 11:55:44 -07:00