* Set minimum Node version to 18
* Set the default of skipSelf to true
* [v4.0] Switch parser to SWC and introduce native/WASM code (#5073)
* Add native compilation for local NodeJS
* Link instead of copying for faster dev cycles for now
* Parse AST
* Convert first trivial AST to a buffer
* Use SWC for parsing
* Extend AST conversion
* Make AST more similar
* Fix line number issue by creating a new sourcemap (and thus compiler) for each run
* Collect timings
* Add code_length to struct
* Refine parsing
* Extend parsing
* Extend AST: ImportDefaultSpecifier, LiteralBoolean, LiteralNull, ExportDefaultExpression
* Extend AST: ImportNamespaceSpecifier, ExportAll
* Extend AST: BinaryExpression, ArrayPattern, ObjectPattern, AssignmentPatternProperty, ArrayLiteral, ImportExpression
* Extend AST: ConditionalExpression
* Extend AST: FunctionDeclaration, ClassDeclaration, ClassBody, ReturnStatement
* Extend AST: ObjectLiteral, KeyValueProperty
* Extend AST: ShorthandProperty
* Extend AST: GetterProperty, AssignmentExpression, NewExpression, FunctionExpression
* Extend AST: ThrowStatement
* Extend AST: ExportDefaultDeclaration
* Extend AST: AssignmentPattern, AwaitExpression, BreakStatement
Start sorting AST nodes
* Extend AST: TryStatement, CatchClause, ChainExpression
* Extend AST: ClassExpression, ContinueStatement, DebuggerStatement, DoWhileStatement, EmptyStatement
* Extend AST: ExportNamedDeclaration, ForInStatement, ForOfStatement, ForStatement
* Extend AST: IfStatement
* Extend AST: Import attributes
* Extend AST: Literal<RegExp>, Literal<BigInt>
* Extend AST: LogicalExpression
* Extend AST: MetaProperty
* Extend AST: Various Property types
* Extend AST: Progress on classes
* Extend AST: MethodDefinition, PropertyDefinition, PrivateName, ThisExpression
* Extend AST: StaticBlock, Super
* Extend AST: RestElement, SequenceExpression, SwitchCase, SwitchStatement
* Extend AST: TaggedTemplateExpression, TemplateElement, TemplateLiteral, UnaryExpression, UpdateExpression, YieldExpression
* Extend AST: Properties in object patterns
* Finishing Fixes
* More fixes
* Run cargo fmt
* Handle directives
* Minor fixes
* Unicode support
* Fix optional chain expressions
* Adapt tests
* Do not run acorn anymore
* Update lockfile
* Minor fixes
* Move to rust folder
* Separate Rust Node bindings to allow adding WASM bindings in another workspace
* Make Napi build closer to how rs.napi works
* Fix path issues
* Disable browser build for now
* Add native package directories
* Refine runWithEcho
* Try initial steps with Github flow
* Trigger change
* Temporarily add yarn lockfile until we figured out if we get it to work with npm
* Use nightly toolchain
* Use default locations for Napi files to make things easier
* Adapt workflow
* Skip regular tests for now
* Attempt to fix broken workflows
* Attempt to fix broken workflows
* Attempt to fix broken workflows
* Test MacOS/WIndows
* Fix bootstrap build
* Skip tests
* Rename workflow
* Add additional tests
* Use zig differently
* Try to fix musl build
* Skip musl again for now
* Add publish to workflow
* 4.0.0-0
* Remove yarn lock again
* Fix coverage job
* Fix artefact handling
* Revert "4.0.0-0"
This reverts commit 734806f.
* 4.0.0-0
* Do not include default triples twice
* Fix native npm packages
* 4.0.0-1
* Add missing additional tests except browser tests
* Try to fix publish and tests
* 4.0.0-2
* Switch to faster utf-16 conversion
* 4.0.0-3
* Fix positioning algorithm when manually searching the code
* 4.0.0-4
* feat: Add WASM browser build (#5077)
* feat: add wasm browser build
* move wasm binding into a separate cargo workspace
* use imports replacing
* set the targetEnv option of wasm to browser in browser build
* add the wasm build to build command
* fix lint error and ci error
* add more comments to silence the linter
* big change
* trigger change
* run browser tests
* trigger change
* tweak wasm build on CI
* Increase build timeout
* Use shared string constants
* Extract fixed strings into constants
* Remove comment
* Get rid of dbg! calls
* Add lockfile hash to cargo cache
* Use if let over match in some cases
* Return the buffer of the syntax error in parse_ast
* Initial annotation support
* Put annotation types into string table
* Remove invalid annotations
* Support nested calls and new expressions
* Improve tree-shaking for annotations
* Adapt test
* Properly handle line-breaks, commas etc.
* Mark nested pure annotations as pure
* Remove sourcemap comments
* Handle function side effect annotatinos
* Remove old comment-handling code
* Increase timeout for browser tests
* Only skip the tests that still fail
* Run coverage again on CI
* Get the buffer of pos and message from the Syntax error
* Handle the lint errors from SWC
* Reenable tests about parse errors and adjust some relevant code
* Emit native.js to native.cjs
* Add cjs extension for native importee when bundling for ESM
* Change native importee with replace plugin and emit native.cjs in napi build
* Silence the linter for importing native
* Use node:path to resolve native binding files
* Add Node WASM files to Native packages for StackBlitz and similar use cases
* Unignore *.d.ts in the wasm dir
* 4.0.0-5
* Fix copy-wasm-node.js
* 4.0.0-6
* Remove .gitignore in wasm-node directory
* 4.0.0-7
* Include .cjs files when publishing rollup to npm
* 4.0.0-8
* Get readString function at runtime
* eslint: ignore wasm-node and set node extensions of import/resolver
* 4.0.0-9
* Change the required node to >=14.18.0 as before
* 4.0.0-10
* Prepare to fix ESM build
Still requires bug-fix on Rollup side for relative external dependencies
outside the ouput directory
* Update Rollup
* Enable ESM tests
* Re-enable another test
* Remove CJS eslint configuration
* Fix extension
* Fix test
* Fix entension for native import
* Support for publishing a completely separate package @rollup/wasm-node
* 4.0.0-11
* Fix publish for wasm node package
* Add AST verification to function tests
* Only use plugin arrays in form and function tests
* Fix spans in function tests
* Verify AST in form tests as well
* Try to publish @rollup/browser and fix publish-wasm-node-package.js
* 4.0.0-12
* Tweak publish scripts
* Fix importing wasm file in browser
* Parse code as unknown module type for greater compatibility
* Remove acorn options
* Tweak getReadStringFunction
* Fix browser tests
* 4.0.0-13
* Remove polyfills that are no longer needed in browser tests
* Convert to new import attributes AST format
* Rename assertions to attributes
* Deprecate externalImportAssertions in favor of externalImportAttributes
* Update SWC version
* Remove max-call-stack test
SWC is not capable of handling it and we cannot fix it
* Improve coverage
* re-enable repl-artefacts workflow
* Fix test
* Preload wasm file in docs
* docs: add functions to get full path of url
* Delete the build plugin handleImportMetaUrl
* Make 'npm install github/branch' work
* Verify there is a valid changelog entry before releasing
* Create release notes and comments from CI
Minor change to maybe trigger a CI run
* Fix RegExp
* 4.0.0-14
* Minor changes for a test PR (#5139)
* Fix RegExp use
* 4.0.0-15
* Do not rely on current branch to find the PR
* 4.0.0-16
* Fix how to determine git commit range
* 4.0.0-17
* Make sure we fetch all history on publish
* 4.0.0-18
* Add proper permissions
* 4.0.0-19
* Use Double quotation marks instead of Single quotation marks if concurrently scripts with flags
* Remove "engines" from native packages
* Update CONTRIBUTING.md
---------
Co-authored-by: XiaoPi <[email protected]>
* Update tests
* Retrieve the code that was omitted during the merge
* Restore test coverage
* Update docs/plugin-development/index.md
Co-authored-by: Lukas Taegert-Atkinson <[email protected]>
---------
Co-authored-by: Lukas Taegert-Atkinson <[email protected]>
Co-authored-by: Lukas Taegert-Atkinson <[email protected]>
This PR contains:
Are tests included?
Breaking Changes?
List any relevant issue numbers:
Description
This is the release branch for the forthcoming 4.0 release of Rollup.
Release strategy:
release-4.0branch.release-4.0branch and the list of features, bug fixes and breaking changes in this PR description should be updated.BREAKING CHANGES
General Changes
@rollup/wasm-nodepackage that has the same interface as Rollup but relies on WASM artifacts ([v4.0] Switch parser to SWC and introduce native/WASM code #5073)INVALID_IMPORT_ASSERTIONerror code has been replaced withINVALID_IMPORT_ATTRIBUTE([v4.0] Switch parser to SWC and introduce native/WASM code #5073)@__PURE__and@__NO_SIDE_EFFECTS__annotations in invalid locations ([v4.0] warn for invalid annotations #5165)#!..., this comment will be prepended to the output foresandcjsformats ([v4.0] feat: preserve shebang in entry module for CJS and ESM outputs #5163)RollupWarningtype has been removed in favor of theRollupLogtype ([v4.0] Remove onwarn from normalized input options #5147)Changes to Rollup Options
acornInjectPluginsoption has been removed ([v4.0] Switch parser to SWC and introduce native/WASM code #5073)acornoption has been removed ([v4.0] Switch parser to SWC and introduce native/WASM code #5073)output.externalImportAssertionshas been deprecated in favor ofoutput.externalImportAttributes([v4.0] Switch parser to SWC and introduce native/WASM code #5073)inlineDynamicImports,manualChunksandpreserveModuleshave been removed on input option level: Please use the corresponding output options of the same names ([v4.0] Remove deprecated features #5143)output.experimentalDeepDynamicChunkOptimization: This option is no longer needed as Rollup now always runs the full chunking algorithmoutput.dynamicImportFunction: Use therenderDynamicImportplugin hook insteadoutput.namespaceToStringTag: Useoutput.generatedCode.symbolsinsteadoutput.preferConst: Useoutput.generatedCode.constBindingsinsteadPlugin API Changes
this.resolve, the default of theskipSelfoption is nowtrue([v4.0] Set the default of skipSelf to true #5142)this.parsenow only supports theallowReturnOutsideFunctionoption for now ([v4.0] Switch parser to SWC and introduce native/WASM code #5073)loadhook of a plugin,rollup.watchno longer watches the actual file if the module id corresponds to a real path; if this is intended, then the plugin is responsible for callingthis.addWatchFilefor any dependency files ([v4.0] feat: Do not watch files anymore if their content is returned by the load hook #5150)buildStartand other hooks no longer contain anonwarnhandler; plugins should useonLoginstead ([v4.0] Remove onwarn from normalized input options #5147)this.moduleIdshas been removed from the plugin context: Usethis.getModuleIds()instead ([v4.0] Remove deprecated features #5143)hasModuleSideEffectsflag has been removed from theModuleInforeturned bythi s.getModuleInfo(): UsemoduleSideEffectson theModuleInfoinstead ([v4.0] Remove deprecated features #5143)Features
@__PURE__and@__NO_SIDE_EFFECTS__annotations in invalid locations ([v4.0] warn for invalid annotations #5165)parseAst([v4.0] Expose parser #5169)Bug Fixes
this.addWatchFile()([v4.0] feat: Do not watch files anymore if their content is returned by the load hook #5150)