-
Notifications
You must be signed in to change notification settings - Fork 42
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
CHORE: Workspace level Cargo.toml #2
Conversation
9897503
to
59bf86c
Compare
59bf86c
to
efcc043
Compare
@adlrocha when I look at the original contracts I see symlinks (or submodules?): https://github.com/consensus-shipyard/ipc-solidity-actors/tree/dev/lib However in this repo these are not pointing anywhere useful: https://github.com/consensus-shipyard/ipc-monorepo/tree/main/contracts/lib Possibly because you created the subtrees from your local filesystem instead of pulling in the remote repositories. Do you have an idea how to fix it? I don't know how these libraries were added in the first place. Currently when I try to run tests I get this: ❯ cd contracts
~/projects/consensuslab/ipc-monorepo/contracts workspace-toml ···················································································································· ⬢ 20.9.0 1.73.0 22:06:24
❯ make test
forge test -vvv --ffi
[⠊] Compiling...
Error:
Failed to resolve file: "/home/aakoshh/projects/consensuslab/ipc-monorepo/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2).
Check configured remappings..
--> "/home/aakoshh/projects/consensuslab/ipc-monorepo/contracts/src/gateway/GatewayGetterFacet.sol"
"openzeppelin-contracts/utils/structs/EnumerableSet.sol"
make: *** [Makefile:50: test] Error 1 |
@aakoshh, usually we use https://book.getfoundry.sh/projects/dependencies#adding-a-dependency to install dependencies. I tried but I get an error flagging that my commit history is dirty (which is not the case). I also tried |
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.
LGTM. Left a few comments with reminders, but looks good. I'll try to find how we can pull the Solidity dependencies in the meantime (which is the last thing missing)
"ipc/ipc/provider", | ||
"ipc/ipc/sdk", | ||
# Tests seem to be obsolete (using IPC agent): | ||
# "ipc/ipc/testing/*", |
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 should remove them. We were waiting for M2.5 to deprecate them, and now we can. I actually removed them from my monorepo PR already.
# "ipc/ipc/testing/*", | |
# "ipc/ipc/testing/*", |
Cargo.toml
Outdated
"contracts/binding", | ||
# fvm-utils, | ||
"fvm-utils/primitives", | ||
"fvm-utils/runtime", |
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.
As part of the monorepo I would like to deprecate fvm-utils
. Now that we don't need the ffi
and we use solidity contracts the repo is no longer needed and we can move the primitives to the monorepo directly.
"fvm-utils/runtime", |
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.
Thanks, I saw that primitives have been moved, just wanted to defer that after it's all done.
git subtree add -P ipld-resolver ../ipc-ipld-resolver main | ||
``` | ||
|
||
TODO: Add examples of pulling updates from the upstream repos. |
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.
Here's the command to pull changes so you don't have to look for it:
git subtree pull --prefix external/<component> <component> dev
@adlrocha thanks for fixing the submodules! When I pull and run
Is there something to be done before? |
I did the following:
This fixed running the tests, although they fail for different reasons. I'm not sure if the 3rd step is a required step for checkout. |
Update mycelium network ids
Takes some of the changes done in db0002c to make all
Cargo.toml
files take the dependency versions from a common workspace level one.What this PR doesn't do is try to change any of the dependency versions. I think we should fight that battle after we have established a working CI pipeline which allows us to work with this repository with confidence.
The PR also doesn't try to reorganise the imported subtree structures, e.g. it leaves them as
ipc/ipc
andfendermint/fendermint
, in the hope that this will make it easier to pull in changes that are still actively happening in those repositories.#1 started updating dependencies but I would recommend that we rebase that on top of this and refrain from rearranging the code layout until this repository is stable and we stop working on the originals.
Testing
A top level
make test
delegates to all sub-repos, each having their ownmake test
target focusing on their own packages, excluding everything else.