-
Couldn't load subscription status.
- Fork 26
Migrate to monorepo and pnpm #163
Conversation
|
Will become non-draft once the CI work |
|
|
||
| on: | ||
| workflow_dispatch: | ||
| push: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need a snapshot on every push to github? Perhaps it would be better to set it to workflow_dispatch and use that when you need a snapshot?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we are pushing to our internal registry I think it would be harmless. It's kind tedious when you are integrating your changes (e.g into aqua-playground ) and have to trigger the workflow for every commit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We decided to leave it as is for now
Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
In the PR single package is split into multi package monorepo manages by pnpm. The core FluenceJS no longer depends on the exact implementations for libp2p and keypair related stuff. Instead necessary functionality was interfaced away and taken out to separate packages.
The new package structure is:
@fluencelabs/fluence- the main package as before the update.@fluencelabs/interfaces- common interfaces for FluenceJS@fluencelabs/connection- connectivity layer, i.e FluenceConnection@fluencelabs/keypair- implementation of keypairpnpm takes care of the monorepo pretty well. Basically you just prefix the dependency with
workspace:and then specify the version as you normally would. pnpm will figure out the appropriate source for the package and use it accordingly. Also it makes releases very simple by replacing the prefix with the appropriate version when creating packages.These changes are needed for the subsequent update to libp2p v0.37.x as well as adding more tests for different environments in future.