django-migration-zero 2.4.1__tar.gz → 2.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/workflows/quality-gate.yml +13 -17
  2. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/workflows/release.yml +5 -5
  3. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.gitignore +5 -0
  4. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.pre-commit-config.yaml +8 -7
  5. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/CHANGES.md +11 -0
  6. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/CONTRIBUTING.md +3 -4
  7. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/PKG-INFO +12 -12
  8. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/__init__.py +1 -1
  9. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/conf.py +1 -6
  10. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/pyproject.toml +20 -16
  11. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/scripts/unix/install_requirements.sh +1 -1
  12. django_migration_zero-2.5.1/scripts/windows/install_requirements.ps1 +2 -0
  13. django_migration_zero-2.4.1/scripts/windows/install_requirements.ps1 +0 -2
  14. django_migration_zero-2.4.1/uv.lock +0 -1301
  15. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.ambient-package-update/metadata.py +0 -0
  16. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.ambient-package-update/templates/snippets/content.tpl +0 -0
  17. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.ambient-package-update/templates/snippets/installation.tpl +0 -0
  18. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.ambient-package-update/templates/snippets/tagline.tpl +0 -0
  19. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.editorconfig +0 -0
  20. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  22. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  23. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  24. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.github/workflows/ci.yml +0 -0
  25. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/.readthedocs.yaml +0 -0
  26. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/CODE_OF_CONDUCT.md +0 -0
  27. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/LICENSE.md +0 -0
  28. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/MANIFEST.in +0 -0
  29. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/README.md +0 -0
  30. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/SECURITY.md +0 -0
  31. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/admin.py +0 -0
  32. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/apps.py +0 -0
  33. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/exceptions.py +0 -0
  34. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/helpers/__init__.py +0 -0
  35. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/helpers/file_system.py +0 -0
  36. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/helpers/logger.py +0 -0
  37. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/locale/de/LC_MESSAGES/django.mo +0 -0
  38. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/locale/de/LC_MESSAGES/django.po +0 -0
  39. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/management/__init__.py +0 -0
  40. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/management/commands/__init__.py +0 -0
  41. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/management/commands/handle_migration_zero_reset.py +0 -0
  42. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/management/commands/reset_local_migration_files.py +0 -0
  43. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/managers.py +0 -0
  44. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/migrations/0001_initial.py +0 -0
  45. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/migrations/__init__.py +0 -0
  46. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/models.py +0 -0
  47. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/services/__init__.py +0 -0
  48. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/services/deployment.py +0 -0
  49. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/django_migration_zero/services/local.py +0 -0
  50. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/Makefile +0 -0
  51. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/01_introduction.md +0 -0
  52. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/02_configuration.md +0 -0
  53. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/03_workflow.md +0 -0
  54. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/04_common_issues_and_solutions.md +0 -0
  55. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/05_architecture.md +0 -0
  56. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/06_management_commands.md +0 -0
  57. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/features/07_changelog.rst +0 -0
  58. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/index.rst +0 -0
  59. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/docs/make.bat +0 -0
  60. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/manage.py +0 -0
  61. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/scripts/unix/publish_to_pypi.sh +0 -0
  62. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/scripts/windows/publish_to_pypi.ps1 +0 -0
  63. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/settings.py +0 -0
  64. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/testapp/__init__.py +0 -0
  65. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/testapp/nested_app/__init__.py +0 -0
  66. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/testapp/nested_app/migrations/__init__.py +0 -0
  67. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/testapp/urls.py +0 -0
  68. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/__init__.py +0 -0
  69. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/helpers/__init__.py +0 -0
  70. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/helpers/test_file_system.py +0 -0
  71. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/helpers/test_logger.py +0 -0
  72. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/management/__init__.py +0 -0
  73. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/management/commands/__init__.py +0 -0
  74. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/management/commands/test_handle_migration_zero_reset.py +0 -0
  75. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/management/commands/test_reset_local_migration_files.py +0 -0
  76. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/services/__init__.py +0 -0
  77. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/services/test_deployment.py +0 -0
  78. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/services/test_local.py +0 -0
  79. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/test_admin.py +0 -0
  80. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/test_managers.py +0 -0
  81. {django_migration_zero-2.4.1 → django_migration_zero-2.5.1}/tests/test_models.py +0 -0
@@ -7,10 +7,10 @@ jobs:
7
7
  linting:
8
8
  runs-on: ubuntu-24.04
9
9
  steps:
10
- - uses: actions/checkout@v6
10
+ - uses: actions/checkout@v7
11
11
 
12
12
  - name: Set up Python 3.14
13
- uses: actions/setup-python@v6
13
+ uses: actions/setup-python@v7
14
14
  with:
15
15
  python-version: "3.14"
16
16
 
@@ -24,14 +24,14 @@ jobs:
24
24
  name: Validate migrations
25
25
  runs-on: ubuntu-24.04
26
26
  steps:
27
- - uses: actions/checkout@v6
27
+ - uses: actions/checkout@v7
28
28
 
29
- - uses: actions/setup-python@v6
29
+ - uses: actions/setup-python@v7
30
30
  with:
31
31
  python-version: '3.14'
32
32
 
33
33
  - name: Install dependencies
34
- run: python -m pip install -U uv && uv sync --frozen --extra dev
34
+ run: python -m pip install -U uv && uv sync --extra dev
35
35
 
36
36
  - name: Validate migration integrity
37
37
  run: uv run python manage.py makemigrations --check --dry-run
@@ -42,27 +42,23 @@ jobs:
42
42
  strategy:
43
43
  matrix:
44
44
  python-version: ['3.11', '3.12', '3.13', '3.14', ]
45
- django-version: ['42', '52', '60', ]
45
+ django-version: ['52', '60', '61', ]
46
46
 
47
47
  # Exclude Python/Django combinations that are not supported upstream.
48
48
  exclude:
49
49
  - python-version: '3.11'
50
50
  django-version: 60
51
- - python-version: '3.13'
52
- django-version: 42
53
- - python-version: '3.14'
54
- django-version: 42
55
- - python-version: '3.14'
56
- django-version: 52
51
+ - python-version: '3.11'
52
+ django-version: 61
57
53
 
58
54
  steps:
59
- - uses: actions/checkout@v6
55
+ - uses: actions/checkout@v7
60
56
  - name: setup python
61
- uses: actions/setup-python@v6
57
+ uses: actions/setup-python@v7
62
58
  with:
63
59
  python-version: ${{ matrix.python-version }}
64
60
  - name: Install uv
65
- uses: astral-sh/setup-uv@v8.0.0
61
+ uses: astral-sh/setup-uv@v10.3.0
66
62
  with:
67
63
  cache-suffix: ${{ github.ref_type }}
68
64
  - name: Install tox
@@ -84,9 +80,9 @@ jobs:
84
80
  runs-on: ubuntu-24.04
85
81
  needs: tests
86
82
  steps:
87
- - uses: actions/checkout@v6
83
+ - uses: actions/checkout@v7
88
84
 
89
- - uses: actions/setup-python@v6
85
+ - uses: actions/setup-python@v7
90
86
  with:
91
87
  python-version: '3.14'
92
88
 
@@ -19,7 +19,7 @@ jobs:
19
19
  outputs:
20
20
  on-main: ${{ steps.check.outputs.on-main }}
21
21
  steps:
22
- - uses: actions/checkout@v6
22
+ - uses: actions/checkout@v7
23
23
  with:
24
24
  fetch-depth: 0
25
25
  - name: Check if tag is on master
@@ -41,15 +41,15 @@ jobs:
41
41
  permissions:
42
42
  contents: read
43
43
  steps:
44
- - uses: actions/checkout@v6
44
+ - uses: actions/checkout@v7
45
45
 
46
46
  - name: Set up Python 3.14
47
- uses: actions/setup-python@v6
47
+ uses: actions/setup-python@v7
48
48
  with:
49
49
  python-version: "3.14"
50
50
 
51
51
  - name: Install uv
52
- uses: astral-sh/setup-uv@v8.0.0
52
+ uses: astral-sh/setup-uv@v10.3.0
53
53
 
54
54
  - name: Build packages
55
55
  run: uv build
@@ -76,7 +76,7 @@ jobs:
76
76
  path: dist/
77
77
 
78
78
  - name: Sign packages with Sigstore
79
- uses: sigstore/gh-action-sigstore-python@v3.3.0
79
+ uses: sigstore/gh-action-sigstore-python@v3.5.0
80
80
  with:
81
81
  inputs: >-
82
82
  ./dist/*.tar.gz
@@ -81,6 +81,11 @@ target/
81
81
  profile_default/
82
82
  ipython_config.py
83
83
 
84
+ # uv
85
+ # This is a library, so consumers never install from the lockfile. Not committing it avoids
86
+ # lockfile churn in every maintenance release.
87
+ uv.lock
88
+
84
89
  # pdm
85
90
  # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
86
91
  #pdm.lock
@@ -3,7 +3,7 @@
3
3
 
4
4
  repos:
5
5
  - repo: https://github.com/astral-sh/ruff-pre-commit
6
- rev: v0.15.8
6
+ rev: v0.17.1
7
7
  hooks:
8
8
  # Run the Ruff formatter.
9
9
  - id: ruff-format
@@ -15,27 +15,28 @@ repos:
15
15
  rev: 1.20.0
16
16
  hooks:
17
17
  - id: blacken-docs
18
+ args: [--line-length, "120"]
18
19
  additional_dependencies:
19
- - black==25.9.0
20
+ - black==26.10.1
20
21
  files: '(?:README\.md|\.ambient-package-update\/templates\/snippets\/.*\.tpl|docs\/.*\.(?:md|rst))'
21
22
 
22
23
  - repo: https://github.com/asottile/pyupgrade
23
- rev: v3.21.2
24
+ rev: v3.22.0
24
25
  hooks:
25
26
  - id: pyupgrade
26
27
  args: [ --py311-plus ]
27
28
 
28
29
  - repo: https://github.com/adamchainz/django-upgrade
29
- rev: 1.30.0
30
+ rev: 1.33.0
30
31
  hooks:
31
32
  - id: django-upgrade
32
- args: [--target-version, "4.2"]
33
+ args: [--target-version, "5.2"]
33
34
 
34
35
  - repo: https://github.com/adamchainz/djade-pre-commit
35
- rev: 1.9.0
36
+ rev: 1.10.0
36
37
  hooks:
37
38
  - id: djade
38
- args: [--target-version, "4.2"]
39
+ args: [--target-version, "5.2"]
39
40
  exclude: |
40
41
  (?x)^(
41
42
  charts/.*
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ **2.5.1** (2026-10-21)
4
+ * Updated the linting and CI setup to the current ambient-package-update template (ruff 0.17.1, `actions/checkout` v7, `actions/setup-python` v7)
5
+ * Fixed the Sphinx configuration for sphinx-rtd-theme 3, removing the documentation build warnings
6
+ * Fixed broken links in the pre-commit section of `CONTRIBUTING.md`
7
+ * Stopped committing `uv.lock`, since the package is a library and the lockfile never reaches its users
8
+
9
+ **2.5.0** (2026-08-27)
10
+ * Added support for Django 6.1
11
+ * **Breaking change:** Dropped support for Django 4.2, whose extended support ended in April 2026
12
+ * Updated the linting and CI setup to the current ambient-package-update template
13
+
3
14
  **2.4.1** (2026-07-03)
4
15
  * Updated company and maintainer information to "Beyonder Deutschland"
5
16
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Create a Python virtualenv and activate it
6
6
  - Install "uv" with `pip install -U uv`
7
- - Sync the requirements with `uv sync --frozen --extra dev`
7
+ - Sync the requirements with `uv sync --extra dev`
8
8
 
9
9
  ## Add functionality
10
10
 
@@ -36,9 +36,8 @@ To enable the configured pre-push hooks, you need to [install](https://pre-commi
36
36
 
37
37
  pre-commit install -t pre-push -t pre-commit --install-hooks
38
38
 
39
- This will permanently install the git hooks for both, frontend and backend, in your local
40
- [`.git/hooks`](./.git/hooks) folder.
41
- The hooks are configured in the [`.pre-commit-config.yaml`](templates/.pre-commit-config.yaml.tpl).
39
+ This will permanently install the git hooks in your local `.git/hooks` folder.
40
+ The hooks are configured in the [`.pre-commit-config.yaml`](./.pre-commit-config.yaml).
42
41
 
43
42
  You can check whether hooks work as intended using the [run](https://pre-commit.com/#pre-commit-run) command:
44
43
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: django-migration-zero
3
- Version: 2.4.1
3
+ Version: 2.5.1
4
4
  Summary: Holistic implementation of 'migration zero' pattern for Django covering local changes and in-production database adjustments.
5
5
  Project-URL: Homepage, https://github.com/ambient-innovation/django-migration-zero/
6
6
  Project-URL: Documentation, https://django-migration-zero.readthedocs.io/en/latest/index.html
@@ -33,9 +33,9 @@ License-File: LICENSE.md
33
33
  Classifier: Development Status :: 5 - Production/Stable
34
34
  Classifier: Environment :: Web Environment
35
35
  Classifier: Framework :: Django
36
- Classifier: Framework :: Django :: 4.2
37
36
  Classifier: Framework :: Django :: 5.2
38
37
  Classifier: Framework :: Django :: 6.0
38
+ Classifier: Framework :: Django :: 6.1
39
39
  Classifier: Intended Audience :: Developers
40
40
  Classifier: License :: OSI Approved :: MIT License
41
41
  Classifier: Natural Language :: English
@@ -48,21 +48,21 @@ Classifier: Programming Language :: Python :: 3.13
48
48
  Classifier: Programming Language :: Python :: 3.14
49
49
  Classifier: Topic :: Utilities
50
50
  Requires-Python: >=3.11
51
- Requires-Dist: django>=4.2
51
+ Requires-Dist: django>=5.2
52
52
  Provides-Extra: dev
53
53
  Requires-Dist: ambient-package-update; extra == 'dev'
54
54
  Requires-Dist: freezegun~=1.5; extra == 'dev'
55
55
  Requires-Dist: keyring~=25.7; extra == 'dev'
56
- Requires-Dist: pre-commit~=4.3; extra == 'dev'
57
- Requires-Dist: pytest-cov~=7.0; extra == 'dev'
58
- Requires-Dist: pytest-django~=4.11; extra == 'dev'
59
- Requires-Dist: pytest-mock~=3.15; extra == 'dev'
56
+ Requires-Dist: pre-commit~=4.7; extra == 'dev'
57
+ Requires-Dist: pytest-cov~=7.1; extra == 'dev'
58
+ Requires-Dist: pytest-django~=4.14; extra == 'dev'
59
+ Requires-Dist: pytest-mock~=3.17; extra == 'dev'
60
60
  Requires-Dist: sphinx-mdinclude~=0.6; extra == 'dev'
61
- Requires-Dist: sphinx-rtd-theme~=3.0; extra == 'dev'
62
- Requires-Dist: sphinx~=7.4; extra == 'dev'
63
- Requires-Dist: typer~=0.19; extra == 'dev'
61
+ Requires-Dist: sphinx-rtd-theme~=3.1; extra == 'dev'
62
+ Requires-Dist: sphinx~=8.2; extra == 'dev'
63
+ Requires-Dist: typer~=0.27; extra == 'dev'
64
64
  Requires-Dist: unittest-parametrize~=1.3; extra == 'dev'
65
- Requires-Dist: uv~=0.9; extra == 'dev'
65
+ Requires-Dist: uv~=0.13; extra == 'dev'
66
66
  Description-Content-Type: text/markdown
67
67
 
68
68
  [![PyPI release](https://img.shields.io/pypi/v/django-migration-zero.svg)](https://pypi.org/project/django-migration-zero/)
@@ -3,4 +3,4 @@
3
3
  Holistic implementation of "migration zero" pattern for Django covering local changes and in-production database adjustments.
4
4
  """
5
5
 
6
- __version__ = "2.4.1"
6
+ __version__ = "2.5.1"
@@ -68,14 +68,9 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
68
68
  # a list of builtin themes.
69
69
  html_theme = "sphinx_rtd_theme"
70
70
  html_theme_options = {
71
- "display_version": False,
71
+ "version_selector": False,
72
72
  "style_external_links": False,
73
73
  }
74
74
 
75
- # Add any paths that contain custom static files (such as style sheets) here,
76
- # relative to this directory. They are copied after the builtin static files,
77
- # so a file named "default.css" will overwrite the builtin "default.css".
78
- html_static_path = ["_static"]
79
-
80
75
  # Set master doc file
81
76
  master_doc = "index"
@@ -12,9 +12,9 @@ classifiers = [
12
12
  "Development Status :: 5 - Production/Stable",
13
13
  "Environment :: Web Environment",
14
14
  "Framework :: Django",
15
- "Framework :: Django :: 4.2",
16
15
  "Framework :: Django :: 5.2",
17
16
  "Framework :: Django :: 6.0",
17
+ "Framework :: Django :: 6.1",
18
18
  "Intended Audience :: Developers",
19
19
  "License :: OSI Approved :: MIT License",
20
20
  "Natural Language :: English",
@@ -32,20 +32,20 @@ description = "Holistic implementation of 'migration zero' pattern for Django co
32
32
  license = {"file" = "LICENSE.md"}
33
33
  requires-python = ">=3.11"
34
34
  dependencies = [
35
- 'Django>=4.2',
35
+ 'Django>=5.2',
36
36
  ]
37
37
 
38
38
  [project.optional-dependencies]
39
39
  dev = [
40
- 'typer~=0.19',
41
- 'pytest-cov~=7.0',
42
- 'pytest-django~=4.11',
43
- 'pytest-mock~=3.15',
44
- 'pre-commit~=4.3',
45
- 'sphinx~=7.4',
46
- 'sphinx-rtd-theme~=3.0',
40
+ 'typer~=0.27',
41
+ 'pytest-cov~=7.1',
42
+ 'pytest-django~=4.14',
43
+ 'pytest-mock~=3.17',
44
+ 'pre-commit~=4.7',
45
+ 'sphinx~=8.2',
46
+ 'sphinx-rtd-theme~=3.1',
47
47
  'sphinx-mdinclude~=0.6',
48
- 'uv~=0.9',
48
+ 'uv~=0.13',
49
49
  'keyring~=25.7',
50
50
  'ambient-package-update',
51
51
  'unittest-parametrize~=1.3',
@@ -197,26 +197,30 @@ line-ending = "auto"
197
197
 
198
198
  [tool.tox]
199
199
  requires = ["tox>=4", "tox-uv>=1.0.0"]
200
- env_list = ["django42", "django52", "django60", ]
200
+ env_list = ["django52", "django60", "django61", ]
201
201
 
202
202
  [tool.tox.env_run_base]
203
203
  # Django deprecation overview: https://www.djangoproject.com/download/
204
204
  package = "wheel"
205
205
  wheel_build_env = ".pkg"
206
+ # This runner installs via "uv sync" and ignores "deps", so every environment below
207
+ # installs its matrix Django version on top of the synced environment.
206
208
  runner = "uv-venv-lock-runner"
209
+ # uv.lock is not committed for libraries, so tox resolves fresh instead of asserting a lockfile.
210
+ uv_sync_locked = false
207
211
  extras = ["dev", ]
208
212
  commands = [
209
213
  ["pytest", "--cov=django_migration_zero", "--cov-report=term", "--cov-report=xml", "--ds", "settings", "tests"]
210
214
  ]
211
215
 
212
- [tool.tox.env.django42]
213
- deps = ["Django==4.2.*"]
214
-
215
216
  [tool.tox.env.django52]
216
- deps = ["Django==5.2.*"]
217
+ commands_pre = [["uv", "pip", "install", "Django==5.2.*"]]
217
218
 
218
219
  [tool.tox.env.django60]
219
- deps = ["Django==6.0.*"]
220
+ commands_pre = [["uv", "pip", "install", "Django==6.0.*"]]
221
+
222
+ [tool.tox.env.django61]
223
+ commands_pre = [["uv", "pip", "install", "Django==6.1.*"]]
220
224
 
221
225
  [tool.tox.gh_actions.python]
222
226
  "3.11" = "py311"
@@ -1,3 +1,3 @@
1
1
  #!/bin/bash
2
2
  pip install -U uv
3
- uv sync --frozen --extra dev
3
+ uv sync --extra dev
@@ -0,0 +1,2 @@
1
+ pip install -U uv
2
+ uv sync --extra dev
@@ -1,2 +0,0 @@
1
- pip install -U uv
2
- uv sync --frozen --extra dev