Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Glory to the Monorepos #1045

Open
novusnota opened this issue Nov 15, 2024 · 0 comments
Open

Glory to the Monorepos #1045

novusnota opened this issue Nov 15, 2024 · 0 comments
Assignees
Labels
ci/cd Continuous Integration: GitHub Actions, commit/push hooks and scripts discussion Ideas that are not fully formed and require discussion docs.tact-lang.org Documentation for docs.tact-lang.org kept in docs folder ux

Comments

@novusnota
Copy link
Member

novusnota commented Nov 15, 2024

Or just using workspaces of Yarn v1.

Current issues

  1. Docs package, although deployed to docs.tact-lang.org and not published to npm, requires some Tact compiler functionality.
  2. Each package in the repo (compiler, docs) require their own set of dependencies with some overlap, where cspell is used in both places and requires to be installed in both
  3. Other essential developer tools utilizing the compiler (lsp, formatting, linting*, docgen*) are tough to version, develop and manage since they are not present in the same repo with the compiler, which means that they easily drift away from it and require constant vigilance from users and developers to make sure that compatible versions of each are used together.

Proposed solution

  1. Move all packages (tact compiler, docs) into the newly created workspaces or packages directory.
  2. Make a root of the compiler repo a private: true package designated to control the workspaces.
  3. Set up dependencies in packages (docs): to use @tact-lang/compiler: "*" with yarn doing the rest.

Then, running yarn (i.e. yarn install) would take care of common dependencies AND of cross-dependencies of one "workspace" (package) on another.

Finally, by running yarn workspace WORKSPACE_NAME as a prefix, one could run any yarn command inside any particular workspace while being anywhere in the repo tree.

@novusnota novusnota added discussion Ideas that are not fully formed and require discussion ux ci/cd Continuous Integration: GitHub Actions, commit/push hooks and scripts docs.tact-lang.org Documentation for docs.tact-lang.org kept in docs folder labels Nov 15, 2024
@verytactical verytactical self-assigned this Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/cd Continuous Integration: GitHub Actions, commit/push hooks and scripts discussion Ideas that are not fully formed and require discussion docs.tact-lang.org Documentation for docs.tact-lang.org kept in docs folder ux
Projects
None yet
Development

No branches or pull requests

2 participants