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

feat(compartment-mapper): expose loadCompartmentForArchive #2189

Conversation

boneskull
Copy link
Collaborator

Description

This extracts a function, loadCompartmentForArchive(), from digestLocation() in archive.js, and exposes it. This function returns archival-ready data structures, in addition to a record of the compartment renames which makeArchiveCompartmentMap() performs.

The intent is to leverage the module resolution performed by the function, which is reflected in its output. A consumer can use the information therein to perform additional operations on the tree (e.g., parse ASTs).

Upgrade Considerations

This is a backwards-compatible change

@boneskull
Copy link
Collaborator Author

boneskull commented Mar 28, 2024

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @boneskull and the rest of your teammates on Graphite Graphite

@boneskull boneskull marked this pull request as draft March 28, 2024 19:51
@boneskull boneskull force-pushed the boneskull/load-compartment-for-archive branch from 5fe0f92 to 8f632a2 Compare March 28, 2024 19:52
@boneskull boneskull force-pushed the boneskull/load-compartment-for-archive branch 2 times, most recently from 7dfbd98 to 7834bec Compare April 1, 2024 19:51
Toward delivering mail over the network, this change introduces a
`deliver` method on guest and host agents that accepts arbitrary
messages into the agent’s inbox. Any other agent can send mail to any
other local agent for whom they have a handle and cannot spoof their
sender handle.

This is a net simplification, since it reduces our dependence on the
internal facet of agents and requires less machinery because it treats
messages as capabilities on the wire, freely exposing and carrying
identifiers. We no longer have separate internal and external
representations of messages and pet name “dubbing” is deferred to the
UI. This in turn enables us to defer to the UI the question of whether
to query the name for each identifier once or watch for changes.

Stacked on #2184
This is a simplifying refactor that reduces {internal, external}
controller facets to just the (external) value. In preparation, removes
the last vestiges of internal facets on worker and agent. Then mops up
by collapsing the controller logic and structures.
turadg and others added 28 commits May 20, 2024 10:40
refs: #1488 

## Description

Simplify build by using NPM lifecycle hooks. Adds a CI test for the
package graph sensitivity that the extant method was checking.

Part of making it work was adding "typescript" to `devDependencies` of
packages that need it. The root `build:types` was running with the root
`tsc` but when building in each package separately they wouldn't get the
root's typescript version and fall back to the global one, which didn't
know the `@import` syntax.


### Security Considerations

None

### Scaling Considerations

None

### Documentation Considerations

Less to document 

### Testing Considerations

I tried the "publish" commands in CONTRIBUTING.md. 

integration PR in agoric-sdk:
Agoric/agoric-sdk#9385

### Compatibility Considerations

Removes a necessary accommodation on agoric-sdk

### Upgrade Considerations

None
`null` is an invalid value for the `prettier` property of `package.json`, per the schema.

Schema: https://json.schemastore.org/prettierrc
Adds support for dot-delimited petname paths in the `bundle`, `cat`,
`follow`, `open`, and `run` commands.  Cleans up handling in the
`list` command.
Ref: #2023 

Adds support for dot-delimited petname paths in the `bundle`, `cat`,
`follow`, `open`, and `run` commands. Cleans up handling in the `list`
command.
…rts (#2275)

Closes: #2276

## Description

If a `package.json` `"exports"` is a list of ordered constraints, Endo’s
Compartment Mapper currently uses all of the accepted entries and not
just the first. This causes subsequent entries to override the first if
they produce matching paths. I believe the intended behavior is to use
the first that matches.

### Security Considerations

This amounts to a difference in behavior between Endo and Node in the
treatment of Package Exports.

### Scaling Considerations

None.

### Documentation Considerations

Fixing this issue will bring Endo into accord with Node.js’s somewhat
light documentation on this feature.

### Testing Considerations

Existing snapshot tests cover the behavior and must be updated to
reflect the correct interpretation.

### Compatibility Considerations

This will improve ecosystem compatibility. No known bundles depend on
the existing behavior, but we cannot rule out the possibility.

There is a possibility that this change will break existing bundles that
depend on the current erroneous behavior, for example preferring
`default` over an `endo` tag. I am considering this a bugfix and not a
breaking change since it is a bug to rely on the current behavior.

### Upgrade Considerations

Even if this behavior might break the bundling process for existing
contracts, it will not invalidate existing bundles. This change should
not break upgrades but may create a speed bump for upgrading tool
dependencies.
evergreen

## Description

Bump some devDeps. While investigating
53f6439#commitcomment-142298182

### Security Considerations

none

### Scaling Considerations

none

### Documentation Considerations

none


### Testing Considerations

CI

### Compatibility Considerations

none


### Upgrade Considerations

safe, just dev deps
The `endo list` command now accepts a `--verbose` option that will cause
it to print out a prettified version of the value that would be shown by
`endo show` for each entry.

I kept finding myself wanting this during my explorations, so I just
went ahead and implemented it.
## Description

`null` is an invalid value for the `prettier` property of
`package.json`, per the schema.

Schema: https://json.schemastore.org/prettierrc

### Security Considerations

no

### Scaling Considerations

no

### Documentation Considerations

no

### Testing Considerations

no

### Compatibility Considerations

no

### Upgrade Considerations

no
## Description

- Generate typedoc for more packages.
- Disable the validation suppressions.

### Security Considerations

n/a
### Scaling Considerations

n/a


### Documentation Considerations

docs per se

### Testing Considerations

CI and manually looked over build output

### Compatibility Considerations

n/a

### Upgrade Considerations

n/a
This change:

1. Creates a minimal interface for the `fs`, `url`, and `crypto` objects as passed into `makeReadPowers()`. This makes it easier to duck-type the objects.
2. Fixes the invalid type of `MaybeReadPowers`; properties (defined thru `@property`) are ignored in a `@typedef` of that `@typedef` does not extend `object`/`Object`.
3. Added necessary type assertion in `powers.js`
4. Adds return type to `makeReadPowersSloppy()`

# Conflicts:
#	packages/compartment-mapper/src/types.js
This extracts a function, `loadCompartmentForArchive()`, from `digestLocation()` in `archive.js`, and exposes it.  This function returns archival-ready data structures, in addition to a record of the compartment renames which `makeArchiveCompartmentMap()` performs.

The intent is to leverage the module resolution performed by the function, which is reflected in its output.  A consumer can use the information therein to perform additional operations on the tree (e.g., parse ASTs).
@boneskull boneskull force-pushed the boneskull/load-compartment-for-archive branch from 7834bec to fa8c103 Compare June 3, 2024 23:12
@boneskull boneskull closed this Jun 7, 2024
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.

None yet

10 participants