Skip to content

1.14.1

Compare
Choose a tag to compare
@brentleyjones brentleyjones released this 19 Dec 19:09
· 211 commits to main since this release
1.14.1
010d2f9

What’s Changed

Since 1.14.0

  • Fixed incremental installer: #2825

Below are the changes that were in 1.14.0.

New

  • Added a new incremental generation mode
    • Incremental generation mode is a new way for rules_xcodeproj to generate your project. Unlike the Build Mode (BwB or BwX), this should only really affect the process by which rules_xcodeproj takes to generate the project, not how the project itself behaves (with some small caveats). Here are some of the benefits of using incremental generation mode over the current (a.k.a "legacy") generation mode:
      • Much faster generation. Numbers from a large example project:
        • Clean
          • Analysis: 12% faster (62s vs 71s)
          • Execution: 41% faster (72s vs 123s)
        • Minimal incremental (add file to a top-level target)
          • Analysis: 36% faster (13s vs 21s)
          • Execution: 93% faster (8.5s vs 123s)
      • Lower Starlark memory usage (about 33% lower)
      • Improved target consolidation and target merging
        • Some targets can now consolidate better
        • Libraries can merge into multiple top-level targets
        • Mixed-language targets merge better
      • Improved indexing
        • All Swift compiler flags are now in the project, working around more SourceKit issues
      • Improved debugging
      • Improved handling of extra files (mainly around target focusing)
      • Improved Xcode Previews support
      • For maintainers, vastly improved maintainability (docs, tests, code structure, etc.)
    • This is currently opt in
  • Added a Bzlmod dependency on rules_python 0.27.1: #2793

Adjusted

  • Added recognition of additional deps attributes for rules_ios bundle rules: #2750
  • Archived bundles are now extracted with Bazel instead of in copy_outputs.sh: #2779
  • cc_common.merge_cc_infos is now only called if needed: #2762
  • Disabled the GenerateTAPI Xcode action: #2724
  • Improved handling of source-less library targets: #2714
  • Optimized some Starlark CPU usage: #2760
  • Optimized some Starlark retained memory usage: #2769 and #2777
  • Upgraded bazel_features to 1.1.1: #2718
  • Upgraded apple_support, rules_apple, and rules_swift in WORKSPACE macro: #2824
  • Removed --collect_specs support: #2803
  • Removed DEPLOYMENT_LOCATION hack when using BwB mode: #2790

Ruleset Development Changes

  • Upgraded rules_apple related dev dependencies: #2728
  • Upgraded dev version of skylib to 1.5.0: #2729

Full Changelog

1.13.0...1.14.1

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.14.1")

release.tar.gz’s integrity: sha256-Y3lwAEzeEmnSFNHC9Ol+geTWkBuuwI9Q4O6arJfBeHg=

Workspace Snippet

Please use the release asset (release.tar.gz) from your Bazel WORKSPACE instead of GitHub's source asset to reduce download size and improve reproducibility.

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

http_archive(
    name = "rules_xcodeproj",
    sha256 = "637970004cde1269d214d1c2f4e97e81e4d6901baec08f50e0ee9aac97c17878",
    url = "https://github.com/MobileNativeFoundation/rules_xcodeproj/releases/download/1.14.1/release.tar.gz",
)

load(
    "@rules_xcodeproj//xcodeproj:repositories.bzl",
    "xcodeproj_rules_dependencies",
)

xcodeproj_rules_dependencies()

load("@bazel_features//:deps.bzl", "bazel_features_deps")

bazel_features_deps()

load(
    "@build_bazel_rules_apple//apple:repositories.bzl",
    "apple_rules_dependencies",
)

apple_rules_dependencies()

load(
    "@build_bazel_rules_swift//swift:repositories.bzl",
    "swift_rules_dependencies",
)

swift_rules_dependencies()

load(
    "@build_bazel_rules_swift//swift:extras.bzl",
    "swift_rules_extra_dependencies",
)

swift_rules_extra_dependencies()

load(
    "@build_bazel_apple_support//lib:repositories.bzl",
    "apple_support_dependencies",
)

apple_support_dependencies()