Skip to content

feat: migrate from poetry and black to uv and ruff#623

Open
dennisweil wants to merge 48 commits intobacklog/uv-build/mainfrom
fi-7_use-uv-and-ruff-for-main-repo-management
Open

feat: migrate from poetry and black to uv and ruff#623
dennisweil wants to merge 48 commits intobacklog/uv-build/mainfrom
fi-7_use-uv-and-ruff-for-main-repo-management

Conversation

@dennisweil
Copy link
Collaborator

Resolves : fi-7

  • I have added automatic tests where applicable.
  • The PR contains a description of what has been changed.
  • The description contains manual test instructions.
  • The PR contains update to the release notes.
  • The PR contains update to the documentation.

This PR has been tested on :

  • Windows.
  • MacOs.
  • Linux.

Overview

Migrate the whole monorepo/dependency/project management from poetry to uv.
MIgrate all formatting and pre-commits from black to ruff.

@github-actions
Copy link

github-actions bot commented Mar 12, 2026

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  tests/libraries
  test_version_parsing.py
Project Total  

This report was generated by python-coverage-comment-action

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the monorepo’s Python packaging/dependency tooling from Poetry/Black to uv/Ruff, converting package metadata to PEP 621 and updating CI and build docs accordingly.

Changes:

  • Convert pyproject.toml files from [tool.poetry] to [project] (PEP 621) and switch build backend to Hatchling; add tool.uv.sources for local path deps.
  • Replace Black with Ruff formatting and update pre-commit + documentation/README instructions to use uv.
  • Update CI workflows to use uv for installs/builds/tests; add/adjust version parsing utilities + tests.

Reviewed changes

Copilot reviewed 45 out of 91 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
tools/requirements.txt Replace pyScss with libsass for build tooling dependencies.
tools/requirements-pyside6.txt Replace pyScss with libsass for PySide6 build tooling.
tools/requirements-connect.txt Replace pyScss with libsass for Connect build tooling.
tests/libraries/test_version_parsing.py Adds tests for new version parsing helpers and regex validity.
pyproject.toml Root metadata migrated to PEP 621 + Hatchling; adds uv sources and Ruff config.
projects/rv/pyproject.toml Migrates RV project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/rv/connect-plugin/hook/ftrack_rv_launcher.py Ruff-formatting (quotes) and minor string/regex updates.
projects/rv/README.md Updates build/versioning instructions from Poetry to uv.
projects/nuke-studio/pyproject.toml Migrates Nuke Studio project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/nuke-studio/README.md Updates build + docs instructions to use uv.
projects/framework-premiere/pyproject.toml Migrates Premiere project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-premiere/connect-plugin/hook/discover_ftrack_framework_premiere.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-premiere/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-photoshop/pyproject.toml Migrates Photoshop project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-photoshop/connect-plugin/hook/discover_ftrack_framework_photoshop.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-photoshop/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-nuke/pyproject.toml Migrates Nuke framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-nuke/connect-plugin/hook/discover_ftrack_framework_nuke.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-nuke/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-maya/pyproject.toml Migrates Maya framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-maya/connect-plugin/hook/discover_ftrack_framework_maya.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-maya/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-max/pyproject.toml Migrates 3ds Max framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-max/connect-plugin/hook/discover_ftrack_framework_max.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-max/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-houdini/pyproject.toml Migrates Houdini framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-houdini/connect-plugin/hook/discover_ftrack_framework_houdini.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-houdini/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-harmony/pyproject.toml Migrates Harmony framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-harmony/connect-plugin/hook/discover_ftrack_framework_harmony.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-harmony/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-flame/pyproject.toml Migrates Flame framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-flame/connect-plugin/hook/discover_ftrack_framework_flame.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-flame/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/framework-blender/pyproject.toml Migrates Blender framework project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/framework-blender/connect-plugin/hook/discover_ftrack_framework_blender.py Ruff-formatting + version extraction fallback logic changes.
projects/framework-blender/README.md Updates build instructions to uv, adjusts build tool invocation paths.
projects/connect-timetracker-widget/pyproject.toml Migrates widget project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/connect-timetracker-widget/README.md Updates build instructions to uv.
projects/connect-publisher-widget/pyproject.toml Migrates widget project metadata to PEP 621/Hatchling/uv + Ruff config.
projects/connect-publisher-widget/README.md Updates build instructions to uv.
libs/utils/source/ftrack_utils/version/init.py Adds version parsing helpers and switches pyproject parsing to tomllib + PEP 621 layout.
libs/utils/pyproject.toml Migrates utils library metadata to PEP 621/Hatchling + Ruff config.
libs/qt/pyproject.toml Migrates qt library metadata to PEP 621/Hatchling/uv sources + Ruff config.
libs/qt-style/pyproject.toml Migrates qt-style library metadata to PEP 621/Hatchling/uv sources + Ruff config.
libs/qt-style/README.md Updates qt-style build instructions to uv.
libs/framework-qt/pyproject.toml Migrates framework-qt library metadata to PEP 621/Hatchling/uv sources + Ruff config.
libs/framework-core/pyproject.toml Migrates framework-core library metadata to PEP 621/Hatchling/uv sources + Ruff config.
libs/constants/pyproject.toml Migrates constants library metadata to PEP 621/Hatchling/uv sources + Ruff config.
installers/app-installer/uv.lock Adds uv lockfile for the app-installer package.
installers/app-installer/source/ftrack_app_installer/init.py Switch DMG creation to dmgbuild and refactor packaging/code-signing flow.
installers/app-installer/pyproject.toml Migrates app-installer metadata to PEP 621/Hatchling + Ruff config.
apps/connect/source/ftrack_connect/main.py Ruff-formatting plus new application naming/icon setup.
apps/connect/resource/sass/widget/_list.scss Updates a selector for checkbox hover styling.
apps/connect/resource/sass/module/_test.scss Fixes comment syntax.
apps/connect/pyproject.toml Migrates Connect app metadata to PEP 621/Hatchling/uv sources + Ruff config.
apps/connect/installer.py Refactors installer entrypoint to locate package via importlib.
apps/connect/README.md Updates Connect build/run/docs instructions to uv.
README.md Updates repo-level dev/test instructions from Poetry/Black to uv/Ruff.
.pre-commit-config.yaml Replaces Black hook with Ruff hooks.
.github/workflows/push-main-test.yml Switch CI installs/tests from Poetry to uv + coverage.
.github/workflows/build-plugin.yml Switch plugin build workflow from Poetry/pip to uv run/build.
.github/workflows/build-library.yml Switch library build workflow from Poetry/pip to uv.
.github/workflows/build-connect.yml Switch Connect build/installer workflows from Poetry/pyenv/pip to uv.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@hdd hdd changed the base branch from main to backlog/uv-build/main March 18, 2026 14:52
@dennisweil dennisweil marked this pull request as ready for review March 18, 2026 14:52
@dennisweil dennisweil requested a review from a team as a code owner March 18, 2026 14:52
@hdd hdd self-requested a review March 18, 2026 14:54
Copy link

Copilot AI commented Mar 19, 2026

@dennisweil I've opened a new pull request, #630, to work on those changes. Once the pull request is ready, I'll request review from you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants