Skip to content

Releases: martis42/depend_on_what_you_use

0.6.0

20 Dec 07:44
Compare
Choose a tag to compare

Using Bzlmod (Recommended)

Add to your MODULE.bazel file:

bazel_dep(name = "depend_on_what_you_use", version = "0.6.0")

Using WORKSPACE (Legacy)

⚠️ This release is not compatible to Bazel >= 8.0.0 using the legacy WORKSPACE setup ⚠️
The problem is that the rules_cc and rules_pyhon versions we reference in the dwyu_setup_step_1 macro are not compatible to Bazel 8. It is planned to fix this in a later release. You might be able to circumvent this by enforcing newer versions of those rule sets in your workspace.

Add to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "2bde20cec993fad9f9989aaac06900188d9fcc9f23c1de3a5b326c0d31cc1457",
    strip_prefix = "depend_on_what_you_use-0.6.0",
    url = "https://github.com/martis42/depend_on_what_you_use/releases/download/0.6.0/depend_on_what_you_use-0.6.0.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

Breaking Changes

  • Dropped Support for Bazel 5. Minimum Bazel version is now 6.0.0.

Noteworthy Changes

  • Build - Dropped Bazel 5.x support #309
  • Fix (aspect) - Allow multiple dependencies providing the same header #292
  • Fix (aspect) - Patch infinite recursion error in pcpp (preprocessor used for parsing the code) #320
  • Feature - Support --noexperimental_python_import_all_repositories #312
  • Feature (aspect) - Support Bazel C++ toolchain feature external_include_paths #319
  • Testing - Test environments are now: ubuntu-24.04, macos-15 and windows-2022 #307

What's Changed

  • refactor: Streamline release process by @martis42 in #290
  • Increase used and tested Bazel version by @martis42 in #291
  • fix(aspect): Allow multiple dependencies providing the same header by @martis42 in #292
  • refactor(aspect): Only use a param file if required by @martis42 in #294
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.6.8 by @renovate in #295
  • chore(deps): update bazel dependencies by @renovate in #296
  • chore(deps): update pre-commit hook executablebooks/mdformat to v0.7.18 by @renovate in #298
  • chore(deps): update dependency aspect_bazel_lib to v2.9.3 by @renovate in #297
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.13.0 by @renovate in #305
  • chore: Update CI test environment by @martis42 in #307
  • chore(deps): update pre-commit hook executablebooks/mdformat to v0.7.19 by @renovate in #303
  • Cleanup unused things by @martis42 in #308
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.8.2 by @renovate in #304
  • build: Drop Bazel 5.x support by @martis42 in #309
  • Streamline and harden test setup by @martis42 in #311
  • Use modern language rules load statements by @martis42 in #310
  • feat: Support --noexperimental_python_import_all_repositories by @martis42 in #312
  • Refactor auto deps update by @martis42 in #313
  • Streamline renovate behavior and config by @martis42 in #314
  • chore(deps): update dependency stardoc to v0.7.2 by @renovate in #315
  • chore(deps): update dependency aspect_bazel_lib to v2.10.0 by @renovate in #316
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.8.3 by @renovate in #317
  • chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v5 by @renovate in #318
  • feat(aspect): support toolchain feature external_include_paths by @martis42 in #319
  • fix(aspect): Patch RecursionError in pcpp by @martis42 in #320

Full Changelog: 0.5.0...0.6.0

0.5.0

07 Sep 09:25
Compare
Choose a tag to compare

Using Bzlmod (Recommended)

Add to your MODULE.bazel file:

bazel_dep(name = "depend_on_what_you_use", version = "0.5.0")

Using WORKSPACE (Legacy)

Add to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "39b106030a9e79db2fb52dca1b66fec7618d93e0dff986ee55f3b176fd979c91",
    strip_prefix = "depend_on_what_you_use-0.5.0",
    url = "https://github.com/martis42/depend_on_what_you_use/releases/download/0.5.0/depend_on_what_you_use-0.5.0.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

Noteworthy Changes

  • Documentation - There is now a single source of truth for the aspect documentation. You find it in docs/dwyu_aspect.md #273
  • Bugfix (automatic fixes) - Fix bug regarding automatic fixes failing while analyzing targets with empty hdrs attribute #280
  • Feature (aspect) - Experimental support for setting the __cplusplus macro to enable correctly processing files with preprocessor statements relying on this macro #288
  • Feature (aspect) - Support processing targets with large attributes which otherwise would fail due to the system's command length limit #283

What's Changed

  • chore(deps): update dependency bazel_skylib to v1.7.1 by @renovate in #263
  • Update quality tools by @martis42 in #265
  • Update Ubuntu in BCR tests by @martis42 in #267
  • Reduce Windows Python overhead by @martis42 in #266
  • Stop bundling renovate quality updates by @martis42 in #268
  • Update tested bazel versions by @martis42 in #269
  • Replace Bazel mypy orchestration with pre-commit by @martis42 in #271
  • Remove superfluous export by @martis42 in #272
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.5.5 by @renovate in #274
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.11.1 by @renovate in #275
  • chore(deps): update dependency pre-commit to v3.8.0 by @renovate in #276
  • chore(deps): update pre-commit hook keith/pre-commit-buildifier to v7 by @martis42 in #278
  • Use stardoc to generate some docs by @martis42 in #273
  • Work around missing "stringListValue" in certain cases by @mrkkrp in #280
  • chore: Update pre-commit to 3.8.0 by @martis42 in #281
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.6.3 by @renovate in #286
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.11.2 by @renovate in #284
  • chore(deps): update pre-commit hook keith/pre-commit-buildifier to v7.3.1 by @renovate in #287
  • chore(deps): update dependency aspect_bazel_lib to v2.8.1 by @renovate in #285
  • Experimental support for setting the '__cplusplus' macro by @martis42 in #288
  • Use param files to invoke process_target.py by @mrkkrp in #283

New Contributors

Full Changelog: 0.4.0...0.5.0

0.4.0

20 Jun 21:04
Compare
Choose a tag to compare

Using Bzlmod (Recommended)

Add to your MODULE.bazel file:

bazel_dep(name = "depend_on_what_you_use", version = "0.4.0")

Using WORKSPACE (Legacy)

Add to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "e734099ac92263f61f155e2a39dc29937be818d16d25891b166476710ec25ac4",
    strip_prefix = "depend_on_what_you_use-0.4.0",
    url = "https://github.com/martis42/depend_on_what_you_use/releases/download/0.4.0/depend_on_what_you_use-0.4.0.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

Noteworthy Changes

  • Added missing headers to default std headers list #262

What's Changed

Full Changelog: 0.3.0...0.4.0

0.3.0

26 May 17:29
Compare
Choose a tag to compare

Using Bzlmod (Recommended)

Add to your MODULE.bazel file:

bazel_dep(name = "depend_on_what_you_use", version = "0.3.0")

Using WORKSPACE (Legacy)

Add to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "b56cdfaed0d74967fefb54bdd3f05bd167c4c4ebaa2a67af962d969e6a51962b",
    strip_prefix = "depend_on_what_you_use-0.3.0",
    url = "https://github.com/martis42/depend_on_what_you_use/releases/download/0.3.0/depend_on_what_you_use-0.3.0.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

Breaking Changes

  • Automatic fixes: Change how arguments are forwarded to buildozer. This is done to achieve a consistent API to how arguments are forwarded to the bazel commands. #251

Noteworthy Changes

  • Analysis: Update standard library headers which are ignored by DWYU #248
  • Automatic fixes: Support cquery to find missing dependencies. Also we allow now forwarding arguments to the bazel commands which are executed by the apply_fixes script #249, #252
  • Analysis: Fix bug for analyzing implementation_deps when using target mappings #254
  • Automatic fiixes: Add a new method for discovering DWYU report files which should be more efficient for large workspaces. This is based on creating an execution log for the analysis done by the DWYU aspect and then forwarding this log to the apply_fixes script #255

What's Changed

New Contributors

Full Changelog: 0.2.0...0.3.0

0.2.0

22 Apr 18:58
Compare
Choose a tag to compare

Using Bzlmod (Recommended)

Add to your MODULE.bazel file:

bazel_dep(name = "depend_on_what_you_use", version = "0.2.0")

Using WORKSPACE (Legacy)

Add to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "fc0e730072265d72b796fb39e4d7022249ad35239fdd9fbbce33eb393862039f",
    strip_prefix = "depend_on_what_you_use-0.2.0",
    url = "https://github.com/martis42/depend_on_what_you_use/releases/download/0.2.0/depend_on_what_you_use-0.2.0.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

Noteworthy Changes

  • apply_fixes: Improve heuristic for finding missing dependencies #241
  • Allow skipping external targets #242

What's Changed

  • chore(deps): update quality tooling dependencies by @renovate in #232
  • No automated updates of main deps by @martis42 in #233
  • chore(deps): update softprops/action-gh-release action to v2 by @renovate in #235
  • chore(deps): update quality tooling dependencies by @renovate in #234
  • chore: Make Renovate aware of all Python requirements files by @martis42 in #236
  • Update used and tested Bazel by @martis42 in #238
  • Streamline module bazel by @martis42 in #239
  • Document todo for after abandoning Bazel 5 support by @martis42 in #240
  • apply_fixes: Improve dependency discovery heuristic by @martis42 in #241
  • Allow skipping external targets by @martis42 in #242

Full Changelog: 0.1.0...0.2.0

0.1.0

25 Feb 16:59
Compare
Choose a tag to compare

🎉 This release is a major milestone for DWYU 🎉

This is the first release without a leading 0.0. While DWYU is not yet ready for 1.0.0, its overall feature set is now mostly stable. No bug reports with major gaps in functionality have been reported and thus we are confident to leave the "beta testing" phase.

This is also the first release supporting bzlmod. Also we added examples demonstrating DWYU usage.

Please note this release has some breaking changes as defined below.

Using Bzlmod (Recommended)

Add to your MODULE.bazel file:

bazel_dep(name = "depend_on_what_you_use", version = "0.1.0")

Using WORKSPACE (Legacy)

Add to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "746de76cb6a8d5e0d6e60c91bcc73ffd6088fff4152552c3e0aee6219c1d809d",
    strip_prefix = "depend_on_what_you_use-0.1.0",
    url = "https://github.com/martis42/depend_on_what_you_use/releases/download/0.1.0/depend_on_what_you_use-0.1.0.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

Breaking Changes

  • The minimum Bazel version is now 5.4.0
  • The output group has been renamed. Replace --output_groups=cc_dwyu_output with --output_groups=dwyu in your DWYU commands #170
  • The name for the DWYU aspect option to provide a config file for ignored include paths changed from config = "//<your_config_file>.json" to ignored_includes = "//<your_config_file>.json" #181
  • Renamed the --bazel-bin apply_fixes CLI option to --search-path to make it more obvious how flexibly it can be used #221

Noteworthy Changes

  • Windows and macOS are now explicitly tested in the CI to ensure DWYU behaves on those platforms as expected.
  • You can now specify a custom list of tags to make DWYU skip analyzing targets #159
  • Support depending on DWYU via bzlmod
  • Ensure code quality with ruff (most checks are active)
  • There is now a set of examples
  • Add verbosity option to the aspect #209

What's Changed

New Contributors

Full Changelog: 0.0.13...0.1.0

0.0.13

01 Nov 10:22
Compare
Choose a tag to compare

Put the following into your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "0d53cc408f53c211172729d17735c5f81e2d08501bcf12218bd51f17a000c024",
    strip_prefix = "depend_on_what_you_use-0.0.13",
    url = "https://github.com/martis42/depend_on_what_you_use/archive/refs/tags/0.0.13.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

load("@depend_on_what_you_use//:setup_step_3.bzl", dwyu_setup_step_3 = "setup_step_3")
dwyu_setup_step_3()

Noteworthy Changes

Full Changelog: 0.0.12...0.0.13

0.0.12

18 Oct 19:46
Compare
Choose a tag to compare

Put the following into your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "e18fe44715612db914ee788f9ada77d6b7a7edc7f2c3c5e101d2d82b176248a2",
    strip_prefix = "depend_on_what_you_use-0.0.12",
    url = "https://github.com/martis42/depend_on_what_you_use/archive/refs/tags/0.0.12.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

load("@depend_on_what_you_use//:setup_step_3.bzl", dwyu_setup_step_3 = "setup_step_3")
dwyu_setup_step_3()

Noteworthy Changes

Full Changelog: 0.0.11...0.0.12

0.0.11

19 Sep 16:44
Compare
Choose a tag to compare

Put the following into your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "0a32e1f66068b3959db2480c502ed2a446086b61b5143e8d39454ec6ac5a2803",
    strip_prefix = "depend_on_what_you_use-0.0.11",
    url = "https://github.com/martis42/depend_on_what_you_use/archive/refs/tags/0.0.11.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

load("@depend_on_what_you_use//:setup_step_3.bzl", dwyu_setup_step_3 = "setup_step_3")
dwyu_setup_step_3()

Noteworthy Changes

What's Changed

  • Rework include path analysis by @martis42 in #137
  • Support relative include statements for virtual paths by @martis42 in #144
  • Enable processing defines from included headers by @martis42 in #146
  • Enable parsing of pre processor tokens as include path by @martis42 in #149

New Contributors

Full Changelog: 0.0.10...0.0.11

0.0.10

30 Jul 09:38
Compare
Choose a tag to compare

Put the following into your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "depend_on_what_you_use",
    sha256 = "4986b05c2bf90fab23ce0cb78249d726a6a129c8d4817d1356d8900c711e7dc7",
    strip_prefix = "depend_on_what_you_use-0.0.10",
    url = "https://github.com/martis42/depend_on_what_you_use/archive/refs/tags/0.0.10.tar.gz",
)

load("@depend_on_what_you_use//:setup_step_1.bzl", dwyu_setup_step_1 = "setup_step_1")
dwyu_setup_step_1()

load("@depend_on_what_you_use//:setup_step_2.bzl", dwyu_setup_step_2 = "setup_step_2")
dwyu_setup_step_2()

load("@depend_on_what_you_use//:setup_step_3.bzl", dwyu_setup_step_3 = "setup_step_3")
dwyu_setup_step_3()

Breaking Changes

  • Minimum Bazel version is now 5.0.0
  • Minimum Python version is now 3.8

Noteworthy Changes

New Contributors

Full Changelog: 0.0.9...0.0.10