Skip to content

Releases: hermeticbuild/rules_zig

v0.16.0

27 May 13:16
63c52c4

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.16.0")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("@rules_zig//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.16.0")

You can call zig.toolchain multiple times to install multiple Zig versions.

Optionally add the following to your MODULE.bazel file to install a specific ZLS toolchain version and declare what Zig version it applies to:

zls = use_extension("@rules_zig//zig/zls:extensions.bzl", "zls")
zls.toolchain(zig_version = "0.16.0", zls_version = "0.16.0")

You can call zls.toolchain multiple times to install multiple ZLS versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • chore(deps): update dependency rules_python to v2.0.2 by @renovate[bot] in #660
  • chore: move rules_zig from aherrmann to hermeticbuild by @aherrmann in #661
  • feat: support mapping Zig mode to Bazel compilation mode by @cerisier in #662
  • feat: honor Bazel strip flag in Zig settings by @cerisier in #663
  • chore: add maintainer and update BCR config by @aherrmann in #664
  • fix: --incompatible_config_setting_private_default_visibility by @aherrmann in #665
  • chore: fetch translate-c from GitHub by @aherrmann in #666
  • chore: drop redundant test from release workflow by @aherrmann in #667

Full Changelog: v0.15.1...v0.16.0

v0.16.0-rc2

27 May 13:05
63c52c4

Choose a tag to compare

v0.16.0-rc2 Pre-release
Pre-release

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.16.0-rc2")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("@rules_zig//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.16.0")

You can call zig.toolchain multiple times to install multiple Zig versions.

Optionally add the following to your MODULE.bazel file to install a specific ZLS toolchain version and declare what Zig version it applies to:

zls = use_extension("@rules_zig//zig/zls:extensions.bzl", "zls")
zls.toolchain(zig_version = "0.16.0", zls_version = "0.16.0")

You can call zls.toolchain multiple times to install multiple ZLS versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • fix: --incompatible_config_setting_private_default_visibility by @aherrmann in #665
  • chore: fetch translate-c from GitHub by @aherrmann in #666
  • chore: drop redundant test from release workflow by @aherrmann in #667

Full Changelog: v0.16.0-rc1...v0.16.0-rc2

v0.16.0-rc1

27 May 08:28
031b575

Choose a tag to compare

v0.16.0-rc1 Pre-release
Pre-release

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.16.0-rc1")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("@rules_zig//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.16.0")

You can call zig.toolchain multiple times to install multiple Zig versions.

Optionally add the following to your MODULE.bazel file to install a specific ZLS toolchain version and declare what Zig version it applies to:

zls = use_extension("@rules_zig//zig/zls:extensions.bzl", "zls")
zls.toolchain(zig_version = "0.16.0", zls_version = "0.16.0")

You can call zls.toolchain multiple times to install multiple ZLS versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • chore(deps): update dependency rules_python to v2.0.2 by @renovate[bot] in #660
  • chore: move rules_zig from aherrmann to hermeticbuild by @aherrmann in #661
  • feat: support mapping Zig mode to Bazel compilation mode by @cerisier in #662
  • feat: honor Bazel strip flag in Zig settings by @cerisier in #663
  • chore: add maintainer and update BCR config by @aherrmann in #664

Full Changelog: v0.15.1...v0.16.0-rc1

v0.15.1

20 May 13:28
f2915a1

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.15.1")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("@rules_zig//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.16.0")

You can call zig.toolchain multiple times to install multiple Zig versions.

Optionally add the following to your MODULE.bazel file to install a specific ZLS toolchain version and declare what Zig version it applies to:

zls = use_extension("@rules_zig//zig/zls:extensions.bzl", "zls")
zls.toolchain(zig_version = "0.16.0", zls_version = "0.16.0")

You can call zls.toolchain multiple times to install multiple ZLS versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • fix: wire ZLS build config to Zig exec group by @cerisier in #659

Full Changelog: v0.15.0...v0.15.1

v0.15.0

20 May 12:31
1ee476f

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.15.0")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("@rules_zig//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.16.0")

You can call zig.toolchain multiple times to install multiple Zig versions.

Optionally add the following to your MODULE.bazel file to install a specific ZLS toolchain version and declare what Zig version it applies to:

zls = use_extension("@rules_zig//zig/zls:extensions.bzl", "zls")
zls.toolchain(zig_version = "0.16.0", zls_version = "0.16.0")

You can call zls.toolchain multiple times to install multiple ZLS versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

Highlights

  • ZLS support, see #653
  • Support for bootstrapping Zig from source, see #651

Breaking Changes

  • The Zig toolchain and provider API changed, see #651

What's Changed

  • chore: reuse escape_label for bazel builtin names by @cerisier in #640
  • chore(deps): update dependency platforms to v1.1.0 by @renovate[bot] in #641
  • chore(deps): update dependency bazel_features to v1.47.0 by @renovate[bot] in #642
  • chore(deps): update dependency gazelle to v0.51.0 by @renovate[bot] in #648
  • feat: support standalone translate-c by @cerisier in #645
  • feat: implement test-obj for use_cc_common_link in zig 0.16 by @cerisier in #647
  • chore(deps): update dependency apple_support to v2.5.4 by @renovate[bot] in #649
  • fix: external translate-c does not need a zig toolchain by @cerisier in #650
  • chore(deps): update dependency rules_python to v2.0.1 by @renovate[bot] in #652
  • feat!: support toolchains building zig from source - host toolchain compatible by @cerisier in #651
  • chore(deps): update dependency bazel_features to v1.47.1 by @renovate[bot] in #655
  • feat: allow bootstrap settings in zig_configure by @cerisier in #654
  • feat: add zig exec group to all rules by @cerisier in #656
  • feat: allow adding extra attributes to generated toolchains by @cerisier in #657
  • feat: add zls toolchain support by @cerisier in #653
  • feat: globally register ZLS index and toolchains by @aherrmann in #658

Full Changelog: v0.14.0...v0.15.0

v0.14.0

29 Apr 12:46
bc700a5

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.14.0")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.16.0")

You can call zig.toolchain multiple times to install multiple Zig versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

Breaking Changes

  • Support for Zig 0.14.x has been removed.
  • The runfiles library API changed for Zig version 0.16.x.

Highlights

  • Support for Zig 0.16.0 has been added.

What's Changed

  • chore(deps): update dependency bazel to v9.1.0 by @renovate[bot] in #629
  • feat(settings): support host variant for all build settings by @cerisier in #630
  • fix: force canonical name for builtin std module name by @cerisier in #633
  • feat: add emit asm llvm_ir and llvm_bc attributes and output_groups by @cerisier in #634
  • fix: revert cc_common_link repo mapping hack by @cerisier in #636
  • feat!: support zig 0.16 by @cerisier in #635
  • chore: force canonical name of global c module top level by @cerisier in #639
  • chore(deps): update dependency rules_python to v2 by @renovate[bot] in #637
  • chore(deps): update dependency bazel_features to v1.46.0 by @renovate[bot] in #638

Full Changelog: v0.13.0...v0.14.0

v0.13.0

22 Apr 09:23
8491147

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.13.0")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.15.2")

You can call zig.toolchain multiple times to install multiple Zig versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

Breaking Changes

  • Removed deprecated API:
    • zig_module rule, use zig_library instead.
    • zig_c_module rule, use zig_c_library instead.
    • cdeps attribute, use deps instead.
  • Removed support for Zig 0.15.1, use 0.15.2 instead.
  • The use_cc_common_link attribute is now of type int instead of bool:
    • 0: do not use cc_common.link.
    • 1: do use cc_common.link.
    • -1: use the configuration value of //zig/settings:experimental_use_cc_common_link.

What's Changed

  • feat!: remove deprecated rules zig_module, zig_c_module, and cdeps attribute by @aherrmann in #568
  • feat!: remove support for Zig 0.15.1 by @aherrmann in #569
  • fix: add Zig 0.15.1 to update exclusions by @aherrmann in #573
  • feat: add support for --incompatible_compact_repo_mapping_manifest by @cerisier in #571
  • chore(deps): update actions/checkout action to v6 by @renovate[bot] in #574
  • chore(deps): update mcr.microsoft.com/devcontainers/universal docker tag to v5 by @renovate[bot] in #575
  • fix: use label as canonical name for zig_module and use it for module deps by @cerisier in #566
  • chore(deps): update dependency aspect_bazel_lib to v2.22.0 by @renovate[bot] in #576
  • chore(deps): update dependency buildifier_prebuilt to v8.2.1.1 by @renovate[bot] in #577
  • chore(deps): update dependency bazel_skylib to v1.9.0 by @renovate[bot] in #579
  • chore(deps): update dependency bazel_skylib_gazelle_plugin to v1.9.0 by @renovate[bot] in #580
  • chore(deps): update dependency rules_cc to v0.2.16 by @renovate[bot] in #581
  • chore(deps): update dependency aspect_bazel_lib to v2.22.2 by @renovate[bot] in #582
  • chore(deps): update dependency bazel_features to v1.39.0 by @renovate[bot] in #583
  • chore(deps): update dependency aspect_bazel_lib to v2.22.4 by @renovate[bot] in #584
  • chore(deps): update dependency cgrindel_bazel_starlib to v0.28.0 by @renovate[bot] in #585
  • chore(deps): update dependency aspect_bazel_lib to v2.22.5 by @renovate[bot] in #586
  • chore(deps): update dependency rules_bazel_integration_test to v0.35.0 by @renovate[bot] in #588
  • chore(deps): update dependency rules_python to v1.8.0 by @renovate[bot] in #590
  • chore(deps): update dependency cgrindel_bazel_starlib to v0.29.3 by @renovate[bot] in #591
  • chore(deps): update dependency rules_python to v1.8.1 by @renovate[bot] in #593
  • chore(deps): update dependency rules_python to v1.8.2 by @renovate[bot] in #594
  • chore(deps): update dependency rules_bazel_integration_test to v0.36.0 by @renovate[bot] in #595
  • fix!: handle overriding settings even if it is set to false by @cerisier in #587
  • chore(deps): update dependency buildifier_prebuilt to v8.2.1.2 by @renovate[bot] in #596
  • chore(deps): update dependency rules_python to v1.8.3 by @renovate[bot] in #597
  • chore(deps): update dependency bazel_features to v1.41.0 by @renovate[bot] in #599
  • chore(deps): update dependency rules_bazel_integration_test to v0.37.1 by @renovate[bot] in #600
  • ci: verify PR titles follow conventional commits pattern by @aherrmann in #601
  • fix: support linker-script with Zig 0.15.1+ by @aherrmann in #602
  • chore(deps): update dependency stardoc to v0.8.1 by @renovate[bot] in #598
  • feat: use Zig community mirrors by default and add source parameter by @aherrmann in #603
  • chore: update buildbuddy toolchain to 0.0.4 by @aherrmann in #604
  • fix: correct version mismatch test failure message by @cerisier in #606
  • chore(deps): update dependency rules_python to v1.8.4 by @renovate[bot] in #607
  • chore(deps): update dependency cgrindel_bazel_starlib to v0.30.0 by @renovate[bot] in #608
  • chore(deps): update dependency rules_cc to v0.2.17 by @renovate[bot] in #609
  • chore(deps): update dependency rules_python to v1.8.5 by @renovate[bot] in #610
  • chore(deps): update dependency bazel_features to v1.42.0 by @renovate[bot] in #611
  • chore(deps): update dependency rules_python to v1.9.0 by @renovate[bot] in #613
  • chore(deps): update dependency bazel_features to v1.42.1 by @renovate[bot] in #614
  • chore(deps): update dependency bazel_features to v1.43.0 by @renovate[bot] in #615
  • chore(deps): update dependency buildifier_prebuilt to v8.5.1 by @renovate[bot] in #616
  • chore: add e2e examples: custom toolchain glibc version + foreign_cc cmake by @ntorresalberto in #617
  • chore(deps): update dependency rules_foreign_cc to v0.15.1 by @renovate[bot] in #618
  • chore(deps): update cgrindel/gha_join_jobs action to v1.5.0 by @renovate[bot] in #619
  • chore(deps): update dependency bazel_features to v1.44.0 by @renovate[bot] in #620
  • chore(deps): update dependency bazel_features to v1.45.0 by @renovate[bot] in #622
  • chore(deps): update dependency buildifier_prebuilt to v8.5.1.2 by @renovate[bot] in #623
  • chore(deps): update dependency gazelle to v0.50.0 by @renovate[bot] in #621
  • chore(deps): update softprops/action-gh-release action to v3 by @renovate[bot] in #624
  • chore(deps): update mcr.microsoft.com/devcontainers/universal docker tag to v6 by @renovate[bot] in #626
  • chore(deps): update dependency rules_cc to v0.2.18 by @renovate[bot] in #627
  • chore(deps): update dependency bazel to v9.0.0 by @renovate[bot] in #592

New Contributors

Full Changelog: v0.12.3...v0.13.0

v0.12.3

16 Nov 22:08
fb16425

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.12.3")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.15.2")

You can call zig.toolchain multiple times to install multiple Zig versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • chore(deps): update dependency bazel_features to v1.38.0 by @renovate[bot] in #563
  • chore(deps): update dependency rules_cc to v0.2.14 by @renovate[bot] in #562
  • chore(deps): update dependency buildifier_prebuilt to v8.2.1 by @renovate[bot] in #565
  • chore(deps): update dependency rules_python to v1.7.0 by @renovate[bot] in #567
  • chore(deps): update dependency gazelle to v0.47.0 by @renovate[bot] in #564
  • feat: update Zig versions up to 0.15.2 by @github-actions[bot] in #556

Full Changelog: v0.12.2...v0.12.3

v0.12.2

28 Oct 07:56
41c4a75

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.12.2")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.15.1")

You can call zig.toolchain multiple times to install multiple Zig versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • feat: support headers provided by the CC toolchain in translate_c by @cerisier in #557
  • fix: transition shared-library instead of static-library by @cerisier in #559
  • fix: mark the intermediary archive of shared libraries as alwayslink by @cerisier in #558
  • chore(deps): update dependency rules_cc to v0.2.11 by @renovate[bot] in #560
  • feat: add support for global zigopt setting by @cerisier in #561

Full Changelog: v0.12.1...v0.12.2

v0.12.1

10 Oct 06:36
d25909e

Choose a tag to compare

Setup Instructions

Add the following to your MODULE.bazel file to install rules_zig:

bazel_dep(name = "rules_zig", version = "0.12.1")

Optionally add the following to your MODULE.bazel file to install a specific Zig toolchain version:

zig = use_extension("//zig:extensions.bzl", "zig")
zig.toolchain(zig_version = "0.15.1")

You can call zig.toolchain multiple times to install multiple Zig versions.

Note, rules_zig requires bzlmod, WORKSPACE mode is no longer supported.

What's Changed

  • docs: add readme links to extension and toolchain docs by @aherrmann in #548
  • chore(deps): update dependency rules_bazel_integration_test to v0.34.0 by @renovate[bot] in #549
  • chore(deps): update dependency rules_cc to v0.2.9 by @renovate[bot] in #551
  • chore(deps): update dependency bazel_features to v1.37.0 by @renovate[bot] in #552
  • feat: expose rpaths of zig toolchain zig exe and lib by @cerisier in #553
  • feat: expose module name in module context of ZigModuleInfo by @cerisier in #554

Full Changelog: v0.12.0...v0.12.1