argotorg / argotorg/solidity

Replace ``commit_hash.txt`` with git archive placeholders (and try also replacing ``prerelease.txt``)

Open
#9,720 20 comments 0 reactions 0 assignees View on GitHub
build system :building_construction: documentation :book: medium effort medium impact must have
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.