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 |
adlrocha
left a comment
There was a problem hiding this comment.
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.
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.
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.
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.
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
Basic Objectstore Actor with S3-inspired API and basic tests
Fix unreachable Cids in accumulator
Takes some of the changes done in db0002c to make all
Cargo.tomlfiles 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/ipcandfendermint/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 testdelegates to all sub-repos, each having their ownmake testtarget focusing on their own packages, excluding everything else.