cli_pkg 2.14.0
cli_pkg: ^2.14.0 copied to clipboard
Grinder tasks for releasing Dart CLI packages.
2.14.0 #
- Add a
pkg.useExeconfig variable to allow users to customize exactly when single-file standalone executables are generated.
2.13.0 #
-
Generate an AOT module instead of a portable module in
pkg-standalone-dev. Because dev artifacts are only intended to be used on the current machine, there's no need to trade speed for portability. -
Add a
pkg-compile-native-devtask to generate an AOT module with asserts enabled. -
The
pkg-compile-snapshot-devtask is now an alias ofpkg-compile-snapshotfor backward compatibility. For portable modules asserts need be enabled at runtime withdart --enable-asserts. -
Add support for new
dartvmexecutable on Dart SDK >=3.10.0.
2.12.0 #
- Drop support for ia32 on Dart SDK >=3.8.0.
2.11.0 #
- Add
lazyandoptionaloptions toJSRequire().
2.10.0 #
- Add standalone and GitHub tasks for android-riscv64.
2.9.0 #
- Expand
homebrewEditFormula's return type fromStringtoFutureOr<String>.
2.8.1 #
- Stop using
dart:cli.
2.8.0 #
-
Add standalone and GitHub tasks for all OS/architecture combinations supported by Dart, as well as for Musl Linux.
-
Add a
homebrewEditFormulaConfigVariablethat allows users to make custom modifications to the Homebrew formula after the built-in edits.
2.7.2 #
- Stop attempting to compile native executables for 32-bit Dart SDKs, again. (I misunderstood and thought the underlying Dart SDK issue was fixed.)
2.7.1 #
-
Make
requireavailable as a top-level name for JS interop. Dependencies should still be defined declaratively throughjsRequires, but this allows Dart code to access attributes likerequire.main. -
Compile native executables for 32-bit Dart SDKs.
2.7.0 #
-
The
package:cli_pkg/js.dartlibrary can now be used by the Dart VM. Previously it could only be imported when compiling to JS. -
Add
isBrowserandisJSgetters topackage:cli_pkg/js.dart. -
Potentially breaking bug fix: Removed the
processgetter and thePartialProcessclass extension frompackage:cli_pkg/js.dartto avoid exporting theProcesstype as part of the API. The package version2.6.0was rescinded immediately after publishing.
2.6.0 #
- Add
isNodeJsandprocessgetters topackage:cli_pkg/js.dart.
2.5.0 #
-
Add a
wrapJSException()function in the newpackage:cli_pkg/js.dartlibrary to work around dart-lang/sdk#53105. This should be called around all calls to JS callbacks to avoid unexpected crashes when exceptions are caught by Dart code. -
Add a
pkg.jsForceStrictModeconfiguration option. This defaults tofalse, but if it's set totrue, all generated JS code will be run in strict mode.
2.4.7 #
- Fix a bug where npm packages could crash on Node.js if loaded both through
require()andimport.
2.4.6 #
- Properly mark NPM packages as
"type": "module"whenpkg.jsEsmExportsis set, and mark all CJS files as explicitly.cjs.
2.4.5 #
-
Properly set the pub credentials for the latest versions of the Dart SDK.
-
pkg.homebrewFormulanow looks for formula files in theFormuladirectory as well as the repository root.
2.4.4 #
- Remove logical OR assignment operators that made the JS code generated by this package incompatible with older versions of Node.
2.4.3 #
- Fix a bug where Node.js executables failed with
jsEsmExportsset.
2.4.2 #
- Remove nullish coalescing operators that made the JS code generated by this package incompatible with older versions of Node.
2.4.1 #
-
Fix a crash on dart sdks under experimental OS support.
-
Work around a bug in Vite when bundling packages for the browser.
2.4.0 #
- Add standalone tasks for experimental dart sdks. These tasks are only available directly on experimental dart sdks.
2.3.0 #
-
Added
pkg.jsEsmExports. If this is set,cli_pkgwill generate ESM libraries for each target in addition to CommonJS. -
Made
JSRequireTargeta proper enum. -
Added
JSRequireTarget.defaultTarget, which is explicitly loaded only by the"default"conditional export in package.json. -
It's now allowed to set
JSRequires withJSRequireTarget.cliwithout settingjsModuleMainLibrary. -
Potentially breaking bug fix: Instead of scraping source maps after the fact, added
--no-source-mapsto the default value ofjsReleaseFlags.
2.2.0 #
-
Use the current SDK's
dartexecutable to build the standalone snapshot for current architecture. -
Generate a native snapshot rather than a self-contained executable on Linux.
2.1.9 #
- Use
readlink -fin standalone scripts that wrap snapshots on operating systems where it's available. This ensures that the path resolution for those scripts is accurate even in the presence of complex symlinks.
2.1.8 #
- Properly follow GitHub API pagination links in
pkg-github-fix-permissionsso that it fixes all targets, not just the first page of results.
2.1.7 #
-
Important security bug fix: Fix incorrect file permissions in the standalone
.tar.gzarchives. Previously, files in these archives were incorrectly marked as world-writable in the archive metadata. While this metadata is ignored under most circumstances, users on multi-user systems who explicitly pass--preserve-permissionsor who extract the archives as root would end up with an executable that another user on the same system could overwrite with malicious code. -
Add a
pkg-github-fix-permissionstask which fixes this security issue in all archives which were uploaded to GitHub releases for the current package.
2.1.6 #
- Use
dart runcommands rather thandart pub runfor compatibility with the latest Dart releases.
2.1.5 #
-
Potentially breaking bug fix: The
pkg-homebrew-updatetask must now download a repository archive from GitHub in order to generate the sha256 hash rather than generating it directly from the local repository. This is necessary because GitHub changed their.tar.gzformat so that it no longer precisely matches the format generated bygit archive.This is only a breaking change if you were relying on running
pkg-homebrew-updatebefore pushing the tag in question to GitHub.
2.1.4 #
- Now merges
"exports"objects declared in the originalpackage.jsonwhen usingJsRequireswith a target other thanall. Note that string and array values will still be overwritten.
2.1.3 #
- Don't mangle lists in automatically-extracted CHANGELOG entries for GitHub releases.
2.1.2 #
- Use
dart pubcommands rather thanpubfor compatibility with the latest Dart releases.
2.1.1 #
- Narrow the SDK constraint to reflect the use of a new API.
2.1.0 #
-
Add
pkg-github-$os-$archtasks, which compile and upload binaries for the given operating system and architecture. -
pkg-github-linux,pkg-github-macos, andpkg-github-windowsnow compile and upload binaries for all supported architectures. -
Use
dart pubcommands rather thanpubfor compatibility with the latest Dart releases.
2.0.3 #
- Fix a bug where dynamic calls to
require()would always benullin an npm package.
2.0.2 #
- Fix a bug where an npm package with target-specific
JSRequires would include an invalid"main"field in itspackage.json.
2.0.1 #
- Work around an npm bug that was causing
npm publishto fail.
2.0.0 #
- Breaking change: The
jsRequiresmap has been changed to a list ofJSRequireobjects. These objects allow packages to specify exactly which target(s) a given dependency should be loaded on, so for example they can provide a package that loads thefsmodule for Node.js but can still be bundled for the browser without it.
1.7.0 #
- Callbacks passed to
ConfigVariable.fn=can now return nullable values even for non-nullable types. Doing so will cause the variable to use its default value. The behavior for nullable types remains unchanged.
1.6.0 #
-
Add
pkg-standalone-linux-arm64andpkg-standalone-mac-arm64tasks, which compile Linux and Mac OS binaries respectively for 64-bit ARM architectures. As with other 64-bit architectures, these will compile native executables when invoked on the same OS/architecture combination they're targeting, and will compile script snapshots otherwise. -
pkg-standalone-allnow compiles Linux and Mac OS binaries for 64-bit ARM architectures.
1.5.2 #
-
Use
dart compile exeanddart compile aot-snapshotinstead ofdart2nativewhen compiling standalone executables. -
The space character is no longer forbidden in environment constants, since https://github.com/dart-lang/sdk/issues/46050 has been fixed.
1.5.1 #
- Properly run executables from source in
testing.dartwhen their public names are different than their filenames.
1.5.0 #
-
Add
pkg.npmAdditionalFilesto make it possible to add custom files to npm packages. -
pkg.addChocolateyTasks()no longer automatically adds standalone tasks, since Chocolatey tasks no longer depend on standalone tasks. -
pkg-chocolateynow creates a file namedLICENSE.txtrather thanLICENSE, at the request of the Chocolatey reviewers.
1.4.0 #
- Add
pkg.environmentConstantsto make it possible to define custom environment constants for the compiled executables.
1.3.0 #
- Migrate to null-safety.
1.2.0 #
-
Add a
pkg.githubBearerTokento make it easier to integrate with GitHub actions. -
Generate a fully standalone executable on Linux rather than a native snapshot.
1.1.0 #
- The main function generated by this package will return a
Promiseif the corresponding Dart main function returns aFuture.
1.0.0 #
- Initial stable release.
Changes since 1.0.0-beta.13 #
- Don't fold link reference declarations like paragraphs when generating GitHub release notes.
1.0.0-beta.13 #
-
Add a
ConfigVariable.defaultValueproperty to get the default value for variables that are overridden by functions. -
Fix a typo in error messages when files need to be regenerated for tests.
1.0.0-beta.12 #
- Deploy Chocolatey packages as source files rather than a zip file, to avoid
validation errors around the need for a
VERIFICATIONfile.
1.0.0-beta.11 #
-
Properly load the Dart SDK license when it's in the directory above the SDK, as in a Homebrew installation.
-
Use the latest version of the
xmlpackage.
1.0.0-beta.10 #
-
Breaking change: All configurable variables are now defined as
ConfigVariableobjects rather than top-level fields. These objects make it possible to configure variables with callback functions and to freeze those variables once execution has begun. -
Properly handle git repositories that use branch names other than
master.
1.0.0-beta.9 #
- Improve error messages if release notes can't be extracted from
CHANGELOG.md.
1.0.0-beta.8 #
- Fixes a bug when reading a
CHANGELOG.mdwith Windows-style line endings.
1.0.0-beta.7 #
- Breaking change: Dart snapshots are now named based on the executable name
(specified in the pubspec or in
pkg.executables) instead of the name of the Dart file inbin.
1.0.0-beta.6 #
-
Breaking change: Chocolatey now uses the
chocoCLI to build and deploy packages, rather than re-implementing its logic in Dart. In particular:-
The
pkg-chocolatey-buildtask has been renamed topkg-chocolatey-packto match the CLI's naming scheme. -
The
pkg-chocolatey-packandpkg-chocolatey-deploytasks must be run in an environment with thechococommand available.
-
-
Add a
pkg-chocolateycommand that builds an un-archived Chocolatey package directory. -
Rather than releasing binary snapshots on Chocolatey, compile the source code to compile native executables on users' machines.
-
Add a
chocolateyFilesgetter that returns the files that should be included in the Chocolatey package. -
Depend on the correct version of pre-release Dart SDKs from Chocolatey packages.
1.0.0-beta.5 #
- Use the correct URL when fetching GitHub release metadata.
1.0.0-beta.4 #
-
Add a
pkg.npmDistTaggetter that controls the distribution tag for an npm release. -
Add a
pkg.homebrewCreateVersionedFormulagetter that controls whether the Homebrew release creates a new formula or updates an existing one. -
Run
pub publish --forceso it doesn't hang forever. -
Properly parse GitHub repositories from HTTP URLs ending in
.git. -
Drop support for Mac OS ia32 packages, since Dart 2.7 doesn't support them anymore.
1.0.0-beta.3 #
- Add a
cli_pkg/testing.dartlibrary to make it easier for users to efficiently and reliably test their executables.
1.0.0-beta.2 #
-
Add a
pkg-standalone-devtask for building a script that can be invoked for testing. -
Fix a bug where the version variable wouldn't be set for certain executables.
1.0.0-beta.1 #
- Initial beta release.