-
-
Notifications
You must be signed in to change notification settings - Fork 394
refactor!: restructure project to use proper src-layout #844
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a couple of nits.
What else are you planning to add before merging? Because this PR is quite big already (which is also why I went and reviewed this already despite still being a draft)
This became a big refactor almost accidentally. Initially the change was going to be regarding having one proper pip module, which showed the problem with the existing layout. Of course, in changing both of these things, that propagates throughout, essentially, the entire project. All to say, any other changes done are to facilitate that adjustment. There is no other upheaval planned for this PR outside accomplishing that initial task. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can confirm that the pipewire error of the nix flake is gone for me too
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 398cd4e. 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>
6ae67d0
to
55bc7aa
Compare
Manually squashed, as there has to be two commits for git history to be preserved for each file: one for the rename, and another for changes done. |
Summary
This PR introduces a large refactor that moves files in order to properly align with what should be a proper "src-layout". A standard Python project layout is what was intended from the start of this project, but after a deeper level of research combined with a number of ongoing issues has made it clear that the current project structure is not only incorrect, but actively causes issues in a number of areas.
Changes
This PR introduces the following changes:
requirements.txt
andrequirements-dev.txt
topyproject.toml
and deleted the former filespyproject.toml
along with other code de-duplication and improvmentstagstudio
in place ofsrc
Why?
This refactor fixes a number of longstanding issues while opening up the door for new development QoL features and Python-specific packaging.
tagstudio.src.
orsrc.
pyproject.toml
instead of duplicating them in the workflow files and letting the versions get out of syncpip
, both for users and developersTasks Completed
Closes #200, Closes #365, Closes #512, Closes #800