rules_js icon indicating copy to clipboard operation
rules_js copied to clipboard

rules_js v3 BREAKING CHANGES

Open jbedard opened this issue 1 year ago • 0 comments

BREAKING CHANGES for next major release of rules_js:

  • [x] remove pnpm < v9 (https://github.com/aspect-build/rules_js/pull/2456)
  • [x] remove bazel v6 support (https://github.com/aspect-build/rules_js/pull/2458)
  • [x] remove WORKSPACE support (https://github.com/aspect-build/rules_js/pull/2455)
  • [x] remove npm_import/npm_package_store(dev) (https://github.com/aspect-build/rules_js/issues/2013, https://github.com/aspect-build/rules_js/pull/2456)
  • [x] remove npm_translate_lock(root_package) (https://github.com/aspect-build/rules_js/pull/2552)
  • [x] remove npm_translate_lock(link_workspace) (https://github.com/aspect-build/rules_js/pull/2551)
  • [x] remove npm_translate_lock(addition_build_content) (https://github.com/aspect-build/rules_js/pull/2555)
  • [x] remove or simplify npm_link_package(root_package, link) (https://github.com/aspect-build/rules_js/pull/2553)
  • [x] replace aspect_bazel_lib v2 with bazel-lib v3 (https://github.com/aspect-build/rules_js/pull/2460, https://github.com/aspect-build/rules_js/pull/2457, https://github.com/aspect-build/rules_js/pull/2505, https://github.com/aspect-build/rules_js/pull/2501)
  • [x] remove unsupported pnpm versions from npm/private/versions.bzl (https://github.com/aspect-build/rules_js/pull/2456)
  • [x] remove use of pnpm lockfile requiresBuild (https://github.com/aspect-build/rules_js/pull/2456)
  • [x] switch default pnpm to v10 (https://github.com/aspect-build/rules_js/pull/2456 / https://github.com/aspect-build/rules_js/pull/2220)
  • [x] ~~remove legacy runfiles code for older versions of bazel~~ (https://github.com/aspect-build/rules_js/pull/2532)
  • [x] remove rules_nodejs v5 support (see: hasattr(nodeinfo, "node") calls, ...) (https://github.com/aspect-build/rules_js/pull/2467)
  • [ ] remove node < v? support (see use of abortcontroller-polyfill etc) (https://github.com/aspect-build/rules_js/pull/2504, https://github.com/aspect-build/rules_js/pull/2530)
  • [x] remove exclude_types_from_npm_packages_flag (https://github.com/aspect-build/rules_js/pull/2464)
  • [ ] remove label_store - https://github.com/aspect-build/rules_js/issues/2385
  • [x] resolve TODO(3.0) comments
  • [X] replace npm_translate_lock(dev/prod) with single "no dev" flag, see https://github.com/aspect-build/rules_js/issues/2013 (https://github.com/aspect-build/rules_js/pull/2487 ?)
  • [x] https://github.com/aspect-build/rules_js/issues/2196 (https://github.com/aspect-build/rules_js/pull/2202)
  • [x] Simplify path existence checking https://github.com/aspect-build/rules_js/pull/2399
  • [x] remove npm_translate_lock(defs_bzl_filename) - does this really need to be customized? (https://github.com/aspect-build/rules_js/pull/2466)
  • [x] replace yq_toolchain_prefix with a bzlmod alternative (https://github.com/aspect-build/rules_js/pull/2501)
  • [X] delete npm_import(link_packages) - it seems to just duplicate content into the npm__${pkg}__${version}//${link_package}/{BUILD.bazel,package_json.bzl} with nothing link specific in it? these targets should be available via @npm//{link_package/:node_modules/{pkg}/package_json.bzl instead which has a more predictable location then the npm__${pkg}__${version} repo (https://github.com/aspect-build/rules_js/pull/2486)

MAYBE:

  • remove bazel v7 support
  • simplify internal package store rules and make circular-dep handling opt-in? remove support for circular deps on packages with lifecycle hooks (this could remove some complications with /pkg vs /ref targets etc)?
  • split npm_link_all_packages store vs link targets into different marcos: store targets (root only), :node_modules/{pkg} targets within each package directory such as @npm//my/project:defs.bzl
  • enable by default yarn autoclean excludes by default (opt-in: https://github.com/aspect-build/rules_js/pull/2136)
  • https://github.com/aspect-build/rules_js/pull/1781
  • switch reading pnpm settings from package.json to pnpm-workspace.yaml (followup to https://github.com/aspect-build/rules_js/issues/2469)
  • remove npm_import(extract_full_archive)?

LARGE (but should be non-breaking):

  • [x] https://github.com/aspect-build/rules_js/issues/714 (https://github.com/aspect-build/rules_js/pull/2538)
  • [x] https://github.com/aspect-build/rules_js/pull/2177 (partially breaking)
  • [x] double parsing of lockfiles (https://github.com/aspect-build/rules_js/issues/1563, https://github.com/aspect-build/rules_js/pull/2480)
  • [x] do not use transitive_closure for packages with non-circular deps (https://github.com/aspect-build/rules_js/pull/2559, https://github.com/aspect-build/rules_js/pull/2543)
  • [ ] cross-compilation_mode (https://github.com/aspect-build/rules_js/issues/2581)
  • [ ] esm sandboxing issues (https://github.com/aspect-build/rules_js/pull/2366)

jbedard avatar Oct 18 '24 18:10 jbedard