Releases: martis42/depend_on_what_you_use
0.6.0
Using Bzlmod (Recommended)
Add to your MODULE.bazel
file:
bazel_dep(name = "depend_on_what_you_use", version = "0.6.0")
Using WORKSPACE (Legacy)
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
andwindows-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
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
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
- Extend central registry testing to rolling releases by @martis42 in #256
- Actions should offer a proper mnemonic by @martis42 in #257
- chore(deps): update quality tooling dependencies by @renovate in #258
- chore(deps): update dependency bazel_skylib to v1.7.0 by @renovate in #259
- Refactor integration testing by @martis42 in #260
- Fix standard headers list by @martis42 in #262
Full Changelog: 0.3.0...0.4.0
0.3.0
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
- chore(deps): update quality tooling dependencies by @renovate in #244
- chore(deps): update dependency bazel_skylib to v1.6.1 by @renovate in #243
- Remove stray "is" by @steple in #247
- Update standard headers by @martis42 in #248
- apply_fixes: Support cquery and custom bazel arguments by @martis42 in #249
- Minor quality of life by @martis42 in #250
- Apply_fixes: Consistent CLI by @martis42 in #251
- apply_fixes: More flexible bazel-info usage by @martis42 in #252
- Fix target_mapping not working with implementation_deps by @martis42 in #254
- apply_fixes can parse report files from a DWYU execution log by @martis42 in #255
New Contributors
Full Changelog: 0.2.0...0.3.0
0.2.0
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
🎉 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"
toignored_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
- Add missing index entry to new feature by @martis42 in #156
- Remove deprecated doc parts by @martis42 in #157
- Chore: Toolchain updates by @martis42 in #158
- Allow specifying custom tags to skip DWYU analysis by @martis42 in #159
- Update Bazel mypy integration by @martis42 in #161
- Update rules_python to 0.27.0 by @martis42 in #162
- Bump actions/setup-python from 4 to 5 by @dependabot in #163
- Start using bzlmod by @martis42 in #165
- Be compatible to stop exporting language modules by @martis42 in #167
- Soft vendor pcpp by @martis42 in #168
- Various chores by @martis42 in #169
- Rename the DWYU output group by @martis42 in #170
- Use ruff for formatting and linting by @martis42 in #171
- Replace dependabot with renovate by @martis42 in #173
- Update minimum Python version for development to 3.9 by @martis42 in #175
- Update dependency pre-commit to v3.6.0 by @renovate in #176
- Explicitly use pre-commit 3.6 by @martis42 in #177
- Some Cleanup by @martis42 in #178
- Restructure aspect integration tests by @martis42 in #179
- Use Bazel version 7.0.0 for development by @martis42 in #180
- Give config for ignored includes an explicit name by @martis42 in #181
- More control over apply_fixes integration tests by @martis42 in #182
- Add examples by @martis42 in #183
- Cleanup by @martis42 in #184
- Test examples with both workspace modi by @martis42 in #185
- Make aspect tests proper integration tests by @martis42 in #186
- Extend testing by @martis42 in #187
- Consistent and modern type annotations by @martis42 in #188
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.1.11 by @renovate in #189
- Extend ruff linting to most rules by @martis42 in #191
- Remove CI badge by @martis42 in #192
- Add pre-commit badge by @martis42 in #193
- Extend documentation for bzlmod by @martis42 in #194
- Ensure the examples work on all major platforms by @martis42 in #195
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.1.13 by @renovate in #196
- Update mypy to 1.8.0 by @martis42 in #202
- Update rules python to 0 28 by @martis42 in #204
- Execute aspect integration tests with macos by @martis42 in #206
- Add verbosity option to aspect by @martis42 in #209
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1.14 by @renovate in #210
- Make aspect integrations tests wotk on Windows by @martis42 in #207
- Execute apply_fixes integration tests on macos by @martis42 in #213
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.2.0 by @renovate in #215
- Execute apply_fixes integration tests on Windows by @martis42 in #214
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.2.1 by @renovate in #218
- Improve reports discovery speed by @martis42 in #221
- Update supported platforms by @martis42 in #222
- Automate part of the release creation by @martis42 in #224
- Prepare deployment to central bzlmod registry by @martis42 in #225
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.2.2 by @renovate in #223
- Downgrade rules python to 0.27.1 by @martis42 in #226
- chore: Update tool deps by @martis42 in #227
- BCR: Specify Bazel versions for testing by @martis42 in #228
- Improve releasing via bzlmod by @martis42 in #230
New Contributors
Full Changelog: 0.0.13...0.1.0
0.0.13
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
- Introduce target mapping by @martis42 in #153
- Fix recursive behavior for implementation_deps by @martis42 in #155
Full Changelog: 0.0.12...0.0.13
0.0.12
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
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
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
- Support TreeArtifacts by @martis42 in #136
- Use
no-dwyu
tag to allow skipping checks on specific targets. by @freeformstu in #124
New Contributors
- @freeformstu made their first contribution in #124
- @dependabot made their first contribution in #129
- @Vertexwahn made their first contribution in #131
Full Changelog: 0.0.9...0.0.10