Replace ``commit_hash.txt`` with git archive placeholders (and try also replacing ``prerelease.txt``)
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
The github source archives are invalid in that they are lacking proper ``commit_hash.txt`` and ``prerelease.txt`` files and we instead have to manually pack another source archive, which is confusing and error-prone.
The github source archive is created with ``git archive`` and https://git-scm.com/docs/gitattributes#_export_subst would allow us to create a ``commit_hash.txt`` file with one of the placeholders like https://git-scm.com/docs/git-log#Documentation/git-log.txt-emHem
Then our build scripts could check if the ``commit_hash.txt`` contains that placeholder and assume it's a git checkout and determine the hash using ``git`` and otherwise assume it's a release archive and that ``commit_hash.txt`` contains the proper commit hash.
``prerelease.txt`` could be replaced for example by inspecting the top of the changelog - or maybe https://git-scm.com/docs/git-log#Documentation/git-log.txt-emdem can be used to check for tags in the decorators.
Contributor guide
Research direction
Start by locating the build scripts that generate or read commit_hash.txt and prerelease.txt, then inspect how git archive exports tracked files and placeholders. Confirm the behavior for both a Git checkout and a GitHub source archive; done means both files contain usable release metadata without manually repacking the archive.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100