copier-python 0.5.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.5.0 → copier_python-0.7.0}/PKG-INFO +1 -1
  2. {copier_python-0.5.0 → copier_python-0.7.0}/docs/project-release.md +12 -3
  3. {copier_python-0.5.0 → copier_python-0.7.0}/docs/releasing.md +12 -3
  4. {copier_python-0.5.0 → copier_python-0.7.0}/pyproject.toml +18 -6
  5. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_docs.ambr +249 -10
  6. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_pyproject.ambr +234 -66
  7. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_readme.ambr +98 -4
  8. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_docs.py +9 -0
  9. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_readme.py +11 -1
  10. {copier_python-0.5.0 → copier_python-0.7.0}/.gitignore +0 -0
  11. {copier_python-0.5.0 → copier_python-0.7.0}/CONTRIBUTING.md +0 -0
  12. {copier_python-0.5.0 → copier_python-0.7.0}/LICENSE +0 -0
  13. {copier_python-0.5.0 → copier_python-0.7.0}/README.md +0 -0
  14. {copier_python-0.5.0 → copier_python-0.7.0}/copier_python/__init__.py +0 -0
  15. {copier_python-0.5.0 → copier_python-0.7.0}/copier_python/py.typed +0 -0
  16. {copier_python-0.5.0 → copier_python-0.7.0}/docs/contributing.md +0 -0
  17. {copier_python-0.5.0 → copier_python-0.7.0}/docs/development/requirements.md +0 -0
  18. {copier_python-0.5.0 → copier_python-0.7.0}/docs/development/updates.md +0 -0
  19. {copier_python-0.5.0 → copier_python-0.7.0}/docs/development/workflow.md +0 -0
  20. {copier_python-0.5.0 → copier_python-0.7.0}/docs/index.md +0 -0
  21. {copier_python-0.5.0 → copier_python-0.7.0}/docs/license.md +0 -0
  22. {copier_python-0.5.0 → copier_python-0.7.0}/docs/project-creation.md +0 -0
  23. {copier_python-0.5.0 → copier_python-0.7.0}/docs/project-development.md +0 -0
  24. {copier_python-0.5.0 → copier_python-0.7.0}/docs/project-setup.md +0 -0
  25. {copier_python-0.5.0 → copier_python-0.7.0}/docs/project-updates.md +0 -0
  26. {copier_python-0.5.0 → copier_python-0.7.0}/docs/requirements.md +0 -0
  27. {copier_python-0.5.0 → copier_python-0.7.0}/docs/setup.md +0 -0
  28. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__init__.py +0 -0
  29. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_compose.ambr +0 -0
  30. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_contributing.ambr +0 -0
  31. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_dockerfile.ambr +0 -0
  32. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_license.ambr +0 -0
  33. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_workflows.ambr +0 -0
  34. {copier_python-0.5.0 → copier_python-0.7.0}/tests/__snapshots__/test_zensical.ambr +0 -0
  35. {copier_python-0.5.0 → copier_python-0.7.0}/tests/conftest.py +0 -0
  36. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_compose.py +0 -0
  37. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_contributing.py +0 -0
  38. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_dockerfile.py +0 -0
  39. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_license.py +0 -0
  40. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_pyproject.py +0 -0
  41. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_structure.py +0 -0
  42. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_template.py +0 -0
  43. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_version.py +0 -0
  44. {copier_python-0.5.0 → copier_python-0.7.0}/tests/test_workflows.py +0 -0
  45. {copier_python-0.5.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.5.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,21 +38,29 @@ 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",
44
45
  "pysentry-rs>=0.4",
45
- "pytest>=9.0",
46
- "pytest-cov>=7.0",
47
- "pytest-sugar>=1.0",
48
- "syrupy>=4.0",
46
+ "pytest>=9",
47
+ "pytest-cov>=7",
48
+ "pytest-sugar>=1",
49
+ "syrupy>=5",
49
50
  "ruff>=0.15",
50
- "ty>=0.0.26",
51
+ "ty>=0.0.31",
51
52
  ]
52
53
  docs = [
53
- "zensical>=0.0.30",
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