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

Cherry-pick core proposal and deploy-script-support changes #8747

Merged
merged 42 commits into from
Jan 19, 2024

Conversation

mhofman
Copy link
Member

@mhofman mhofman commented Jan 13, 2024

refs: #XXXX

Description

These are all the changes to bring cosmic-swingset and deploy-script-support roughly in sync with master. There are some things likely not strictly needed for getting core proposal working for chain upgrades, however the extra changes seemed harmless and getting to parity will help maintaining the branches in sync.

Constructed from the following rebase-todo with minimal conflict resolutions:

# Branch Agoric-ta-bundle-types
label base-Agoric-ta-bundle-types
pick 848773507 chore(types): correct ManifestBundleRef
label Agoric-ta-bundle-types
reset base-Agoric-ta-bundle-types
merge -C 3a87a1254 Agoric-ta-bundle-types # Merge pull request #7957 from Agoric/ta/bundle-types

# Branch Agoric-gibson-2023-07-agoric-cli-cleanup
label base-Agoric-gibson-2023-07-agoric-cli-cleanup
pick 7ce5410bc refactor(agoric-cli): Improve git clone efficiency
label Agoric-gibson-2023-07-agoric-cli-cleanup
reset base-Agoric-gibson-2023-07-agoric-cli-cleanup
merge -C bd1190d9e Agoric-gibson-2023-07-agoric-cli-cleanup # Merge pull request #8057 from Agoric/gibson-2023-07-agoric-cli-cleanup

# From pull request #8140
pick cfb72f337 fix(cosmic-swingset): only require vatconfig if uninitialized

# Branch Agoric-7175-expungeTests
label base-Agoric-7175-expungeTests
pick 76f03015f test: drop obsolete tests
label Agoric-7175-expungeTests
reset base-Agoric-7175-expungeTests
merge -C ff34bdfa0 Agoric-7175-expungeTests # Merge pull request #8149 from Agoric/7175-expungeTests

# From pull request #8150
pick 835cc27bd feat: better diagnostic for bad proposal

# Branch Agoric-mfig-swup-core-proposals
label base-Agoric-mfig-swup-core-proposals
pick 4ca9a0b5c feat(deploy-script-support): generalize `extractCoreProposalBundles`
pick 3825c171f feat(cosmic-swingset): implement `ENACTED_UPGRADE` blocking send
# pick 49cb43fee docs(test-docker-build): add some useful comments
pick b14ca404e fix(cosmic-swingset): only search for the `vatconfig` on init
# pick cd2779e96 fix(upgrade-test): update for new file locations
label Agoric-mfig-swup-core-proposals
reset base-Agoric-mfig-swup-core-proposals
merge -C 35e67bed9 Agoric-mfig-swup-core-proposals # Merge pull request #8112 from Agoric/mfig-swup-core-proposals

# From pull request #8153
pick b735591b5 chore(types): improve coverage

# Partial Branch Agoric-mhofman-8279-atomic-swingset-upgrade-plan
label base-Agoric-mhofman-8279-atomic-swingset-upgrade-plan
pick 4c7a7438e refactor(cosmic-swingset): share runSwingset with bootstrap
pick 140712a25 feat(cosmic-swingset): run upgrade actions to completion
label Agoric-mhofman-8279-atomic-swingset-upgrade-plan
reset base-Agoric-mhofman-8279-atomic-swingset-upgrade-plan
merge -c 52bc8ecac Agoric-mhofman-8279-atomic-swingset-upgrade-plan # Merge partial pull request #8287 from Agoric/mhofman/8279-atomic-swingset-upgrade-plan

# Pull Request #8432
pick a9d113a09 feat(cosmic-swingset): add begin block check and transaction (#8432)

# Branch Agoric-gibson-2023-11-cleanup-coreproposalbehavior
label base-Agoric-gibson-2023-11-cleanup-coreproposalbehavior
pick a4364481e chore(deploy-script-support): Rename `allPowers` to clarify its limited scope
pick 4640c8ac0 chore(deploy-script-support): Move default restoreRef creation up a level
pick 520ddf836 chore(deploy-script-support): Clarify the [methodName, ...args] structure of getManifestCall
pick 037f890cd chore(deploy-script-support): Enforce bundleRef shape
pick e6903b5da chore(deploy-script-support): Rename `manifestNS` to clarify its nature
# pick f16e093c4 chore(deploy-script-support): Clarify `shallowlyFulfilled`
pick cbef1af17 chore(deploy-script-support): Improve comment
pick f4abd3ad1 chore(deploy-script-support): Clean up logging
pick 6dc6f12db chore(deploy-script-support): Comment on the scope of `powers`
pick a3a54f971 chore(deploy-script-support): Rename variables for clarity
label Agoric-gibson-2023-11-cleanup-coreproposalbehavior
reset base-Agoric-gibson-2023-11-cleanup-coreproposalbehavior
merge -C 8406d71b7 Agoric-gibson-2023-11-cleanup-coreproposalbehavior # Merge pull request #8528 from Agoric/gibson-2023-11-cleanup-coreproposalbehavior

# Branch Agoric-kriskowal-and-fudco-hackathon
label base-Agoric-kriskowal-and-fudco-hackathon
pick 68235ec3f feat(deploy-script-support): Write out bundle file names in machine readable file
label Agoric-kriskowal-and-fudco-hackathon
reset base-Agoric-kriskowal-and-fudco-hackathon
merge -C 8ecb5d7a9 Agoric-kriskowal-and-fudco-hackathon # Merge pull request #8559 from Agoric/kriskowal-and-fudco-hackathon

# Branch Agoric-gibson-2024-01-cleanup-coreproposalbehavior
label base-Agoric-gibson-2024-01-cleanup-coreproposalbehavior
pick 5726566d4 chore(deploy-script-support): Rename variable for clarity
pick 5753e80ef chore(deploy-script-support): Improve JSDoc annotation
pick 4b5b60da1 chore(deploy-script-support): Fix package reference in comment
pick 2aa156c20 chore(deploy-script-support): For clarity, rename "override" paramaters to "custom"
pick e421f7d4b chore(deploy-script-support): Complete the "override" → "custom" renaming
pick c8c90e143 chore(deploy-script-support): Clarify script completion value as pseudo-export
pick cf009b21d chore(deploy-script-support): Avoid "make…" names for non-function variables
pick aba627b09 chore(deploy-script-support): Sync code patterns across files
pick aebce3f2c chore(deploy-script-support): Update assert(cond, X`...`) calls to cond || Fail`...`
pick 9dc2fa464 chore(deploy-script-support): Apply suggestions from code review
pick 2992afaac chore(deploy-script-support): Lookup the agoricNames installation admin only when necessary
label Agoric-gibson-2024-01-cleanup-coreproposalbehavior
reset base-Agoric-gibson-2024-01-cleanup-coreproposalbehavior
merge -C ba2f0d94e Agoric-gibson-2024-01-cleanup-coreproposalbehavior # Merge pull request #8712 from Agoric/gibson-2024-01-cleanup-coreproposalbehavior

# From pull request #8778
pick 8e453bea4 chore(types): InstallEntrypoint

Security Considerations

I don't believe there are any

Scaling Considerations

The core proposal runs blocking in the upgrade block, which could result in a slower upgrade block, but that has been deemed preferable to impacting later blocks.

Documentation Considerations

None

Testing Considerations

Test coverage should be maintained

Core proposal logic here has been tested by cherry-picking dd296e9 on top of this branch to simulate a core proposal installing the network related vats.

Upgrade Considerations

This introduces the ability to execute core proposals during chain software upgrades. There should be no impact to code running on chain, but it does support the ability to deploy vat upgrades as part of chain software upgrades in the release branch.

@mhofman mhofman added the force:integration Force integration tests to run on PR label Jan 13, 2024
@mhofman mhofman force-pushed the mhofman/release-core-proposal branch 2 times, most recently from e5b374e to dd31b14 Compare January 15, 2024 00:55
@mhofman mhofman force-pushed the mhofman/update-release-ci branch 2 times, most recently from 897f51b to 26d198b Compare January 15, 2024 15:39
@mhofman mhofman force-pushed the mhofman/release-core-proposal branch from dd31b14 to b31aa82 Compare January 15, 2024 15:49
@mhofman mhofman marked this pull request as ready for review January 15, 2024 20:00
@mhofman
Copy link
Member Author

mhofman commented Jan 15, 2024

This is now ready for review.

To measure against the goal of catching up cosmic-swingset and deploy-script-support, you can use https://github.com/Agoric/agoric-sdk/compare/master..mhofman/release-core-proposal to compare the aforementioned packages between this branch and master

@mhofman
Copy link
Member Author

mhofman commented Jan 17, 2024

I plan on relayering this on top of #8755, which I expect to be a clean operation, so I will wait until feedback is gathered.

Edit: didn't relayer yet, but rebased #8755, and updated the target branch.

@mhofman mhofman changed the base branch from mhofman/update-release-ci to mhofman/upgrade-14 January 18, 2024 20:17
Copy link
Member

@gibson042 gibson042 left a comment

Choose a reason for hiding this comment

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

As with #8743, I understand not pulling in the sweeping and disruptive changes like #7870. One (minor) suggestion, but not approval-blocking. Thanks for this massive effort!

@@ -24,21 +31,21 @@ export const permits = {
* definitions.
*
* @param {object} opts
Copy link
Member

Choose a reason for hiding this comment

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

To minimize future merge pain, we should probably take all/more of #8528 and #8712 (such as the rename from opts to inputs and the introduction and use of FlatMethargs and Manifest typedefs).

Copy link
Member Author

Choose a reason for hiding this comment

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

All of #8528 is cherry-picked.

5753e80 of #8712 is omitted as it depends on b735591 (of #8153)

I would love to bring both these in, but I start having tsc errors in inter-protocol's add-collateral-core.js in that case. I actually do not understand how the errors don't happen in master. When I look at the wrapInstall in the default export of add-collateral-core.js in master (moved to the builders package), all types seem to be any. I suspect master doesn't have type errors simply because we lost type coverage somehow there.

@turadg any idea?

Copy link
Member Author

Choose a reason for hiding this comment

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

Getting type errors in init-core.js as well.

Copy link
Member

Choose a reason for hiding this comment

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

Confirmed. Fix in #8778

Base automatically changed from mhofman/upgrade-14 to dev-upgrade-14 January 19, 2024 04:12
gibson042 and others added 20 commits January 19, 2024 04:45
…rs to "custom"

(the former can be read like a verb)
* feat(cosmic-swingset): add being block check and transaction

* fixup! feat(cosmic-swingset): add being block check and transaction

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…salbehavior

chore(deploy-script-support): Improve coreProposalBehavior.js
feat(deploy-script-support): Write out bundle file names in machine r…
…salbehavior

chore(deploy-script-support): Sync code patterns across files
@mhofman
Copy link
Member Author

mhofman commented Jan 19, 2024

I just rebased this PR on top of dev-upgrade-14: b31aa82..23dc128.

I will re-do the cherry-pick with the commits mentioned in #8747 (comment) restored, as well as cherry-pick the fix from #8778

@gibson042 if you want to informally review the result of the redo: 23dc128..8ae111d
as well as the comparison with the #8778 branch (based off master): ta/restore-builders-typecheck..mhofman/release-core-proposal

Edit: this PR has now been updated with the extra cherry-picks.

@mhofman mhofman force-pushed the mhofman/release-core-proposal branch from 23dc128 to 8ae111d Compare January 19, 2024 17:46
@mhofman mhofman merged commit db8db21 into dev-upgrade-14 Jan 19, 2024
63 checks passed
@mhofman mhofman deleted the mhofman/release-core-proposal branch January 19, 2024 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
force:integration Force integration tests to run on PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants