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

fix: boojum integration nightly rust #177

Merged
merged 25 commits into from
Oct 26, 2023

Conversation

AntonD3
Copy link
Collaborator

@AntonD3 AntonD3 commented Oct 13, 2023

What πŸ’»

  • use nightly rust for the github workflows

Why βœ‹

  • the boojum-integration branch requires nightly rust

Evidence πŸ“·

The successful run of the release workflow: https://github.com/AntonD3/era-test-node/actions/runs/6650532245

@AntonD3 AntonD3 changed the base branch from main to boojum-integration October 13, 2023 02:04
@AntonD3 AntonD3 changed the title Boojum integration nightly rust fix: boojum integration nightly rust Oct 13, 2023
@MexicanAce
Copy link
Collaborator

We should avoid adding this to your branch. If you need a binary for boojum-integration, we should pull it down and generate it in the CI of the downstream repos (e.g. era-contracts and era-system-contracts).

@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 13, 2023

We should avoid adding this to your branch. If you need a binary for boojum-integration, we should pull it down and generate it in the CI of the downstream repos (e.g. era-contracts and era-system-contracts).

Why we should avoid it? That's not only related to the system contracts. boojum-integration is a long-living branch, and at some point, we should merge it into the main, give it to the users, and nightly is required by the zksync-era boojum version.

@AntonD3 AntonD3 marked this pull request as ready for review October 13, 2023 10:50
@AntonD3 AntonD3 requested a review from a team as a code owner October 13, 2023 10:50

# ==============================
# Builds
# ==============================

- name: Install cross from source
run: |
cargo install --git https://github.com/cross-rs/cross cross --branch main
cargo +nightly install --git https://github.com/cross-rs/cross cross --branch main
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add Verification Evidence to the Pull Request description showing that releases work end-to-end with Nightly builds. We typically do this by forking and running a release in a forked branch

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MexicanAce
Copy link
Collaborator

nightly is required by the zksync-era boojum version

Oof, that's rough. I'm guessing the plan is to merge boojum-integration into main when the zksync-era boojum version is merged also... and that's going to be merged with Nightly enabled.

Ok, I think I see the broader picture. Sounds like this branch should support Boojum in the same way that zksync-era supports Boojum. And for now, that means nightly builds. 🀯 πŸ˜…

@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 13, 2023

Ok, I think I see the broader picture. Sounds like this branch should support Boojum in the same way that zksync-era supports Boojum. And for now, that means nightly builds. 🀯 πŸ˜…

Yes, I am not sure it will removed, but if so, we can always restore stable rust here as well

@@ -47,7 +46,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
toolchain: nightly

- name: Rust Cache
uses: Swatinem/rust-cache@v2
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not to self, this Rust Cache might be getting "cache busted" when a branch uses the nightly packages and the main branch uses stable

@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 13, 2023

@MexicanAce Do you know why unit-tests CI failed? It looks like it was canceled, do we have any limits?

@MexicanAce
Copy link
Collaborator

Do you know why unit-tests CI failed? It looks like it was canceled, do we have any limits?

VERY strange, 143 definitely makes it look like it was killed/stopped, but I see no evidence of anyone/anything initiating the termination. We don't have limits, in fact some of our release builds take 43+ minutes, so a 15 minute build should be just fine.

I'm taking a note, and kicking them off again.

@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 16, 2023

@MexicanAce I think the issue can be caused by the runner limits. Do you know what the machine parameters are?

@MexicanAce
Copy link
Collaborator

@AntonD3 I'm unsure what the exact limits are as we're using ubuntu-latest, which is a VM owned/operated by GitHub

@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 16, 2023

Well, if these limits are true for us, the cause of the problem can be the SSD space limit.

Comment on lines 24 to 26
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly-2023-04-17
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are switching to this rust toolchain action can you update the other workflows as well. In addition, this action has Swatinem/rust-cache built in, can you update so we don't have redundant cache.

- name: Get latest version of stable Rust
run: rustup update stable
- name: Set version of nightly Rust
run: rustup default nightly-2023-04-17
Copy link
Collaborator Author

@AntonD3 AntonD3 Oct 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dutterbutter I can not find a place where the rustup is installed for this workflow. Maybe you know, is it preinstalled?

@matter-labs matter-labs deleted a comment from github-actions bot Oct 21, 2023
@matter-labs matter-labs deleted a comment from github-actions bot Oct 21, 2023
@matter-labs matter-labs deleted a comment from github-actions bot Oct 21, 2023
@matter-labs matter-labs deleted a comment from github-actions bot Oct 21, 2023
@matter-labs matter-labs deleted a comment from github-actions bot Oct 21, 2023
@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 23, 2023

@MexicanAce with this rust action it works stable as you can see. Is such result for the release workflow fine?

@MexicanAce
Copy link
Collaborator

Is such result for the release workflow fine?
@AntonD3 please merge latest from upstream main to resolve this issue of releases

@AntonD3
Copy link
Collaborator Author

AntonD3 commented Oct 26, 2023

Copy link
Collaborator

@MexicanAce MexicanAce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@AntonD3 AntonD3 merged commit 1d1effa into boojum-integration Oct 26, 2023
10 checks passed
@AntonD3 AntonD3 deleted the boojum-integration-nigthly-rust branch October 26, 2023 20:35
MexicanAce added a commit that referenced this pull request Dec 15, 2023
* Integrate boojum

* Account impersonating using bootloader

* eth_sendTransaction + some fixes

* Bootloader impersonating fixes

* Update compile-yul script

* fix typo, cargo fmt

* Pin commit for the zksync-era dependency

* fix: support EIP-1559 fields for eth_sendTransaction (#192)

* feat: boojum integration sync with main (#200)

* chore: adds proper null response to zks_batchDetails method (#152)

* fix: add back call stacks, console logs, and correct call stack count (#155)

* fix: add back call stacks, console logs, and correct call stack count

* Add comments. Fix typo.

* fix lint

* feat: add eth_getStorageAt (#134)

* add get_storage_at

* add eth_getStorageAt

* limit max archived blocks to 128

* remove ethers-contract dep

* feat: add evm_snapshot/revert (#158)

* fix: update compiled smart contracts to latest (#157)

* Update compile smart contracts checked into source
* Hide Notes section of PR template by default
* Update e2e tests to also be run on MacOS
* Add commented link to YouTube video at the top of release notes
* Limit rust/clippy linting to only the era_test_node package/crate
* Re-enable e2e test for zks_estimateFee
* Add more trace level logs for gas estimation

* feat: add eth_getTransactionByBlockHashAndIndex and eth_getTransactionByBlockNumberAndIndex (#159)

* feat: add eth_protocolVersion (#161)

* feat: impl debug_traceCall (#151)

* feat: impl debug_traceCall

* feat: adds test contract dir

* add refresh_test_contracts in Makefile

* fix: rename contacts_for_l2_call -> contracts_for_l2_call

* move not_implemented() to crate::utils, replace usage of macro

---------

Co-authored-by: Nicolas Villanueva <nicolasvillanueva@msn.com>

* feat: Add well-known log selectors to console output (#162)

* add aarch64-unknown-linux-gnu target (#164)

* feat: add rustbook (#163)

* fix: install mdbook for ci (#169)

* feat: impl debug_traceTransaction (#165)

* feat: impl `debug_traceBlockByHash` and `debug_traceBlockByNumber` (#168)

* fix: update zksync-era deps to v16.0.0 (#173)

* chore: remove hub usage in favour of gh for draft releases (#175)

* feat: add hardhat_setCode (#171)

* feat: impl `zks_getTransactionDetails` (#176)

* feat: forbid ".only" from e2e-tests (#179)

* feat: impl zks_getBlockDetails (#182)

* feat: support builtInWithoutSecurity option (#186)

* feat: add zks_getBridgeContracts (#184)

* feat: add zks_getBytecodeByHash (#180)

* feat: refactor logging to use tracing crate and make it dynamic (#187)

* feat: impl zks_getRawBlockTransactions (#185)

* fix: unit-tests fixed on main (#193)

* fix: fix forking for zksync-era@16.0.2 (#194)

* fix: Release drafts now attach files correctly (#196)

* contracts_for_l2_call was missed during merge

* Fix compilation errors

* Fix tests

---------

Co-authored-by: Dustin Brickwood <dustinbrickwood204@gmail.com>
Co-authored-by: Nicolas Villanueva <nicolasvillanueva@msn.com>
Co-authored-by: Nisheeth Barthwal <nbaztec@gmail.com>
Co-authored-by: George W <140627974+grw-ms@users.noreply.github.com>

* fix: boojum integration nightly rust (#177)

Co-authored-by: MexicanAce <nicolasvillanueva@msn.com>

* Merge main

* latest vm

* Small refactoring

* System contracts 18.4.0

* EcAdd, EcMul, rebuild system contracts

* Small change in system-contracts/VERSION.md

* Update zksync-era dependency

* Fix test

* Prepare to merge into main

* Fix e2e tests

* Restore zksync-era version

* Sync system-contracts/bootloader directory

* Impersonating bootloader small fix

* system-contracts/VERSION.md formatting

* Update DefaultAccount.json bytecode to match source

* Update VERSION.md comments and add supported versions missing

* fix lint

* Fix BuiltInNoSecurity option. Fix unit tests. Fix e2e tests. Add test for hardhat_impersonateAccount

* Refresh bytecode of all contracts from source

* fix lint

* fix lint

---------

Co-authored-by: Dustin Brickwood <dustinbrickwood204@gmail.com>
Co-authored-by: Nicolas Villanueva <nicolasvillanueva@msn.com>
Co-authored-by: Nisheeth Barthwal <nbaztec@gmail.com>
Co-authored-by: George W <140627974+grw-ms@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants