Repository navigation
Basecamp SDK v0.20.0
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