Skip to content

Conversation

@claytercek
Copy link
Member

This pull request introduces a major breaking change across all Launchpad packages: it removes all barrel (index) files, requiring imports to reference specific module paths directly. The change impacts import statements throughout the codebase and documentation, and enforces this new structure via linting. Additionally, documentation is updated to clarify usage for both monorepo and individual package installations.

Barrel File Removal and Import Path Updates

  • Removed all barrel (index) files from every package, so public APIs must now be imported from their specific paths rather than from a package root. This required updating nearly all import paths in documentation and code examples. (.changeset/little-buses-worry.md
  • Updated all documentation and code samples to use the new direct import paths, such as importing plugins from @bluecadet/launchpad-content/plugins/... and sources from @bluecadet/launchpad-content/sources/....

Linting and Tooling

  • Added a new linting rule (noBarrelFile) to enforce the absence of barrel files, and extended the Biome configuration to include this rule and to lint TypeScript files in the scripts directory.

Documentation Improvements

  • Added tips and clarifications in the documentation for users installing the monorepo package (@bluecadet/launchpad), explaining how to adjust import paths accordingly.

These changes are major and breaking, so all downstream code and documentation must update import paths to match the new structure.

Resolves #255

@changeset-bot
Copy link

changeset-bot bot commented Nov 3, 2025

🦋 Changeset detected

Latest commit: 784e6e7

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@bluecadet/launchpad-controller Major
@bluecadet/launchpad Major
@bluecadet/launchpad-scaffold Major
@bluecadet/launchpad-content Major
@bluecadet/launchpad-monitor Major
@bluecadet/launchpad-utils Major
@bluecadet/launchpad-cli Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@claytercek
Copy link
Member Author

Might hold on merging this for a later v3 release.

@claytercek
Copy link
Member Author

Actually, after profiling, I'm finding this doesn't make a significant difference in terms of memory usage or startup speed. Module resolution is FAST.

Gonna rework it so that there still are some barrel files, but only the common public API is included.

After profiling, it turns out that removing barrel files really doesn't have a performance impact for this use. We're keeping the more specific import paths, but als adding back some barrels for convenience.
@claytercek claytercek changed the title Remove barrel files, update all package exports Refactor package export Nov 7, 2025
@claytercek claytercek merged commit 11f09cc into develop Nov 7, 2025
7 checks passed
@claytercek claytercek deleted the fix/no-barrel branch November 7, 2025 15:03
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.

barrel files - remove or refactor

2 participants