Skip to content

Conversation

@levicook
Copy link
Owner

This PR adds comprehensive support for Node.js/npm workspaces alongside existing Rust/Cargo workspace functionality. The changes enable odometer to handle mixed ecosystem workspaces, providing consistent version management across both package managers.

Key Changes:

  • Add Node.js package.json parsing and version management
  • Implement workspace inheritance detection for Node.js packages
  • Add support for mixed Rust/Node.js workspaces
  • Refactor test infrastructure for better maintainability
  • Update documentation to reflect new capabilities

Technical Details:

  • New package.json parser with workspace inheritance support
  • Comprehensive test suite for Node.js workspace operations
  • Split integration tests into ecosystem-specific files
  • Improved test helpers and fixture management
  • Updated README with Node.js examples and mixed workspace support

Testing:

  • Added 36 new tests for Node.js workspace operations
  • Added mixed ecosystem test scenarios
  • All existing tests pass (93 total tests)
  • Test coverage for edge cases (symlinks, case sensitivity, etc.)

Documentation:

  • Updated README with Node.js workspace examples
  • Added mixed ecosystem support documentation
  • Removed completed PLAN.md as it has served its purpose

This change maintains backward compatibility while extending odometer's capabilities to support the Node.js ecosystem, making it a truly polyglot workspace version manager.

levicook added 2 commits June 13, 2025 20:02
This commit adds comprehensive support for Node.js workspaces alongside Rust workspaces,
with several key improvements:

- Add Node.js package.json parsing and version management
- Implement workspace inheritance detection for Node.js packages
- Add extensive test coverage for Node.js workspace operations
- Refactor test infrastructure for better maintainability:
  - Split integration tests into focused test files
  - Add helper functions for common test operations
  - Improve test fixture management
- Add test cases for edge cases:
  - Mixed Rust/Node.js workspaces
  - Symlinked directories
  - Case sensitivity handling
  - Empty manifests
  - Duplicate package names

The changes maintain backward compatibility while extending odometer's
capabilities to handle both Rust and Node.js ecosystems seamlessly.
- Update README.md to include Node.js workspace support details
- Add Node.js-specific examples and workspace inheritance info
- Add mixed ecosystem support documentation
- Remove completed PLAN.md as it has served its purpose

The documentation now accurately reflects odometer's ability to handle
both Rust and Node.js workspaces, including mixed ecosystem scenarios.
@levicook levicook self-assigned this Jun 14, 2025
@levicook levicook merged commit c4e4e7e into main Jun 14, 2025
1 check passed
@levicook levicook deleted the feature/nodejs-support branch June 14, 2025 02: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