You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before this commit, the release assets were named like:
configlet-linux-64bit.tgz
configlet-mac-64bit.tgz
configlet-windows-64bit.zip
configlet_4.0.0-beta.7_checksums_sha256.txt
With this commit, the next release will have assets named:
configlet_4.0.0-beta.8_checksums_sha256.txt
configlet_4.0.0-beta.8_linux_x86-64.tar.gz
configlet_4.0.0-beta.8_macos_x86-64.tar.gz
configlet_4.0.0-beta.8_windows_x86-64.zip
Where we:
- Make the archive naming format match that of the checksums file
- Add a version string
- Delimit with an underscore, not a hyphen
- Rename `64bit` to `x86-64`
- Rename `32bit` to `i386`
- Rename `tgz` to `tar.gz`
- Rename `mac` to `macos`
So far, we have only released configlet for x86-64, and the release
assets have always had an ambiguous `64bit` in the names. This naming
format was old (added by d4c6e26836a5, 2020-10-09), and was ultimately
inherited from:
- the `exercism/configlet-v2` releases [1]
- the `exercism/cli` releases [2][3]
However, we're getting closer to adding releases for other 64-bit
architectures, so it's especially important to change the names now.
The rationale for the particular use of underscores and hyphens is:
- We want to have the version string in the asset filenames
- Configlet uses version strings that are compatible with the Semantic
Versioning spec
- It is more common to use hyphens in executable names than
underscores
- The Semantic Versioning spec forbids using an underscore, and
specifies that prerelease versions can use hyphens [4]:
Section 9:
A pre-release version MAY be denoted by appending a hyphen and a
series of dot separated identifiers immediately following the patch
version. Identifiers MUST comprise only ASCII alphanumerics and
hyphens [0-9A-Za-z-].
[...]
Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92
That is, there's an argument for the format of:
some-app_1.0.0-beta.1_linux_x86-64.tar.gz
rather than:
some_app-1.0.0-beta.1-linux-x86_64.tar.gz
because `_` fully separates the components of the first, and `-` does
not separate the components of the second (due to the `-beta` part of
the version string). This does ignore the convention of `_` as an
inter-word space, however.
[1] https://github.com/exercism/v2-configlet/releases
[2] exercism/cli#700 (comment)
[3] https://github.com/exercism/cli/releases/tag/v3.0.12
[4] https://semver.org/exercism/configlet#363exercism/configlet#24exercism/configlet#705
0 commit comments