Commit Graph

40 Commits

Author SHA1 Message Date
Travis Abendshien
5e1c1f2014 fix(ci): lower coverage check threshold 2026-05-18 12:35:36 -07:00
Travis Abendshien
41f9749814 refactor(ci): remove mypy (#1371)
* refactor(ci): remove mypy

* fix(ci): restore 'type: ignore' comment for st_birthtime property
2026-05-14 14:24:26 +02:00
Jann Stute
2ab8203967 ci: add pyright workflow (#1232)
* ci: initial version of pyright workflow

* ci: remove invalid pyright settings

* debug: return ALL results from pyright

* ci: remove unnecessary reviewdog install

* Revert "debug: return ALL results from pyright"

This reverts commit 471e39d29f.

* ci: choose reporter based on event type

* ci: choose correct reporter for non-pr event

* ci: small cleanup

* ci: also install pytest deps

* doc: add license info for new workflow

* chore: bump pyright patch version

Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>

* fix: add back settings for basedpyright

---------

Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
2026-05-14 01:45:52 -07:00
Travis Abendshien
e134cb1ecb refactor(docs): uniform formatting pass (#1363)
* refactor(docs): uniform formatting pass

* refactor: ignore formatting of specific files

* fix: add REUSE info to .prettierignore
2026-05-12 06:24:04 -07:00
Jann Stute
5663e6232e doc: add REUSE license information (#1361)
* doc: add REUSE comment headers

* doc: add REUSE comment headers for mkDocs overrides

The original license text was moved to the LICENSES directory
and the MIT license identifier was used since only encoding differences
to the MIT license were present.

Further, the existing copyright notice was moved to SPDX-FileCopyrightText
and one for the TagStudio Contributors was added since the files are not
entirely the same as the originals in the mkdocs-material project.

* doc: add license information files for the translations

* doc: add licence file for oxanium font

As stated on [Google Fonts](https://fonts.google.com/specimen/Oxanium/license), this font is licensed under OFL-1.1.

* doc: re-license flow_layout.py to GPL-3.0-only

This is possible because the Qt example this is based on can be licensed
under BSD-3-Clause which is GPL-3.0 compatible.

* doc: add REUSE comment header for singleton.py

Comparing our implementation with the one it is based on, they really
don't have much more in common than the general idea of the
implementation, which afaik can't be copyrighted.

* doc: Add REUSE comment header for blender_renderer.py

We can plainly license this under GPL-3.0 according to https://www.blender.org/about/license/

* doc: add REUSE comment headers to vendored files

* doc: add REUSE comment header for rounded_pixmap_style.py

Source of name for copyright notice:
Answer by eyllanesc: https://stackoverflow.com/users/6622587/eyllanesc
Profile links to Github: https://github.com/eyllanesc

Stackoverflow licensing: https://stackoverflow.com/help/licensing

* doc: add REUSE comment headers

* doc: add license information file for icon_mono.svg

* doc: add REUSE comment header for files in .github

* doc: add REUSE.toml to give license information for various files without spamming .license files

* fix: use type parameter instead of subclass

* doc: add entries for remaining files in REUSE.toml

According to info from github comment by CyanVoxel: https://github.com/TagStudioDev/TagStudio/pull/1361#issuecomment-4423632570

* ci: add REUSE check workflow

Src: 'https://reuse.software/dev/#github-actions'

* doc: add missing license

* doc: fix license for material-design-icons

* license: change license to MIT for two files only changes by Computerdores and CyanVoxel

* doc: remove unnecessary .license files

* doc: fix incorrect license entries

* doc: add missing license doc
2026-05-12 01:56:46 +02:00
Travis Abendshien
735bf072b0 ci: bump macOS build targets to 14/15 2026-05-05 16:03:06 -07:00
Sola-ris
4c484bc4c6 fix: call ripgrep with explicit utf-8 encoding. (#1199) 2026-01-22 22:04:09 -08:00
Sola-ris
6397b228eb feat: add windows runner for pytest (#1201)
* feat: run tests on windows and macOS.

* resue steps via anchors.

* remove macOS job.
2025-11-23 20:23:41 -08:00
Travis Abendshien
4c0cb1648f chore: update PULL_REQUEST_TEMPLATE.md 2025-11-14 15:31:13 -08:00
Travis Abendshien
62f1b7ca55 ci: bump windows runner image to 2022 2025-08-07 19:46:29 -07:00
Xarvex
702ecd4118 chore(pyproject): version bumping/relaxing (#886)
* chore(pyproject): version bumping/relaxing

* fix(pyproject): remove imaging extra for mkdocs-material

* fix: ruff formatting

* fix: mypy

* fix(pyproject): PySide violates SemVer

* chore(pyproject): set Python version, bump pydantic

* fix(ci): up Ruff to consistent version

* fix(pyproject): fixup requires-python

* fix: ruff checks

* chore(pyproject): bump dependencies

* fix(ci): up Ruff to consistent version

* fix(tests): strip out non-reproducible tests
2025-05-05 12:47:57 -07:00
Xarvex
55bc7aac88 refactor!: change layout; import and build change
Fixes: #200
Fixes: #365
Fixes: #512
Fixes: #800

fix(pyproject): resolve mix-up of mypy and pytest

chore(ci): remove legacy scripts

chore: format with new mypy rules; fix translation test

wip(ci/mypy): remove config flag

fix(pyinstaller): use correct dict access

fix(resources): usage in ts_qt.py

feat(nix/package): validate tests with pytest hook

fix(nix/package): remove old dependency patch

feat(nix): support Darwin

fix(nix/package): move check deps to checkInputs

fix(nix/shell): typo

fix(nix/shell): correctly wrap Python with Qt args

fix(pyproject): specify mypy-extensions

feat(nix/package): provide pillow-jxl-plugin

nix(nix/package): split into multiple files, allow overriding of JXL and vtf2img

fix(nix/shell): provide FFmpeg on runtime

feat(flake): output pillow-jxl-plugin and vtf2img

fix(nix/package): load pipewire

feat(nix/package): run tests on pillow-jxl-plugin

fix: remove extra noqa comment

docs: update installation docs

docs: shrink table size on docs site

nit(nix/package): pipewire not needed in buildInputs

docs: update commands, environment, setup

fix: use consistent possessives

chore: format with prettier, add ignore flags

fix(pyinstaller): consume from pyproject

Revert "fix(pyinstaller): consume from pyproject"

This reverts commit 398cd4e5630a3e83d22d15286d7ac59b4c07c5d6.

refactor: use icon from resource manager

Also fixes incorrect path currently used in ts_qt.py.

nix(pyinstaller): replace use of sys.platform with platform.system

docs: add build section

Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
2025-03-09 18:55:32 -05:00
Travis Abendshien
80aab1ec96 chore: tweak pull request template 2025-03-04 14:27:40 -08:00
Xarvex
c695f1765f chore(ci): add PR template (#824) 2025-03-03 14:14:46 -06:00
Travis Abendshien
1b5b40792c Create FUNDING.yml 2025-03-02 21:58:42 -08:00
Travis Abendshien
1b3b32de22 ci: bump minimum macOS build target to 13 2025-01-31 15:40:53 -08:00
Travis Abendshien
607aafb4cd ci: lower test coverage threshold to 40% 2025-01-29 16:17:26 -08:00
python357-1
a519c9a737 chore: update pytest workflow to 24.04 (#639)
* fix: try fixing pytest workflow

* chore: update pytest workflow to 24.04

* fix: fix libglx package name

* fix: try a different package

* fix: try apt-update first

* Revert "fix: try apt-update first"

This reverts commit 34c04f985b.

* Reapply "fix: try apt-update first"

This reverts commit 775bc2634d.
2024-12-11 17:04:53 -08:00
Travis Abendshien
5b85462cfa ci: pin pytest ubuntu version to 22..04 (#544) 2024-10-12 23:59:08 -07:00
xarvex
abeb0c1ce3 fix(ci): complete 7c253226d5 2024-10-11 17:12:57 -05:00
xarvex
7c253226d5 fix(ci): replace obselete package 2024-10-11 17:01:49 -05:00
yed
4942d1633c refactor: cleanup the refresh_dir code, update tests (#494)
* feat: take Ignore List into consideration when refreshing directory

* undo the extension check in refresh_dir
2024-09-12 14:54:20 -07:00
Travis Abendshien
fb949b82b7 Revert "ci: add README.md to publish_docs workflow"
This reverts commit 98f4246ff4.
2024-09-08 22:36:03 -07:00
Travis Abendshien
98f4246ff4 ci: add README.md to publish_docs workflow 2024-09-08 22:19:21 -07:00
yed
e5e7b8afc6 refactor!: use SQLite and SQLAlchemy for database backend (#332)
* use sqlite + sqlalchemy as a database backend

* change entries getter

* page filterstate.page_size persistent

* add test for entry.id filter

* fix closing library

* fix tag search, adding field

* add field position

* add fields reordering

* use folder

* take field position into consideration

* fix adding tag

* fix test

* try to catch the correct exception, moron

* dont expunge subtags

* DRY models

* rename LibraryField, add is_default property

* remove field.position unique constraint
2024-09-08 22:06:01 -07:00
Travis Abendshien
f472d22e10 ci: add publish_docs.yaml to publish_docs paths 2024-09-07 07:39:28 -07:00
Travis Abendshien
d04d3b1f0a ci: specify push paths for publish_docs 2024-09-07 07:30:08 -07:00
Paul Friederichsen
af4ef217a5 ci: use MkDocs for documentation site (#460)
* Use MkDocs for documentation

Using Material for MkDocs

* Enable edit buttons on pages

* Updates to mkdocs.yml
2024-09-06 23:10:39 -07:00
Travis Abendshien
501ab1f977 Update issue templates to ask for title 2024-06-16 19:54:56 -07:00
Theasacraft
b3c01e180a Update to pyside6 version 6.7.1 (#223)
* Update to pyside6.7.1

* Fix Ruff

* Fix MyPy

* Update mypy job to also use PySide6 6.7.1

* Remove unused imports

* Add Description to class

* Ruff format

* Fix Warning in pagination.py

* Probably fix Pyside app test

* Rename CustomQPushButton to QPushButtonWrapper
also renamed custom_qbutton.py to qbutton_wrapper.py
2024-06-16 16:53:38 -07:00
Jiri
aa2925cde0 add pytest to CI pipeline (#286) 2024-06-13 15:29:22 -07:00
Xarvex
9b13e338bb Use bug report and feature request forms for issues (#277)
* Initial bug report

* Images can be attached in description

* Enclose label in quotes

* Wikis are no longer being used

* Use footnote to clarify what is up-to-date

* Footnotes not supported in checklist

* Initial feature request form

* Fixup grammar/wording
2024-06-11 19:32:18 -07:00
Xarvex
461906c349 Workflows: attempt fix for mismatched hashes in pip and bump MacOS version (#255)
* Attempted fix at mismatched hashes
Due to the seemingly random nature of the bug, this cannot be tested

* macos-11 runner has been deprecated, bump to 12
2024-06-06 12:51:08 -07:00
DrRetro
9f630fe315 Video Player (#149)
* Basic Video Player

* Fixes and Comments

* Fixed Bug Where Video's Audio did not stop when switching to a Image.

* Redo on VideoPlayer. Now with rounded corners.

* Fixed size not being correct when first starting video player.

* Ruff Check Fix

* Fixed Sizing Issue, and added Autoplay option in right click menu.

* Autoplay Toggle and Fixed Issue with video not stoping after closing library.

* Ruff Format

* Suggested Changes Done

* Commented out useless code that cause first warning.

* Fixed Album Art Error

* Might have found solution to Autoplay Inconsistency

* Ruff Format

* Finally Fixed Autoplay Inconsistency

* Fixed Merge Conficts

* Requested Changes and Ruff Format

* Test for new check

* Fix for PySide App Test

* More typing fixes and a few other changes.

* Ruff Format

* MyPy Fix

* MyPy Fix

* Ruff Format

* MyPy Fix

* MyPy and Ruff Fix

* Code Clean-Up and Requests completed.

* Conflict Fixes

* MyPy Fix

* Confict Fix

It appears one of the commits from main fixed the autoplay issue.
2024-05-29 13:58:09 -07:00
yedpodtrzitko
af8b4e3872 use reviewdog for mypy job 2024-05-18 11:21:40 +08:00
Jiri
c09f50c568 ci: add mypy check (#161)
* ci: add mypy check

* fix remaining mypy issues

* ignore whole methods
2024-05-15 22:25:53 -07:00
Xarvex
296aed6575 Correct upload binaries used in release workflow 2024-05-15 00:45:19 -05:00
Xarvex
ecea6effa4 Release workflow with binary executables (#172)
* Refactor: remove __init__ meant for Python versions before 3.3
This does mess with a large amount of imports, as the system was being
misused to re-export submodules. This change is necessary if PyInstaller
is to work at all.

* Add MacOS icon

* Create PyInstaller spec file

* Create Release workflow
Creates executable with PyInstaller, leveraging tag_studio.spec

* Support both nonportable and portable in tag_studio.spec

* Rename spec-file to create consistently-named directories

* Only ignore other spec files

* Swap exclusion option

* Use windowed application

* Ensure environment variables are strings

* Cleanup visual order on GitHub interface

* Use app for MacOS

* Only cycle through MacOS version

* All executables generated for MacOS are portable

* Use up-to-date packages

Should resolve caching issues

* Correct architecture naming for MacOS
2024-05-14 22:06:39 -07:00
yedpodtrzitko
93526fa73f run tagstudio in CI 2024-05-13 08:46:55 +08:00
yedpodtrzitko
1030328420 add ruff formatting info and CI pipeline 2024-05-01 15:19:20 +08:00