Skip to content

Basecamp SDK v0.20.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 07:45
· 108 commits to main since this release
a74f558

Upgrading

Read MIGRATING.md before you bump the version — it lists the breaks a clean build will not catch: the silent ones that change behaviour with no error at all, and the ones that compile and then raise or fail to decode on one particular shape of response.

The notes below are generated from merged pull requests, so a change that merged without one cannot appear in them — MIGRATING.md records consumer-visible changes regardless of how they merged.

Installation

Go

go get github.com/basecamp/basecamp-sdk/go@v0.20.0

TypeScript

npm install @37signals/basecamp@0.20.0

Ruby

gem install basecamp-sdk -v 0.20.0

Swift

.package(url: "https://github.com/basecamp/basecamp-sdk.git", from: "0.20.0")

Kotlin

implementation("com.basecamp:basecamp-sdk:0.20.0")

Requires the GitHub Packages repository and a token — see Kotlin installation.

Python

pip install basecamp-sdk==0.20.0

Rust

cargo add basecamp-sdk@0.20.0

What's Changed

⚠️ Breaking Changes

CI & Infrastructure

  • Tag the recordings operations as their own domain, and require a tag on every operation by @jeremy in #922
  • Ship an authoritative embedded tool Catalog distilled from the SDK's own spec by @jeremy in #926
  • Find operations by what they are not, so no HTTP verb can drop one in silence by @jeremy in #931
  • A refusal must not destroy generated output: fixed in Kotlin and TypeScript, swept across the rest by @jeremy in #932
  • Say what the rust-toolchain pin is, not a tag that moves under it by @jeremy in #939

Other

  • Pin the MaxCapacity comment's cost claim as an assertion by @jeremy in #921
  • Pin the live buffer's two cost claims as assertions by @jeremy in #923
  • Register #925 so main's known-defect gate goes green again by @jeremy in #927
  • Let the Recordings tag reach the Rust generator by @jeremy in #928
  • Tag a recording's event history as Recordings, not Automation by @jeremy in #929
  • Validate the event feed's decoded bodies at the wrapper's decode by @jeremy in #924
  • Split the Automation catch-all into six real domains by @jeremy in #930
  • Take anyio past the TLSStream IDNA 2003 advisory by @jeremy in #937
  • Derive gen-catalog's emission bound from spec/generated-verbs.json by @jeremy in #938

Full Changelog: v0.19.0...v0.20.0