diff --git a/releaser/DEVELOPMENT.md b/releaser/DEVELOPMENT.md index 6d0c6d5..3fdc386 100644 --- a/releaser/DEVELOPMENT.md +++ b/releaser/DEVELOPMENT.md @@ -1,23 +1,7 @@ # Releaser Development -- The connection issues explained in "Troubleshooting" might be related to some problem deep inside the Python libraries. - Some users tried [cli/cli](https://github.com/cli/cli), which is written in golang, as an alternative to **Releaser** - (see [msys2/msys2-installer#36](https://github.com/msys2/msys2-installer/pull/36)). - In fact, when the Python version of **Releaser** was written, `cli` was evaluated as an alternative to PyGitHub. - `gh release` was (and still is) not flexible enough to update the reference of a release, without deleting and - recreating it (see [cli.github.com: manual/gh_release_create](https://cli.github.com/manual/gh_release_create)). - Deletion and recreation is unfortunate, because it notifies all the watchers of a repository - (see [eine/tip#111](https://github.com/eine/tip/issues/111)). - Nevertheless, it might be desirable to evaluate using `gh release upload` (see [cli.github.com: manual/gh_release_upload](https://cli.github.com/manual/gh_release_upload)) in **Releaser**. - - Login through SSH is not supported by `cli` (see [cli/cli#3715](https://github.com/cli/cli/issues/3715)); however, - on GitHub Actions a token is available `${{ github.token }}` and `cli` is installed by default. - -- In order to avoid **Releaser** and the dependencies being installed at runtime, we should add a workflow to build a - container image and push it to the GitHub Container Registry (say `ghcr.io/pyTooling/Releaser`). - Then, update `action.yml` to use that image instead of the `Dockerfile`. - That would remove the performance penalty of having additional dependencies (such as - [pyTooling/pyAttributes](https://github.com/pyTooling/pyAttributes) or - [willmcgugan/rich](https://github.com/willmcgugan/rich)). +- [pyTooling/pyAttributes](https://github.com/pyTooling/pyAttributes) or + [willmcgugan/rich](https://github.com/willmcgugan/rich) might be used to enhance the UX. - It might be desirable to have pyTooling.Version.SemVersion handle the regular expression from [semver.org](https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string), and use diff --git a/releaser/README.md b/releaser/README.md index 4949b53..16cf0a2 100644 --- a/releaser/README.md +++ b/releaser/README.md @@ -48,6 +48,20 @@ as assets. In this context, one of the main use cases of **Releaser** is pushing artifacts as release assets. Thus, the name of the Action. +GitHub provides an official CLI tool, written in golang: [cli/cli](https://github.com/cli/cli). +When the Python version of **Releaser** was written, `cli` was evaluated as an alternative to *PyGitHub*. +`gh release` was (and still is) not flexible enough to update the reference of a release, without deleting and +recreating it (see [cli.github.com: manual/gh_release_create](https://cli.github.com/manual/gh_release_create)). +Deletion and recreation is unfortunate, because it notifies all the watchers of a repository +(see [eine/tip#111](https://github.com/eine/tip/issues/111)). +However, [cli.github.com: manual/gh_release_upload](https://cli.github.com/manual/gh_release_upload) handles uploading +artifacts as assets faster and with better stability for larger files than *PyGitHub* +(see [msys2/msys2-installer#36](https://github.com/msys2/msys2-installer/pull/36)). +Furthermore, the GitHub CLI is installed on GitHub Actions' default virtual environments. +Although `gh` does not support login through SSH (see [cli/cli#3715](https://github.com/cli/cli/issues/3715)), on GitHub +Actions a token is available `${{ github.token }}`. +Therefore, **Releaser** uses `gh release upload` internally. + ## Usage The following block shows a minimal YAML workflow file: