Skip to content

Conversation

@connorads
Copy link
Owner

Summary

This PR upgrades Lockbot to use Slack Bolt v4 and modernizes all dependencies to their latest compatible versions.

Key Changes

  • 🚀 Slack Bolt: Upgraded from v3.9.0 to v4.4.0
  • 📦 TypeScript: Upgraded from v4.3.4 to v5.8.3
  • 🧪 Jest: Upgraded from v27.0.4 to v29.7.0
  • 📦 Package Manager: Migrated from Yarn to npm
  • 🔧 Node.js: Updated requirement from v14 to v18
  • 🤖 CI/CD: Modernized GitHub Actions workflows

Breaking Changes

⚠️ Node.js 18+ is now required (previously Node.js 14)

Migration Notes

The upgrade to Slack Bolt v4 required no code changes to the application logic. The main updates were:

  • Fixed TypeScript compilation warnings by prefixing unused parameters with _
  • Updated Jest configuration for TypeScript 5 compatibility
  • Removed deprecated "modern" parameter from Jest fake timers

CI/CD Updates

  • All GitHub Actions updated to latest versions
  • Workflows now use npm instead of yarn
  • Node.js version set to 18 in all workflows
  • Added .nvmrc file for consistent Node version

Testing

  • ✅ All TypeScript compilation checks pass
  • ✅ All linting checks pass
  • ✅ All in-memory tests pass
  • ⚠️ DynamoDB tests require local DynamoDB instance

Dependencies Updated

Production:

  • @slack/bolt: 3.9.0 → 4.4.0
  • express: 4.17.2 → 4.21.2 (kept at v4 for ExpressReceiver compatibility)
  • @vendia/serverless-express: 4.5.3 → 4.12.6
  • Various @types packages updated to latest

Development:

  • typescript: 4.3.4 → 5.8.3
  • jest: 27.0.4 → 29.7.0
  • ts-jest: 27.0.3 → 29.1.1
  • @types/node: 15.6.1 → 18.0.0

Checklist

  • Code compiles without errors
  • All tests pass
  • Linting passes
  • CI/CD workflows updated
  • Manual testing with Slack
  • Deploy to staging environment
  • Verify OAuth flow works
  • Test all slash commands

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

- Upgrade @slack/bolt from 3.9.0 to 4.4.0
- Upgrade TypeScript from 4.3.4 to 5.8.3
- Update Jest from 27.0.4 to 29.7.0 and ts-jest for TypeScript 5 compatibility
- Migrate from yarn to npm (remove yarn.lock, add package-lock.json)
- Update Node.js requirement from 14 to 18
- Modernize GitHub Actions workflows:
  - Update actions to latest versions (checkout@v4, setup-node@v4, etc)
  - Switch from yarn to npm commands
  - Use ubuntu-latest instead of ubuntu-20.04
- Fix TypeScript compilation warnings by prefixing unused parameters
- Update Jest configuration for compatibility
- Add .nvmrc file specifying Node 18
- Update CONTRIBUTING.md to reflect npm usage

BREAKING CHANGE: Requires Node.js 18 or higher
The env-var package requires these environment variables to be set
when the application starts. Add dummy values for CI testing.
@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants