Reconcile canonical GnosysLabs/Hop publishing paths with accepted release implementation

Hop-State: A_06FN5C39XCC4JXJEAKVD5S0
Hop-Proposal: R_06FN5C2KP6Z8BKCP0KK1QZ0
Hop-Task: T_06FN3MBF98GWD4NA5PA1RWG
Hop-Attempt: AT_06FN5B04YJGZ2NFP2TJWM1R
This commit is contained in:
Hop
2026-07-11 12:38:41 -07:00
parent de99aad4d4
commit aad987e762
16 changed files with 36 additions and 36 deletions
+3 -3
View File
@@ -22,7 +22,7 @@ builds:
ldflags: ldflags:
- >- - >-
-s -w -s -w
-X githop.xyz/hop/hop/internal/hop.Version={{ .Version }} -X githop.xyz/GnosysLabs/Hop/internal/hop.Version={{ .Version }}
archives: archives:
- id: release - id: release
@@ -65,7 +65,7 @@ changelog:
release: release:
gitea: gitea:
owner: hop owner: GnosysLabs
name: hop name: Hop
draft: true draft: true
prerelease: auto prerelease: auto
+5 -5
View File
@@ -77,13 +77,13 @@ release archive, verifies its SHA-256 checksum, installs `hop` to
installs the Codex skill: installs the Codex skill:
```bash ```bash
curl -fsSL https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh | sh curl -fsSL https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh | sh
``` ```
To inspect the installer before running it: To inspect the installer before running it:
```bash ```bash
curl -fsSLO https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh curl -fsSLO https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh
less install.sh less install.sh
sh install.sh sh install.sh
``` ```
@@ -101,7 +101,7 @@ installs `hop.exe` under `%LOCALAPPDATA%\Programs\Hop`, adds it to your user
PATH, and installs the Codex skill: PATH, and installs the Codex skill:
```powershell ```powershell
irm https://githop.xyz/hop/hop/raw/branch/main/scripts/install.ps1 | iex irm https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.ps1 | iex
``` ```
### Go install — developer path ### Go install — developer path
@@ -109,7 +109,7 @@ irm https://githop.xyz/hop/hop/raw/branch/main/scripts/install.ps1 | iex
If Go 1.26 or newer is already installed: If Go 1.26 or newer is already installed:
```bash ```bash
go install githop.xyz/hop/hop/cmd/hop@latest go install githop.xyz/GnosysLabs/Hop/cmd/hop@latest
hop skill install --force hop skill install --force
``` ```
@@ -122,7 +122,7 @@ Cloning is supported, but it is the contributor/fallback path rather than the
normal product installation: normal product installation:
```bash ```bash
git clone https://githop.xyz/hop/hop.git git clone https://githop.xyz/GnosysLabs/Hop.git
cd hop cd hop
go test ./... go test ./...
go build -trimpath -o hop ./cmd/hop go build -trimpath -o hop ./cmd/hop
+1 -1
View File
@@ -3,7 +3,7 @@ package main
import ( import (
"os" "os"
"githop.xyz/hop/hop/internal/hop" "githop.xyz/GnosysLabs/Hop/internal/hop"
) )
func main() { func main() {
+1 -1
View File
@@ -1,4 +1,4 @@
module githop.xyz/hop/hop module githop.xyz/GnosysLabs/Hop
go 1.26 go 1.26
+1 -1
View File
@@ -56,7 +56,7 @@ func TestProductDocumentationUsesCanonicalGiteaHost(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
text := string(contents) text := string(contents)
if !strings.Contains(text, "githop.xyz") { if !strings.Contains(text, "githop.xyz/GnosysLabs/Hop") {
t.Errorf("%s does not name the canonical distribution host", relative) t.Errorf("%s does not name the canonical distribution host", relative)
} }
if strings.Contains(text, "raw.githubusercontent.com/hop-vcs/hop") || if strings.Contains(text, "raw.githubusercontent.com/hop-vcs/hop") ||
+1 -1
View File
@@ -508,7 +508,7 @@ func TestOpenProjectInsideFinalValidationDoesNotReacquireAcceptanceLock(t *testi
if openErr != nil { if openErr != nil {
t.Fatal(openErr) t.Fatal(openErr)
} }
case <-time.After(2 * time.Second): case <-time.After(10 * time.Second):
t.Fatal("OpenProject deadlocked by reacquiring the acceptance lock") t.Fatal("OpenProject deadlocked by reacquiring the acceptance lock")
} }
} }
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
hopskill "githop.xyz/hop/hop/skills/hop" hopskill "githop.xyz/GnosysLabs/Hop/skills/hop"
) )
type SkillInstallResult struct { type SkillInstallResult struct {
+1 -1
View File
@@ -1,7 +1,7 @@
[CmdletBinding()] [CmdletBinding()]
param( param(
[string]$GiteaUrl = $(if ($env:HOP_GITEA_URL) { $env:HOP_GITEA_URL } else { "https://githop.xyz" }), [string]$GiteaUrl = $(if ($env:HOP_GITEA_URL) { $env:HOP_GITEA_URL } else { "https://githop.xyz" }),
[string]$Repository = $(if ($env:HOP_REPOSITORY) { $env:HOP_REPOSITORY } else { "hop/hop" }), [string]$Repository = $(if ($env:HOP_REPOSITORY) { $env:HOP_REPOSITORY } else { "GnosysLabs/Hop" }),
[string]$Version = $(if ($env:HOP_VERSION) { $env:HOP_VERSION } else { "latest" }), [string]$Version = $(if ($env:HOP_VERSION) { $env:HOP_VERSION } else { "latest" }),
[string]$InstallDir = $(if ($env:HOP_INSTALL_DIR) { $env:HOP_INSTALL_DIR } else { Join-Path $env:LOCALAPPDATA "Programs\Hop" }), [string]$InstallDir = $(if ($env:HOP_INSTALL_DIR) { $env:HOP_INSTALL_DIR } else { Join-Path $env:LOCALAPPDATA "Programs\Hop" }),
[switch]$SkipSkill, [switch]$SkipSkill,
Executable → Regular
+1 -1
View File
@@ -3,7 +3,7 @@ set -eu
gitea_url=${HOP_GITEA_URL:-https://githop.xyz} gitea_url=${HOP_GITEA_URL:-https://githop.xyz}
gitea_url=${gitea_url%/} gitea_url=${gitea_url%/}
repository=${HOP_REPOSITORY:-hop/hop} repository=${HOP_REPOSITORY:-GnosysLabs/Hop}
requested_version=${HOP_VERSION:-latest} requested_version=${HOP_VERSION:-latest}
install_dir=${HOP_INSTALL_DIR:-"$HOME/.local/bin"} install_dir=${HOP_INSTALL_DIR:-"$HOME/.local/bin"}
install_skill=${HOP_INSTALL_SKILL:-1} install_skill=${HOP_INSTALL_SKILL:-1}
+2 -2
View File
@@ -15,7 +15,7 @@ New-Item -ItemType Directory -Path $fixtures, $payload | Out-Null
try { try {
$binary = Join-Path $payload "hop.exe" $binary = Join-Path $payload "hop.exe"
& go build -trimpath ` & go build -trimpath `
-ldflags "-X githop.xyz/hop/hop/internal/hop.Version=9.9.9-installer-test" ` -ldflags "-X githop.xyz/GnosysLabs/Hop/internal/hop.Version=9.9.9-installer-test" `
-o $binary (Join-Path $root "cmd/hop") -o $binary (Join-Path $root "cmd/hop")
if ($LASTEXITCODE -ne 0) { throw "Could not build installer test binary" } if ($LASTEXITCODE -ne 0) { throw "Could not build installer test binary" }
@@ -55,7 +55,7 @@ try {
& (Join-Path $root "scripts/install.ps1") ` & (Join-Path $root "scripts/install.ps1") `
-GiteaUrl "https://gitea.test" ` -GiteaUrl "https://gitea.test" `
-Repository "hop/hop" ` -Repository "GnosysLabs/Hop" `
-InstallDir $installDir ` -InstallDir $installDir `
-SkipSkill ` -SkipSkill `
-SkipPath -SkipPath
Executable → Regular
+2 -2
View File
@@ -23,7 +23,7 @@ esac
asset="hop_${os}_${arch}.tar.gz" asset="hop_${os}_${arch}.tar.gz"
mkdir -p "$tmp_dir/payload" "$tmp_dir/fixtures" "$tmp_dir/mock-bin" "$tmp_dir/home" mkdir -p "$tmp_dir/payload" "$tmp_dir/fixtures" "$tmp_dir/mock-bin" "$tmp_dir/home"
go build -trimpath \ go build -trimpath \
-ldflags '-X githop.xyz/hop/hop/internal/hop.Version=9.9.9-installer-test' \ -ldflags '-X githop.xyz/GnosysLabs/Hop/internal/hop.Version=9.9.9-installer-test' \
-o "$tmp_dir/payload/hop" "$root/cmd/hop" -o "$tmp_dir/payload/hop" "$root/cmd/hop"
tar -czf "$tmp_dir/fixtures/$asset" -C "$tmp_dir/payload" hop tar -czf "$tmp_dir/fixtures/$asset" -C "$tmp_dir/payload" hop
if command -v sha256sum >/dev/null 2>&1; then if command -v sha256sum >/dev/null 2>&1; then
@@ -67,7 +67,7 @@ HOME="$tmp_dir/home" \
PATH="$tmp_dir/mock-bin:$PATH" \ PATH="$tmp_dir/mock-bin:$PATH" \
HOP_TEST_FIXTURES="$tmp_dir/fixtures" \ HOP_TEST_FIXTURES="$tmp_dir/fixtures" \
HOP_GITEA_URL="https://gitea.test" \ HOP_GITEA_URL="https://gitea.test" \
HOP_REPOSITORY="hop/hop" \ HOP_REPOSITORY="GnosysLabs/Hop" \
HOP_INSTALL_DIR="$tmp_dir/home/bin" \ HOP_INSTALL_DIR="$tmp_dir/home/bin" \
HOP_MODIFY_PATH=0 \ HOP_MODIFY_PATH=0 \
sh "$root/scripts/install.sh" sh "$root/scripts/install.sh"
+1 -1
View File
@@ -51,4 +51,4 @@ tracks which accepted state is physically visible, allowing safe catch-up with
`hop sync` without treating a divergent folder as disposable. `hop sync` without treating a divergent folder as disposable.
For the full product direction, read the For the full product direction, read the
[product blueprint](https://githop.xyz/hop/hop/src/branch/main/docs/product-blueprint.md). [product blueprint](https://githop.xyz/GnosysLabs/Hop/src/branch/main/docs/product-blueprint.md).
+2 -2
View File
@@ -27,13 +27,13 @@ visible project folder.
macOS or Linux: macOS or Linux:
```bash ```bash
curl -fsSL https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh | sh curl -fsSL https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh | sh
``` ```
Windows PowerShell: Windows PowerShell:
```powershell ```powershell
irm https://githop.xyz/hop/hop/raw/branch/main/scripts/install.ps1 | iex irm https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.ps1 | iex
``` ```
Restart Codex Desktop, open a Git project, and ask Codex to work normally. The Restart Codex Desktop, open a Git project, and ask Codex to work normally. The
+6 -6
View File
@@ -6,7 +6,7 @@ newer; they do not need a local Go toolchain.
## macOS and Linux ## macOS and Linux
```bash ```bash
curl -fsSL https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh | sh curl -fsSL https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh | sh
``` ```
The installer: The installer:
@@ -21,7 +21,7 @@ The installer:
Review before execution: Review before execution:
```bash ```bash
curl -fsSLO https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh curl -fsSLO https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh
less install.sh less install.sh
sh install.sh sh install.sh
``` ```
@@ -35,7 +35,7 @@ Installer options are environment variables:
| `HOP_INSTALL_SKILL` | `1` | Set to `0` to skip Codex skill installation | | `HOP_INSTALL_SKILL` | `1` | Set to `0` to skip Codex skill installation |
| `HOP_MODIFY_PATH` | `1` | Set to `0` to leave shell profiles unchanged | | `HOP_MODIFY_PATH` | `1` | Set to `0` to leave shell profiles unchanged |
| `HOP_GITEA_URL` | `https://githop.xyz` | Gitea instance base URL | | `HOP_GITEA_URL` | `https://githop.xyz` | Gitea instance base URL |
| `HOP_REPOSITORY` | `hop/hop` | Alternate Gitea owner/repository | | `HOP_REPOSITORY` | `GnosysLabs/Hop` | Alternate Gitea owner/repository |
Example: Example:
@@ -48,7 +48,7 @@ HOP_VERSION=v0.1.0 HOP_INSTALL_DIR="$HOME/bin" sh install.sh
In PowerShell as your normal user: In PowerShell as your normal user:
```powershell ```powershell
irm https://githop.xyz/hop/hop/raw/branch/main/scripts/install.ps1 | iex irm https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.ps1 | iex
``` ```
The script verifies the Windows archive, installs to The script verifies the Windows archive, installs to
@@ -67,7 +67,7 @@ Use `-SkipSkill` only when another agent runtime will receive the skill. Use
With Go 1.26 or newer: With Go 1.26 or newer:
```bash ```bash
go install githop.xyz/hop/hop/cmd/hop@latest go install githop.xyz/GnosysLabs/Hop/cmd/hop@latest
hop skill install --force hop skill install --force
``` ```
@@ -76,7 +76,7 @@ Put `$(go env GOPATH)/bin` on PATH if `hop` is not found.
## Build from source ## Build from source
```bash ```bash
git clone https://githop.xyz/hop/hop.git git clone https://githop.xyz/GnosysLabs/Hop.git
cd hop cd hop
go test ./... go test ./...
go build -trimpath -o hop ./cmd/hop go build -trimpath -o hop ./cmd/hop
+4 -4
View File
@@ -3,12 +3,12 @@
Hop releases are built on `githop.xyz` by Gitea Actions and uploaded by Hop releases are built on `githop.xyz` by Gitea Actions and uploaded by
GoReleaser as draft Gitea Releases. GoReleaser as draft Gitea Releases.
The examples assume the canonical repository is `githop.xyz/hop/hop`. The canonical repository is `githop.xyz/GnosysLabs/Hop`.
## One-time Gitea setup ## One-time Gitea setup
- Create the `hop/hop` repository and set its default branch to `main`. - Create the `GnosysLabs/Hop` repository and set its default branch to `main`.
- Configure `origin` as `https://githop.xyz/hop/hop.git`. - Configure `origin` as `https://githop.xyz/GnosysLabs/Hop.git`.
- Run a currently patched Gitea 1.26.x or newer, enable Actions, and enable - Run a currently patched Gitea 1.26.x or newer, enable Actions, and enable
Actions for the repository. Hop's least-privilege workflow uses the 1.26 job Actions for the repository. Hop's least-privilege workflow uses the 1.26 job
token permission model. token permission model.
@@ -30,7 +30,7 @@ The examples assume the canonical repository is `githop.xyz/hop/hop`.
- Add `SECURITY.md` with a monitored private disclosure address. - Add `SECURITY.md` with a monitored private disclosure address.
- Create an offline-controlled release-signing key, publish its public key, and - Create an offline-controlled release-signing key, publish its public key, and
add detached signing for `checksums.txt` before general availability. add detached signing for `checksums.txt` before general availability.
- Confirm the `githop.xyz/hop/hop` Go import path serves valid `go-import` - Confirm the `githop.xyz/GnosysLabs/Hop` Go import path serves valid `go-import`
metadata. metadata.
- Back up the Gitea database, repositories, release attachments, and Actions - Back up the Gitea database, repositories, release attachments, and Actions
secrets. secrets.
+4 -4
View File
@@ -5,20 +5,20 @@
Rerun the installer. It replaces the binary and refreshes the embedded skill: Rerun the installer. It replaces the binary and refreshes the embedded skill:
```bash ```bash
curl -fsSL https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh | sh curl -fsSL https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh | sh
``` ```
Pin a release when required: Pin a release when required:
```bash ```bash
curl -fsSL https://githop.xyz/hop/hop/raw/branch/main/scripts/install.sh | \ curl -fsSL https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.sh | \
HOP_VERSION=v0.1.0 sh HOP_VERSION=v0.1.0 sh
``` ```
Windows: Windows:
```powershell ```powershell
irm https://githop.xyz/hop/hop/raw/branch/main/scripts/install.ps1 -OutFile install.ps1 irm https://githop.xyz/GnosysLabs/Hop/raw/branch/main/scripts/install.ps1 -OutFile install.ps1
.\install.ps1 -Version v0.1.0 .\install.ps1 -Version v0.1.0
Remove-Item install.ps1 Remove-Item install.ps1
``` ```
@@ -36,7 +36,7 @@ Restart Codex Desktop when the installed skill changed.
## Upgrade Go installations ## Upgrade Go installations
```bash ```bash
go install githop.xyz/hop/hop/cmd/hop@latest go install githop.xyz/GnosysLabs/Hop/cmd/hop@latest
hop skill install --force hop skill install --force
``` ```