Good stuff! I have come to many of the same conclusions and even many of the same implementations—especially Make as the primary developer interface to a project.
My variations include:
avoidance of external virtual environment and dependency management (poetry, pipenv, etc.) because they do not yet provide enough value for their costs (given my particular value weightings)
Neat. Thank you for the compliment and for sharing. I really like the conditional definition of release in the second example. I’m going to meditate on that a bit and see if there’s a way I can safeguard some tasks similarly. Our releases are done on CI; no one can should push from local builds but I think I’ve got some other tasks worth guarding.
Good stuff! I have come to many of the same conclusions and even many of the same implementations—especially Make as the primary developer interface to a project.
My variations include:
Here’s a representative example of the style of Makefile I use: https://github.com/flowoilwell/otable/blob/master/Makefile
Here’s a slightly more complex example; I especially like how coverage is done in this project: https://github.com/benji-york/manuel/blob/master/Makefile
Neat. Thank you for the compliment and for sharing. I really like the conditional definition of
release
in the second example. I’m going to meditate on that a bit and see if there’s a way I can safeguard some tasks similarly. Our releases are done on CI; no onecanshould push from local builds but I think I’ve got some other tasks worth guarding.I’m glad you saw something interesting there.
For a slightly wilder Make experiment, check out this alternative way of specifying PHONY targets: https://twitter.com/benji_york/status/1550138533494628357