Skip to content

Commit 7ae687a

Browse files
ee7petertseng
authored andcommitted
fetch-configlet: rename release assets
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#363 exercism/configlet#24 exercism/configlet#705
1 parent 804caaa commit 7ae687a

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

bin/fetch-configlet

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ get_download_url() {
2424
local latest='https://api.github.com/repos/exercism/configlet/releases/latest'
2525
local arch
2626
case "$(uname -m)" in
27-
*64*) arch='64bit' ;;
28-
*686*) arch='32bit' ;;
29-
*386*) arch='32bit' ;;
30-
*) arch='64bit' ;;
27+
x86_64) arch='x86-64' ;;
28+
*686*) arch='i386' ;;
29+
*386*) arch='i386' ;;
30+
*) arch='x86-64' ;;
3131
esac
32-
local suffix="${os}-${arch}.${ext}"
32+
local suffix="${os}_${arch}.${ext}"
3333
curl "${curlopts[@]}" --header 'Accept: application/vnd.github.v3+json' "${latest}" |
3434
grep "\"browser_download_url\": \".*/download/.*/configlet.*${suffix}\"$" |
3535
cut -d'"' -f4
@@ -48,7 +48,7 @@ main() {
4848

4949
local os
5050
case "$(uname)" in
51-
Darwin*) os='mac' ;;
51+
Darwin*) os='macos' ;;
5252
Linux*) os='linux' ;;
5353
Windows*) os='windows' ;;
5454
MINGW*) os='windows' ;;
@@ -58,8 +58,8 @@ main() {
5858

5959
local ext
6060
case "${os}" in
61-
windows*) ext='zip' ;;
62-
*) ext='tgz' ;;
61+
windows*) ext='zip' ;;
62+
*) ext='tar.gz' ;;
6363
esac
6464

6565
echo "Fetching configlet..." >&2

0 commit comments

Comments
 (0)