Skip to content

v4.0.0

Choose a tag to compare

@stoe stoe released this 21 Jun 11:02
· 36 commits to main since this release
v4.0.0
ab29bdf

What's Changed

💥 Breaking Changes

  • Complete rewrite of the codebase architecture by @stoe in #120
  • Changed entry point from index.js to cli.js
  • Modified module exports structure in package.json
  • Removed deprecated utils/ directory in favor of organized src/ structure
  • Changed API contracts and interfaces

✨ New Features

  • Enhanced Logging System

    • Added Winston-based logging with multiple output levels
    • Implemented spinners with Ora for better UX during long operations
    • Added debug mode with file-based logging
    • Improved warning log usage (🔊 Use warn logging more often)
  • Improved Caching

    • Added dedicated cache management system in cache.js
    • Enhanced performance with persistent API response caching
  • Modular Architecture

    • Created specialized GitHub entity classes (Enterprise, Repository, Owner)
    • Implemented pluggable report formats (CSV, JSON, Markdown)
    • Added options to skip archived/forked repositories
  • User Experience

    • Improved report logic and generation
    • Added messaging to display report and output options
    • Enhanced CLI help text

🧰 Technical Improvements

  • Code Organization

    • Reorganized codebase into logical directories:
      • src/github/: GitHub API interactions
      • src/report/: Report generation logic
      • src/util/: Utility functions
  • Documentation

    • Improved README clarity and usage instructions
    • Added comprehensive contributing guidelines
    • Enhanced inline code documentation
  • Testing Infrastructure

    • Complete rewrite of tests with Jest framework
    • Implemented mocks for core functionality
    • Added unit tests across all components

🐛 Bug Fixes

No specific bug fixes were included in this release as it's a complete rewrite.

🆙 Dependencies

  • Node Requirements

    • Updated Node.js requirement to >=20
    • Updated npm requirement to >=10
  • New Dependencies

    • ora (v8.2.0) for terminal spinners and progress indicators
    • winston (v3.17.0) for advanced logging
  • Updated Core Dependencies

  • Updated Dev Dependencies

    • All development dependencies updated to latest versions

📊 File Statistics

  • Added: 25 new JavaScript files
  • Removed: 3 files (index.js, utils/reporting.js, utils/wait.js)
  • Total Changes: 15,557 insertions, 2,551 deletions across 54 files

🔄 Migration Guide

Users upgrading from v3.x will need to:

  1. Update Node.js to version 20 or later and npm to version 10 or later

  2. Update imports/requires to use the new module structure:

    // Old imports (v3)
    import Reporting from '@stoe/action-reporting-cli'
    
    // New imports (v4)
    import Report from '@stoe/action-reporting-cli'
    // or for specific components
    import { CSVReporter } from '@stoe/action-reporting-cli/report'
    import { Repository } from '@stoe/action-reporting-cli/github'
  3. Review the updated CLI options and parameters

  4. Update any code that directly uses the library's exports

See the documentation for detailed migration instructions.

🎉 Thank you!

@a-magdy, thank you for inspiring this rewrite!
🐙🐱💚

Full Changelog: v3.6.3...v4.0.0