You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To ease maintenance in an effort to progressively extract & replace functionality from an aging codebase, I moved towards a mono-repository.
So far this has been a boon, and these have proved to be useful design decisions:
Lerna is both feature-complete & fairly stable, and offers wildcard-based module discovery.
Builds, tests & deployments are parallelised via GitHub Actions.
These parallelised workflows always run together ("monolithic build"). Note: This isn't necessarily a problem, aside from CI taking longer than it should do, and also surfaces problems quickly.
Tooling like Dependabot is able to interact with independent subpackages without manual intervention.
However, there are still some workflow challenges I would like to address:
Lerna is based around a package workflow, meaning that applications follow a library deployment lifecycle (e.g. publish).
Secrets are shared & available to all workflows meaning that the blast-radius for changes is high.
Infrastructure-as-code (eg Cloudformation) isn't co-located as it's incompatible with this workflow.
More generally, codebases don't necessarily follow the same stack (eg I'd like to introduce Rust & WASM) and most tooling is language-opinionated.
However, some codebases are likely to be similar: eg Workers should all follow the same blueprint.
It would also be nice if IDEs were aware of the separation.
Adding new tools to support the entire mono-repository (e.g. Storybook) is non-trivial and involves lots of dependency-wrangling.
A bigger outstanding question:
What is the "scope" of frontend, should this strive to contain all of my stack? (i.e. be platform?)
The text was updated successfully, but these errors were encountered:
To ease maintenance in an effort to progressively extract & replace functionality from an aging codebase, I moved towards a mono-repository.
So far this has been a boon, and these have proved to be useful design decisions:
However, there are still some workflow challenges I would like to address:
publish
).A bigger outstanding question:
What is the "scope" of
frontend
, should this strive to contain all of my stack? (i.e. beplatform
?)The text was updated successfully, but these errors were encountered: