Commit Graph

42 Commits

Author SHA1 Message Date
Malte Ubl d2ffcc2cbe The great rename
We've acquired `chat` on npm. This plan covers renaming all packages and setting up automated publishing.

| Current Name | New Name | Version |
|--------------|----------|---------|
| `chat-sdk` | `chat` | 4.0.0 |
| `@chat-sdk/slack` | `@chat-adapter/slack` | 4.0.0 |
| `@chat-sdk/gchat` | `@chat-adapter/gchat` | 4.0.0 |
| `@chat-sdk/teams` | `@chat-adapter/teams` | 4.0.0 |
| `@chat-sdk/state-memory` | `@chat-adapter/state-memory` | 4.0.0 |
| `@chat-sdk/state-redis` | `@chat-adapter/state-redis` | 4.0.0 |
| `@chat-sdk/state-ioredis` | `@chat-adapter/state-ioredis` | 4.0.0 |

1. **Main package** (`packages/chat-sdk/package.json`):
   - Change `"name": "chat-sdk"` → `"name": "chat"`
   - Change `"version": "0.1.0"` → `"version": "4.0.0"`

2. **Adapter packages**:
   - `packages/adapter-slack/package.json`: `@chat-sdk/slack` → `@chat-adapter/slack`
   - `packages/adapter-gchat/package.json`: `@chat-sdk/gchat` → `@chat-adapter/gchat`
   - `packages/adapter-teams/package.json`: `@chat-sdk/teams` → `@chat-adapter/teams`
   - Update all versions to `4.0.0`
   - Update dependency on `chat-sdk` → `chat`

3. **State packages**:
   - `packages/state-memory/package.json`: `@chat-sdk/state-memory` → `@chat-adapter/state-memory`
   - `packages/state-redis/package.json`: `@chat-sdk/state-redis` → `@chat-adapter/state-redis`
   - `packages/state-ioredis/package.json`: `@chat-sdk/state-ioredis` → `@chat-adapter/state-ioredis`
   - Update all versions to `4.0.0`
   - Update dependency on `chat-sdk` → `chat`

Update `peerDependencies` and `dependencies` in each package:

```json
// Before
"peerDependencies": {
  "chat-sdk": "workspace:*"
}

// After
"peerDependencies": {
  "chat": "workspace:*"
}
```

Search and replace across the codebase:

| Find | Replace |
|------|---------|
| `from "chat-sdk"` | `from "chat"` |
| `from 'chat-sdk'` | `from 'chat'` |
| `import("chat-sdk")` | `import("chat")` |
| `from "@chat-sdk/slack"` | `from "@chat-adapter/slack"` |
| `from "@chat-sdk/gchat"` | `from "@chat-adapter/gchat"` |
| `from "@chat-sdk/teams"` | `from "@chat-adapter/teams"` |
| `from "@chat-sdk/state-memory"` | `from "@chat-adapter/state-memory"` |
| `from "@chat-sdk/state-redis"` | `from "@chat-adapter/state-redis"` |
| `from "@chat-sdk/state-ioredis"` | `from "@chat-adapter/state-ioredis"` |

Update any references to old package names in:
- `pnpm-workspace.yaml`
- `turbo.json` (task filters)
- Root `package.json` scripts

1. **README.md files** in each package
2. **Examples** (`examples/nextjs-chat/`)
3. **AGENTS.md** and other docs
4. **JSDoc comments** referencing package names

1. **Install changesets**:
   ```bash
   pnpm add -D @changesets/cli
   pnpm changeset init
   ```

2. **Configure `.changeset/config.json`**:
   ```json
   {
     "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
     "changelog": "@changesets/cli/changelog",
     "commit": false,
     "fixed": [],
     "linked": [
       ["chat", "@chat-adapter/*"]
     ],
     "access": "public",
     "baseBranch": "main",
     "updateInternalDependencies": "patch",
     "ignore": ["example-nextjs-chat"]
   }
   ```

3. **Add GitHub Action** (`.github/workflows/release.yml`):
   ```yaml
   name: Release

   on:
     push:
       branches:
         - main

   concurrency: ${{ github.workflow }}-${{ github.ref }}

   jobs:
     release:
       name: Release
       runs-on: ubuntu-latest
       steps:
         - uses: actions/checkout@v4
         - uses: pnpm/action-setup@v2
           with:
             version: 9
         - uses: actions/setup-node@v4
           with:
             node-version: 20
             cache: 'pnpm'

         - run: pnpm install
         - run: pnpm build
         - run: pnpm test

         - name: Create Release Pull Request or Publish
           uses: changesets/action@v1
           with:
             publish: pnpm changeset publish
           env:
             GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
             NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
   ```

4. **Add publish config to each package.json**:
   ```json
   "publishConfig": {
     "access": "public"
   }
   ```

1. Run full build: `pnpm build`
2. Run typecheck: `pnpm typecheck`
3. Run lint: `pnpm lint`
4. Run tests: `pnpm test`
5. Test local linking in example app

| File | Changes |
|------|---------|
| `packages/chat-sdk/package.json` | Rename to `chat`, version 4.0.0 |
| `packages/adapter-slack/package.json` | Rename to `@chat-adapter/slack`, update deps |
| `packages/adapter-gchat/package.json` | Rename to `@chat-adapter/gchat`, update deps |
| `packages/adapter-teams/package.json` | Rename to `@chat-adapter/teams`, update deps |
| `packages/state-memory/package.json` | Rename to `@chat-adapter/state-memory`, update deps |
| `packages/state-redis/package.json` | Rename to `@chat-adapter/state-redis`, update deps |
| `packages/state-ioredis/package.json` | Rename to `@chat-adapter/state-ioredis`, update deps |
| `examples/nextjs-chat/package.json` | Update all dependencies |
| `packages/integration-tests/package.json` | Update all dependencies |
| `turbo.json` | Update package references |
| All `*.ts` files | Update import statements |
| All `README.md` files | Update package names in docs |
| `.changeset/config.json` | Create new |
| `.github/workflows/release.yml` | Create new |

1. Update all `package.json` files (names, versions, dependencies)
2. Run `pnpm install` to update lockfile
3. Update all import statements in source files
4. Update all import statements in test files
5. Update documentation
6. Set up changesets
7. Run full validation
8. Create initial changeset for 4.0.0 release
9. Commit and push

If issues arise:
1. Git revert the rename commit
2. Run `pnpm install` to restore lockfile
3. Previous npm versions remain available
2026-01-02 13:56:55 -08:00
Malte Ubl 39270b8b5d DM 2026-01-01 20:28:14 -08:00
Malte Ubl 146e832930 JSX2 2026-01-01 19:11:48 -08:00
Malte Ubl 2af76fe7b4 better-id 2026-01-01 19:04:19 -08:00
Malte Ubl da0b16fa9a JSX 2026-01-01 19:01:37 -08:00
Malte Ubl c75b9bc17d features 2026-01-01 17:25:27 -08:00
Malte Ubl d008a719e1 teams-response 2026-01-01 12:42:44 -08:00
Malte Ubl 08d740b4fc type-safe 2026-01-01 12:27:36 -08:00
Malte Ubl 6580f73280 More emoji 2026-01-01 12:00:28 -08:00
Malte Ubl ce4baf2183 Type-safe emoji 2026-01-01 11:46:44 -08:00
Malte Ubl f812ce198c gchat-limitation 2026-01-01 11:23:44 -08:00
Malte Ubl ca0e91035d permissions 2026-01-01 11:18:10 -08:00
Malte Ubl 02dd531545 Emoji support 2026-01-01 11:01:44 -08:00
Malte Ubl 092baf8fdb Better tests 2026-01-01 09:38:22 -08:00
Malte Ubl 93a82ffc08 IORedis and better validate 2026-01-01 09:11:52 -08:00
Malte Ubl d696201e98 Refactor 2025-12-31 16:25:22 -08:00
Malte Ubl 874ffbdbf9 replay-tests 2025-12-31 16:10:32 -08:00
Malte Ubl 9a18e55f5e record 2025-12-31 15:46:27 -08:00
Malte Ubl 26ff575392 step 2025-12-31 14:23:43 -08:00
Malte Ubl bc0158933f step 2025-12-31 14:14:05 -08:00
Malte Ubl cfc823dd5d logs 2025-12-31 14:06:43 -08:00
Malte Ubl fb6c1a7bfb logs 2025-12-31 14:02:28 -08:00
Malte Ubl e35408476d logs 2025-12-31 14:01:22 -08:00
Malte Ubl 86868cb1ec vibe 2025-12-31 13:51:33 -08:00
Malte Ubl 2c78cc1f78 step 2025-12-31 13:22:58 -08:00
Malte Ubl 89dad6a879 step 2025-12-31 13:14:26 -08:00
Malte Ubl 42c705b245 rename 2025-12-22 18:21:52 -08:00
Malte Ubl f7e9ea8db6 app 2025-12-22 16:52:27 -08:00
Malte Ubl fac80b9d54 teams9 2025-12-22 16:24:55 -08:00
Malte Ubl 88cee8918e teams8 2025-12-22 16:24:30 -08:00
Malte Ubl 72f5ea2c0d teams2 2025-12-22 15:12:34 -08:00
Malte Ubl d1aa58d71f teams 2025-12-22 15:10:52 -08:00
Malte Ubl c2d62198c6 modern-gchat3 2025-12-22 14:05:03 -08:00
Malte Ubl fc1c8be42f modern-gchat2 2025-12-22 13:38:55 -08:00
Malte Ubl 9023466bfe modern-gchat 2025-12-22 13:03:01 -08:00
Malte Ubl 689a298427 modern-gchat 2025-12-22 12:53:38 -08:00
Malte Ubl 17bf5f9ecf log3 2025-12-22 12:41:13 -08:00
Malte Ubl 64ee0f7746 debug 2025-12-22 12:28:33 -08:00
Malte Ubl e20ebddd2f require 2025-12-22 12:25:17 -08:00
Malte Ubl bf18adc163 OIDC 2025-12-22 12:13:14 -08:00
Malte Ubl 337439dc24 redis 2025-12-22 08:59:05 -08:00
Malte Ubl 1f401aacd0 initial cook 2025-12-21 20:48:14 -08:00