copier-python 0.6.0__tar.gz → 0.7.0__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 (45) hide show
  1. {copier_python-0.6.0 → copier_python-0.7.0}/PKG-INFO +1 -1
  2. {copier_python-0.6.0 → copier_python-0.7.0}/docs/project-release.md +12 -3
  3. {copier_python-0.6.0 → copier_python-0.7.0}/docs/releasing.md +12 -3
  4. {copier_python-0.6.0 → copier_python-0.7.0}/pyproject.toml +14 -2
  5. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_docs.ambr +249 -10
  6. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_pyproject.ambr +192 -24
  7. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_docs.py +9 -0
  8. {copier_python-0.6.0 → copier_python-0.7.0}/.gitignore +0 -0
  9. {copier_python-0.6.0 → copier_python-0.7.0}/CONTRIBUTING.md +0 -0
  10. {copier_python-0.6.0 → copier_python-0.7.0}/LICENSE +0 -0
  11. {copier_python-0.6.0 → copier_python-0.7.0}/README.md +0 -0
  12. {copier_python-0.6.0 → copier_python-0.7.0}/copier_python/__init__.py +0 -0
  13. {copier_python-0.6.0 → copier_python-0.7.0}/copier_python/py.typed +0 -0
  14. {copier_python-0.6.0 → copier_python-0.7.0}/docs/contributing.md +0 -0
  15. {copier_python-0.6.0 → copier_python-0.7.0}/docs/development/requirements.md +0 -0
  16. {copier_python-0.6.0 → copier_python-0.7.0}/docs/development/updates.md +0 -0
  17. {copier_python-0.6.0 → copier_python-0.7.0}/docs/development/workflow.md +0 -0
  18. {copier_python-0.6.0 → copier_python-0.7.0}/docs/index.md +0 -0
  19. {copier_python-0.6.0 → copier_python-0.7.0}/docs/license.md +0 -0
  20. {copier_python-0.6.0 → copier_python-0.7.0}/docs/project-creation.md +0 -0
  21. {copier_python-0.6.0 → copier_python-0.7.0}/docs/project-development.md +0 -0
  22. {copier_python-0.6.0 → copier_python-0.7.0}/docs/project-setup.md +0 -0
  23. {copier_python-0.6.0 → copier_python-0.7.0}/docs/project-updates.md +0 -0
  24. {copier_python-0.6.0 → copier_python-0.7.0}/docs/requirements.md +0 -0
  25. {copier_python-0.6.0 → copier_python-0.7.0}/docs/setup.md +0 -0
  26. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__init__.py +0 -0
  27. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_compose.ambr +0 -0
  28. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_contributing.ambr +0 -0
  29. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_dockerfile.ambr +0 -0
  30. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_license.ambr +0 -0
  31. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_readme.ambr +0 -0
  32. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_workflows.ambr +0 -0
  33. {copier_python-0.6.0 → copier_python-0.7.0}/tests/__snapshots__/test_zensical.ambr +0 -0
  34. {copier_python-0.6.0 → copier_python-0.7.0}/tests/conftest.py +0 -0
  35. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_compose.py +0 -0
  36. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_contributing.py +0 -0
  37. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_dockerfile.py +0 -0
  38. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_license.py +0 -0
  39. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_pyproject.py +0 -0
  40. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_readme.py +0 -0
  41. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_structure.py +0 -0
  42. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_template.py +0 -0
  43. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_version.py +0 -0
  44. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_workflows.py +0 -0
  45. {copier_python-0.6.0 → copier_python-0.7.0}/tests/test_zensical.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: copier-python
3
- Version: 0.6.0
3
+ Version: 0.7.0
4
4
  Summary: Copier template for Python projects with modern tooling
5
5
  Project-URL: Homepage, https://smkent.github.io/copier-python
6
6
  Project-URL: Repository, https://github.com/smkent/copier-python
@@ -7,11 +7,19 @@ icon: lucide/rocket
7
7
 
8
8
  Release version numbers should follow [Semantic Versioning][semver].
9
9
 
10
- To create a new release, simply create and push a tag with the new release
11
- version number:
10
+ To create a release, run `poe release` with one of `patch`, `minor`, or `major`
11
+ corresponding to the version number component to update:
12
+
13
+ ```sh
14
+ poe release patch|minor|major
15
+ ```
16
+
17
+ A new tag with the new release version number will be created automatically
18
+ using [bump-my-version][bump-my-version] (for example, `v1.2.3`).
19
+
20
+ Afterward, push the new release tag:
12
21
 
13
22
  ```sh
14
- git tag vX.Y.Z # for example, v1.2.3
15
23
  git push --tags
16
24
  ```
17
25
 
@@ -21,5 +29,6 @@ git push --tags
21
29
  * If container image build and publishing is enabled, a container image will be
22
30
  built and published to the [GitHub Container Registry (GHCR)][ghcr-docs].
23
31
 
32
+ [bump-my-version]: https://callowayproject.github.io/bump-my-version/
24
33
  [ghcr-docs]: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry
25
34
  [semver]: https://semver.org/
@@ -7,11 +7,19 @@ icon: lucide/rocket
7
7
 
8
8
  Release version numbers should follow [Semantic Versioning][semver].
9
9
 
10
- To create a new release, simply create and push a tag with the new release
11
- version number:
10
+ To create a release, run `poe release` with one of `patch`, `minor`, or `major`
11
+ corresponding to the version number component to update:
12
+
13
+ ```sh
14
+ poe release patch|minor|major
15
+ ```
16
+
17
+ A new tag with the new release version number will be created automatically
18
+ using [bump-my-version][bump-my-version] (for example, `v1.2.3`).
19
+
20
+ Afterward, push the new release tag:
12
21
 
13
22
  ```sh
14
- git tag vX.Y.Z # for example, v1.2.3
15
23
  git push --tags
16
24
  ```
17
25
 
@@ -24,6 +32,7 @@ git push --tags
24
32
 
25
33
  [![PyPI][pypi-badge]][pypi-project]
26
34
 
35
+ [bump-my-version]: https://callowayproject.github.io/bump-my-version/
27
36
  [github-release-latest]: https://github.com/smkent/copier-python/releases/latest
28
37
  [github-releases]: https://github.com/smkent/copier-python/releases
29
38
  [github-release-badge]: https://img.shields.io/github/v/release/smkent/copier-python
@@ -38,6 +38,7 @@ Issues = "https://github.com/smkent/copier-python/issues"
38
38
 
39
39
  [dependency-groups]
40
40
  dev = [
41
+ "bump-my-version>=1.3.0",
41
42
  "copier>=9",
42
43
  "poethepoet>=0.42",
43
44
  "prek>=0.3",
@@ -47,12 +48,19 @@ dev = [
47
48
  "pytest-sugar>=1",
48
49
  "syrupy>=5",
49
50
  "ruff>=0.15",
50
- "ty>=0.0.29",
51
+ "ty>=0.0.31",
51
52
  ]
52
53
  docs = [
53
- "zensical>=0.0.32",
54
+ "zensical>=0.0.33",
54
55
  ]
55
56
 
57
+ [tool.bumpversion]
58
+ commit = false
59
+ tag = true
60
+ tag_name = "v{new_version}"
61
+ tag_message = ""
62
+ push = true
63
+
56
64
  [tool.hatch.build.targets.sdist]
57
65
  include = ["/copier_python", "/tests", "*.md", "LICENSE"]
58
66
 
@@ -107,6 +115,10 @@ help = "Initialize git repository once on project creation"
107
115
  cmd = "prek run --all-files"
108
116
  help = "Run all formatters and static checks"
109
117
 
118
+ [tool.poe.tasks.release]
119
+ cmd = "bump-my-version bump -v"
120
+ help = "Create and push a release tag (patch/minor/major)"
121
+
110
122
  [tool.poe.tasks.lt]
111
123
  sequence = [{ref = "lint"}, {ref = "test"}]
112
124
  help = "Run all formatters, static checks and tests"
@@ -445,7 +445,7 @@
445
445
 
446
446
  '''
447
447
  # ---
448
- # name: test_docs_features[no_pypi]
448
+ # name: test_docs_features[container-no_pypi]
449
449
  '''
450
450
  ---
451
451
  title: One time setup
@@ -477,6 +477,13 @@
477
477
  Ensure the [Renovate app][renovate] is installed on your account, then
478
478
  enable it for `ness/PKFire`.
479
479
 
480
+ ## Container registry (ghcr.io)
481
+
482
+ Enable write access for Actions:
483
+
484
+ [Settings → Actions → General][repo-settings-actions-general]
485
+ → Workflow permissions → Read and write permissions
486
+
480
487
  ## GitHub Pages
481
488
 
482
489
  [Settings → Pages][repo-settings-pages] → Source → GitHub Actions
@@ -484,12 +491,13 @@
484
491
  [renovate]: https://github.com/apps/renovate
485
492
  [repo-releases]: https://github.com/ness/PKFire/releases
486
493
  [repo-settings]: https://github.com/ness/PKFire/settings
494
+ [repo-settings-actions-general]: https://github.com/ness/PKFire/settings/actions
487
495
  [repo-settings-branches]: https://github.com/ness/PKFire/settings/branches
488
496
  [repo-settings-pages]: https://github.com/ness/PKFire/settings/pages
489
497
 
490
498
  '''
491
499
  # ---
492
- # name: test_docs_features[no_pypi].1
500
+ # name: test_docs_features[container-no_pypi].1
493
501
  '''
494
502
  ---
495
503
  title: Releasing a new version
@@ -500,11 +508,19 @@
500
508
 
501
509
  Release version numbers should follow [Semantic Versioning][semver].
502
510
 
503
- To create a new release, simply create and push a tag with the new release
504
- version number:
511
+ To create a release, run `poe release` with one of `patch`, `minor`, or `major`
512
+ corresponding to the version number component to update:
513
+
514
+ ```sh
515
+ poe release patch|minor|major
516
+ ```
517
+
518
+ A new tag with the new release version number will be created automatically
519
+ using [bump-my-version][bump-my-version] (for example, `v1.2.3`).
520
+
521
+ Afterward, push the new release tag:
505
522
 
506
523
  ```sh
507
- git tag vX.Y.Z # for example, v1.2.3
508
524
  git push --tags
509
525
  ```
510
526
 
@@ -513,6 +529,11 @@
513
529
 
514
530
  [![GitHub Release][github-release-badge]][github-release-latest]
515
531
 
532
+ * A container image will be built and published to
533
+ the [GitHub Container Registry (GHCR)][ghcr-docs].
534
+
535
+ [bump-my-version]: https://callowayproject.github.io/bump-my-version/
536
+ [ghcr-project]: https://github.com/ness/PKFire/pkgs/container/PKFire
516
537
  [github-release-badge]: https://img.shields.io/github/v/release/ness/PKFire
517
538
  [github-release-latest]: https://github.com/ness/PKFire/releases/latest
518
539
  [github-releases]: https://github.com/ness/PKFire/releases
@@ -520,7 +541,7 @@
520
541
 
521
542
  '''
522
543
  # ---
523
- # name: test_docs_features[pypi]
544
+ # name: test_docs_features[container-pypi]
524
545
  '''
525
546
  ---
526
547
  title: One time setup
@@ -572,6 +593,13 @@
572
593
  git push --tags
573
594
  ```
574
595
 
596
+ ## Container registry (ghcr.io)
597
+
598
+ Enable write access for Actions:
599
+
600
+ [Settings → Actions → General][repo-settings-actions-general]
601
+ → Workflow permissions → Read and write permissions
602
+
575
603
  ## GitHub Pages
576
604
 
577
605
  [Settings → Pages][repo-settings-pages] → Source → GitHub Actions
@@ -581,13 +609,14 @@
581
609
  [renovate]: https://github.com/apps/renovate
582
610
  [repo-releases]: https://github.com/ness/PKFire/releases
583
611
  [repo-settings]: https://github.com/ness/PKFire/settings
612
+ [repo-settings-actions-general]: https://github.com/ness/PKFire/settings/actions
584
613
  [repo-settings-envs]: https://github.com/ness/PKFire/settings/environments
585
614
  [repo-settings-branches]: https://github.com/ness/PKFire/settings/branches
586
615
  [repo-settings-pages]: https://github.com/ness/PKFire/settings/pages
587
616
 
588
617
  '''
589
618
  # ---
590
- # name: test_docs_features[pypi].1
619
+ # name: test_docs_features[container-pypi].1
591
620
  '''
592
621
  ---
593
622
  title: Releasing a new version
@@ -598,11 +627,220 @@
598
627
 
599
628
  Release version numbers should follow [Semantic Versioning][semver].
600
629
 
601
- To create a new release, simply create and push a tag with the new release
602
- version number:
630
+ To create a release, run `poe release` with one of `patch`, `minor`, or `major`
631
+ corresponding to the version number component to update:
632
+
633
+ ```sh
634
+ poe release patch|minor|major
635
+ ```
636
+
637
+ A new tag with the new release version number will be created automatically
638
+ using [bump-my-version][bump-my-version] (for example, `v1.2.3`).
639
+
640
+ Afterward, push the new release tag:
641
+
642
+ ```sh
643
+ git push --tags
644
+ ```
645
+
646
+ * A corresponding [GitHub release][github-releases]
647
+ will be created automatically.
648
+
649
+ [![GitHub Release][github-release-badge]][github-release-latest]
650
+
651
+ * A release package will be built and [uploaded to PyPI][pypi-project].
652
+
653
+ [![PyPI][pypi-badge]][pypi-project]
654
+
655
+ * A container image will be built and published to
656
+ the [GitHub Container Registry (GHCR)][ghcr-docs].
657
+
658
+ [bump-my-version]: https://callowayproject.github.io/bump-my-version/
659
+ [ghcr-project]: https://github.com/ness/PKFire/pkgs/container/PKFire
660
+ [github-release-badge]: https://img.shields.io/github/v/release/ness/PKFire
661
+ [github-release-latest]: https://github.com/ness/PKFire/releases/latest
662
+ [github-releases]: https://github.com/ness/PKFire/releases
663
+ [pypi-badge]: https://img.shields.io/pypi/v/PKFire
664
+ [pypi-project]: https://pypi.org/project/PKFire/
665
+ [semver]: https://semver.org/
666
+
667
+ '''
668
+ # ---
669
+ # name: test_docs_features[no_container-no_pypi]
670
+ '''
671
+ ---
672
+ title: One time setup
673
+ icon: lucide/package-plus
674
+ ---
675
+
676
+ # One time setup
677
+
678
+ These steps only need to be completed once after the project is first created.
679
+
680
+ ## GitHub repository
681
+
682
+ [Settings → General][repo-settings]:
683
+
684
+ - [x] Allow merge commits
685
+ - [ ] Allow squash merging
686
+ - [ ] Allow rebase merging
687
+ - [x] Automatically delete head branches
688
+
689
+ [Settings → Branches][repo-settings-branches] → Add branch protection rule
690
+ for the Default branch (`main`):
691
+
692
+ - [x] Restrict deletions
693
+ - [x] Require a pull request before merging
694
+ - [x] Block force pushes
695
+
696
+ ## Renovate
697
+
698
+ Ensure the [Renovate app][renovate] is installed on your account, then
699
+ enable it for `ness/PKFire`.
700
+
701
+ ## GitHub Pages
702
+
703
+ [Settings → Pages][repo-settings-pages] → Source → GitHub Actions
704
+
705
+ [renovate]: https://github.com/apps/renovate
706
+ [repo-releases]: https://github.com/ness/PKFire/releases
707
+ [repo-settings]: https://github.com/ness/PKFire/settings
708
+ [repo-settings-branches]: https://github.com/ness/PKFire/settings/branches
709
+ [repo-settings-pages]: https://github.com/ness/PKFire/settings/pages
710
+
711
+ '''
712
+ # ---
713
+ # name: test_docs_features[no_container-no_pypi].1
714
+ '''
715
+ ---
716
+ title: Releasing a new version
717
+ icon: lucide/rocket
718
+ ---
719
+
720
+ # Releasing a new version
721
+
722
+ Release version numbers should follow [Semantic Versioning][semver].
723
+
724
+ To create a release, run `poe release` with one of `patch`, `minor`, or `major`
725
+ corresponding to the version number component to update:
726
+
727
+ ```sh
728
+ poe release patch|minor|major
729
+ ```
730
+
731
+ A new tag with the new release version number will be created automatically
732
+ using [bump-my-version][bump-my-version] (for example, `v1.2.3`).
733
+
734
+ Afterward, push the new release tag:
735
+
736
+ ```sh
737
+ git push --tags
738
+ ```
739
+
740
+ * A corresponding [GitHub release][github-releases]
741
+ will be created automatically.
742
+
743
+ [![GitHub Release][github-release-badge]][github-release-latest]
744
+
745
+ [bump-my-version]: https://callowayproject.github.io/bump-my-version/
746
+ [github-release-badge]: https://img.shields.io/github/v/release/ness/PKFire
747
+ [github-release-latest]: https://github.com/ness/PKFire/releases/latest
748
+ [github-releases]: https://github.com/ness/PKFire/releases
749
+ [semver]: https://semver.org/
750
+
751
+ '''
752
+ # ---
753
+ # name: test_docs_features[no_container-pypi]
754
+ '''
755
+ ---
756
+ title: One time setup
757
+ icon: lucide/package-plus
758
+ ---
759
+
760
+ # One time setup
761
+
762
+ These steps only need to be completed once after the project is first created.
763
+
764
+ ## GitHub repository
765
+
766
+ [Settings → General][repo-settings]:
767
+
768
+ - [x] Allow merge commits
769
+ - [ ] Allow squash merging
770
+ - [ ] Allow rebase merging
771
+ - [x] Automatically delete head branches
772
+
773
+ [Settings → Branches][repo-settings-branches] → Add branch protection rule
774
+ for the Default branch (`main`):
775
+
776
+ - [x] Restrict deletions
777
+ - [x] Require a pull request before merging
778
+ - [x] Block force pushes
779
+
780
+ ## Renovate
781
+
782
+ Ensure the [Renovate app][renovate] is installed on your account, then
783
+ enable it for `ness/PKFire`.
784
+
785
+ ## PyPI publishing
786
+
787
+ This project uses [trusted publishing][pypi-trusted-publishing] so no API tokens
788
+ need to be stored as secrets.
789
+
790
+ 1. On PyPI, add a (pending) trusted publisher in your
791
+ [Trusted Publisher Management][pypi-publishing-settings] settings:
792
+ - Publisher: GitHub Actions
793
+ - Owner: `ness`
794
+ - Repository: `PKFire`
795
+ - Workflow: `release.yaml`
796
+ - Environment: `pypi`
797
+ 2. Create the `pypi` environment in the GitHub repository:
798
+ [Settings → Environments][repo-settings-envs] → New environment → `pypi`
799
+ 3. Publish a release by pushing a tag:
800
+ ```sh
801
+ git tag v0.1.0 # or your desired first version number
802
+ git push --tags
803
+ ```
804
+
805
+ ## GitHub Pages
806
+
807
+ [Settings → Pages][repo-settings-pages] → Source → GitHub Actions
808
+
809
+ [pypi-publishing-settings]: https://pypi.org/manage/account/publishing/
810
+ [pypi-trusted-publishing]: https://docs.pypi.org/trusted-publishers/
811
+ [renovate]: https://github.com/apps/renovate
812
+ [repo-releases]: https://github.com/ness/PKFire/releases
813
+ [repo-settings]: https://github.com/ness/PKFire/settings
814
+ [repo-settings-envs]: https://github.com/ness/PKFire/settings/environments
815
+ [repo-settings-branches]: https://github.com/ness/PKFire/settings/branches
816
+ [repo-settings-pages]: https://github.com/ness/PKFire/settings/pages
817
+
818
+ '''
819
+ # ---
820
+ # name: test_docs_features[no_container-pypi].1
821
+ '''
822
+ ---
823
+ title: Releasing a new version
824
+ icon: lucide/rocket
825
+ ---
826
+
827
+ # Releasing a new version
828
+
829
+ Release version numbers should follow [Semantic Versioning][semver].
830
+
831
+ To create a release, run `poe release` with one of `patch`, `minor`, or `major`
832
+ corresponding to the version number component to update:
833
+
834
+ ```sh
835
+ poe release patch|minor|major
836
+ ```
837
+
838
+ A new tag with the new release version number will be created automatically
839
+ using [bump-my-version][bump-my-version] (for example, `v1.2.3`).
840
+
841
+ Afterward, push the new release tag:
603
842
 
604
843
  ```sh
605
- git tag vX.Y.Z # for example, v1.2.3
606
844
  git push --tags
607
845
  ```
608
846
 
@@ -615,6 +853,7 @@
615
853
 
616
854
  [![PyPI][pypi-badge]][pypi-project]
617
855
 
856
+ [bump-my-version]: https://callowayproject.github.io/bump-my-version/
618
857
  [github-release-badge]: https://img.shields.io/github/v/release/ness/PKFire
619
858
  [github-release-latest]: https://github.com/ness/PKFire/releases/latest
620
859
  [github-releases]: https://github.com/ness/PKFire/releases
@@ -36,19 +36,27 @@
36
36
 
37
37
  [dependency-groups]
38
38
  dev = [
39
+ "bump-my-version>=1.3.0",
39
40
  "poethepoet>=0.42",
40
41
  "prek>=0.3",
41
42
  "pytest>=9",
42
43
  "pytest-cov>=7",
43
44
  "pytest-sugar>=1",
44
45
  "ruff>=0.15",
45
- "ty>=0.0.29",
46
+ "ty>=0.0.31",
46
47
  ]
47
48
  docs = [
48
49
  "mkdocstrings[python]>=1",
49
- "zensical>=0.0.32",
50
+ "zensical>=0.0.33",
50
51
  ]
51
52
 
53
+ [tool.bumpversion]
54
+ commit = false
55
+ tag = true
56
+ tag_name = "v{new_version}"
57
+ tag_message = ""
58
+ push = true
59
+
52
60
  [tool.hatch.build.targets.sdist]
53
61
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
54
62
 
@@ -101,6 +109,10 @@
101
109
  sequence = [{ref = "lint"}, {ref = "test"}]
102
110
  help = "Run all formatters, static checks and tests"
103
111
 
112
+ [tool.poe.tasks.release]
113
+ cmd = "bump-my-version bump -v"
114
+ help = "Create and push a release tag (patch/minor/major)"
115
+
104
116
  [tool.poe.tasks.setup]
105
117
  sequence = [
106
118
  {cmd = "uv sync"},
@@ -249,6 +261,7 @@
249
261
 
250
262
  [dependency-groups]
251
263
  dev = [
264
+ "bump-my-version>=1.3.0",
252
265
  "poethepoet>=0.42",
253
266
  "prek>=0.3",
254
267
  "pysentry-rs>=0.4",
@@ -256,13 +269,20 @@
256
269
  "pytest-cov>=7",
257
270
  "pytest-sugar>=1",
258
271
  "ruff>=0.15",
259
- "ty>=0.0.29",
272
+ "ty>=0.0.31",
260
273
  ]
261
274
  docs = [
262
275
  "mkdocstrings[python]>=1",
263
- "zensical>=0.0.32",
276
+ "zensical>=0.0.33",
264
277
  ]
265
278
 
279
+ [tool.bumpversion]
280
+ commit = false
281
+ tag = true
282
+ tag_name = "v{new_version}"
283
+ tag_message = ""
284
+ push = true
285
+
266
286
  [tool.hatch.build.targets.sdist]
267
287
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
268
288
 
@@ -321,6 +341,10 @@
321
341
  sequence = [{ref = "lint"}, {ref = "test"}]
322
342
  help = "Run all formatters, static checks and tests"
323
343
 
344
+ [tool.poe.tasks.release]
345
+ cmd = "bump-my-version bump -v"
346
+ help = "Create and push a release tag (patch/minor/major)"
347
+
324
348
  [tool.poe.tasks.setup]
325
349
  sequence = [
326
350
  {cmd = "uv sync"},
@@ -460,19 +484,27 @@
460
484
 
461
485
  [dependency-groups]
462
486
  dev = [
487
+ "bump-my-version>=1.3.0",
463
488
  "poethepoet>=0.42",
464
489
  "prek>=0.3",
465
490
  "pytest>=9",
466
491
  "pytest-cov>=7",
467
492
  "pytest-sugar>=1",
468
493
  "ruff>=0.15",
469
- "ty>=0.0.29",
494
+ "ty>=0.0.31",
470
495
  ]
471
496
  docs = [
472
497
  "mkdocstrings[python]>=1",
473
- "zensical>=0.0.32",
498
+ "zensical>=0.0.33",
474
499
  ]
475
500
 
501
+ [tool.bumpversion]
502
+ commit = false
503
+ tag = true
504
+ tag_name = "v{new_version}"
505
+ tag_message = ""
506
+ push = true
507
+
476
508
  [tool.hatch.build.targets.sdist]
477
509
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
478
510
 
@@ -525,6 +557,10 @@
525
557
  sequence = [{ref = "lint"}, {ref = "test"}]
526
558
  help = "Run all formatters, static checks and tests"
527
559
 
560
+ [tool.poe.tasks.release]
561
+ cmd = "bump-my-version bump -v"
562
+ help = "Create and push a release tag (patch/minor/major)"
563
+
528
564
  [tool.poe.tasks.setup]
529
565
  sequence = [
530
566
  {cmd = "uv sync"},
@@ -649,6 +685,7 @@
649
685
 
650
686
  [dependency-groups]
651
687
  dev = [
688
+ "bump-my-version>=1.3.0",
652
689
  "poethepoet>=0.42",
653
690
  "prek>=0.3",
654
691
  "pysentry-rs>=0.4",
@@ -656,13 +693,20 @@
656
693
  "pytest-cov>=7",
657
694
  "pytest-sugar>=1",
658
695
  "ruff>=0.15",
659
- "ty>=0.0.29",
696
+ "ty>=0.0.31",
660
697
  ]
661
698
  docs = [
662
699
  "mkdocstrings[python]>=1",
663
- "zensical>=0.0.32",
700
+ "zensical>=0.0.33",
664
701
  ]
665
702
 
703
+ [tool.bumpversion]
704
+ commit = false
705
+ tag = true
706
+ tag_name = "v{new_version}"
707
+ tag_message = ""
708
+ push = true
709
+
666
710
  [tool.hatch.build.targets.sdist]
667
711
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
668
712
 
@@ -721,6 +765,10 @@
721
765
  sequence = [{ref = "lint"}, {ref = "test"}]
722
766
  help = "Run all formatters, static checks and tests"
723
767
 
768
+ [tool.poe.tasks.release]
769
+ cmd = "bump-my-version bump -v"
770
+ help = "Create and push a release tag (patch/minor/major)"
771
+
724
772
  [tool.poe.tasks.setup]
725
773
  sequence = [
726
774
  {cmd = "uv sync"},
@@ -844,15 +892,23 @@
844
892
 
845
893
  [dependency-groups]
846
894
  dev = [
895
+ "bump-my-version>=1.3.0",
847
896
  "poethepoet>=0.42",
848
897
  "prek>=0.3",
849
898
  "pytest>=9",
850
899
  "pytest-cov>=7",
851
900
  "pytest-sugar>=1",
852
901
  "ruff>=0.15",
853
- "ty>=0.0.29",
902
+ "ty>=0.0.31",
854
903
  ]
855
904
 
905
+ [tool.bumpversion]
906
+ commit = false
907
+ tag = true
908
+ tag_name = "v{new_version}"
909
+ tag_message = ""
910
+ push = true
911
+
856
912
  [tool.hatch.build.targets.sdist]
857
913
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
858
914
 
@@ -884,6 +940,10 @@
884
940
  sequence = [{ref = "lint"}, {ref = "test"}]
885
941
  help = "Run all formatters, static checks and tests"
886
942
 
943
+ [tool.poe.tasks.release]
944
+ cmd = "bump-my-version bump -v"
945
+ help = "Create and push a release tag (patch/minor/major)"
946
+
887
947
  [tool.poe.tasks.setup]
888
948
  sequence = [
889
949
  {cmd = "uv sync"},
@@ -1032,6 +1092,7 @@
1032
1092
 
1033
1093
  [dependency-groups]
1034
1094
  dev = [
1095
+ "bump-my-version>=1.3.0",
1035
1096
  "poethepoet>=0.42",
1036
1097
  "prek>=0.3",
1037
1098
  "pysentry-rs>=0.4",
@@ -1039,9 +1100,16 @@
1039
1100
  "pytest-cov>=7",
1040
1101
  "pytest-sugar>=1",
1041
1102
  "ruff>=0.15",
1042
- "ty>=0.0.29",
1103
+ "ty>=0.0.31",
1043
1104
  ]
1044
1105
 
1106
+ [tool.bumpversion]
1107
+ commit = false
1108
+ tag = true
1109
+ tag_name = "v{new_version}"
1110
+ tag_message = ""
1111
+ push = true
1112
+
1045
1113
  [tool.hatch.build.targets.sdist]
1046
1114
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
1047
1115
 
@@ -1079,6 +1147,10 @@
1079
1147
  sequence = [{ref = "lint"}, {ref = "test"}]
1080
1148
  help = "Run all formatters, static checks and tests"
1081
1149
 
1150
+ [tool.poe.tasks.release]
1151
+ cmd = "bump-my-version bump -v"
1152
+ help = "Create and push a release tag (patch/minor/major)"
1153
+
1082
1154
  [tool.poe.tasks.setup]
1083
1155
  sequence = [
1084
1156
  {cmd = "uv sync"},
@@ -1218,15 +1290,23 @@
1218
1290
 
1219
1291
  [dependency-groups]
1220
1292
  dev = [
1293
+ "bump-my-version>=1.3.0",
1221
1294
  "poethepoet>=0.42",
1222
1295
  "prek>=0.3",
1223
1296
  "pytest>=9",
1224
1297
  "pytest-cov>=7",
1225
1298
  "pytest-sugar>=1",
1226
1299
  "ruff>=0.15",
1227
- "ty>=0.0.29",
1300
+ "ty>=0.0.31",
1228
1301
  ]
1229
1302
 
1303
+ [tool.bumpversion]
1304
+ commit = false
1305
+ tag = true
1306
+ tag_name = "v{new_version}"
1307
+ tag_message = ""
1308
+ push = true
1309
+
1230
1310
  [tool.hatch.build.targets.sdist]
1231
1311
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
1232
1312
 
@@ -1258,6 +1338,10 @@
1258
1338
  sequence = [{ref = "lint"}, {ref = "test"}]
1259
1339
  help = "Run all formatters, static checks and tests"
1260
1340
 
1341
+ [tool.poe.tasks.release]
1342
+ cmd = "bump-my-version bump -v"
1343
+ help = "Create and push a release tag (patch/minor/major)"
1344
+
1261
1345
  [tool.poe.tasks.setup]
1262
1346
  sequence = [
1263
1347
  {cmd = "uv sync"},
@@ -1382,6 +1466,7 @@
1382
1466
 
1383
1467
  [dependency-groups]
1384
1468
  dev = [
1469
+ "bump-my-version>=1.3.0",
1385
1470
  "poethepoet>=0.42",
1386
1471
  "prek>=0.3",
1387
1472
  "pysentry-rs>=0.4",
@@ -1389,9 +1474,16 @@
1389
1474
  "pytest-cov>=7",
1390
1475
  "pytest-sugar>=1",
1391
1476
  "ruff>=0.15",
1392
- "ty>=0.0.29",
1477
+ "ty>=0.0.31",
1393
1478
  ]
1394
1479
 
1480
+ [tool.bumpversion]
1481
+ commit = false
1482
+ tag = true
1483
+ tag_name = "v{new_version}"
1484
+ tag_message = ""
1485
+ push = true
1486
+
1395
1487
  [tool.hatch.build.targets.sdist]
1396
1488
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
1397
1489
 
@@ -1429,6 +1521,10 @@
1429
1521
  sequence = [{ref = "lint"}, {ref = "test"}]
1430
1522
  help = "Run all formatters, static checks and tests"
1431
1523
 
1524
+ [tool.poe.tasks.release]
1525
+ cmd = "bump-my-version bump -v"
1526
+ help = "Create and push a release tag (patch/minor/major)"
1527
+
1432
1528
  [tool.poe.tasks.setup]
1433
1529
  sequence = [
1434
1530
  {cmd = "uv sync"},
@@ -1555,6 +1651,7 @@
1555
1651
 
1556
1652
  [dependency-groups]
1557
1653
  dev = [
1654
+ "bump-my-version>=1.3.0",
1558
1655
  "poethepoet>=0.42",
1559
1656
  "prek>=0.3",
1560
1657
  "pysentry-rs>=0.4",
@@ -1562,13 +1659,20 @@
1562
1659
  "pytest-cov>=7",
1563
1660
  "pytest-sugar>=1",
1564
1661
  "ruff>=0.15",
1565
- "ty>=0.0.29",
1662
+ "ty>=0.0.31",
1566
1663
  ]
1567
1664
  docs = [
1568
1665
  "mkdocstrings[python]>=1",
1569
- "zensical>=0.0.32",
1666
+ "zensical>=0.0.33",
1570
1667
  ]
1571
1668
 
1669
+ [tool.bumpversion]
1670
+ commit = false
1671
+ tag = true
1672
+ tag_name = "v{new_version}"
1673
+ tag_message = ""
1674
+ push = true
1675
+
1572
1676
  [tool.hatch.build.targets.sdist]
1573
1677
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
1574
1678
 
@@ -1627,6 +1731,10 @@
1627
1731
  sequence = [{ref = "lint"}, {ref = "test"}]
1628
1732
  help = "Run all formatters, static checks and tests"
1629
1733
 
1734
+ [tool.poe.tasks.release]
1735
+ cmd = "bump-my-version bump -v"
1736
+ help = "Create and push a release tag (patch/minor/major)"
1737
+
1630
1738
  [tool.poe.tasks.setup]
1631
1739
  sequence = [
1632
1740
  {cmd = "uv sync"},
@@ -1761,6 +1869,7 @@
1761
1869
 
1762
1870
  [dependency-groups]
1763
1871
  dev = [
1872
+ "bump-my-version>=1.3.0",
1764
1873
  "poethepoet>=0.42",
1765
1874
  "prek>=0.3",
1766
1875
  "pysentry-rs>=0.4",
@@ -1768,13 +1877,20 @@
1768
1877
  "pytest-cov>=7",
1769
1878
  "pytest-sugar>=1",
1770
1879
  "ruff>=0.15",
1771
- "ty>=0.0.29",
1880
+ "ty>=0.0.31",
1772
1881
  ]
1773
1882
  docs = [
1774
1883
  "mkdocstrings[python]>=1",
1775
- "zensical>=0.0.32",
1884
+ "zensical>=0.0.33",
1776
1885
  ]
1777
1886
 
1887
+ [tool.bumpversion]
1888
+ commit = false
1889
+ tag = true
1890
+ tag_name = "v{new_version}"
1891
+ tag_message = ""
1892
+ push = true
1893
+
1778
1894
  [tool.hatch.build.targets.sdist]
1779
1895
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
1780
1896
 
@@ -1833,6 +1949,10 @@
1833
1949
  sequence = [{ref = "lint"}, {ref = "test"}]
1834
1950
  help = "Run all formatters, static checks and tests"
1835
1951
 
1952
+ [tool.poe.tasks.release]
1953
+ cmd = "bump-my-version bump -v"
1954
+ help = "Create and push a release tag (patch/minor/major)"
1955
+
1836
1956
  [tool.poe.tasks.setup]
1837
1957
  sequence = [
1838
1958
  {cmd = "uv sync"},
@@ -1961,6 +2081,7 @@
1961
2081
 
1962
2082
  [dependency-groups]
1963
2083
  dev = [
2084
+ "bump-my-version>=1.3.0",
1964
2085
  "poethepoet>=0.42",
1965
2086
  "prek>=0.3",
1966
2087
  "pysentry-rs>=0.4",
@@ -1968,13 +2089,20 @@
1968
2089
  "pytest-cov>=7",
1969
2090
  "pytest-sugar>=1",
1970
2091
  "ruff>=0.15",
1971
- "ty>=0.0.29",
2092
+ "ty>=0.0.31",
1972
2093
  ]
1973
2094
  docs = [
1974
2095
  "mkdocstrings[python]>=1",
1975
- "zensical>=0.0.32",
2096
+ "zensical>=0.0.33",
1976
2097
  ]
1977
2098
 
2099
+ [tool.bumpversion]
2100
+ commit = false
2101
+ tag = true
2102
+ tag_name = "v{new_version}"
2103
+ tag_message = ""
2104
+ push = true
2105
+
1978
2106
  [tool.hatch.build.targets.sdist]
1979
2107
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
1980
2108
 
@@ -2033,6 +2161,10 @@
2033
2161
  sequence = [{ref = "lint"}, {ref = "test"}]
2034
2162
  help = "Run all formatters, static checks and tests"
2035
2163
 
2164
+ [tool.poe.tasks.release]
2165
+ cmd = "bump-my-version bump -v"
2166
+ help = "Create and push a release tag (patch/minor/major)"
2167
+
2036
2168
  [tool.poe.tasks.setup]
2037
2169
  sequence = [
2038
2170
  {cmd = "uv sync"},
@@ -2179,6 +2311,7 @@
2179
2311
 
2180
2312
  [dependency-groups]
2181
2313
  dev = [
2314
+ "bump-my-version>=1.3.0",
2182
2315
  "poethepoet>=0.42",
2183
2316
  "prek>=0.3",
2184
2317
  "pysentry-rs>=0.4",
@@ -2186,13 +2319,20 @@
2186
2319
  "pytest-cov>=7",
2187
2320
  "pytest-sugar>=1",
2188
2321
  "ruff>=0.15",
2189
- "ty>=0.0.29",
2322
+ "ty>=0.0.31",
2190
2323
  ]
2191
2324
  docs = [
2192
2325
  "mkdocstrings[python]>=1",
2193
- "zensical>=0.0.32",
2326
+ "zensical>=0.0.33",
2194
2327
  ]
2195
2328
 
2329
+ [tool.bumpversion]
2330
+ commit = false
2331
+ tag = true
2332
+ tag_name = "v{new_version}"
2333
+ tag_message = ""
2334
+ push = true
2335
+
2196
2336
  [tool.hatch.build.targets.sdist]
2197
2337
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
2198
2338
 
@@ -2251,6 +2391,10 @@
2251
2391
  sequence = [{ref = "lint"}, {ref = "test"}]
2252
2392
  help = "Run all formatters, static checks and tests"
2253
2393
 
2394
+ [tool.poe.tasks.release]
2395
+ cmd = "bump-my-version bump -v"
2396
+ help = "Create and push a release tag (patch/minor/major)"
2397
+
2254
2398
  [tool.poe.tasks.setup]
2255
2399
  sequence = [
2256
2400
  {cmd = "uv sync"},
@@ -2389,6 +2533,7 @@
2389
2533
 
2390
2534
  [dependency-groups]
2391
2535
  dev = [
2536
+ "bump-my-version>=1.3.0",
2392
2537
  "poethepoet>=0.42",
2393
2538
  "prek>=0.3",
2394
2539
  "pysentry-rs>=0.4",
@@ -2396,13 +2541,20 @@
2396
2541
  "pytest-cov>=7",
2397
2542
  "pytest-sugar>=1",
2398
2543
  "ruff>=0.15",
2399
- "ty>=0.0.29",
2544
+ "ty>=0.0.31",
2400
2545
  ]
2401
2546
  docs = [
2402
2547
  "mkdocstrings[python]>=1",
2403
- "zensical>=0.0.32",
2548
+ "zensical>=0.0.33",
2404
2549
  ]
2405
2550
 
2551
+ [tool.bumpversion]
2552
+ commit = false
2553
+ tag = true
2554
+ tag_name = "v{new_version}"
2555
+ tag_message = ""
2556
+ push = true
2557
+
2406
2558
  [tool.hatch.build.targets.sdist]
2407
2559
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
2408
2560
 
@@ -2461,6 +2613,10 @@
2461
2613
  sequence = [{ref = "lint"}, {ref = "test"}]
2462
2614
  help = "Run all formatters, static checks and tests"
2463
2615
 
2616
+ [tool.poe.tasks.release]
2617
+ cmd = "bump-my-version bump -v"
2618
+ help = "Create and push a release tag (patch/minor/major)"
2619
+
2464
2620
  [tool.poe.tasks.setup]
2465
2621
  sequence = [
2466
2622
  {cmd = "uv sync"},
@@ -2607,6 +2763,7 @@
2607
2763
 
2608
2764
  [dependency-groups]
2609
2765
  dev = [
2766
+ "bump-my-version>=1.3.0",
2610
2767
  "poethepoet>=0.42",
2611
2768
  "prek>=0.3",
2612
2769
  "pysentry-rs>=0.4",
@@ -2614,13 +2771,20 @@
2614
2771
  "pytest-cov>=7",
2615
2772
  "pytest-sugar>=1",
2616
2773
  "ruff>=0.15",
2617
- "ty>=0.0.29",
2774
+ "ty>=0.0.31",
2618
2775
  ]
2619
2776
  docs = [
2620
2777
  "mkdocstrings[python]>=1",
2621
- "zensical>=0.0.32",
2778
+ "zensical>=0.0.33",
2622
2779
  ]
2623
2780
 
2781
+ [tool.bumpversion]
2782
+ commit = false
2783
+ tag = true
2784
+ tag_name = "v{new_version}"
2785
+ tag_message = ""
2786
+ push = true
2787
+
2624
2788
  [tool.hatch.build.targets.sdist]
2625
2789
  include = ["/pkfire", "/tests", "*.md", "LICENSE"]
2626
2790
 
@@ -2679,6 +2843,10 @@
2679
2843
  sequence = [{ref = "lint"}, {ref = "test"}]
2680
2844
  help = "Run all formatters, static checks and tests"
2681
2845
 
2846
+ [tool.poe.tasks.release]
2847
+ cmd = "bump-my-version bump -v"
2848
+ help = "Create and push a release tag (patch/minor/major)"
2849
+
2682
2850
  [tool.poe.tasks.setup]
2683
2851
  sequence = [
2684
2852
  {cmd = "uv sync"},
@@ -11,14 +11,23 @@ from syrupy.assertion import SnapshotAssertion
11
11
  "enable_pypi",
12
12
  [pytest.param(True, id="pypi"), pytest.param(False, id="no_pypi")],
13
13
  )
14
+ @pytest.mark.parametrize(
15
+ "enable_container",
16
+ [
17
+ pytest.param(True, id="container"),
18
+ pytest.param(False, id="no_container"),
19
+ ],
20
+ )
14
21
  def test_docs_features(
15
22
  render_template: Callable[..., Path],
16
23
  snapshot: SnapshotAssertion,
17
24
  *,
25
+ enable_container: bool,
18
26
  enable_pypi: bool,
19
27
  ) -> None:
20
28
  rendered = render_template(
21
29
  project_visibility="public",
30
+ enable_container=enable_container,
22
31
  enable_pypi=enable_pypi,
23
32
  enable_docs=True,
24
33
  )
File without changes
File without changes
File without changes