Skip to content

Conversation

@mhofman
Copy link
Member

@mhofman mhofman commented Oct 7, 2025

Integration test of endojs/endo#2980 and endojs/endo#2849

Patch generated and applied as follow:

for i in eslint-plugin marshal common errors eventual-send far pass-style patterns; do rm -rf /tmp/xfs-*; yarn patch @endo/$i; patch_dir=$(echo /tmp/xfs-*/user); cp -af ../endo/packages/$i/src/ ../endo/packages/$i/lib/ ../endo/packages/$i/*.{js,ts,map} $patch_dir; jq --argjson new_exports "$(jq -rc .exports ../endo/packages/$i/package.json)" '. + (if $new_exports != null then {exports: $new_exports} else {} end)' $patch_dir/package.json > $patch_dir/new-package.json; mv $patch_dir/new-package.json $patch_dir/package.json; yarn patch-commit -s $patch_dir; done
rm -rf /tmp/xfs-*; yarn patch ses; patch_dir=$(echo /tmp/xfs-*/user); cp -af ../endo/packages/ses/src/ ../endo/packages/ses/dist/ ../endo/packages/ses/lib/ ../endo/packages/ses/*.{js,ts,map} $patch_dir; jq --argjson new_exports "$(jq -rc .exports ../endo/packages/ses/package.json)" '. + (if $new_exports != null then {exports: $new_exports} else {} end)' $patch_dir/package.json > $patch_dir/new-package.json; mv $patch_dir/new-package.json $patch_dir/package.json; yarn patch-commit -s $patch_dir
git checkout HEAD -- packages/ services/
yarn install

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 7, 2025

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: d6e789c
Status: ✅  Deploy successful!
Preview URL: https://8c6bcd74.agoric-sdk.pages.dev
Branch Preview URL: https://mhofman-integrate-endo.agoric-sdk.pages.dev

View logs

@mhofman mhofman force-pushed the mhofman/integrate-endo branch from d4ca830 to 377756d Compare October 8, 2025 00:56
@mhofman mhofman added the force:integration Force integration tests to run on PR label Oct 8, 2025
mhofman added a commit to endojs/endo that referenced this pull request Oct 8, 2025
Refs: Agoric/agoric-sdk#12065

Refs: #2981 #2982

## Description

This adds minimal and functional reproductions for the aliases export
failure encountered when attempting to sync endo as patches in
agoric-sdk (because endo-branch based integration is busted, see
Agoric/agoric-sdk#12068).

Add a drive-by test of another failure encountered while writing the
repro related to assignment of mutable exported bindings.

Asked ChatGPT to generate eslint rules from the learnings of these
reproductions to prevent problematic cases, and updated the
`@endo/errors` exports accordingly. Rules enabled by default in the
recommended set.

### Security Considerations

None. 

### Scaling Considerations

None

### Documentation Considerations

None

### Testing Considerations

Added failing tests.

Integration tested in agoric-sdk:
Agoric/agoric-sdk#12065

### Compatibility Considerations

None

### Upgrade Considerations

None
mhofman added a commit to endojs/endo that referenced this pull request Oct 8, 2025
Refs: Agoric/agoric-sdk#11454

## Description

Narrows some eventual-send types. In particular, ensure that the result
of an eventual call is a promise.

Add an `EResult` type which in the future can represent the return type
of an eventual send call where remotables are mapped as necessary to
their "brand" type only to avoid the caller from relying on what may
otherwise look like a local remotable instead of a presence.

This mapping is implemented in the `EAwaitedResult` type for explicit
usages, but not yet used in the type of `EResult` itself as it breaks
too many consumers of `E` that rely on the currently "incorrect" typing.

### Security Considerations

None

### Scaling Considerations

None

### Documentation Considerations

TBD

### Testing Considerations

Integration tested in agoric-sdk:
Agoric/agoric-sdk#12065
In a perfect world, I'd like to add some type tests of cases I've
encountered.

### Compatibility Considerations

None

### Upgrade Considerations

Type only changes, which we usually don't consider breaking.
mhofman added a commit to endojs/endo that referenced this pull request Oct 9, 2025
Refs: Agoric/agoric-sdk#11454

## Description

Narrows some eventual-send types. In particular, ensure that the result
of an eventual call is a promise.

Add an `EResult` type which in the future can represent the return type
of an eventual send call where remotables are mapped as necessary to
their "brand" type only to avoid the caller from relying on what may
otherwise look like a local remotable instead of a presence.

This mapping is implemented in the `EAwaitedResult` type for explicit
usages, but not yet used in the type of `EResult` itself as it breaks
too many consumers of `E` that rely on the currently "incorrect" typing.

### Security Considerations

None

### Scaling Considerations

None

### Documentation Considerations

TBD

### Testing Considerations

Integration tested in agoric-sdk:
Agoric/agoric-sdk#12065
In a perfect world, I'd like to add some type tests of cases I've
encountered.

### Compatibility Considerations

None

### Upgrade Considerations

Type only changes, which we usually don't consider breaking.
mhofman added a commit to endojs/endo that referenced this pull request Oct 9, 2025
Refs: Agoric/agoric-sdk#12065

Refs: #2981 #2982

## Description

This adds minimal and functional reproductions for the aliases export
failure encountered when attempting to sync endo as patches in
agoric-sdk (because endo-branch based integration is busted, see
Agoric/agoric-sdk#12068).

Add a drive-by test of another failure encountered while writing the
repro related to assignment of mutable exported bindings.

Asked ChatGPT to generate eslint rules from the learnings of these
reproductions to prevent problematic cases, and updated the
`@endo/errors` exports accordingly. Rules enabled by default in the
recommended set.

### Security Considerations

None. 

### Scaling Considerations

None

### Documentation Considerations

None

### Testing Considerations

Added failing tests.

Integration tested in agoric-sdk:
Agoric/agoric-sdk#12065

### Compatibility Considerations

None

### Upgrade Considerations

None
mhofman added a commit to endojs/endo that referenced this pull request Oct 9, 2025
Refs: Agoric/agoric-sdk#11454

## Description

Narrows some eventual-send types. In particular, ensure that the result
of an eventual call is a promise.

Add an `EResult` type which in the future can represent the return type
of an eventual send call where remotables are mapped as necessary to
their "brand" type only to avoid the caller from relying on what may
otherwise look like a local remotable instead of a presence.

This mapping is implemented in the `EAwaitedResult` type for explicit
usages, but not yet used in the type of `EResult` itself as it breaks
too many consumers of `E` that rely on the currently "incorrect" typing.

### Security Considerations

None

### Scaling Considerations

None

### Documentation Considerations

TBD

### Testing Considerations

Integration tested in agoric-sdk:
Agoric/agoric-sdk#12065
In a perfect world, I'd like to add some type tests of cases I've
encountered.

### Compatibility Considerations

None

### Upgrade Considerations

Type only changes, which we usually don't consider breaking.
mhofman added a commit to endojs/endo that referenced this pull request Oct 9, 2025
Refs: Agoric/agoric-sdk#12065

Refs: #2981 #2982

## Description

This adds minimal and functional reproductions for the aliases export
failure encountered when attempting to sync endo as patches in
agoric-sdk (because endo-branch based integration is busted, see
Agoric/agoric-sdk#12068).

Add a drive-by test of another failure encountered while writing the
repro related to assignment of mutable exported bindings.

Asked ChatGPT to generate eslint rules from the learnings of these
reproductions to prevent problematic cases, and updated the
`@endo/errors` exports accordingly. Rules enabled by default in the
recommended set.

### Security Considerations

None. 

### Scaling Considerations

None

### Documentation Considerations

None

### Testing Considerations

Added failing tests.

Integration tested in agoric-sdk:
Agoric/agoric-sdk#12065

### Compatibility Considerations

None

### Upgrade Considerations

None
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.

2 participants