VulcanJS / vulcan-npm

The full-stack JavaScript App Framework
https://vulcan-docs.vercel.app
MIT License
30 stars 8 forks source link

RFC: Merging all repos into one #75

Open eric-burel opened 2 years ago

eric-burel commented 2 years ago

Describe the problem you want to solve or enhancement you want to bring

Development of Vulcan NPM can become tricky when you want to experiment it in a real app, like in Vulcan Next. We need to use Yalc etc.

Having only one repo containing Vulcan core logic (NPM) + demo apps (Next, Express, Gatsby...) makes it easier to develop the framework.

Cons: can't the monorepo becomes a mess of complicated apps? Define relevant concepts

Blitz is structured as a monorepo but revolves a lot around the Next app. We'd want to do the reverse: putting Vulcan Next within the monorepo.

Describe your solution We could have scripts to create apps, based on templates => npx create-vulcan-app next generate a Next app, a Gatsby app, etc.

We could also keep separate repos like Vulcan Next, but generate them automatically. So that developers can still simply clone Vulcan Next for instance and get the latest code.

Questions to the community

Neobii commented 2 years ago

Vulcan next should be a separate monorepo from the vulcan-npm monorepo.
Pros

Cons

eric-burel commented 2 years ago

I've found out about a possible alternative, used by Symfony for instance: they put the app in the monorepo, but deploy a read-only repo for the actual app. This way I could keep "vulcan-next" github project as an entrypoint but have the code within "vulcan-npm" to make the development and testing easier.

It could be suited in our scenario, though not a top priority.

From: https://dl.acm.org/doi/pdf/10.1145/3328433.3328435

eric-burel commented 2 years ago

https://stackoverflow.com/a/49799881/5513532 this seems to allow to publish a subtree of git as another repo

I've started an Express starter, I'll use it as a test case before trying to move Next

Yalc is sadly raising some issues with build tools, that wrongfully detect the symlinks as relative imports, it happens in Next Not sure a monorepo would completely fix that but at least it could make things simpler