Skip to content

[v3.0 Release branch]#4549

Merged
lukastaegert merged 32 commits intomasterfrom
release-3.0.0
Oct 11, 2022
Merged

[v3.0 Release branch]#4549
lukastaegert merged 32 commits intomasterfrom
release-3.0.0

Conversation

@lukastaegert
Copy link
Member

@lukastaegert lukastaegert commented Jul 3, 2022

This PR contains:

  • bugfix
  • feature
  • refactor
  • documentation
  • other

Are tests included?

  • yes (bugfixes and features will not be merged without tests)
  • no

Breaking Changes?

  • yes (breaking changes will not be merged unless absolutely necessary)
  • no

List any relevant issue numbers:

Description

This is the collection of everything that is included so far in the 3.0 release branch. Snapshots of this branch will be released as pre-release versions under the beta tag, i.e. to try it out, install Rollup via

npm install rollup@beta

Breaking Changes

General Changes

Changes to Rollup Options

Plugin API Changes

Features

Bug Fixes

Pull Requests

@github-actions
Copy link

github-actions bot commented Jul 3, 2022

Thank you for your contribution! ❤️

You can try out this pull request locally by installing Rollup via

npm install rollup/rollup#release-3.0.0

or load it into the REPL:
https://rollupjs.org/repl/?pr=4549

@codecov
Copy link

codecov bot commented Jul 3, 2022

Codecov Report

Merging #4549 (f4faf31) into master (69ff418) will increase coverage by 0.18%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #4549      +/-   ##
==========================================
+ Coverage   98.87%   99.06%   +0.18%     
==========================================
  Files         211      214       +3     
  Lines        7384     7554     +170     
  Branches     2107     2096      -11     
==========================================
+ Hits         7301     7483     +182     
+ Misses         27       23       -4     
+ Partials       56       48       -8     
Impacted Files Coverage Δ
browser/src/path.ts 78.57% <ø> (ø)
cli/cli.ts 50.00% <ø> (ø)
cli/run/commandPlugins.ts 93.18% <ø> (ø)
cli/run/loadConfigFromCommand.ts 100.00% <ø> (ø)
cli/run/stdin.ts 100.00% <ø> (ø)
cli/run/waitForInput.ts 100.00% <ø> (ø)
cli/run/watchHooks.ts 78.57% <ø> (ø)
src/ast/keys.ts 100.00% <ø> (ø)
src/ast/nodes/ExportAllDeclaration.ts 100.00% <ø> (ø)
src/ast/nodes/ExportNamedDeclaration.ts 100.00% <ø> (ø)
... and 89 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@lukastaegert lukastaegert marked this pull request as draft July 5, 2022 04:52
@lukastaegert
Copy link
Member Author

Feedback about specific changes should go to the pull requests listed above.

@lukastaegert
Copy link
Member Author

Just released a new beta. This changes some defaults and finally makes changing file names in preserveModules a lot saner.

@lukastaegert
Copy link
Member Author

With the latest pre-release 3.0.0-5, Rollup 3 is now feature complete. In the next week(s), we will start taking a look at the plugin eco system. cc @patak-dev @antfu

lukastaegert and others added 13 commits September 22, 2022 11:04
* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* [v3.0] Change default for output.generatedCode.reservedNamesAsProps (#4568)

* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* Rework warnings and errors

* Refine some error messages
* Reduce number of different props of errors
* All errors are declared in error.ts
* Use name RollupError for errors that do not have a cause

* Extend documentation
* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* Set up browser build

* Generate commithash inline

* Remove execa

* Chmod executable from rollup config

* Adjust pkg.files

* Copy types into build

* Work on release script

* Continue work on release script

* Continue work on release script

* Finish release script

* Push correct REPL artefacts

* Add comments to released PRs and issues

* fixup! [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Add Rollup-in-browser example
* [v3.0] Use named export for loadConfigFile

* Only expose files in dist with their full names

* Move browser sources to src subfolder

3.0.0-3

Fix release script
* [v3.0] Deprecate Node 12 (#4548)

* [v3.0] Remove actively deprecated features, show warnings for other deprecated features (#4552)

* Remove all active deprecations

* Make all inactive deprecations active

* Try to make test more stable

* Update CLI help screen

* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* [v3.0] Run output plugins last (#3846)

* fix: run output plugins last

* Add test

Co-authored-by: Lukas Taegert-Atkinson <lukas.taegert-atkinson@tngtech.com>

* [v3.0] Convert build scripts to ESM, update dependencies (#4558)

* Convert scripts to ESM, update dependencies

* Fix lint issue

3.0.0-1

* [v3.0] Better esm config file support (#4574)

* More precise native ESM support check

* Use import to load .js config file if package type is module

* Update and add tests handling type module

* Remove Node version check and simplify logic

* Update documentation

* Document how to replace __dirname and import JSON

Co-authored-by: Linus Miller <linus.miller@bitmill.io>

* [v3.0] Rework file name patterns when preserving modules (#4565)

* Put preserveModules path into Chunk name

* Use regular entryFileNames logic

* Clarify documentation for `preserveModules`

* Improve coverage

* Improve wording in docs

* [v3.0] Show deprecation warning for maxParallelFileReads (#4575)

* [v3.0] Restructure timings (#4566)

* [v3.0] Change default for makeAbsoluteExternalsRelative (#4567)

* [v3.0] Change default for output.generatedCode.reservedNamesAsProps (#4568)

* [v3.0] Change default for preserveEntrySignatures to exports-only (#4576)

* Port doc changes from #4572 and #4583 to 3.0 (#4592)

* [v3.0] Refine errors and warnings (#4579)

* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* [v3.0] Change default for output.generatedCode.reservedNamesAsProps (#4568)

* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* Rework warnings and errors

* Refine some error messages
* Reduce number of different props of errors
* All errors are declared in error.ts
* Use name RollupError for errors that do not have a cause

* Extend documentation

* [v3.0] Browser build (#4593)

* [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Initial new hashing idea

* Simplify external import path generation

197 broken tests left

* Use correct file names in chunk info

197 broken tests left

* Implement first draft for hashing algorithm

189 broken tests left

* Remove active deprecations

this.emitAsset
this.emitChunk
this.getAssetFileName
this.getChunkFileName
import.meta.ROLLUP_ASSET_URL_
import.meta.ROLLUP_CHUNK_URL_

* Reduce render parameters

* Always scan all chunks for hashes

* Fix asset emission and remaining tests

* Reintroduce augmentChunkHash and get OutputChunk by converting RenderedChunk

* Provide chunk graph in renderChunk

* Handle hash collisions

* Remove deprecated hacky asset emission

* Allow to configure hash sizes per file

* Update documentation

* Extend tests

* Minor improvements

* Improve documentation about hashing

* Replace hash in sourcemap file

* Provide ChunkInfo in banner/footer/intro/outro

* Extract hashing logic

* Clean up hashing logic

* Add ExternalChunk wrapper

* Store inputBase on Chunk

* Store snippets on Chunk

* Align chunk interfaces

* Reduce this. property access

* Move dynamicImportFunction warning to options normalization

* Restructure rendering logic

* Do not run on Node 10

* Update documentation

* Try to fix Windows tests

* Improve coverage

* Remove graph background colors

3.0.0-0

* Set up browser build

* Generate commithash inline

* Remove execa

* Chmod executable from rollup config

* Adjust pkg.files

* Copy types into build

* Work on release script

* Continue work on release script

* Continue work on release script

* Finish release script

* Push correct REPL artefacts

* Add comments to released PRs and issues

* fixup! [v3.0] New hashing algorithm that "fixes (nearly) everything" (#4543)

* Add Rollup-in-browser example

* [v3.0] Use named export for loadConfigFile (#4581)

* [v3.0] Use named export for loadConfigFile

* Only expose files in dist with their full names

* Move browser sources to src subfolder

* 3.0.0-3

* Fix release script

* [v3.0] Use "node:" prefix for imports of node builtins (#4596)

* Support inline sourcemaps

* Emit sourcemaps as assets and add comments before generateBundle

Co-authored-by: Alec Larson <1925840+aleclarson@users.noreply.github.com>
Co-authored-by: Linus Miller <linus.miller@bitmill.io>
Co-authored-by: Bertrand Guay-Paquet <berniegp@gmail.com>

3.0.0-4
* Use a custom watch emitter implementation

* Add documentation

* Improve coverage
* Dummy commit

* Change default for output.interop to "default", deprecate boolean and add "compat"

* Add esModule: 'if-default-prop' and make it the default value

* Statically resolve Symbol.toStringTag
* Support ES modules in bundles config files

* Always try to load config files directly if possible

* Fix build

* Fix test

* Debug test
* Use ASCII characters for hash placeholders

* Back to 8 character hashes with base-64 encoding

3.0.0-6

Improve issue comment RegExp
lukastaegert and others added 5 commits October 10, 2022 20:55
BREAKING CHANGES: Typed array sources will no longer be deduplicated

3.0.0-7
* Support dynamic imports in cjs output and make default

* Add documentation

* Also use import for unresolvable dynamic imports

* Extend CLI docs
* Add acorn support for import assertions and extend AST

* Ignore pre-existing assertions on input files

* Naive support for JSON assertions in output

* Inject arbitrary import assertions

* Allows to disable import assertions altogether via `false`

* Support shorthand syntax for type assertions

* Keep assertions on fully dynamic imports

* Add documentation

* Add assertions to types

* Keep original assertions

* Make option a boolean

* Some extractions

* Allow plugins to add and change assertions

* Allow to pass assertions in this.resolve

* Warn for inconsistent import assertions

* Add new documentation

* Improve coverage
@lukastaegert lukastaegert force-pushed the release-3.0.0 branch 3 times, most recently from 0ae9bb5 to 3accf61 Compare October 11, 2022 04:29
Update packages before building Rollup for correct bundled version
@lukastaegert lukastaegert merged commit a011236 into master Oct 11, 2022
@lukastaegert lukastaegert deleted the release-3.0.0 branch October 11, 2022 13:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment