home / skills / jeremylongshore / claude-code-plugins-plus-skills / posthog-upgrade-migration
/plugins/saas-packs/posthog-pack/skills/posthog-upgrade-migration
This skill guides you through upgrading PostHog SDKs, detecting breaking changes, and validating tests to ensure a smooth migration.
npx playbooks add skill jeremylongshore/claude-code-plugins-plus-skills --skill posthog-upgrade-migrationReview the files below or copy the command above to add this skill to your agents.
---
name: posthog-upgrade-migration
description: |
Analyze, plan, and execute PostHog SDK upgrades with breaking change detection.
Use when upgrading PostHog SDK versions, detecting deprecations,
or migrating to new API versions.
Trigger with phrases like "upgrade posthog", "posthog migration",
"posthog breaking changes", "update posthog SDK", "analyze posthog version".
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(git:*)
version: 1.0.0
license: MIT
author: Jeremy Longshore <[email protected]>
---
# PostHog Upgrade & Migration
## Overview
Guide for upgrading PostHog SDK versions and handling breaking changes.
## Prerequisites
- Current PostHog SDK installed
- Git for version control
- Test suite available
- Staging environment
## Instructions
### Step 1: Check Current Version
```bash
npm list @posthog/sdk
npm view @posthog/sdk version
```
### Step 2: Review Changelog
```bash
open https://github.com/posthog/sdk/releases
```
### Step 3: Create Upgrade Branch
```bash
git checkout -b upgrade/posthog-sdk-vX.Y.Z
npm install @posthog/sdk@latest
npm test
```
### Step 4: Handle Breaking Changes
Update import statements, configuration, and method signatures as needed.
## Output
- Updated SDK version
- Fixed breaking changes
- Passing test suite
- Documented rollback procedure
## Error Handling
| SDK Version | API Version | Node.js | Breaking Changes |
|-------------|-------------|---------|------------------|
| 3.x | 2024-01 | 18+ | Major refactor |
| 2.x | 2023-06 | 16+ | Auth changes |
| 1.x | 2022-01 | 14+ | Initial release |
## Examples
### Import Changes
```typescript
// Before (v1.x)
import { Client } from '@posthog/sdk';
// After (v2.x)
import { PostHogClient } from '@posthog/sdk';
```
### Configuration Changes
```typescript
// Before (v1.x)
const client = new Client({ key: 'xxx' });
// After (v2.x)
const client = new PostHogClient({
apiKey: 'xxx',
});
```
### Rollback Procedure
```bash
npm install @posthog/[email protected] --save-exact
```
### Deprecation Handling
```typescript
// Monitor for deprecation warnings in development
if (process.env.NODE_ENV === 'development') {
process.on('warning', (warning) => {
if (warning.name === 'DeprecationWarning') {
console.warn('[PostHog]', warning.message);
// Log to tracking system for proactive updates
}
});
}
// Common deprecation patterns to watch for:
// - Renamed methods: client.oldMethod() -> client.newMethod()
// - Changed parameters: { key: 'x' } -> { apiKey: 'x' }
// - Removed features: Check release notes before upgrading
```
## Resources
- [PostHog Changelog](https://github.com/posthog/sdk/releases)
- [PostHog Migration Guide](https://docs.posthog.com/migration)
## Next Steps
For CI integration during upgrades, see `posthog-ci-integration`.This skill analyzes, plans, and executes PostHog SDK upgrades while detecting breaking changes and deprecations. It guides you through version checks, changelog review, branch-based upgrades, and automated test validation to ensure safe migrations. The goal is a predictable upgrade with rollback instructions and CI-friendly practices.
The skill inspects the current installed PostHog SDK version, fetches release notes and changelog entries, and maps known breaking changes to code patterns (imports, configuration keys, method signatures). It creates an upgrade branch, applies dependency updates, runs the test suite, and highlights failing spots with suggested code edits. It also produces a simple rollback command and monitors deprecation warnings during development.
How do I find breaking changes for a specific version?
Check the PostHog SDK releases changelog on GitHub and read migration notes for that version. Search code for renamed imports, config keys, and removed methods mentioned in the release.
What if tests pass locally but fail in CI after upgrade?
Ensure CI Node.js version meets the SDK requirements, run tests in a staging environment that mirrors CI, and capture deprecation warnings to pinpoint runtime differences.