Gamma Upgrade & Migration
Overview
Guide for upgrading Gamma SDK versions and migrating between API versions safely.
Prerequisites
-
Existing Gamma integration
-
Version control (git)
-
Test environment available
Instructions
Step 1: Check Current Version
set -euo pipefail
Node.js
npm list @gamma/sdk
Python
pip show gamma-sdk
Check for available updates
npm outdated @gamma/sdk
Step 2: Review Changelog
set -euo pipefail
View changelog
npm info @gamma/sdk changelog
Or visit
https://gamma.app/docs/changelog
Step 3: Upgrade SDK
set -euo pipefail
Create upgrade branch
git checkout -b feat/gamma-sdk-upgrade
Node.js - upgrade to latest
npm install @gamma/sdk@latest
Python - upgrade to latest
pip install --upgrade gamma-sdk
Or specific version
npm install @gamma/sdk@2.0.0
Step 4: Handle Breaking Changes
Common Migration Patterns:
// v1.x -> v2.x: Client initialization change // Before (v1) import Gamma from '@gamma/sdk'; const gamma = new Gamma(apiKey);
// After (v2) import { GammaClient } from '@gamma/sdk'; const gamma = new GammaClient({ apiKey });
// v1.x -> v2.x: Response format change // Before (v1) const result = await gamma.createPresentation({ title: 'Test' }); console.log(result.id);
// After (v2) const result = await gamma.presentations.create({ title: 'Test' }); console.log(result.data.id);
// v1.x -> v2.x: Error handling change // Before (v1) try { await gamma.create({ ... }); } catch (e) { if (e.code === 'RATE_LIMIT') { ... } }
// After (v2) import { RateLimitError } from '@gamma/sdk'; try { await gamma.presentations.create({ ... }); } catch (e) { if (e instanceof RateLimitError) { ... } }
Step 5: Update Type Definitions
// Check for type changes // tsconfig.json - ensure strict mode catches issues { "compilerOptions": { "strict": true, "noImplicitAny": true } }
// Run type check npx tsc --noEmit
Step 6: Test Thoroughly
set -euo pipefail
Run unit tests
npm test
Run integration tests
npm run test:integration
Manual smoke test
node -e " const { GammaClient } = require('@gamma/sdk'); const g = new GammaClient({ apiKey: process.env.GAMMA_API_KEY }); g.ping().then(() => console.log('OK')).catch(console.error); "
Step 7: Deprecation Handling
// Enable deprecation warnings const gamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY, showDeprecationWarnings: true, });
// Migrate deprecated methods // Deprecated await gamma.getPresentations();
// New await gamma.presentations.list();
Migration Checklist
-
Current version documented
-
Changelog reviewed
-
Breaking changes identified
-
Upgrade branch created
-
SDK upgraded
-
Type errors fixed
-
Deprecation warnings addressed
-
Unit tests passing
-
Integration tests passing
-
Staging deployment verified
-
Production deployment planned
Rollback Procedure
set -euo pipefail
If issues occur after upgrade
git checkout main npm install # Restores previous version from lock file
Or explicitly downgrade
npm install @gamma/sdk@1.x.x
Resources
-
Gamma Changelog
-
Gamma Migration Guides
-
Gamma API Versioning
Next Steps
Proceed to gamma-ci-integration for CI/CD setup.
Output
-
Configuration files or code changes applied to the project
-
Validation report confirming correct implementation
-
Summary of changes made and their rationale
Error Handling
Error Cause Resolution
Authentication failure Invalid or expired credentials Refresh tokens or re-authenticate with migration
Configuration conflict Incompatible settings detected Review and resolve conflicting parameters
Resource not found Referenced resource missing Verify resource exists and permissions are correct
Examples
Basic usage: Apply gamma upgrade migration to a standard project setup with default configuration options.
Advanced scenario: Customize gamma upgrade migration for production environments with multiple constraints and team-specific requirements.