Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ release:

**Arch Linux / Omarchy:**
```sh
yay -S basecamp-bin
yay -S basecamp-cli
basecamp auth login
```

Expand Down Expand Up @@ -126,19 +126,18 @@ scoops:
skip_upload: auto

aurs:
- name: basecamp-bin
- name: basecamp-cli
homepage: "https://github.com/basecamp/basecamp-cli"
description: "CLI for Basecamp project management"
maintainers:
- "Basecamp <support@basecamp.com>"
license: "MIT"
private_key: "{{ .Env.AUR_KEY }}"
git_url: "ssh://aur@aur.archlinux.org/basecamp-bin.git"
git_url: "ssh://aur@aur.archlinux.org/basecamp-cli.git"
provides:
- basecamp
conflicts:
- basecamp
- basecamp-cli
optdepends:
- "bash-completion: for bash shell completions"
- "zsh: for zsh shell completions"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ That's it. You now have full access to Basecamp from your terminal.

**Arch Linux / Omarchy (AUR):**
```bash
yay -S basecamp-bin
yay -S basecamp-cli
```

**Scoop (Windows):**
Expand Down
6 changes: 3 additions & 3 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ make release VERSION=0.2.0 DRY_RUN=1
- Generates SBOM for supply chain transparency
- Updates Homebrew cask in `basecamp/homebrew-tap`
- Updates Scoop manifest in `basecamp/homebrew-tap`
- Updates AUR `basecamp-bin` package (when `AUR_KEY` is configured)
- Updates AUR `basecamp-cli` package (when `AUR_KEY` is configured)

## Versioning

Expand All @@ -51,7 +51,7 @@ Pre-1.0: minor bumps for features, patch bumps for fixes. Prerelease tags
## AUR setup (one-time)

1. Create an account at https://aur.archlinux.org
2. Register the `basecamp-bin` package
2. Register the `basecamp-cli` package
3. Generate an SSH keypair: `ssh-keygen -t ed25519 -f aur_key -C "basecamp-cli AUR"`
4. Add the public key to your AUR profile
5. Add the private key as `AUR_KEY` in GitHub Actions secrets
Expand All @@ -63,5 +63,5 @@ Pre-1.0: minor bumps for features, patch bumps for fixes. Prerelease tags
| GitHub Releases | [basecamp/basecamp-cli](https://github.com/basecamp/basecamp-cli/releases) | GoReleaser |
| Homebrew cask | `basecamp/homebrew-tap` Casks/ | GoReleaser |
| Scoop | `basecamp/homebrew-tap` root | GoReleaser |
| AUR | `basecamp-bin` | GoReleaser |
| AUR | `basecamp-cli` | GoReleaser |
| go install | `go install github.com/basecamp/basecamp-cli/cmd/basecamp@latest` | Go module proxy |
9 changes: 6 additions & 3 deletions internal/resilience/circuit_breaker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,16 +98,19 @@ func TestCircuitBreakerFailureInHalfOpenOpens(t *testing.T) {
cb := NewCircuitBreaker(store, CircuitBreakerConfig{
FailureThreshold: 3,
SuccessThreshold: 2,
OpenTimeout: 1 * time.Millisecond,
OpenTimeout: 5 * time.Second,
})

// Open the circuit
for range 3 {
cb.RecordFailure()
}

// Wait for timeout and transition to half-open
time.Sleep(10 * time.Millisecond)
// Force half-open by backdating the open timestamp
s, _ := store.Load()
s.CircuitBreaker.State = CircuitOpen
s.CircuitBreaker.OpenedAt = time.Now().Add(-10 * time.Second)
store.Save(s)
cb.Allow()

// Record one success, then failure
Expand Down
Loading