Skip to content

Release 0.2.1: API version exposure + release automation#139

Merged
jeremy merged 5 commits intomainfrom
release/0.2.1
Feb 28, 2026
Merged

Release 0.2.1: API version exposure + release automation#139
jeremy merged 5 commits intomainfrom
release/0.2.1

Conversation

@jeremy
Copy link
Member

@jeremy jeremy commented Feb 28, 2026

Summary

  • Fix stale TypeScript VERSIONclient.ts was still "0.2.0" after the version bump
  • Add API_VERSION constant across all 5 SDKs, sourced from openapi.json info.version ("2026-01-26")
  • Include API version in User-Agentbasecamp-sdk-{lang}/{ver} (api:{apiVer})
  • Clean up "Basecamp 3" branding → "Basecamp" in READMEs and comments
  • Fix stale version references in kotlin/README.md, swift/README.md, ruby/Gemfile.lock
  • Add make bump VERSION=x.y.z — updates all 8 SDK version locations + TS lockfile
  • Add make sync-api-version — reads openapi.json, updates 5 API_VERSION constants
  • Add make sync-api-version-check — wired into make check to catch constant drift
  • Scripts use portable sed (temp file, no -i flag) for Linux compatibility

Test plan

  • make check passes (all Smithy, Go, TS, Ruby, Kotlin, Swift, conformance, drift checks)
  • make bump VERSION=0.2.1 is idempotent
  • make sync-api-version is idempotent
  • make sync-api-version-check passes
  • ./scripts/bump-version.sh 1.2.3foo rejects trailing junk
  • Zero grep -rn 'Basecamp 3' kotlin/ swift/ typescript/src/ hits
  • Zero grep -rn '"0\.\(1\|2\.0\)"' go/pkg typescript/package.json typescript/src/client.ts ruby/lib kotlin/sdk swift/Sources package.json hits

Copilot AI review requested due to automatic review settings February 28, 2026 09:29
@github-actions github-actions bot added dependencies Pull requests that update a dependency file typescript Pull requests that update TypeScript code ruby Pull requests that update the Ruby SDK go kotlin swift labels Feb 28, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the 0.2.1 release by aligning SDK version strings across languages, exposing the Basecamp API version as a first-class constant, and adding Makefile/script automation to keep versions and API version constants in sync.

Changes:

  • Add API_VERSION constants across SDKs and include (api:<ver>) in default User-Agent strings.
  • Bump SDK versions to 0.2.1 across the monorepo (TypeScript, Go, Ruby, Kotlin, Swift + root metadata).
  • Add release automation via make bump, make sync-api-version, and make sync-api-version-check, and wire freshness checking into make check.

Reviewed changes

Copilot reviewed 17 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
typescript/src/services/authorization.ts Updates docs/examples to remove “Basecamp 3” branding.
typescript/src/index.ts Re-exports API_VERSION from the public TypeScript entrypoint.
typescript/src/client.ts Bumps TS SDK version, adds API_VERSION, and updates default User-Agent format.
typescript/package.json Bumps TypeScript package version to 0.2.1.
typescript/package-lock.json Keeps lockfile version in sync with TS package version.
swift/Sources/Basecamp/BasecampConfig.swift Bumps Swift version, adds API version, updates default User-Agent.
swift/README.md Updates branding and installation version.
scripts/sync-api-version.sh New script to sync API version constants from openapi.json.
scripts/bump-version.sh New script to bump SDK versions across languages (and sync TS lockfile).
ruby/lib/basecamp/version.rb Bumps Ruby version and adds API_VERSION.
ruby/lib/basecamp/http.rb Includes API version in Ruby default User-Agent.
ruby/Gemfile.lock Updates locked gem version to 0.2.1.
package.json Bumps root package version to 0.2.1.
kotlin/sdk/src/commonMain/kotlin/com/basecamp/sdk/BasecampConfig.kt Bumps Kotlin version, adds API_VERSION, updates default User-Agent.
kotlin/sdk/build.gradle.kts Bumps Kotlin artifact version to 0.2.1.
kotlin/README.md Updates branding and dependency version; adjusts User-Agent documentation.
go/pkg/basecamp/version.go Bumps Go version and introduces APIVersion.
go/pkg/basecamp/client.go Includes API version in Go default User-Agent.
Makefile Adds bump and API version sync/check targets; wires API version drift check into make check.
Files not reviewed (1)
  • typescript/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings February 28, 2026 09:43
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 19 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • typescript/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Fix stale TypeScript VERSION (was still "0.2.0" in client.ts)
- Add API_VERSION / apiVersion constant across all 5 SDKs,
  sourced from openapi.json info.version ("2026-01-26")
- Include API version in User-Agent: basecamp-sdk-{lang}/{ver} (api:{apiVer})
- Clean up "Basecamp 3" branding → "Basecamp" in READMEs and comments
- Update stale version references in kotlin/README.md, swift/README.md,
  and ruby/Gemfile.lock
- scripts/bump-version.sh: updates all 8 SDK version locations + lockfile
- scripts/sync-api-version.sh: reads openapi.json info.version, updates
  API_VERSION constants in all 5 SDKs
- Both scripts use portable sed (temp file, no -i flag) for Linux compat
- make sync-api-version hooked into smithy-build for automatic sync
- make sync-api-version-check wired into make check to catch drift
- make bump VERSION=x.y.z validates strict semver format
- Fix &&/|| operator precedence in sync-api-version-check by using ;
  separators so each grep runs independently
- Add jq availability guard to sync-api-version-check
- Use BasecampConfig.DEFAULT_USER_AGENT in Kotlin README instead of
  literal Kotlin string-template syntax that renders wrong in Markdown
- Stop suppressing npm stderr in bump-version.sh
Use cat+rm instead of mv so the original file's inode and permissions
are retained. mktemp creates files with mode 600, and mv would replace
the target with those restrictive permissions.
Copilot AI review requested due to automatic review settings February 28, 2026 09:59
@jeremy jeremy enabled auto-merge (squash) February 28, 2026 10:00
@jeremy jeremy disabled auto-merge February 28, 2026 10:03
@jeremy jeremy merged commit 5d532c9 into main Feb 28, 2026
49 checks passed
@jeremy jeremy deleted the release/0.2.1 branch February 28, 2026 10:03
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 19 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • typescript/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go kotlin ruby Pull requests that update the Ruby SDK swift typescript Pull requests that update TypeScript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants