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

Upgrade-16 cherry-picks round 3 #9640

Merged
merged 11 commits into from
Jul 2, 2024

Conversation

gibson042
Copy link
Member

git rebase-todo

# Branch pc/as-vow
label base-pc-as-vow
pick b6b5f5f7dd feat(vowTools): add asVow helper
pick 0cdcd5f32b feat(vowTools): asVow should not wrap a vow as a vow
label pc-as-vow
reset base-pc-as-vow
merge -C 0ad10c6e7b pc-as-vow # feat(vowTools): add asVow helper (#9577)

# Branch pc/watch-utils-as-promise
label base-pc-watch-utils-as-promise
pick bf430a12af feat(watchUtils): add asPromise helper
# To resolve conflicts in the following commit:
# * In packages/vow/src/types.js, keep inbound changes and (after that) the
#   definition of VowTools.
# * In packages/vow/test/watch-utils.test.js, keep only inbound changes and
#   limit them to start at "asPromise converts a vow to a promise" (i.e.,
#   just the additions of
#   https://github.com/Agoric/agoric-sdk/pull/9620/files#diff-fd7cabcc7d1097036e2981c3262aa20612bec349f6e418d53324fc33b1b26946 ).
pick c940d5ca73 feat(vowTools): asPromise helper for unwrapping vows
pick 8c27c6725b feat(watchUtils): handle non-storables
pick 3d5a3f3e44 feat(types): EVow
pick 1c0b96468c refactor: don't re-use index
pick 274df1833f fix(vow): clearer stored/non-stored values
pick ff92211d04 refactor: 'extra' field for future properties
label pc-watch-utils-as-promise
reset base-pc-watch-utils-as-promise
merge -C 8edf90288c pc-watch-utils-as-promise # feat(vows): improve handling of ephemeral values (#9620)

and as noted in Slack:

if the #9620 derivative still modifies base-zone to relax PromiseWatcherHandler argument and return patterns from M.any() to M.raw() [which is this PR, and it does], those changes will make it harder to debug any vat code that relies upon e.g. prepareVowKit/prepareVowTools/heapVowTools/heapVowE and either receives or attempts to return a non-storable value, because those scenarios will fail even though the state of the repository makes it look like they should succeed (as they will once the relevant vat(s) are restarted). Looking at dev-upgrade-16, I think that's vat-{ibc,localchain,network,transfer}, so we'll need to keep the gap in mind if such a situation comes up

0xpatrickdev and others added 10 commits July 1, 2024 23:26
- adds asVow() helper function that coerces the result of a function to a Vow
- see comment from @mhofman for inspiration: #9454 (comment)
Co-authored-by: Michael FIG <mfig@agoric.com>
refs: #9449

## Description

- Add `asVow` helper to `VowTools` to ensure we always return vows, even in the event of early synchronous errors.
- Implement the helper in `ChainAccountKit` against #9562
Co-authored-by: Michael FIG <mfig@agoric.com>
@gibson042 gibson042 added the force:integration Force integration tests to run on PR label Jul 2, 2024
@gibson042 gibson042 force-pushed the gibson-cherry-pick-u16-round-3 branch from fc86ae0 to f345ddb Compare July 2, 2024 13:47
Copy link

cloudflare-workers-and-pages bot commented Jul 2, 2024

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: cb81030
Status: ✅  Deploy successful!
Preview URL: https://76abbad0.agoric-sdk.pages.dev
Branch Preview URL: https://gibson-cherry-pick-u16-round.agoric-sdk.pages.dev

View logs

refs: #9308

## Description
- adds `asPromise` helper to `VowTools` for unwrapping `Vow|Promise`, ensuring proper handling of ephemeral promises
- updates watch-utils to better handle values that are not storable durably, such as promises

### Testing Considerations
This does not include tests that simulate an upgrade - only a heap zone is used in the included tests. See #9631

### Upgrade Considerations
This PR includes changes we'd like to be in the initial release of vows.
@gibson042 gibson042 force-pushed the gibson-cherry-pick-u16-round-3 branch from f345ddb to cb81030 Compare July 2, 2024 13:49
@gibson042 gibson042 merged commit 91eb8f4 into dev-upgrade-16 Jul 2, 2024
72 checks passed
@gibson042 gibson042 deleted the gibson-cherry-pick-u16-round-3 branch July 2, 2024 14:17
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.

4 participants