pretalx: 2025.2.2 -> 2026.1.0

https://pretalx.com/p/news/releasing-pretalx-2026-1-0/
https://docs.pretalx.org/changelog/v2026.1.0/

Fixes: GHSA-jm8c-9f3j-4378, GHSA-jm8c-9f3j-4378
This commit is contained in:
Martin Weinelt
2026-04-18 02:14:15 +02:00
parent c55f0984b0
commit 8cedca33d9
2 changed files with 15 additions and 39 deletions
+11 -35
View File
@@ -2,38 +2,27 @@
lib,
buildNpmPackage,
gettext,
python3,
python314,
fetchFromGitHub,
plugins ? [ ],
nixosTests,
}:
let
python = python3.override {
python = python314.override {
self = python;
packageOverrides = final: prev: {
django = prev.django_5;
django-countries = prev.django-countries.overridePythonAttrs (oldAttrs: rec {
version = "8.1.0";
src = fetchFromGitHub {
owner = "SmileyChris";
repo = "django-countries";
tag = "v${version}";
hash = "sha256-KtBFSkYNKwivCFlqlWm4idiMybqsqiV0SNZx3egLl6c=";
};
build-system = with final; [ uv-build ];
});
django = prev.django_6;
};
};
version = "2025.2.2";
version = "2026.1.0";
src = fetchFromGitHub {
owner = "pretalx";
repo = "pretalx";
tag = "v${version}";
hash = "sha256-2qru52/ZALBAdRh0I+3VimVsiRl71YZgbSUD/LdoA/0=";
hash = "sha256-oSqeqVQ/L6DBI2ZP0h+qz2QBB4evt7V99tLMTkXvAic=";
};
meta = {
@@ -55,7 +44,7 @@ let
sourceRoot = "${src.name}/src/pretalx/frontend/schedule-editor";
npmDepsHash = "sha256-voHiml0nFWZIST39D5ErB0xTiWAOHN9OZinYutuQcdg=";
npmDepsHash = "sha256-66PA2COL3lqMspYGoF/bOJje5URRu1voQbZspM7DTxs=";
npmBuildScript = "build";
@@ -131,10 +120,8 @@ python.pkgs.buildPythonApplication rec {
diff-match-patch
django
django-context-decorator
django-countries
django-csp
django-filter
django-formset-js-improved
django-formtools
django-hierarkey
django-i18nfield
@@ -159,6 +146,7 @@ python.pkgs.buildPythonApplication rec {
]
++ beautifulsoup4.optional-dependencies.lxml
++ django.optional-dependencies.argon2
++ whitenoise.optional-dependencies.brotli
++ plugins;
optional-dependencies = {
@@ -194,15 +182,16 @@ python.pkgs.buildPythonApplication rec {
preCheck = ''
export PRETALX_CONFIG_FILE="$src/src/tests/ci_sqlite.cfg"
cd src
'';
nativeCheckInputs =
with python.pkgs;
[
faker
factory-boy
freezegun
jsonschema
polib
pytest-cov-stub
pytest-django
pytest-mock
@@ -213,21 +202,8 @@ python.pkgs.buildPythonApplication rec {
++ lib.concatAttrValues optional-dependencies;
disabledTests = [
# tries to run npm run i18n:extract
"test_common_custom_makemessages_does_not_blow_up"
# Expected to perform X queries or less but Y were done
"test_can_see_schedule"
"test_schedule_export_public"
"test_schedule_frab_json_export"
"test_schedule_frab_xcal_export"
"test_schedule_frab_xml_export"
"test_schedule_frab_xml_export_control_char"
"test_schedule_page_text_list"
"test_schedule_page_text_table"
"test_schedule_page_text_wrong_format"
"test_versioned_schedule_page"
# Test is racy
"test_can_reset_password_by_email"
# assert 'tests.dummy_app' in ['pretalx_pages']
"test_event_wizard_plugin_form_init_creates_field_for_installed_plugins"
];
passthru = {
+4 -4
View File
@@ -1,8 +1,8 @@
diff --git a/src/pretalx/common/management/commands/rebuild.py b/src/pretalx/common/management/commands/rebuild.py
index 45c83aab3..8c8c1e590 100644
index b7412498f..f9e2e24c3 100644
--- a/src/pretalx/common/management/commands/rebuild.py
+++ b/src/pretalx/common/management/commands/rebuild.py
@@ -45,16 +45,6 @@ def handle(self, *args, **options):
@@ -57,16 +57,6 @@ def handle(self, *args, **options):
call_command(
"collectstatic", verbosity=silent, interactive=False, clear=options["clear"]
)
@@ -14,8 +14,8 @@ index 45c83aab3..8c8c1e590 100644
- env["OUT_DIR"] = str(settings.STATIC_ROOT)
- env["BASE_URL"] = settings.STATIC_URL
- if options["npm_install"] or not (frontend_dir / "node_modules").exists():
- subprocess.check_call(["npm", "ci"], cwd=frontend_dir)
- subprocess.check_call(["npm", "run", "build"], cwd=frontend_dir, env=env)
- subprocess.check_call(["npm", "ci"], cwd=frontend_dir) # noqa: S607 -- npm is commonly installed in user paths
- subprocess.check_call(["npm", "run", "build"], cwd=frontend_dir, env=env) # noqa: S607 -- npm is commonly installed in user paths
# This fails if we don't have db access, which is fine
with suppress(Exception):