Things I'd like to automate:
- From tag to PyPi -- ideally, to test-pypi on every tagged commit (https://github.com/marketplace/actions/pypi-publish) -- and the actual release would be a special action I just click on. It's not that it takes a lot of time, but I'm always nervous I mess something up with the command line, forget to delete a file, git clean, etc. -- I very diligently work through the
release-checklist to avoid that. Literally signing things off.
- Auto-formatting -- I tend to clean up the formatting of the lexers every time close to release, at least the worst offenders. I use
autopep8 at the moment, would rather apply flake8 or black on the entire codebase.
- Auto-check that the new arguments like URL etc. are present on new lexers
- Auto-check
.. versionadded:: is there -- costs me a lot of time to open up every Lexer close to release and make sure it's present and in the right format (i.e. 2.17.0 vs. 2.17)
- Actually get all checks working/passing (i.e. the additional checkers I wrote and possibly PyLint).
check_whitespace_tokens and check_repeated_tokens need an expected-fail list so we can whitelist currently existing lexers until we fix those, but new lexers should always pass those tests.
- Verify all PR numbers closed/merged since last release are mentioned in the
CHANGES file. I'm pretty good at assigning tasks to milestones now, but I still miss things in the CHANGES file, and it's super time consuming to open 100 tabs, go through each item one-by-item, check the PR number/issue number is present, etc. If there was a way to auto-generate the changelog that would be even better, but my experience is that those look pretty ugly and some manual checkup is fine.
I'll get to the release in a moment, thanks for the offer though!
Originally posted by @Anteru in #2576 (comment)
Things I'd like to automate:
release-checklistto avoid that. Literally signing things off.autopep8at the moment, would rather applyflake8orblackon the entire codebase... versionadded::is there -- costs me a lot of time to open up every Lexer close to release and make sure it's present and in the right format (i.e.2.17.0vs.2.17)check_whitespace_tokensandcheck_repeated_tokensneed an expected-fail list so we can whitelist currently existing lexers until we fix those, but new lexers should always pass those tests.CHANGESfile. I'm pretty good at assigning tasks to milestones now, but I still miss things in theCHANGESfile, and it's super time consuming to open 100 tabs, go through each item one-by-item, check the PR number/issue number is present, etc. If there was a way to auto-generate the changelog that would be even better, but my experience is that those look pretty ugly and some manual checkup is fine.I'll get to the release in a moment, thanks for the offer though!
Originally posted by @Anteru in #2576 (comment)