Skip to content

Conversation

petertseng
Copy link
Member

see individual commit messages.

these commits MUST NOT be squashed when merging

kytrinyx and others added 4 commits November 17, 2022 16:08
I think we should not (as an org) encourage participation.

Individual tracks can decide differently a year from now when
Hacktoberfest rolls around again.

exercism/org-wide-files#266
This adds a label paused which lets us tag all open issues in a
repository and close them, making it easy to bulk-open them when we have
figured out the volunteering structure.

exercism/org-wide-files#266
To match style on other bullet statements in this file

exercism/org-wide-files#232
Copy link
Member

@ee7 ee7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love it. This is the kind of PR that I'd prefer too. Probably with a mild preference for merging with a merge commit, enforcing that the PR's branch is based on the latest main commit at merge time. But GitHub doesn't even have a button for "rebase on main, then merge with a merge commit", and I imagine it isn't coming soon. (GitLab is arguably a little better: https://docs.gitlab.com/ee/user/project/merge_requests/methods/).

Non-blocking comment: I'd probably have removed the "Closes:" lines from the commit messages, though. Merging those commits in this repo won't close the referenced issues in the configlet repo.

ee7 added 3 commits November 17, 2022 16:30
Before this commit, `fetch-configlet` produced no output on success:

    $ bin/fetch-configlet
    $ echo $?
    0

With this commit, it prints a message while downloading, and then prints
the downloaded configlet version and its location:

    $ bin/fetch-configlet
    Fetching configlet...
    Downloaded configlet 4.0.0-beta.7 to ./bin/configlet

exercism/configlet#459
exercism/configlet#689
From e.g. the Google Shell Style Guide [1]:

    Ensure that local variables are only seen inside a function and its
    children by using `local` when declaring them. This avoids polluting
    the global name space and inadvertently setting variables that may
    have significance outside the function.

    Declaration and assignment must be separate statements when the
    assignment value is provided by a command substitution; as the
    `local` builtin does not propagate the exit code from the command
    substitution.

[1] https://google.github.io/styleguide/shellguide.html#use-local-variables

exercism/configlet#691
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
@petertseng
Copy link
Member Author

That is a good point! I will remove the closes: lines because they do not close

@ee7
Copy link
Member

ee7 commented Nov 17, 2022

Or instead of "remove those lines", perhaps "edit them so that GitHub doesn't recognise them as lines that close issues" - the issues still have useful context for anyone that cares. But whatever you like.

@petertseng petertseng merged commit d5620c8 into exercism:main Nov 17, 2022
@petertseng petertseng deleted the orgwide branch November 17, 2022 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants