Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: stenciljs/core
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v4.12.3
Choose a base ref
...
head repository: stenciljs/core
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v4.12.4
Choose a head ref
  • 17 commits
  • 31 files changed
  • 6 contributors

Commits on Feb 20, 2024

  1. chore(deps-dev): bump ip from 1.1.8 to 1.1.9 (#5387)

    Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
    - [Commits](indutny/node-ip@v1.1.8...v1.1.9)
    
    ---
    updated-dependencies:
    - dependency-name: ip
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 20, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    skjnldsv John Molakvoæ
    Copy the full SHA
    87e4be0 View commit details
  2. chore(repo): remove old release scripts pt2 (#5368)

    now that stencil releases are largely automated, release tasks that
    were skipped during manual releases can be removed. this commit removes
    all tasks that were skipped with `isCI` is was `true` (as it's always
    `true` these days).
    
    additional conditionals that use logical-AND with `isCI` have been
    updated, as that part of the conditional is now always `true`.
    
    remove the `--otp` flag, as it is only used for manual releases
    
    as a result of these removals, the `--any-branch` flag can be safely
    removed from our release pipeline, as its no longer used.
    rwaskiewicz authored Feb 20, 2024
    Copy the full SHA
    d428cff View commit details

Commits on Feb 21, 2024

  1. chore(build): make esbuild standalone (#5385)

    This removes the dependence of the esbuild-based build on the existing
    Rollup-based build. Previously we needed to run the Rollup-based build
    first so that certain files which could not yet be built with Esbuild
    would be present on disk, but since we can now build everything with
    Esbuild we don't need to take this step anymore.
    
    We do, however, continue to need to run the TypeScript compiler in order
    to generate up-to-date typedef files.
    
    Part of STENCIL-1016
    alicewriteswrongs authored Feb 21, 2024
    Copy the full SHA
    7d7aae4 View commit details
  2. Copy the full SHA
    3bf79d1 View commit details
  3. chore(scripts): remove an unused option from BuildOptions (#5390)

    After we removed the old release scripts recently this option is no
    longer used anywhere, so we can delete it.
    alicewriteswrongs authored Feb 21, 2024
    Copy the full SHA
    9c82ffb View commit details

Commits on Feb 22, 2024

  1. chore(deps): update dependency eslint-plugin-jest to v27.9.0 (#5392)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 22, 2024
    Copy the full SHA
    bab3998 View commit details
  2. chore(ci): fix puppeteer downloads (#5398)

    the url that pulls down chrome images seems to be intermittedly failing
    in github actions. when we go to install dependencies (`npm ci`), we're
    greeted with an error:
    
    ```
    npm ERR! code 1
    npm ERR! path /home/runner/work/stencil/stencil/node_modules/puppeteer
    npm ERR! command failed
    npm ERR! command sh -c node install.mjs
    npm ERR! Error: ERROR: Failed to set up chrome-headless-shell v121.0.6167.85! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.
    ```
    
    this appears to be a result of an intermittent failure (if it's
    intermittent it to-be-determined). reports online suggest bumping to
    puppeteer v22, which we cannot do at this moment due to it dropping
    support for node 16. instead, set the base url environment variable to
    tell puppeteer where to pull chrome from
    rwaskiewicz authored Feb 22, 2024
    Copy the full SHA
    96803b1 View commit details
  3. chore(deps): update dependency cspell to v8.4.0 (#5395)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 22, 2024
    Copy the full SHA
    e559930 View commit details
  4. chore(deps): update dependency esbuild to v0.20.1 (#5394)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 22, 2024
    Copy the full SHA
    74d9f94 View commit details

Commits on Feb 23, 2024

  1. fix(build): address issue with dynamic import and vite (#5399)

    When we added a script for building the modules in `internal/` with
    Esbuild in #5276 we needed to make a change to the function that Stencil
    uses at runtime to lazy-load components (in
    `src/client/client-load-module.ts`). Prior to #5276 we had a dynamic
    import statement which looked like so:
    
    ```ts
    import(
      `./${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`
    )
    ```
    
    This constructs a filepath to the module for a given Stencil component,
    accounting for HMR versioning, and then imports the module. All well and
    good, but unfortunately this dynamic import does not play well with
    Esbuild. As described
    [here](https://esbuild.github.io/api/#non-analyzable-imports) when
    Esbuild is in 'bundle' mode and it encounters an `import()` _and_ the
    imported path or identifier looks "analyzable" it will attempt to
    resolve the corresponding file and incorporate it into the bundle.
    
    This is not always what you want! In particular, in our situation the
    leading `"./"` in the template literal we had in `client-load-module.ts`
    caused Esbuild to consider the `import()` an "analyzable" import and it
    then tried to resolve and bundle the import instead of just leaving the
    dynamic import in the code (as Rollup does in this case).
    
    This created an issue because at _compile time_ (i.e. when Stencil
    itself is built) this import does not resolve to anything, so Esbuild
    would essentially transform that line into an empty import. This caused
    runtime issues because the side-effect of the dynamic import was no
    longer happening, so the modules containing Stencil component classes
    and so on were not longer being loaded in.
    
    To get this working for #5276 we pulled out the `"./"` string as a
    separate variable, changing the template literal so it looks something
    like this:
    
    ```ts
    const MODULE_IMPORT_PREFIX = './';
    
    import(
      `${MODULE_IMPORT_PREFIX}${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`
    )
    ```
    
    This causes Esbuild to conclude that the import is "non-analyzable",
    which addresses the issue and causes both Rollup and Esbuild to emit
    equivalent code for this snippet, where both retain the dynamic import,
    allowing for the runtime module resolution that we want here.
    
    _However_, this broke the ability to use Stencil with Vite, which will
    complain about non-analyzable imports if it sees a dynamic import which
    does _not_ begin with `"./"`. See #5389 for details.
    
    So essentially we have a situation where the behavior of Rollup,
    Esbuild, and Vite is incompatible. The solution is to figure out a way
    for both the Esbuild and Rollup builds to emit code in this case which
    retains the dynamic import _and_ retains the leading `"./"` in the
    template literal.
    
    This is accomplished by retaining the `${MODULE_IMPORT_PREFIX}` in the
    template literal, so that Esbuild does not attempt to analyze and bundle
    the import, and adding plugins to both the Rollup and Esbuild bundles to
    transform the emitted code before it is written to disk.
    
    fixes #5389
    STENCIL-1181
    alicewriteswrongs authored Feb 23, 2024
    Copy the full SHA
    8ebacae View commit details

Commits on Feb 26, 2024

  1. chore(deps): update dependency @types/eslint to v8.56.3 (#5404)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 26, 2024
    Copy the full SHA
    369864f View commit details
  2. chore(deps): update dependency @types/node to v20.11.20 (#5405)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 26, 2024
    Copy the full SHA
    b0cf633 View commit details
  3. chore(deps): update dependency terser to v5.27.2 (#5407)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 26, 2024
    Copy the full SHA
    ff3e361 View commit details
  4. chore(deps): update dependency cspell to v8.4.1 (#5406)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 26, 2024
    Copy the full SHA
    16519d9 View commit details
  5. chore(deps): update dependency webpack to v5.90.3 (#5408)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 26, 2024
    Copy the full SHA
    9ae3e60 View commit details
  6. chore(deps): update dependency eslint-plugin-jsdoc to v48.2.0 (#5409)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Feb 26, 2024
    Copy the full SHA
    21cf7f0 View commit details
  7. Release v4.12.4 (#5412)

    * v4.12.4
    
    * add 'closes' issue to changelog
    
    ---------
    
    Co-authored-by: rwaskiewicz <1930213+rwaskiewicz@users.noreply.github.com>
    Co-authored-by: Ryan Waskiewicz <ryanwaskiewicz@gmail.com>
    3 people authored Feb 26, 2024
    Copy the full SHA
    3c2284b View commit details
2 changes: 1 addition & 1 deletion .github/workflows/create-production-pr.yml
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ jobs:

# TODO(STENCIL-927): Backport changes to the v3 branch
- name: Run Publish Preparation Script
run: npm run release.ci.prepare -- --version ${{ inputs.version }} --any-branch
run: npm run release.ci.prepare -- --version ${{ inputs.version }}
shell: bash

- name: Log Generated Changes
2 changes: 1 addition & 1 deletion .github/workflows/release-production.yml
Original file line number Diff line number Diff line change
@@ -63,5 +63,5 @@ jobs:
- name: Run Publish Scripts
# pass the generated version number instead of the input, since we've already incremented it in the prerelease
# step
run: npm run release.ci -- --any-branch --tag ${{ inputs.tag }}
run: npm run release.ci -- --tag ${{ inputs.tag }}
shell: bash
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -4,3 +4,5 @@
# If this value is changed, please ensure that it works both locally and in a continuous integration environment in
# a repeatable manner (i.e. it can run many times, one after the other, without failing due to out-of-memory errors).
node_options=--max-old-space-size=4096
# TODO(STENCIL-1141): remove `PUPPETEER_DOWNLOAD_BASE_URL` once support for Node v16 is dropped
PUPPETEER_DOWNLOAD_BASE_URL=https://storage.googleapis.com/chrome-for-testing-public
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 🐮 [4.12.4](https://github.com/ionic-team/stencil/compare/v4.12.3...v4.12.4) (2024-02-26)


### Bug Fixes

* **build:** address issue with dynamic import and vite ([#5399](https://github.com/ionic-team/stencil/issues/5399)) ([8ebacae](https://github.com/ionic-team/stencil/commit/8ebacae1106704293a2b1720b44eb83209175f96)), closes [#5389](https://github.com/ionic-team/stencil/issues/5389)



## 🐍 [4.12.3](https://github.com/ionic-team/stencil/compare/v4.12.2...v4.12.3) (2024-02-20)


Loading