Skip to content

Conversation

alanrsoares
Copy link

@alanrsoares alanrsoares commented Aug 19, 2025

Summary

This PR migrates the gno-js-client project from Yarn to Bun as the primary package manager and test runner. The migration includes comprehensive updates to the build system, TypeScript configuration, CI/CD workflows, and documentation to leverage Bun's performance benefits and modern tooling.

Key Changes:

  • Package Manager Migration: Replaced Yarn with Bun for dependency management and script execution
  • Test Runner Upgrade: Migrated from Jest to Bun's built-in test runner for faster test execution
  • TypeScript Modernization: Updated to ES2022/ESNext modules with strictest configuration
  • CI/CD Updates: Modified GitHub Actions workflows to use Bun instead of Yarn
  • Documentation: Updated README with Bun-specific instructions while maintaining compatibility

Benefits:

  • Performance: Bun provides significantly faster dependency installation and test execution
  • Modern Tooling: Leverages latest ES module standards and TypeScript features
  • Simplified Workflow: Unified package manager, test runner, and bundler in one tool
  • Better Developer Experience: Faster feedback loops and improved caching

- Remove yarn.lock, .yarnrc.yml, and jest.config.json
- Add bun.lock for dependency management
- Update package.json scripts to use bun commands
- Replace Jest with Bun's built-in test runner
- Update dependencies to use @types/bun instead of @types/jest
- Add new test scripts: test:watch and test:coverage
- Extend from @tsconfig/strictest for better type safety
- Update target to ES2022 and module to ESNext
- Change moduleResolution to bundler for modern bundlers
- Add @types/bun to types array for Bun runtime support
- Configure verbatimModuleSyntax for explicit import/export
- Update include/exclude patterns for better test organization
- Disable some strictest options that may cause issues with existing code
- Add Bun setup step using oven-sh/setup-bun@v1 action
- Update cache configuration to use Bun's cache directory
- Replace yarn install with bun install
- Update test command to use bun test
- Update lint commands to use bun run eslint and bun run prettier
- Configure cache keys to use bun.lock instead of yarn.lock
- Update installation instructions to prioritize Bun
- Add comprehensive testing section with Bun commands
- Include test:watch and test:coverage examples
- Maintain npm and yarn installation options for compatibility
- Update import/export statements to use modern ES module syntax
- Update eslint configuration for better ES module support
- Ensure compatibility with new TypeScript configuration
- Maintain backward compatibility while modernizing code structure
@zivkovicmilos
Copy link
Member

Pausing this for now, it requires discussion and a thorough review, and we don't have the bandwidth for it right now 🙏

@zivkovicmilos zivkovicmilos marked this pull request as draft August 27, 2025 18:11
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