@cakemail-org/cakemail-cli 1.5.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +12 -0
- package/.env.example +40 -0
- package/.env.test.example +45 -0
- package/CHANGELOG.md +1031 -0
- package/README.md +319 -15
- package/audit-formats.js +128 -0
- package/cakemail.rb +20 -0
- package/dist/cli.js +27 -10
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +16 -6
- package/dist/client.js.map +1 -1
- package/dist/commands/account.js +1 -1
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/attributes.js +1 -1
- package/dist/commands/attributes.js.map +1 -1
- package/dist/commands/campaigns.d.ts.map +1 -1
- package/dist/commands/campaigns.js +103 -8
- package/dist/commands/campaigns.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +63 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contacts.d.ts.map +1 -1
- package/dist/commands/contacts.js +91 -12
- package/dist/commands/contacts.js.map +1 -1
- package/dist/commands/emails.js +1 -1
- package/dist/commands/emails.js.map +1 -1
- package/dist/commands/interests.d.ts +5 -0
- package/dist/commands/interests.d.ts.map +1 -0
- package/dist/commands/interests.js +172 -0
- package/dist/commands/interests.js.map +1 -0
- package/dist/commands/lists.d.ts.map +1 -1
- package/dist/commands/lists.js +6 -8
- package/dist/commands/lists.js.map +1 -1
- package/dist/commands/logs.d.ts +5 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +237 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/reports.js +1 -1
- package/dist/commands/reports.js.map +1 -1
- package/dist/commands/segments.js +1 -1
- package/dist/commands/segments.js.map +1 -1
- package/dist/commands/senders.d.ts.map +1 -1
- package/dist/commands/senders.js +11 -8
- package/dist/commands/senders.js.map +1 -1
- package/dist/commands/suppressed.js +1 -1
- package/dist/commands/suppressed.js.map +1 -1
- package/dist/commands/tags.d.ts +5 -0
- package/dist/commands/tags.d.ts.map +1 -0
- package/dist/commands/tags.js +124 -0
- package/dist/commands/tags.js.map +1 -0
- package/dist/commands/templates.js +1 -1
- package/dist/commands/templates.js.map +1 -1
- package/dist/commands/transactional-templates.d.ts +5 -0
- package/dist/commands/transactional-templates.d.ts.map +1 -0
- package/dist/commands/transactional-templates.js +354 -0
- package/dist/commands/transactional-templates.js.map +1 -0
- package/dist/commands/webhooks.js +1 -1
- package/dist/commands/webhooks.js.map +1 -1
- package/dist/utils/auth.d.ts +8 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +39 -11
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/config-file.d.ts +7 -0
- package/dist/utils/config-file.d.ts.map +1 -1
- package/dist/utils/config-file.js +15 -0
- package/dist/utils/config-file.js.map +1 -1
- package/dist/utils/config.d.ts +2 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +12 -4
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/errors.js +1 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/list-defaults.d.ts +33 -0
- package/dist/utils/list-defaults.d.ts.map +1 -0
- package/dist/utils/list-defaults.js +52 -0
- package/dist/utils/list-defaults.js.map +1 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +36 -13
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +32 -4
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/spinner.d.ts +17 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +43 -0
- package/dist/utils/spinner.js.map +1 -0
- package/docs/DOCUMENTATION-STANDARD.md +1068 -0
- package/docs/README.md +161 -0
- package/docs/developer/ARCHITECTURE.md +516 -0
- package/docs/developer/AUTH.md +204 -0
- package/docs/developer/CONTRIBUTING.md +227 -0
- package/docs/developer/DOCUMENTATION_SUMMARY.md +346 -0
- package/docs/developer/PROJECT_INDEX.md +365 -0
- package/docs/planning/API_COVERAGE.md +1045 -0
- package/docs/planning/BACKLOG.md +1159 -0
- package/docs/planning/PROFILE_SYSTEM_TASKS.md +287 -0
- package/docs/planning/UX_IMPLEMENTATION_PLAN.md +691 -0
- package/docs/planning/archive/RELEASE_CHECKLIST_v1.3.0.md +332 -0
- package/docs/planning/archive/RELEASE_v1.3.0.md +428 -0
- package/docs/planning/archive/cakemail-cli-ux-improvements.md +438 -0
- package/docs/planning/cakemail-profile-system-plan.md +1121 -0
- package/docs/testing/AI_USER_SIMULATION_DESIGN.md +1342 -0
- package/docs/testing/KENOGAMI_BIDIRECTIONAL_FLOW.md +1517 -0
- package/docs/testing/KENOGAMI_TRUTH_RECONCILIATION_SYSTEM.md +1369 -0
- package/docs/user-manual/.obsidian/app.json +1 -0
- package/docs/user-manual/.obsidian/appearance.json +1 -0
- package/docs/user-manual/.obsidian/core-plugins.json +33 -0
- package/docs/user-manual/.obsidian/workspace.json +167 -0
- package/docs/user-manual/01-getting-started/01-installation.md +214 -0
- package/docs/user-manual/01-getting-started/02-quick-start.md +432 -0
- package/docs/user-manual/01-getting-started/03-authentication.md +448 -0
- package/docs/user-manual/01-getting-started/04-configuration.md +430 -0
- package/docs/user-manual/01-getting-started/05-output-formats.md +447 -0
- package/docs/user-manual/02-core-concepts/01-accounts.md +514 -0
- package/docs/user-manual/02-core-concepts/02-profile-system.md +771 -0
- package/docs/user-manual/02-core-concepts/03-smart-defaults.md +485 -0
- package/docs/user-manual/02-core-concepts/04-authentication-methods.md +435 -0
- package/docs/user-manual/02-core-concepts/05-pagination-filtering.md +600 -0
- package/docs/user-manual/02-core-concepts/06-error-handling.md +718 -0
- package/docs/user-manual/02-core-concepts/07-api-coverage.md +483 -0
- package/docs/user-manual/03-email-operations/01-senders.md +490 -0
- package/docs/user-manual/03-email-operations/02-templates.md +444 -0
- package/docs/user-manual/03-email-operations/03-transactional-emails.md +706 -0
- package/docs/user-manual/03-email-operations/04-email-tracking.md +407 -0
- package/docs/user-manual/04-campaign-management/01-campaigns-basics.md +394 -0
- package/docs/user-manual/04-campaign-management/02-campaign-scheduling.md +630 -0
- package/docs/user-manual/04-campaign-management/03-campaign-testing.md +997 -0
- package/docs/user-manual/04-campaign-management/04-campaign-lifecycle.md +709 -0
- package/docs/user-manual/04-campaign-management/05-campaign-links.md +934 -0
- package/docs/user-manual/05-contact-management/01-lists.md +836 -0
- package/docs/user-manual/05-contact-management/02-contacts.md +1035 -0
- package/docs/user-manual/05-contact-management/03-custom-attributes.md +788 -0
- package/docs/user-manual/05-contact-management/04-segments.md +1028 -0
- package/docs/user-manual/05-contact-management/05-contact-import-export.md +1031 -0
- package/docs/user-manual/06-analytics-reporting/01-campaign-analytics.md +867 -0
- package/docs/user-manual/06-analytics-reporting/02-account-reports.md +227 -0
- package/docs/user-manual/07-integrations/01-webhooks-integration.md +259 -0
- package/docs/user-manual/07-integrations/02-automation.md +326 -0
- package/docs/user-manual/08-advanced-usage/01-scripting-patterns.md +672 -0
- package/docs/user-manual/08-advanced-usage/02-bulk-operations.md +932 -0
- package/docs/user-manual/08-advanced-usage/03-ci-cd-integration.md +892 -0
- package/docs/user-manual/08-advanced-usage/04-performance-optimization.md +766 -0
- package/docs/user-manual/09-command-reference/01-config.md +776 -0
- package/docs/user-manual/09-command-reference/02-account.md +652 -0
- package/docs/user-manual/09-command-reference/03-lists.md +958 -0
- package/docs/user-manual/09-command-reference/04-contacts.md +1408 -0
- package/docs/user-manual/09-command-reference/05-attributes.md +617 -0
- package/docs/user-manual/09-command-reference/06-segments.md +894 -0
- package/docs/user-manual/09-command-reference/07-senders.md +803 -0
- package/docs/user-manual/09-command-reference/08-templates.md +818 -0
- package/docs/user-manual/09-command-reference/09-campaigns.md +1250 -0
- package/docs/user-manual/09-command-reference/10-emails.md +807 -0
- package/docs/user-manual/09-command-reference/11-reports.md +1135 -0
- package/docs/user-manual/09-command-reference/12-webhooks.md +773 -0
- package/docs/user-manual/09-command-reference/13-suppressed.md +797 -0
- package/docs/user-manual/09-command-reference/14-interests.md +630 -0
- package/docs/user-manual/09-command-reference/15-tags.md +584 -0
- package/docs/user-manual/09-command-reference/16-logs.md +656 -0
- package/docs/user-manual/09-command-reference/17-transactional-templates.md +850 -0
- package/docs/user-manual/10-troubleshooting/01-common-errors.md +457 -0
- package/docs/user-manual/10-troubleshooting/02-authentication-issues.md +558 -0
- package/docs/user-manual/10-troubleshooting/03-connection-problems.md +634 -0
- package/docs/user-manual/10-troubleshooting/04-debugging.md +725 -0
- package/docs/user-manual/11-appendix/04-faq.md +484 -0
- package/docs/user-manual/11-appendix/05-glossary.md +250 -0
- package/docs/user-manual/README.md +0 -0
- package/package.json +13 -47
- package/src/cli.ts +125 -0
- package/src/client.ts +16 -0
- package/src/commands/account.ts +267 -0
- package/src/commands/accounts.ts +78 -0
- package/src/commands/actions.ts +249 -0
- package/src/commands/attributes.ts +139 -0
- package/src/commands/campaign-blueprints.ts +106 -0
- package/src/commands/campaigns.ts +469 -0
- package/src/commands/config.ts +77 -0
- package/src/commands/contacts.ts +612 -0
- package/src/commands/custom-attributes.ts +127 -0
- package/src/commands/dkims.ts +117 -0
- package/src/commands/domains.ts +82 -0
- package/src/commands/email-apis.ts +569 -0
- package/src/commands/emails.ts +197 -0
- package/src/commands/forms.ts +283 -0
- package/src/commands/interests.ts +155 -0
- package/src/commands/links.ts +38 -0
- package/src/commands/lists.ts +406 -0
- package/src/commands/logos.ts +71 -0
- package/src/commands/logs.ts +386 -0
- package/src/commands/reports.ts +306 -0
- package/src/commands/segments.ts +158 -0
- package/src/commands/senders.ts +204 -0
- package/src/commands/sub-accounts.ts +271 -0
- package/src/commands/suppressed-emails.ts +234 -0
- package/src/commands/suppressed.ts +198 -0
- package/src/commands/system-emails.ts +85 -0
- package/src/commands/tags.ts +146 -0
- package/src/commands/tasks.ts +116 -0
- package/src/commands/templates.ts +189 -0
- package/src/commands/tokens.ts +83 -0
- package/src/commands/transactional-emails.ts +374 -0
- package/src/commands/transactional-templates.ts +385 -0
- package/src/commands/users.ts +506 -0
- package/src/commands/webhooks.ts +172 -0
- package/src/commands/workflow-blueprints.ts +123 -0
- package/src/commands/workflows.ts +265 -0
- package/src/types/profile.ts +93 -0
- package/src/utils/auth.ts +272 -0
- package/src/utils/config-file.ts +96 -0
- package/src/utils/config.ts +134 -0
- package/src/utils/confirm.ts +32 -0
- package/src/utils/defaults.ts +99 -0
- package/src/utils/errors.ts +116 -0
- package/src/utils/interactive.ts +91 -0
- package/src/utils/list-defaults.ts +74 -0
- package/src/utils/output.ts +190 -0
- package/src/utils/progress.ts +320 -0
- package/src/utils/spinner.ts +22 -0
- package/tests/IMPLEMENTATION_STATUS.md +258 -0
- package/tests/PTY_SETUP.md +118 -0
- package/tests/PTY_TESTING_GUIDE.md +507 -0
- package/tests/README.md +244 -0
- package/tests/fixtures/api-responses/campaigns.json +34 -0
- package/tests/fixtures/test-config.json +13 -0
- package/tests/helpers/cli-runner.ts +128 -0
- package/tests/helpers/mock-server.ts +301 -0
- package/tests/helpers/pty-runner.ts +181 -0
- package/tests/integration/campaigns-real-api.test.ts +196 -0
- package/tests/integration/setup-integration.ts +50 -0
- package/tests/pty/campaigns.test.ts +241 -0
- package/tests/setup.ts +34 -0
- package/tsconfig.json +15 -0
- package/vitest.config.ts +28 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# Release Checklist for v1.3.0
|
|
2
|
+
|
|
3
|
+
## ✅ Pre-Release (Completed by Claude)
|
|
4
|
+
|
|
5
|
+
- [x] Implemented 48 new commands across 7 categories
|
|
6
|
+
- [x] Updated package.json to v1.3.0
|
|
7
|
+
- [x] Updated src/cli.ts to v1.3.0
|
|
8
|
+
- [x] Updated CHANGELOG.md
|
|
9
|
+
- [x] Updated README.md
|
|
10
|
+
- [x] Updated API_COVERAGE.md
|
|
11
|
+
- [x] Created RELEASE_v1.3.0.md
|
|
12
|
+
- [x] Created UX_IMPLEMENTATION_PLAN.md
|
|
13
|
+
|
|
14
|
+
## 🔨 Build & Test (You Need to Do)
|
|
15
|
+
|
|
16
|
+
### Step 1: Build the Project (Required)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cd /Users/francoislane/dev/cakemail-cli
|
|
20
|
+
npm run build
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Expected output:**
|
|
24
|
+
- TypeScript compilation succeeds
|
|
25
|
+
- `dist/` folder created with compiled JavaScript
|
|
26
|
+
- `dist/cli.js` is executable
|
|
27
|
+
|
|
28
|
+
**If errors occur:**
|
|
29
|
+
- Check TypeScript compilation errors
|
|
30
|
+
- Fix any type errors or missing imports
|
|
31
|
+
- Re-run `npm run build`
|
|
32
|
+
|
|
33
|
+
### Step 2: Test Commands Locally (Recommended)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Test version
|
|
37
|
+
npm start -- --version
|
|
38
|
+
# Expected: 1.3.0
|
|
39
|
+
|
|
40
|
+
# Test help
|
|
41
|
+
npm start -- --help
|
|
42
|
+
# Expected: Shows all commands including new ones
|
|
43
|
+
|
|
44
|
+
# Test new reports command
|
|
45
|
+
npm start -- reports --help
|
|
46
|
+
# Expected: Shows reports subcommands
|
|
47
|
+
|
|
48
|
+
# Test new segments command
|
|
49
|
+
npm start -- segments --help
|
|
50
|
+
# Expected: Shows segments subcommands
|
|
51
|
+
|
|
52
|
+
# Test new attributes command
|
|
53
|
+
npm start -- attributes --help
|
|
54
|
+
# Expected: Shows attributes subcommands
|
|
55
|
+
|
|
56
|
+
# Test new suppressed command
|
|
57
|
+
npm start -- suppressed --help
|
|
58
|
+
# Expected: Shows suppressed subcommands
|
|
59
|
+
|
|
60
|
+
# Test extended contacts (should show new import/export commands)
|
|
61
|
+
npm start -- contacts --help
|
|
62
|
+
# Expected: Shows import, export, tag, etc.
|
|
63
|
+
|
|
64
|
+
# Test extended lists (should show new update/archive commands)
|
|
65
|
+
npm start -- lists --help
|
|
66
|
+
# Expected: Shows update, archive, forms, etc.
|
|
67
|
+
|
|
68
|
+
# Test extended emails (should show new logs/tags commands)
|
|
69
|
+
npm start -- emails --help
|
|
70
|
+
# Expected: Shows logs, tags commands
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**If any command fails:**
|
|
74
|
+
- Check the error message
|
|
75
|
+
- Verify the command file exists in src/commands/
|
|
76
|
+
- Verify the command is registered in src/cli.ts
|
|
77
|
+
- Re-build and test again
|
|
78
|
+
|
|
79
|
+
### Step 3: Git Commit & Tag (Required)
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
cd /Users/francoislane/dev/cakemail-cli
|
|
83
|
+
|
|
84
|
+
# Stage all changes
|
|
85
|
+
git add .
|
|
86
|
+
|
|
87
|
+
# Commit with v1.3.0 message
|
|
88
|
+
git commit -m "feat: release v1.3.0 - Analytics & Data Operations
|
|
89
|
+
|
|
90
|
+
- Add 48 new commands (56 → 104 total)
|
|
91
|
+
- Reports & Analytics (12 commands)
|
|
92
|
+
- Contact Import/Export (10 commands)
|
|
93
|
+
- Segments (6 commands)
|
|
94
|
+
- Custom Attributes (4 commands)
|
|
95
|
+
- Suppression List (7 commands)
|
|
96
|
+
- Extended List Operations (7 commands)
|
|
97
|
+
- Extended Email API (2 commands)
|
|
98
|
+
- Increase API coverage from 24% to 45%
|
|
99
|
+
- Update all documentation
|
|
100
|
+
|
|
101
|
+
🤖 Generated with Claude Code
|
|
102
|
+
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
103
|
+
|
|
104
|
+
# Create git tag
|
|
105
|
+
git tag v1.3.0
|
|
106
|
+
|
|
107
|
+
# Push commits and tags
|
|
108
|
+
git push origin main
|
|
109
|
+
git push origin v1.3.0
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Expected output:**
|
|
113
|
+
- Commit created successfully
|
|
114
|
+
- Tag v1.3.0 created
|
|
115
|
+
- Pushed to GitHub
|
|
116
|
+
|
|
117
|
+
## 📦 Publish to npm (You Need to Do)
|
|
118
|
+
|
|
119
|
+
### Step 4: Publish to npm (Required - Needs npm credentials)
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
cd /Users/francoislane/dev/cakemail-cli
|
|
123
|
+
|
|
124
|
+
# Verify you're logged in to npm
|
|
125
|
+
npm whoami
|
|
126
|
+
# Expected: Shows your npm username
|
|
127
|
+
|
|
128
|
+
# If not logged in:
|
|
129
|
+
# npm login
|
|
130
|
+
|
|
131
|
+
# Publish the package
|
|
132
|
+
npm publish
|
|
133
|
+
|
|
134
|
+
# Expected output:
|
|
135
|
+
# + @cakemail-org/cakemail-cli@1.3.0
|
|
136
|
+
# Package published successfully
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**After publishing:**
|
|
140
|
+
- Verify on npm: https://www.npmjs.com/package/@cakemail-org/cakemail-cli
|
|
141
|
+
- Version should show 1.3.0
|
|
142
|
+
- Download count should start incrementing
|
|
143
|
+
|
|
144
|
+
### Step 5: Calculate SHA256 for Homebrew (Required after npm publish)
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Download and calculate SHA256 of the published package
|
|
148
|
+
curl -sL https://registry.npmjs.org/@cakemail-org/cakemail-cli/-/cakemail-cli-1.3.0.tgz | shasum -a 256
|
|
149
|
+
|
|
150
|
+
# Example output (yours will be different):
|
|
151
|
+
# a1b2c3d4e5f6... cakemail-cli-1.3.0.tgz
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Copy the SHA256 hash** - you'll need it for the next step.
|
|
155
|
+
|
|
156
|
+
## 🍺 Update Homebrew Formula (You Need to Do)
|
|
157
|
+
|
|
158
|
+
### Step 6: Update Homebrew Formula (Required)
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
cd ~/homebrew-cakemail/Formula
|
|
162
|
+
|
|
163
|
+
# Edit the formula file
|
|
164
|
+
# (Use your preferred editor: vim, nano, vscode, etc.)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Update these lines in `cakemail-cli.rb`:**
|
|
168
|
+
|
|
169
|
+
```ruby
|
|
170
|
+
class CakemailCli < Formula
|
|
171
|
+
desc "Official command-line interface for the Cakemail API"
|
|
172
|
+
homepage "https://github.com/cakemail/cakemail-cli"
|
|
173
|
+
url "https://registry.npmjs.org/@cakemail-org/cakemail-cli/-/cakemail-cli-1.3.0.tgz"
|
|
174
|
+
sha256 "REPLACE_WITH_SHA256_FROM_STEP_5"
|
|
175
|
+
license "MIT"
|
|
176
|
+
|
|
177
|
+
depends_on "node"
|
|
178
|
+
|
|
179
|
+
def install
|
|
180
|
+
system "npm", "install", *std_npm_args
|
|
181
|
+
bin.install_symlink Dir["#{libexec}/bin/*"]
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
test do
|
|
185
|
+
assert_predicate bin/"cakemail", :exist?
|
|
186
|
+
assert_predicate bin/"cakemail", :executable?
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Then commit and push:**
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
cd ~/homebrew-cakemail
|
|
195
|
+
|
|
196
|
+
# Stage changes
|
|
197
|
+
git add Formula/cakemail-cli.rb
|
|
198
|
+
|
|
199
|
+
# Commit
|
|
200
|
+
git commit -m "chore: update cakemail-cli to v1.3.0
|
|
201
|
+
|
|
202
|
+
- Update version to 1.3.0
|
|
203
|
+
- Update SHA256 checksum
|
|
204
|
+
- 48 new commands added
|
|
205
|
+
- API coverage increased to 45%"
|
|
206
|
+
|
|
207
|
+
# Push to GitHub
|
|
208
|
+
git push origin main
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Step 7: Test Homebrew Installation (Recommended)
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Update Homebrew
|
|
215
|
+
brew update
|
|
216
|
+
|
|
217
|
+
# Upgrade cakemail-cli
|
|
218
|
+
brew upgrade cakemail-cli
|
|
219
|
+
|
|
220
|
+
# Verify version
|
|
221
|
+
cakemail --version
|
|
222
|
+
# Expected: 1.3.0
|
|
223
|
+
|
|
224
|
+
# Test a new command
|
|
225
|
+
cakemail reports --help
|
|
226
|
+
# Expected: Shows reports subcommands
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## 🎉 Post-Release (Optional but Recommended)
|
|
230
|
+
|
|
231
|
+
### Step 8: Create GitHub Release (Optional)
|
|
232
|
+
|
|
233
|
+
1. Go to: https://github.com/cakemail/cakemail-cli/releases/new
|
|
234
|
+
2. Select tag: `v1.3.0`
|
|
235
|
+
3. Release title: `v1.3.0 - Analytics & Data Operations`
|
|
236
|
+
4. Description: Copy content from `RELEASE_v1.3.0.md`
|
|
237
|
+
5. Click "Publish release"
|
|
238
|
+
|
|
239
|
+
### Step 9: Announce Release (Optional)
|
|
240
|
+
|
|
241
|
+
**Internal:**
|
|
242
|
+
- Email team with release notes
|
|
243
|
+
- Post in Slack/Teams
|
|
244
|
+
- Update internal documentation
|
|
245
|
+
|
|
246
|
+
**External:**
|
|
247
|
+
- Tweet about the release
|
|
248
|
+
- Post on company blog
|
|
249
|
+
- Update product documentation
|
|
250
|
+
- Notify key users/customers
|
|
251
|
+
|
|
252
|
+
## ❌ What I Cannot Do (Requires Your Action)
|
|
253
|
+
|
|
254
|
+
I cannot directly execute these commands because:
|
|
255
|
+
|
|
256
|
+
1. **npm run build** - Requires terminal access with proper permissions
|
|
257
|
+
2. **npm publish** - Requires npm authentication/credentials
|
|
258
|
+
3. **git push** - Requires Git authentication (SSH key or token)
|
|
259
|
+
4. **Homebrew formula update** - Requires GitHub push access
|
|
260
|
+
|
|
261
|
+
These are the tasks that **only you can do**. Everything else (code, documentation, planning) has been completed.
|
|
262
|
+
|
|
263
|
+
## 📊 Release Summary
|
|
264
|
+
|
|
265
|
+
**What's Ready:**
|
|
266
|
+
- ✅ All 48 commands implemented and coded
|
|
267
|
+
- ✅ All documentation updated
|
|
268
|
+
- ✅ Version numbers updated (package.json, cli.ts)
|
|
269
|
+
- ✅ CHANGELOG complete
|
|
270
|
+
- ✅ README updated with examples
|
|
271
|
+
- ✅ Release notes prepared
|
|
272
|
+
|
|
273
|
+
**What You Need to Do:**
|
|
274
|
+
1. Build the project (`npm run build`)
|
|
275
|
+
2. Test locally (verify commands work)
|
|
276
|
+
3. Commit to Git
|
|
277
|
+
4. Publish to npm
|
|
278
|
+
5. Update Homebrew formula
|
|
279
|
+
6. Create GitHub release (optional)
|
|
280
|
+
|
|
281
|
+
**Estimated Time:** 20-30 minutes total
|
|
282
|
+
|
|
283
|
+
## 🆘 Troubleshooting
|
|
284
|
+
|
|
285
|
+
### Build fails with TypeScript errors
|
|
286
|
+
|
|
287
|
+
**Check:**
|
|
288
|
+
- Are all import statements correct?
|
|
289
|
+
- Are all SDK methods called correctly?
|
|
290
|
+
- Run `npm install` to ensure dependencies are up to date
|
|
291
|
+
|
|
292
|
+
### Command not found after build
|
|
293
|
+
|
|
294
|
+
**Check:**
|
|
295
|
+
- Is the command registered in `src/cli.ts`?
|
|
296
|
+
- Is the command file exported properly?
|
|
297
|
+
- Did you rebuild after changes?
|
|
298
|
+
|
|
299
|
+
### npm publish fails with 401
|
|
300
|
+
|
|
301
|
+
**Solution:**
|
|
302
|
+
- Run `npm login` first
|
|
303
|
+
- Verify you have publish rights to `@cakemail-org` scope
|
|
304
|
+
|
|
305
|
+
### Homebrew installation fails
|
|
306
|
+
|
|
307
|
+
**Check:**
|
|
308
|
+
- Is the SHA256 correct?
|
|
309
|
+
- Did you push the formula to GitHub?
|
|
310
|
+
- Run `brew update` to refresh
|
|
311
|
+
|
|
312
|
+
## ✅ Verification Checklist
|
|
313
|
+
|
|
314
|
+
After completing all steps, verify:
|
|
315
|
+
|
|
316
|
+
- [ ] `npm view @cakemail-org/cakemail-cli version` shows 1.3.0
|
|
317
|
+
- [ ] `brew info cakemail-cli` shows version 1.3.0
|
|
318
|
+
- [ ] `cakemail --version` shows 1.3.0
|
|
319
|
+
- [ ] `cakemail reports --help` works
|
|
320
|
+
- [ ] `cakemail segments --help` works
|
|
321
|
+
- [ ] `cakemail attributes --help` works
|
|
322
|
+
- [ ] `cakemail suppressed --help` works
|
|
323
|
+
- [ ] GitHub shows tag v1.3.0
|
|
324
|
+
- [ ] GitHub shows release v1.3.0 (if created)
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
**Need Help?**
|
|
329
|
+
If you encounter any issues during release, let me know and I can help troubleshoot!
|
|
330
|
+
|
|
331
|
+
**Ready to start?**
|
|
332
|
+
Begin with Step 1: `npm run build`
|