From e44b628f92c414d4be04ea1c0d66f807997155f3 Mon Sep 17 00:00:00 2001 From: Chris Moultrie <821688+tebriel@users.noreply.github.com> Date: Mon, 2 Mar 2026 11:22:48 -0500 Subject: [PATCH 1/3] python3Packages.flask-dramatiq: 0.6.0 -> 0.8.0 --- .../python-modules/flask-dramatiq/default.nix | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/pkgs/development/python-modules/flask-dramatiq/default.nix b/pkgs/development/python-modules/flask-dramatiq/default.nix index 3dece04ef7a3..86514a6bad44 100644 --- a/pkgs/development/python-modules/flask-dramatiq/default.nix +++ b/pkgs/development/python-modules/flask-dramatiq/default.nix @@ -2,11 +2,13 @@ lib, buildPythonPackage, dramatiq, - fetchFromGitLab, + fetchFromGitHub, flask-migrate, + flask-sqlalchemy, flask, + httpx, periodiq, - poetry-core, + hatchling, postgresql, postgresqlTestHook, psycopg2, @@ -16,35 +18,33 @@ requests, }: -buildPythonPackage { +buildPythonPackage (finalAttrs: { pname = "flask-dramatiq"; - version = "0.6.0"; + version = "0.8.0"; pyproject = true; - src = fetchFromGitLab { - owner = "bersace"; + src = fetchFromGitHub { + owner = "pallets-eco"; repo = "flask-dramatiq"; - rev = "840209e9bf582b4dda468e8bba515f248f3f8534"; - hash = "sha256-qjV1zyVzHPXMt+oUeGBdP9XVlbcSz2MF9Zygj543T4w="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Gt9yynbmFWMISP1U0jRjU6oY3ImrLxYa2D0xf0llCEg="; }; postPatch = '' - substituteInPlace pyproject.toml \ - --replace 'poetry>=0.12' 'poetry-core' \ - --replace 'poetry.masonry.api' 'poetry.core.masonry.api' - patchShebangs --build ./example.py ''; - build-system = [ poetry-core ]; + build-system = [ hatchling ]; pythonRelaxDeps = [ "dramatiq" ]; dependencies = [ dramatiq ]; nativeCheckInputs = [ + flask-sqlalchemy flask flask-migrate + httpx periodiq postgresql postgresqlTestHook @@ -54,7 +54,8 @@ buildPythonPackage { pytestCheckHook requests ] - ++ dramatiq.optional-dependencies.rabbitmq; + ++ dramatiq.optional-dependencies.rabbitmq + ++ dramatiq.optional-dependencies.watch; postgresqlTestSetupPost = '' substituteInPlace config.py \ @@ -72,8 +73,8 @@ buildPythonPackage { meta = { description = "Adds Dramatiq support to your Flask application"; - homepage = "https://gitlab.com/bersace/flask-dramatiq"; + homepage = "https://github.com/pallets-eco/flask-dramatiq"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ traxys ]; }; -} +}) From a73b37840cc2d97bedd8f78411fab8daa10b1f5a Mon Sep 17 00:00:00 2001 From: Chris Moultrie <821688+tebriel@users.noreply.github.com> Date: Mon, 2 Mar 2026 11:23:09 -0500 Subject: [PATCH 2/3] python3Packages.periodiq: 0.13.0 -> 0.14.0 --- .../python-modules/periodiq/default.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/periodiq/default.nix b/pkgs/development/python-modules/periodiq/default.nix index 701bc88bc670..a8b718302086 100644 --- a/pkgs/development/python-modules/periodiq/default.nix +++ b/pkgs/development/python-modules/periodiq/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, fetchFromGitLab, - poetry-core, + uv-build, dramatiq, pendulum, setuptools, @@ -13,27 +13,28 @@ buildPythonPackage rec { pname = "periodiq"; - version = "0.13.0"; + version = "0.14.0"; pyproject = true; src = fetchFromGitLab { owner = "bersace"; repo = "periodiq"; tag = "v${version}"; - hash = "sha256-Pyh/T3/HGPYyaXjyM0wkQ1V7p5ibqxE1Q62QwCIJ8To="; + hash = "sha256-XYQ0cR0gdiX7GePqpMDG/Ml0CK+SBcNbsNB99FZ/D3I="; }; postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail 'poetry>=0.12' 'poetry-core' \ - --replace-fail 'poetry.masonry.api' 'poetry.core.masonry.api' + --replace-fail "uv_build>=0.11,<0.12" uv_build ''; - pythonRelaxDeps = [ "dramatiq" ]; + pythonRelaxDeps = [ + "dramatiq" + ]; - nativeBuildInputs = [ poetry-core ]; + build-system = [ uv-build ]; - propagatedBuildInputs = [ + dependencies = [ dramatiq pendulum setuptools From a16d05931dbdad7245e45674906c4a16d3e7b8af Mon Sep 17 00:00:00 2001 From: Chris Moultrie <821688+tebriel@users.noreply.github.com> Date: Mon, 2 Mar 2026 10:38:47 -0500 Subject: [PATCH 3/3] fittrackee: 0.11.2 -> 1.3.3 --- doc/release-notes/rl-2611.section.md | 3 +- pkgs/by-name/fi/fittrackee/package.nix | 77 +++++++++++++++----------- 2 files changed, 47 insertions(+), 33 deletions(-) diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md index 2d03b3d265fd..092c950e980f 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -80,8 +80,7 @@ ### Breaking changes {#sec-nixpkgs-release-26.11-lib-breaking} -- Create the first release note entry in this section! - +- `fittrackee` 1.0.0 now requires postgres with postgis. The [upgrade guide](https://docs.fittrackee.org/en/upgrading-to-1.0.0.html) has steps to prepare for this upgrade. ### Deprecations {#sec-nixpkgs-release-26.11-lib-deprecations} diff --git a/pkgs/by-name/fi/fittrackee/package.nix b/pkgs/by-name/fi/fittrackee/package.nix index f261ac07eae6..ed8611772707 100644 --- a/pkgs/by-name/fi/fittrackee/package.nix +++ b/pkgs/by-name/fi/fittrackee/package.nix @@ -1,49 +1,51 @@ { - fetchFromGitHub, + fetchFromCodeberg, + fetchNpmDeps, lib, stdenv, + nodejs_24, + npmHooks, postgresql, postgresqlTestHook, python3Packages, }: python3Packages.buildPythonApplication (finalAttrs: { pname = "fittrackee"; - version = "0.11.2"; + version = "1.3.3"; pyproject = true; - src = fetchFromGitHub { - owner = "SamR1"; + src = fetchFromCodeberg { + owner = "FitTrackee"; repo = "FitTrackee"; tag = "v${finalAttrs.version}"; - hash = "sha256-A9gebHxNCpYUUIm7IjyySojIIyuTxfYCUeUufpUM1iA="; + hash = "sha256-XWR9gg52pfg0lHoFikQ2wVhvkPCTjTTndBYqBzYPB8s="; }; + makeCacheWritable = true; + npmRoot = "fittrackee_client"; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-HEgof2ln+mBxM63Dv8Lc/bfx3ozoJCRYYyJOz6jh+Vs="; + sourceRoot = "${finalAttrs.src.name}/fittrackee_client"; + }; + + nativeBuildInputs = [ + nodejs_24 + npmHooks.npmConfigHook + ]; + + preBuild = '' + pushd fittrackee_client + npm run build-only + popd + ''; + build-system = [ python3Packages.poetry-core ]; - # The upstream project changed the behavior of the CLI when --set-admin and --set-role are used together. - # Previously, it would raise an error, but now it issues a deprecation warning. - # This patch updates the test assertion to expect the new deprecation warning message. - # See upstream commit 6eda1b6119b3e41bdf8896e74b4a07d3c9e97609. - postPatch = '' - substituteInPlace fittrackee/tests/users/test_users_commands.py \ - --replace '"--set-admin and --set-role can not be used together."' '"WARNING: --set-admin is deprecated. Please use --set-role option instead."' - ''; - - pythonRelaxDeps = [ - "authlib" - "fitdecode" - "flask" - "flask-limiter" - "flask-migrate" - "nh3" - "lxml" - "pyopenssl" - "pytz" - "sqlalchemy" - "xmltodict" - ]; + pythonRelaxDeps = true; dependencies = with python3Packages; @@ -53,21 +55,31 @@ python3Packages.buildPythonApplication (finalAttrs: { click dramatiq dramatiq-abort + feedgenerator fitdecode flask + flask-babel flask-bcrypt flask-dramatiq flask-limiter flask-migrate flask-sqlalchemy + geoalchemy2 + geopandas gpxpy gunicorn humanize jsonschema + lxml + mistune nh3 + numpy + pandas psycopg2-binary pyjwt pyopenssl + pyproj + python-magic pytz shortuuid sqlalchemy @@ -76,7 +88,9 @@ python3Packages.buildPythonApplication (finalAttrs: { xmltodict ] ++ dramatiq.optional-dependencies.redis - ++ flask-limiter.optional-dependencies.redis; + ++ flask-limiter.optional-dependencies.redis + ++ geoalchemy2.optional-dependencies.shapely + ++ staticmap3.optional-dependencies.filecache; pythonImportsCheck = [ "fittrackee" ]; @@ -84,7 +98,7 @@ python3Packages.buildPythonApplication (finalAttrs: { pytestCheckHook freezegun postgresqlTestHook - postgresql + (postgresql.withPackages (ps: with ps; [ postgis ])) time-machine ]; @@ -93,6 +107,7 @@ python3Packages.buildPythonApplication (finalAttrs: { ]; postgresqlTestSetupPost = '' + echo "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;" | PGUSER=postgres psql test_db export DATABASE_TEST_URL=postgresql://$PGUSER/$PGDATABASE?host=$PGHOST ''; @@ -105,8 +120,8 @@ python3Packages.buildPythonApplication (finalAttrs: { meta = { description = "Self-hosted outdoor activity tracker"; - homepage = "https://github.com/SamR1/FitTrackee"; - changelog = "https://github.com/SamR1/FitTrackee/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + homepage = "https://docs.fittrackee.org/"; + changelog = "https://codeberg.org/FitTrackee/FitTrackee/src/tag/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.agpl3Only; maintainers = with lib.maintainers; [ tebriel