Changelog 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. # Version 0.16.3 (2024-11-27)
  2. * python: use `hatch run` or `poetry run` when running Python in these build
  3. environments
  4. # Version 0.16.2 (2024-11-27)
  5. * python: really prefer `hatch test` over `python3 manage.py test`
  6. (see v0.16.1)
  7. # Version 0.16.1 (2024-11-27)
  8. * python: prefer `hatch test` over `python3 manage.py test` in case of
  9. a django application using the hatch buildsystem. `hatch` is preferable here,
  10. since it prepares the virtual environment.
  11. # Version 0.16.0 (2024-10-22)
  12. * apply timeouts during `makefilet` download (previously the download could
  13. get stuck)
  14. * avoid re-downloading makefilet during `make clean`
  15. * python: use hatch's new commands "fmt" (since v1.8) and "test" (since v1.10)
  16. * The previous approch (`hatch run fmt` and `hatch run test`) relied on
  17. custom actions being named in a specific way.
  18. # Version 0.15.0 (2024-03-09)
  19. * deb: generate proper package name during `init-deb`
  20. (replacing underscores with hyphens)
  21. * python: add "upload" actions for poetry and hatchling
  22. * python: add "build" (`dist`) actions for poetry and hatchling
  23. * add downloading of external modules via `MAKEFILET_MODULES`
  24. * add default fallback URL for downloading `makefilet`.
  25. The download URLs can be configured via `MAKEFILET_DOWNLOAD_URL_TEMPLATES`.
  26. This requires an update of your embedded `makefilet-download-ondemand.mk`.
  27. # Version 0.14.4 (2023-12-15)
  28. * python/debian: allow early setting of `PYPI_UPLOAD_TARGET` and
  29. `DEBIAN_UPLOAD_TARGET`
  30. (previously these variables needed to be set *after* including makefilet in
  31. your `Makefile`)
  32. * python: remove check for existing pypirc section for `PYPI_UPLOAD_TARGET`
  33. (the default pypi target URL can be named explicitly without a section with
  34. the same name)
  35. # Version 0.14.3 (2023-12-10)
  36. * python: do not complain about a missing `pyproject.toml` file
  37. # Version 0.14.2 (2023-11-19)
  38. * python: allow customization of translation target (`django-translate`)
  39. via `DJANGO_COMPILEMESSAGES_ARGS` and `DJANGO_MAKEMESSAGES_ARGS`
  40. # Version 0.14.1 (2023-10-04)
  41. * python: deprecate 'DISABLE_CUSTOM_VIRTUALENV' in favor of the new
  42. 'PYTHON_VIRTUALENV_ENABLE'. The future behavior regarding virtual
  43. environments will change from "enabled by default" to "disabled by default".
  44. (Build systems like 'poetry' and 'hatch' now tend to hide virtual
  45. environments from developers.)
  46. * nodejs: do not rely on a valid version string in `package.json`.
  47. No we handle an empty version string gracefully.
  48. This should reflect the reality of many projects using `package.json` merely
  49. for dependency tracking.
  50. # Version 0.14.0 (2023-07-01)
  51. * python: enable Python support, if `pyproject.toml` exists.
  52. Previously only `setup.py` was used as an indicator file.
  53. * python: try to use `poetry` or `hatch` operations for test/lint/style
  54. (see `PYTHON_BUILD_SYSTEM`, `PYTHON_TEST_RUNNER`, `PYTHON_LINT_RUNNER` and
  55. `PYTHON_STYLE)_RUNNER`)
  56. # Version 0.13.0 (2023-02-16)
  57. * allow selection of a specific GPG key when signing the release tarball
  58. via `SIGNATURE_EMAIL`
  59. * fix interactivity issue with `init-deb` target
  60. (only relevant for hosts with more than one CPU)
  61. * remove out-of-tree build directory for `deb` packages in the context of a
  62. project with a git submodule
  63. (i.e. `build/debian/PROJECT-VERSION` is removed right after the build)
  64. # Version 0.12.0 (2022-11-02)
  65. * `makefilet-download-ondemand.mk`: change reference to "latest" commit from
  66. `master` to `main` (the branch was renamed)
  67. * Use `unstable` as the default release distribution when updating
  68. `debian/changelog`.
  69. Previously Ubuntu-derived systems used their current release name, thus
  70. preventing the name from being predictable.
  71. The previous behavior can be restored by setting `DEB_RELEASE_DISTRIBUTION`
  72. to an empty value.
  73. (Closes: #38)
  74. * allow `zstd` for `RELEASE_TAR_COMPRESSION_BIN`
  75. * rename `DISABLE_PYTHON_FLAKE8` to `DISABLE_PYTHON_LINT_FLAKE8`
  76. (clarifying that it refers to linting, only)
  77. * replace `DISABLE_PYTHON_BLACK` with `ENABLE_PYTHON_LINT_BLACK`, thus
  78. disabling `black` for style checks (`lint`) by default
  79. # Version 0.11.0 (2022-06-25)
  80. * Output synchronization (separation of output from parallel running targets)
  81. can be configured via the `MAKEFILET_OUTPUT_SYNCHRONIZATION` variable.
  82. Its value is handed over to `make`'s `--output-sync` argument.
  83. Typical values are `line` (default), `target` or `none`.
  84. # Version 0.10.0 (2021-10-31)
  85. * shell:
  86. * allow overriding of all variables
  87. * replace "SHELLCHECK_CALL" with "SHELLCHECK_ARGS"
  88. * introduce new variable SHELL_FILES_DIRECTORIES (default: ".")
  89. # Version 0.9.1 (2021-10-27)
  90. * release: handle VERSION indicator files nested below the project root
  91. (closes: #35)
  92. # Version 0.9.0 (2021-10-27)
  93. * ensure that changes in release-related files for npm
  94. (e.g. `package.json`) are committed via git
  95. * python:
  96. * allow disabling of flake8 lint checks via `DISABLE_PYTHON_FLAKE8=1`
  97. * allow override of files/directories used for flake8
  98. * add linting via black (can be disabled via `DISABLE_PYTHON_BLACK=1`)
  99. * add automatic formatting via black (`make style`)
  100. # Version 0.8.0 (2021-10-26)
  101. * allow selection of alternative download locations via
  102. `MAKEFILET_DOWNLOAD_URL_TEMPLATE` or `MAKEFILET_DOWNLOAD_URL`
  103. # Version 0.7.3 (2021-02-22)
  104. * fix detection of outdated makefilet version
  105. # Version 0.7.2 (2021-02-01)
  106. * fix determination of `shellcheck` path
  107. # Version 0.7.1 (2021-01-13)
  108. * fix detection of outdated makefilet version
  109. # Version 0.7.0 (2021-01-09)
  110. * python:
  111. * force removal of old "foo.egg-info/SOURCES.txt" during "clean-python"
  112. This is a workaround for https://github.com/pypa/setuptools/issues/436.
  113. (closes: #33)
  114. * python support (e.g. for venv) may be forced via MAKEFILET_ENABLE_PYTHON=1
  115. (closes: #23)
  116. * pypi2deb:
  117. * allow version specification for packages
  118. (closes: #26)
  119. * allow to run without a local debian/changelog file
  120. (closes: #25)
  121. * release:
  122. * add support for npm-based release
  123. (closes: #21)
  124. * shell:
  125. * do not disable shell-related checks by default
  126. Shell-related testing and linting can be disabled via DISABLE_SHELL_CHECK=1.
  127. * warn if shellcheck is missing
  128. * rename "test-shell" to "lint-shell"
  129. * automatically run jobs in parallel (if "-j X" is not specified)
  130. (closes: #29)
  131. * warn if the currently active version of makefilet is older than the version
  132. requested via MAKEFILET_DOWNLOAD_VERSION
  133. This may happen if makefilet is installed system-wide.
  134. (closes: #27)
  135. # Version 0.6.8 (2020-11-10)
  136. * python:
  137. * do not try to install virtualenv pre-dependencies which
  138. are part of the standard library
  139. # Version 0.6.7 (2020-11-10)
  140. * release:
  141. * tolerate untracked files during release
  142. * python:
  143. * ensure VIRTUALENV_PREDEPENDENCIES being available inside
  144. the virtualenv
  145. # Version 0.6.6 (2020-08-13)
  146. * python:
  147. * fix handling of "DISABLE_PYTHON_TESTS"
  148. # Version 0.6.5 (2020-08-12)
  149. * deb:
  150. * "test-deb" (and thus "test") does not depend on "lint-deb"
  151. anymore
  152. # Version 0.6.4 (2020-07-18)
  153. * python:
  154. * do not automatically upgrade the packages installed in the
  155. virtualenv
  156. # Version 0.6.3 (2020-07-14)
  157. * python:
  158. * finally fix the recursive virtualenv handling
  159. # Version 0.6.2 (2020-07-14)
  160. * python:
  161. * fix recursive virtualenv handling
  162. # Version 0.6.1 (2020-07-13)
  163. * python:
  164. * detect an active virtual environment and avoid entering
  165. it again
  166. # Version 0.6.0 (2020-07-13)
  167. * python:
  168. * add optional VIRTUALENV_PREDEPENDENCIES variable for
  169. emitting helpful warnings in case of missing build
  170. pre-dependencies
  171. # Version 0.5.5 (2020-06-24)
  172. * release:
  173. * add support for Makefile located in a subdirectory of
  174. a git repository
  175. # Version 0.5.4 (2020-01-09)
  176. * release:
  177. * avoid warning in case of empty BUMP_VERSION_COMMIT_FILES
  178. * handle more than three version number parts gracefully
  179. * download-ondemand:
  180. * do not hide wget error messages
  181. * makefile:
  182. * avoid accessing undefined variables
  183. * python:
  184. * fix coverage report visualization
  185. # Version 0.5.3 (2019-03-16)
  186. * release:
  187. * specify PROJECT_NAME for directory name in release tarball
  188. # Version 0.5.2 (2019-03-12)
  189. * deb:
  190. * allow override of dput call in `deb-upload` target with
  191. DEB_UPLOAD_COMMAND variable
  192. # Version 0.5.1 (2019-02-26)
  193. * fix virtualenv-related dependencies (e.g. for tests)
  194. # Version 0.5.0 (2019-02-25)
  195. * new component "python-django"
  196. * execute django-related check in "virtualenv-check" only for django projects
  197. # Version 0.4.0 (2019-02-25)
  198. * download-ondemand:
  199. * fix portability issue for *BSD
  200. * new component "python-virtualenv"
  201. * python:
  202. * "clean" depends on "clean-python"
  203. * allow disabling of tests explicitly via DISABLE_PYTHON_TESTS=1
  204. # Version 0.3.0 (2019-02-10)
  205. * deb:
  206. * suppress error messages in case of optional missing executables
  207. (e.g. dpkg-architecture)
  208. * allow arguments for lintian (see LINTIAN_ARGS)
  209. * release:
  210. * allow the filename of the bumpversion configuration to be overridden
  211. (BUMP_VERSION_CONFIG)
  212. * explicitly collect the list of files to be committed during
  213. "make release-*" (see BUMP_VERSION_FILES)
  214. * allow "BUMP_VERSION_FILES" to be overridden
  215. * fail if a file listed in "BUMP_VERSION_FILES" is missing
  216. * add "release-tar" and "release-tar-sign" targets
  217. * python:
  218. * fix execution of coverage within a virtualenv
  219. (missing python3-coverage)
  220. * allow override of test execution within a coverage run
  221. (via PYTHON_TEST_ARGS)
  222. * automatically run unittests
  223. (finishing without errors if no tests are found)
  224. * open the coverage report in a browser
  225. (only within a desktop session and if "xdg-open" is available)
  226. * fix dependency of "lint-python"
  227. (now attached to "lint" instead of "test")
  228. * new component "generic":
  229. * generate "tags" file via "ctags"
  230. * shell:
  231. * hide the shellcheck command
  232. (reducing noise in case of long lists of files)
  233. # Version 0.2.10 (2018-12-11)
  234. * release:
  235. * fix broken handling of "make release-undo" (introduced in 0.2.9)
  236. # Version 0.2.9 (2017-12-21)
  237. * release:
  238. * handle missing file ".bumpversion" gracefully
  239. * improved error message if VERSION file is missing
  240. # Version 0.2.8 (2017-11-19)
  241. * pypi2deb:
  242. * allow package-specific environment settings
  243. * improve failure detection
  244. * release: prevent successive (accidental) release commits
  245. * populate "Suggests" of deb package
  246. * documentation fixes
  247. # Version 0.2.7 (2017-08-27)
  248. * fixed recently introduced 'clean' operation
  249. # Version 0.2.6 (2017-08-27)
  250. * remove downloaded makefilet directory during 'clean'
  251. # Version 0.2.5 (2017-05-10)
  252. * fix 'install-python' due to bad 'DESTDIR' handling
  253. # Version 0.2.4 (2017-05-09)
  254. * fix path handling of 'check-dput-config' target for 'upload-deb'
  255. # Version 0.2.3 (2017-05-06)
  256. * tolerate errors in 'clean' targets
  257. * hide misleading error message for missing 'dh_listpackages' (from 'debhelper')
  258. # Version 0.2.2 (2017-05-02)
  259. * allow configurable parameters for 'install-python'
  260. * introduce the new target 'lint' for style checks
  261. * move 'flake8' check from 'test-python' to 'lint-python'
  262. # Version 0.2.1 (2017-04-29)
  263. * add minimal makefile snippet for 'download on-demand' integration into projects
  264. # Version 0.2 (2017-04-29)
  265. * calling 'flake8' on more platforms properly
  266. * deb packaging:
  267. * add 'init-deb' target (calls 'dh_make')
  268. * add deb packaging information for makefile itself (#2)
  269. * add 'test-deb' for lintian tests
  270. * allow quilt-based source format for repositories without submodules
  271. # Version 0.1 (2017-04-24)
  272. * Initial release
  273. * basic support for deb packaging, python, bumpversion, pypi2deb and shell scripts