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

chore: Release 2024-07-30 #2391

Merged
merged 5 commits into from
Jul 30, 2024
Merged

chore: Release 2024-07-30 #2391

merged 5 commits into from
Jul 30, 2024

Conversation

kriskowal
Copy link
Member

@kriskowal kriskowal commented Jul 30, 2024

ses v1.6.0 (2024-07-30)

  • NOTICE: This version introduces multiple features to converge upon a
    more common standard for Hardened JavaScript.
    All code should begin migrating to these usage patterns as the older
    patterns are now deprecated and will not be supported in a future major
    version of SES.

  • To converge on a portable pattern for using Compartment, introduces an
    __options__ property for the first argument of the Compartment
    constructor that must be true if present and indicates the object is the
    options bag and not the global endowments. All code going forward should
    include this flag until the next major version of SES, when we plan for it to
    become vestigial and drop support for three-argument Compartment
    construction.

    In the unlikely event that existing code names an endowment __options__,
    that code will break and need to be adjusted to adopt this version.
    Because we rate this unlikely, we have elected not to mark this with
    a major version bump.

  • Adds a __noNamespaceBox__ option that aligns the behavior of the import
    method on SES Compartment with the behavior of XS and the behavior we will
    champion for compartment standards.
    All use of Compartment should migrate to use this option as the standard
    behavior will be enabled by default with the next major version of SES.

  • Adds support for module descriptors better aligned with XS.
    Compartments use module desriptors to load and link modules.
    The importHook, importNowHook, and moduleMapHook all return module descriptors
    (sometimes promises for module descriptors).
    The modules option or argument to the Compatment constructor has module
    descriptors for all its values.

    • {record, specifier, compartment} should become {source: record, specifier, compartment}.
    • {specifier, compartment} should become {source: specifier, compartment}.
    • {record: compartment.module(specifier)} should become {namespace: specifier, compartment}.
  • When running transpiled code on Node, the SES error taming
    gives line-numbers into the generated JavaScript, which often don't match the
    the original lines. This happens even with the normal development-time
    lockdown options setting,

    errorTaming: 'unsafe'

    or setting the environment variable

    $ export LOCKDOWN_ERROR_TAMING=unsafe

    To get the original line numbers, this release
    adds 'unsafe-debug'. This errorTaming: 'unsafe-debug' setting
    should be used during development only when you can
    sacrifice more security for a better debugging experience, as explained at
    errorTaming Options.
    With this setting, when running transpiled code on Node (e.g. tests written
    in TypeScript),
    the stacktrace line-numbers point back into the original
    source, as they do on Node without SES.

@endo/marshal v1.5.1 (2024-07-30)

  • deeplyFulfilled moved from @endo/marshal to @endo/pass-style. @endo/marshal still reexports it, to avoid breaking old importers. But importers should be upgraded to import deeplyFulfilled directly from @endo/pass-style.

@endo/pass-style v1.4.1 (2024-07-30)

  • deeplyFulfilled moved from @endo/marshal to @endo/pass-style. @endo/marshal still reexports it, to avoid breaking old importers. But importers should be upgraded to import deeplyFulfilled directly from @endo/pass-style.

@endo/bundle-source v3.3.0 (2024-07-30)

  • Adds support for --no-transforms (-T) which generates bundles with
    original sources.
    A future version of @endo/import-bundle will be able to execute this
    kind of bundle on XS and in Node.js, but will remain opt-in because
    they cannot be made to run on the web without further work on module
    virtualization in the platform without entraining a client-side
    dependency on a JavaScript parser framework (namely Babel).
  • Adds a -f,--format command flag to specify other module formats.
  • Adds a new endoScript module format.
  • Adds a no-cache, bundle-to-stdout mode.
  • Adds a -C,--condition command flag to specify export/import conditions like
    "development" or "browser".
  • The -C development condition now provides access to devDependencies in
    the package.json of the entry package of a bundle.

@endo/compartment-mapper v1.2.0 (2024-07-30)

  • Fixes incompatible behavior with Node.js package conditional exports Compartment mapper should take first matching of conditional exports #2276.
    Previously, the last matching tag would override all prior matches, often
    causing a bundle to adopt the default instead of a more specific condition.
  • Adds parserForLanguage and languageForExtension options to all modes of
    operation such that the compartment mapper can analyze and bundle languages
    apart from the built-in languages, which include esm and cjs.
    The languageForExtension option provides defaults for the entire
    application and the "parsers" property in individual package.json
    descriptors may extend or override using any of the configured or built-in
    language parser names.
  • Exports import-lite.js, archive-lite.js, import-archive-lite.js,
    import-parsers.js, archive-parsers.js, import-archive-parsers.js, and
    node-modules.js, allowing these to be mixed and matched.
    The existing import.js, archive.js, and import-archive.js all entrain
    by import their corresponding default behaviors, where the new modules do
    not.
    For example, import-parsers.js does not entrain Babel.
    The new import-lite.js does not entrain node-modules.js and composes
    with potential alternative package discovery, storage, and locks.
  • Adds JSON module support to makeBundle.
  • Aliases and deprecates tags in favor of conditions to align with Node.js
    terminology.
  • mapNodeModules now infers that it should include devDependencies from
    the entry package from the presence of "development" in conditions,
    if the dev option is abseent.

@endo/import-bundle v1.2.0 (2024-07-30)

@endo/lockdown v1.0.8 (2024-07-30)

  • Changed @endo/lockdown/commit-debug.js so that it now sets
    the lockdown option errorTaming: 'unsafe-debug' instead of
    just errorTaming: 'unsafe'. This is a further loss of safety in
    exchange for a better development experience. For testing and debugging
    purposes during development, this is usually the right tradeoff.

    In particular,
    errorTaming: 'unsafe' endangered only confidentiality, whereas
    errorTaming: 'unsafe-debug' also endangers integrity, essentially by
    directly exposing the (non-standard and dangerous) v8 Error
    constructor API.

    In exchange, stack traces will more often have accurate line numbers into
    the sources of transpiled code, such as TypeScript sources. See
    errorTaming Options for more on these tradeoffs.

@endo/module-source v1.0.0 (2024-07-30)

  • Renamed from @endo/static-module-record to @endo/module-source exporting
    ModuleSource instead of StaticModuleRecord.

@kriskowal kriskowal requested a review from erights July 30, 2024 22:42
@kriskowal kriskowal force-pushed the release-2024-07-30-22-24-01 branch from ee6b44e to c5c929c Compare July 30, 2024 22:53
Copy link
Contributor

@erights erights left a comment

Choose a reason for hiding this comment

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

LGTM!

 - @endo/base64@1.0.6
 - @endo/bundle-source@3.3.0
 - @endo/captp@4.2.1
 - @endo/check-bundle@1.0.8
 - @endo/cjs-module-analyzer@1.0.6
 - @endo/cli@2.3.0
 - @endo/common@1.2.3
 - @endo/compartment-mapper@1.2.0
 - @endo/daemon@2.4.0
 - @endo/env-options@1.1.5
 - @endo/errors@1.2.3
 - @endo/eslint-plugin@2.2.0
 - @endo/evasive-transform@1.2.0
 - @endo/eventual-send@1.2.3
 - @endo/exo@1.5.1
 - @endo/far@1.1.3
 - @endo/import-bundle@1.2.0
 - @endo/init@1.1.3
 - @endo/lockdown@1.0.8
 - @endo/lp32@1.1.3
 - @endo/marshal@1.5.1
 - @endo/memoize@1.1.3
 - @endo/module-source@1.0.0
 - @endo/nat@5.0.8
 - @endo/netstring@1.0.8
 - @endo/pass-style@1.4.1
 - @endo/patterns@1.4.1
 - @endo/promise-kit@1.1.3
 - @endo/ses-ava@1.2.3
 - ses@1.6.0
 - @endo/skel@1.1.3
 - @endo/stream-node@1.1.3
 - @endo/stream-types-test@1.0.8
 - @endo/stream@1.2.3
 - @endo/syrup@1.0.6
 - @endo/test262-runner@0.1.38
 - @endo/where@1.0.6
 - @endo/zip@1.0.6
@kriskowal kriskowal force-pushed the release-2024-07-30-22-24-01 branch from c5c929c to 681b813 Compare July 30, 2024 23:18
@kriskowal kriskowal enabled auto-merge July 30, 2024 23:18
@kriskowal kriskowal merged commit 84eaac8 into master Jul 30, 2024
17 checks passed
@kriskowal kriskowal deleted the release-2024-07-30-22-24-01 branch July 30, 2024 23:27
mergify bot added a commit to Agoric/agoric-sdk that referenced this pull request Aug 2, 2024
This change brings the latest versions from Endo into Agoric SDK. Release notes endojs/endo#2391
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.

2 participants