You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-16Lines changed: 13 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,23 +3,23 @@
3
3
A Python project template robust enough to follow up [cookiecutter-hypermodern-python]
4
4
5
5
# Caveat
6
-
I really believe this idea has a lot of good ideas and best practices, however creating it is a ton of work.
6
+
I really believe this idea has a lot of good ideas and best practices, however, creating it is a ton of work.
7
7
8
8
There is definitely a lot left to do before this project is truly a daily driver, but I think there are just a few more pieces missing from this being at least useful in many cases.
9
9
10
-
If you have any interest in this project please don't hesitate to reach out!
11
-
Any and all advice, support, PR's, etc are welcome and would be greatly appreciated.
10
+
If you have any interest in this project, please don't hesitate to reach out!
11
+
Any advice, support, PR's, etc. are welcome and would be greatly appreciated.
12
12
13
13
14
14
# Why does this project exist?
15
15
Unfortunately, the [Hypermodern Python Cookiecutter] is no longer maintained nor modern.
16
16
While it will always have a place in my heart, there have been far too many improvements in Python tooling to keep using it as is.
17
17
18
-
For a while I maintained [a personal fork](https://github.com/56kyle/cookiecutter-hypermodern-python) that I would update, however when it came time to switch
19
-
to new tooling such as [ruff], [uv], [maturin], etc, I found the process of updating the existing tooling to be extremly painful.
18
+
For a while I maintained [a personal fork](https://github.com/56kyle/cookiecutter-hypermodern-python) that I would update, however, when it came time to switch
19
+
to new tooling such as [ruff], [uv], [maturin], etc., I found the process of updating the existing tooling to be extremely painful.
20
20
21
-
The [Hypermodern Python Cookiecutter] remains as a fantastic sendoff point for devs interested in building a 2021style Python Package, but there were
22
-
a handfull of issues with it that prevented it from being able to adapt to new Python developments over the years.
21
+
The [Hypermodern Python Cookiecutter] remains as a fantastic sendoff point for devs interested in building a 2021-style Python Package. However, there were
22
+
a handful of issues with it that prevented it from being able to adapt to new Python developments over the years.
23
23
24
24
# Okay, so what's different this time?
25
25
The [Robust Python Cookiecutter] exists to solve a few main concerns
@@ -30,7 +30,7 @@ The [Robust Python Cookiecutter] exists to solve a few main concerns
30
30
-[Project Neglect](#project-neglect)
31
31
32
32
33
-
## Template Update Propogation
33
+
## Template Update Propagation
34
34
One of the main issues I encountered with [my personal fork] of the [Hypermodern Python Cookiecutter] was that any change
35
35
I made to my repos would mean a later conflict if I tried to rerun [cookiecutter] to sync a change from a different project.
36
36
@@ -42,9 +42,9 @@ in the pyproject.toml.
42
42
43
43
44
44
## Project Domain Expansion
45
-
Now, I'm not one to advocate for mixing languages together in a project. However, there is a really unique case that has arisen with the creation of [maturin].
45
+
Now, I'm not one to advocate for mixing languages in a project. However, there is a unique case that has arisen with the creation of [maturin].
46
46
47
-
There are a plethora of great projects such as [ruff], [uv], [polars], [just], etc all making use of [maturin] to get the performance improvements of [rust] while
47
+
There are a plethora of great projects such as [ruff], [uv], [polars], [just], etc. all making use of [maturin] to get the performance improvements of [rust] while
48
48
submitting their package to both pypi and crates.io
49
49
50
50
Now, this definitely is not required by any means to make a good Python package, however this pattern only seems to be picking up momentum and has honestly been a massive boon
@@ -60,9 +60,6 @@ Additionally, the [Robust Python Cookiecutter] is designed with both normal and
60
60
a quick [rust] module for performance or you are trying to publish a series of crates and packages, either case will be handled using a setup inspired by [polars].
61
61
62
62
63
-
64
-
65
-
66
63
## Documenting Tooling Decisions
67
64
One of the really stand out features of the [Hypermodern Python Cookiecutter] was its incredibly detailed documentation.
68
65
It did a pretty great job of describing the tooling to use, but there was a distinct lack of ***why*** these decisions were made.
@@ -72,11 +69,11 @@ It may seem like a small detail, but detailing why a decision was made has an in
72
69
Rather than having to go through a mini crusade to determine whether we use [poetry] or [uv], we can just point to the
73
70
[existing reasoning](https://cookiecutter-robust-python.readthedocs.io/en/latest/topics/02_dependency_management.md#option-2--term--poetry) to see if it still is true or not.
74
71
75
-
Overall it's rather rare that people debate over tooling for no reason. Most things have merit in some cases, and a large goal of this template is identifying the tools that have the most merit in almost all cases.
72
+
Overall, it's rather rare that people debate over tooling for no reason. Most things have merit in some cases, and a large goal of this template is identifying the tools that have the most merit in almost all cases.
76
73
77
74
## CI/CD Vendor Lock
78
75
Now don't get me wrong, I love [github-actions] and do pretty much everything in my power to avoid [bitbucket-pipelines].
79
-
However, not all jobs have the luxury of github, and I would love to be able to just use the same template for both my personal and professional projects.
76
+
However, not all jobs have the luxury of GitHub, and I would love to be able to just use the same template for both my personal and professional projects.
80
77
81
78
The [Robust Python Cookiecutter] focuses on being as modular as possible for areas that connect to the CI/CD pipeline. Additionally, there will always be either alternative
82
79
CI/CD options or at a minimum basic examples of what the translated CI/CD pipeline would look like.
@@ -94,7 +91,7 @@ implementing best practices in their python packages.
94
91
95
92
However, Open Source work is draining, and is especially so for a project template including metacode.
96
93
97
-
I can guarantee that if the [Robust Python Cookiecutter] ever sees any amount of users I will immediately transfer it to an organization to enable at least a handful
94
+
I can guarantee that if the [Robust Python Cookiecutter] ever sees any number of users, I will immediately transfer it to an organization to enable at least a handful
98
95
of trusted individuals to ensure the project is taken care of.
0 commit comments