技能 编程开发 Gamma SDK 升级迁移

Gamma SDK 升级迁移

v20260311
gamma-upgrade-migration
指导团队升级 Gamma SDK、迁移 API 版本、处理破坏性变更,并在 Node.js 与 Python 项目中完成类型校验、警告与测试验证,确保安全上线。
获取技能
75 次下载
概览

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

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.

信息
Category 编程开发
Name gamma-upgrade-migration
版本 v20260311
大小 4.77KB
更新时间 2026-03-12
语言