diff --git a/.goreleaser.yml b/.goreleaser.yml index bc5af607..ed930712 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -56,17 +56,36 @@ brews: description: "CLI task runner for productive developers - a better alternative to make" homepage: "https://lets-cli.org/" license: "MIT" - repository: + # do not publish prereleases (e.g. v1.0.0-rc1) to the main formula + skip_upload: auto + conflicts: + - lets-beta + repository: &homebrew-tap owner: lets-cli name: homebrew-tap token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}" directory: Formula + # prerelease channel: published ONLY for prerelease tags, + # installable via `brew install lets-cli/tap/lets-beta` + - name: lets-beta + description: "CLI task runner for productive developers - a better alternative to make (prerelease channel)" + homepage: "https://lets-cli.org/" + license: "MIT" + # skip_upload is a string in goreleaser (compared against "true"/"auto" + # after template rendering), so the quoted template is intentional + skip_upload: '{{ if .Prerelease }}false{{ else }}true{{ end }}' + conflicts: + - lets + repository: *homebrew-tap + directory: Formula aurs: - name: lets-bin homepage: "https://lets-cli.org/" description: "CLI task runner for productive developers - a better alternative to make" license: "MIT" + # do not publish prereleases to AUR + skip_upload: auto maintainers: - 'Kindritskiy Maksym ' contributors: diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index ba1ffc9a..d0ad2640 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -5,6 +5,7 @@ title: Changelog ## [Unreleased](https://github.com/lets-cli/lets/releases/tag/v0.0.X) +* `[Changed]` Prerelease tags (e.g. `v0.0.62-rc1`) are no longer published to the Homebrew tap `lets` formula or AUR; they are published to a new opt-in `lets-beta` formula instead (`brew install lets-cli/tap/lets-beta`). * `[Fixed]` `source <(lets completion -s zsh)` no longer hangs: skip terminal background-color detection when lets runs outside the terminal's foreground process group (e.g. inside process substitution), where the query would suspend the process with SIGTTIN/SIGTTOU. * `[Fixed]` Add spacing between the `EXAMPLES` help title and its examples. * `[Fixed]` Align styled error output to the left while preserving the padded error badge. diff --git a/docs/docs/installation.mdx b/docs/docs/installation.mdx index 16a69ba3..5d2263e2 100644 --- a/docs/docs/installation.mdx +++ b/docs/docs/installation.mdx @@ -11,20 +11,21 @@ brew tap lets-cli/tap brew install lets-cli/tap/lets ``` -## Arch - -Install the latest binary release from [AUR lets-bin](https://aur.archlinux.org/packages/lets-bin/). +### Prereleases -If you use `yay` as your AUR helper: +The main `lets` formula only receives stable releases. Prerelease versions (e.g. `v0.0.62-rc1`) are published +to a separate `lets-beta` formula: ```bash -yay -S lets-bin +brew install lets-cli/tap/lets-beta ``` -You can also install the bleeding edge version from [AUR lets-git](https://aur.archlinux.org/packages/lets-git/). +Both formulas install the `lets` binary, so they conflict with each other — uninstall one before installing the +other. To switch back to stable: ```bash -yay -S lets-git +brew uninstall lets-cli/tap/lets-beta +brew install lets-cli/tap/lets ``` ## Shell Script @@ -70,6 +71,22 @@ To install into a custom lets home directory, set `LETS_HOME`. The binary will b curl -fsSL https://lets-cli.org/install.sh | LETS_HOME=$HOME/tools/lets bash ``` +## Arch + +Install the latest binary release from [AUR lets-bin](https://aur.archlinux.org/packages/lets-bin/). + +If you use `yay` as your AUR helper: + +```bash +yay -S lets-bin +``` + +You can also install the bleeding edge version from [AUR lets-git](https://aur.archlinux.org/packages/lets-git/). + +```bash +yay -S lets-git +``` + ## Binary (Manual) Download the version you need for your platform from [Lets Releases](https://github.com/lets-cli/lets/releases). @@ -128,32 +145,32 @@ If your `lets` version is below `0.0.30`, use the shell script and specify the l brew upgrade lets-cli/tap/lets ``` -### Arch +### Shell Script -AUR packages provide the latest version. +Run the install script again to update `lets` to the latest version. ```bash -yay -Syu lets-bin +curl -fsSL https://lets-cli.org/install.sh | bash ``` -For the bleeding edge package: +To update to a specific version: ```bash -yay -Syu lets-git +curl -fsSL https://lets-cli.org/install.sh | LETS_VERSION=v0.0.21 bash ``` -### Shell Script +### Arch -Run the install script again to update `lets` to the latest version. +AUR packages provide the latest version. ```bash -curl -fsSL https://lets-cli.org/install.sh | bash +yay -Syu lets-bin ``` -To update to a specific version: +For the bleeding edge package: ```bash -curl -fsSL https://lets-cli.org/install.sh | LETS_VERSION=v0.0.21 bash +yay -Syu lets-git ``` ### Binary