Skip to content

Releases: roots/bud

6.21.0

25 Apr 03:27
Compare
Choose a tag to compare

Fixes errors with s3 and improves the WordPress stylelint config. There will likely be a 6.22.0 in the coming days with dependency upgrades.

What's Changed

New Contributors

Full Changelog: v6.20.0...v6.21.0

6.20.0

21 Dec 22:24
Compare
Choose a tag to compare

This release is mainly focused around addressing errors related to @roots/bud-preset-wordpress and @roots/sage users.

Fixed: module reload problems

The origin of this problem stems from WordPress not enqueuing assets that depend on wp-react-refresh-runtime if the WordPress config variable SCRIPT_DEBUG is not true. bud.js will now check the SCRIPT_DEBUG env variable, and if true will use wp-react-refresh-runtime. Otherwise, that runtime will be included in the bundle and the script dependency will be left undeclared. In lieu of an environment variable you can call bud.wp.setScriptDebug(true) in your bud.js configuration.

If you opt in (either by calling the config function or setting the environment variable) you must make sure it is set in your WordPress config. If you do nothing, you'll probably be fine, but we recommend either setting the environment variable or calling the new config function if you experience conflicts between the WordPress core dev runtime and bud.js dev runtime.

Feature: Support for mapping tailwindcss theme.spacing values to theme.json

Call bud.wp.json.useTailwindSpacing() to source spacing values from your tailwind config.

Fix: Node 16 compatibility

Downgraded globby from v14 to v13 so as to maintain compatibility with Node 16. We will be moving to Node 20 with the next major release of bud.js but we want to maintain compatibility with Node 16 for all bud.js 6.x.x releases. You should see major benefits in performance and reliability using Node 20 so we definitely recommend upgrading as soon as possible, if you can.

What's Changed

Full Changelog: v6.19.1...v6.20.0

6.19.1

15 Dec 18:35
Compare
Choose a tag to compare

Fixes an issue where the bud.module cache was not properly invalidated, resulting in import errors when upgrading from earlier versions (#2523).

What's Changed

Full Changelog: v6.19.0...v6.19.1

6.19.0

14 Dec 09:29
41c6f4d
Compare
Choose a tag to compare

This release reverts the figures dependency to v4 to maintain compatibility with Node 16. We will do this upgrade when we release the next major version of bud.js, and recommend all users move on to Node 20 as soon as possible. Still, we didn't intend to introduce this incompatibility in a minor release (v6.18.0).

This also fixes errors with inlined assets when using @roots/bud-vue. This required reordering some module rules (which is why this release is a minor release rather than a patch). If you are using the build.module.rules hook (or any of its inner hooks, like build.module.rules.oneOf), you may need to update code if you are relying on the rules being ordered in a particular way. Thanks to @rkaalma for the report.

There also corrects a sneaky issue where expanded environment variables were not always being overridden as designed.

Lastly, there have been improvements made to the handling of webpack plugin instances used directly with bud.extensions.add or bud.use. Related tests have been improved along with the example config. You should also see these plugins in the bud doctor listing in a more easily identifiable way.

Related issues

What's Changed

Full Changelog: v6.18.0...v6.19.0

6.18.0

30 Nov 19:54
Compare
Choose a tag to compare

This is a relatively big release but should not require any changes to your project configuration.

Node.js LTS is now 20.10 and bud.js has adopted it. We are still not doing anything that requires it but bud doctor will warn you to upgrade Node.js if you're still on 18 and will really warn you if you are using an even earlier version.

Previously, @roots/browserslist-config would update the can-i-use database as a post install script. This check has been moved into the bud.js application, running before compilation. It runs once per week and only if you have defined a browserslist property in package.json. It can be disabled by setting an environment variable (BUD_BROWSERSLIST_UPDATE=false), or with the --no-browserslist-update flag.

Fixed

  • Fixes an issue where sometimes a stale error notification would persist in the browser even after it was fixed in source.
  • Fixes an issue where sometimes installations could hang when using Yarn v3+.

New

  • bud.addConfig: config function which accepts a path to another config file to run.
  • bud.lazy: config function to configure lazy compilation settings.

Improved

  • bud.devtool, bud.hash bud.minimize, bud.persist, and bud.runtime now accept Bud as an argument so they can be more readily combined with functions like bud.when (e.g. bud.when(bud.isDevelopment, bud.devtool)).
  • bud.hash: Now accepts the hash generation function as a string, if you want to customize it.
  • --runtime flag: now accepts a string argument (e.g. --runtime=single, --runtime=multiple). It can still be used as a boolean flag: (e.g. --runtime, --no-runtime).
  • bud build development: Help menu with keyboard shortcuts (toggle with h).
  • YML configs now support dot notation in config keys. See updated documentation.
  • bud repl: This command is now more responsive to terminal window sizing (it was previously capped at 10 rows).
  • bud clean: This command now only lists directories which it actually removed.
  • All extensions now have a done method which returns the bud instance, for better chaining.
  • General improvements to logging (--log).
  • General improvements to exception handling.
  • Code minimizers (terser, etc.) are lazy loaded only when they are used, which is a performance gain.
  • html-webpack-plugin is lazy loaded only when it is being used, which is a performance gain.

What's Changed

Full Changelog: v6.17.0...v6.18.0

6.17.0

29 Sep 08:41
Compare
Choose a tag to compare

Improvements in 6.17.0 are mainly focused on @roots/bud-purgecss and @roots/bud-stylelint APIs. Also includes a way for community extensions to indicate compatibility with specific bud.js releases. This allows community extension authors to version their work independently of bud.js core and for users to update extensions along with core packages using the bud upgrade command (#2444).

Also includes a few minor bug fixes and updates to transitive dependencies.

⚠️ Breaking Changes

@roots/bud-postcss

Sensible defaults are applied automatically, making this extension zero config. There is a much better API available using bud.purge rather than bud.purgecss.

  • lf you have installed the extension but are not using it you will either want to remove the extension or explicitly disable it: bud.purge.enable(false).
  • bud.purgecss function is deprecated. You should configure purgecss using the extension API exposed with bud.purge. bud.purge.setOptions works exactly the same way as bud.purgecss does, but there is now a new, fully fluent API available to you as well.
  • bud.purgecss will not be removed until v7.

What's Changed

Full Changelog: v6.16.1...v6.17.0

6.16.1

08 Sep 08:11
Compare
Choose a tag to compare

Fix for bud upgrade command (when using yarn classic).

What's Changed

Full Changelog: v6.16.0...v6.16.1

6.16.0

08 Sep 05:45
Compare
Choose a tag to compare

This update adds css module support for scss when using @roots/bud-sass, improves the CLI dashboard, and adds experimental support for pnpm and yarn berry to the bud ugprade and create-bud-app commands. It also includes dependency updates, bug fixes and other internal improvements.

What's Changed

New Contributors

Full Changelog: v6.15.2...v6.16.0

6.15.2

17 Aug 19:04
Compare
Choose a tag to compare

Patch: fixes a potential issue with resolving sass-loader and improves bud.cache interface and build dependency identification.

What's Changed

Full Changelog: v6.15.1...v6.15.2

6.15.1

15 Aug 05:23
Compare
Choose a tag to compare

Fixes issues with create- bud-app when not specifying any features (totally vanilla project) and improves CLI command cache to be mostly self-healing.

What's Changed

Full Changelog: v6.15.0...v6.15.1