Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update extract symbol graphs rule to include swiftdoc #1286

Merged

Conversation

luispadron
Copy link
Contributor

This updates the symbol graph extract configurator to additionally include the .swiftdoc files created by the the Swift module compilation. This is required to produce documentation comments in the .symbolgraphs when using the symbol graph extract rule.

This updates the symbol graph extract configurator to additionally include the `.swiftdoc` files created by the the Swift module compilation. This is required to produce documentation comments in the `.symbolgraphs` when using the symbol graph extract rule.
@luispadron luispadron force-pushed the luis/update-extract-symbol-graph-rule-to-use-swiftdoc branch 6 times, most recently from 3a7119b to 9e74f32 Compare July 9, 2024 17:09
@luispadron
Copy link
Contributor Author

Going to see if I can optimize this a bit before merging, we should only need the direct .swiftdoc not the transitive ones

@luispadron luispadron force-pushed the luis/update-extract-symbol-graph-rule-to-use-swiftdoc branch from 9e74f32 to ac22e3d Compare July 9, 2024 17:23
@luispadron
Copy link
Contributor Author

This works:

            if module.name == module_name and swift_module.swiftdoc:
                direct_swiftdocs.append(swift_module.swiftdoc)

And makes the inputs more scoped so think we should go with that

@luispadron luispadron merged commit a127f44 into master Jul 9, 2024
15 checks passed
@luispadron luispadron deleted the luis/update-extract-symbol-graph-rule-to-use-swiftdoc branch July 9, 2024 17:29
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/rules_swiftformat Jul 9, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [build_bazel_rules_swift](https://github.com/bazelbuild/rules_swift)
| http_archive | minor | `2.0.0` -> `2.1.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_swift (build_bazel_rules_swift)</summary>

###
[`v2.1.0`](https://github.com/bazelbuild/rules_swift/releases/tag/2.1.0)

[Compare
Source](https://github.com/bazelbuild/rules_swift/compare/2.0.0...2.1.0)

#### What's Changed

- Update extract symbol graphs rule to include swiftdoc by
[@&#8203;luispadron](https://github.com/luispadron) in
[https://github.com/bazelbuild/rules_swift/pull/1286](https://github.com/bazelbuild/rules_swift/pull/1286)

This release is compatible with Bazel 6.x LTS, 7.x LTS, and 8.x rolling
releases.

#### MODULE.bazel Snippet

```bzl
bazel_dep(name = "rules_swift", version = "2.1.0", repo_name = "build_bazel_rules_swift")
```

#### Workspace Snippet

```bzl
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "build_bazel_rules_swift",
    sha256 = "8e0c72aa2be5ae44da44521c46e0700df184953e8dbc5d5423222b8cb141c64f",
    url = "https://github.com/bazelbuild/rules_swift/releases/download/2.1.0/rules_swift.2.1.0.tar.gz",
)

load(
    "@&#8203;build_bazel_rules_swift//swift:repositories.bzl",
    "swift_rules_dependencies",
)

swift_rules_dependencies()

load(
    "@&#8203;build_bazel_rules_swift//swift:extras.bzl",
    "swift_rules_extra_dependencies",
)

swift_rules_extra_dependencies()
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDkuNCIsInVwZGF0ZWRJblZlciI6IjM2LjEwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
renovate bot referenced this pull request in bazel-contrib/rules_bazel_integration_test Jul 10, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [build_bazel_rules_swift](https://github.com/bazelbuild/rules_swift)
| http_archive | major | `1.18.0` -> `2.1.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_swift (build_bazel_rules_swift)</summary>

###
[`v2.1.0`](https://github.com/bazelbuild/rules_swift/releases/tag/2.1.0)

[Compare
Source](https://github.com/bazelbuild/rules_swift/compare/2.0.0-rc1...2.1.0)

#### What's Changed

- Update extract symbol graphs rule to include swiftdoc by
[@&#8203;luispadron](https://github.com/luispadron) in
[https://github.com/bazelbuild/rules_swift/pull/1286](https://github.com/bazelbuild/rules_swift/pull/1286)

This release is compatible with Bazel 6.x LTS, 7.x LTS, and 8.x rolling
releases.

#### MODULE.bazel Snippet

```bzl
bazel_dep(name = "rules_swift", version = "2.1.0", repo_name = "build_bazel_rules_swift")
```

#### Workspace Snippet

```bzl
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "build_bazel_rules_swift",
    sha256 = "8e0c72aa2be5ae44da44521c46e0700df184953e8dbc5d5423222b8cb141c64f",
    url = "https://github.com/bazelbuild/rules_swift/releases/download/2.1.0/rules_swift.2.1.0.tar.gz",
)

load(
    "@&#8203;build_bazel_rules_swift//swift:repositories.bzl",
    "swift_rules_dependencies",
)

swift_rules_dependencies()

load(
    "@&#8203;build_bazel_rules_swift//swift:extras.bzl",
    "swift_rules_extra_dependencies",
)

swift_rules_extra_dependencies()
```

###
[`v2.0.0`](https://github.com/bazelbuild/rules_swift/releases/tag/2.0.0)

[Compare
Source](https://github.com/bazelbuild/rules_swift/compare/1.18.0...2.0.0-rc1)

#### What's Changed

##### Breaking Changes

- The `swift_module=` tag on `cc_library` targets no longer does
anything, and the `swift_c_module` rule was removed:
[#&#8203;1191](https://github.com/bazelbuild/rules_swift/issues/1191)
and
[#&#8203;1224](https://github.com/bazelbuild/rules_swift/issues/1224)
    -   Use the new `swift_interop_hint` aspect hint instead
- There were also some changes to how the `apple_common.Objc` provider
is handled (e.g.
bazelbuild/rules_swift@d68b214)
- The deprecated swift proto library rules were removed:
[#&#8203;1193](https://github.com/bazelbuild/rules_swift/issues/1193)
- The Bzlmod `module.compatibility_level` was increased:
[#&#8203;1214](https://github.com/bazelbuild/rules_swift/issues/1214)
- If you ruleset can support both pre-2.0 and post-2.0 **rules_swift**,
please set `bazel_dep.max_compatibility_level = 2` instead of bumping
your minimum supported version of **rules_swift**
- The `swift.disable_system_index` feature is now enabled by default:
[#&#8203;1252](https://github.com/bazelbuild/rules_swift/issues/1252)
- Removed `swift.emit_symbol_graph` feature:
[#&#8203;1229](https://github.com/bazelbuild/rules_swift/issues/1229)
    -   Use the new `swift_symbol_graph_extract` rule
- Removed the `swift.use_response_files` feature:
[#&#8203;1275](https://github.com/bazelbuild/rules_swift/issues/1275)
- Removed the `swift.bundled_xctests` feature:
[#&#8203;1272](https://github.com/bazelbuild/rules_swift/issues/1272)
- Removed the implicit output from swift_library:
[#&#8203;1260](https://github.com/bazelbuild/rules_swift/issues/1260)
- Moved `swift_usage_aspect` and `SwiftUsageInfo` from **rules_swift**
into **rules_apple**:
[#&#8203;1223](https://github.com/bazelbuild/rules_swift/issues/1223)
- Manually specifying the `-index-store-path` flag while also using the
`swift.index_while_building` is no longer supported:
[#&#8203;1248](https://github.com/bazelbuild/rules_swift/issues/1248)
- It is now an error to specify both `swiftinterface` and `swiftmodule`
in `swift_import`:
[#&#8203;1253](https://github.com/bazelbuild/rules_swift/issues/1253)

##### Deprecations

- Moved rules and other build definitions into their own public files
and deprecated the umbrella `swift.bzl` and `proto.bzl` files:
[#&#8203;1231](https://github.com/bazelbuild/rules_swift/issues/1231),
[#&#8203;1236](https://github.com/bazelbuild/rules_swift/issues/1236),
and
[#&#8203;1255](https://github.com/bazelbuild/rules_swift/issues/1255)
- Please update your `load` statements as the `swift.bzl` file will be
removed in the next major release

##### Other changes

- Added support for symbol graph extraction with the
`swift_symbol_graph_extract` rule:
[#&#8203;772](https://github.com/bazelbuild/rules_swift/issues/772),
[#&#8203;1195](https://github.com/bazelbuild/rules_swift/issues/1195),
[#&#8203;1246](https://github.com/bazelbuild/rules_swift/issues/1246),
[#&#8203;1270](https://github.com/bazelbuild/rules_swift/issues/1270),
and
[#&#8203;1271](https://github.com/bazelbuild/rules_swift/issues/1271)
- Added support for the `fdo_instrument_order_file` feature:
[#&#8203;1251](https://github.com/bazelbuild/rules_swift/issues/1251)
- Added the `swift.add_target_name_to_output` feature, which allows
multiple targets in a package to produce the same module name in the
same build:
[#&#8203;1098](https://github.com/bazelbuild/rules_swift/issues/1098)
and
[#&#8203;1217](https://github.com/bazelbuild/rules_swift/issues/1217)
- Added the `swift.thin_lto` and `swift.full_lto` features to enable
LTO:
[#&#8203;1208](https://github.com/bazelbuild/rules_swift/issues/1208)
- Added the `swift.propagate_generated_module_map` feature to propagate
the generated module map:
[#&#8203;1212](https://github.com/bazelbuild/rules_swift/issues/1212)
- Added the `swift.headers_always_action_inputs` feature which causes
all headers to always be included as inputs to `SwiftCompile` actions,
even when using explicit modules:
[#&#8203;1249](https://github.com/bazelbuild/rules_swift/issues/1249)
- Added an API to compile a `.swiftinterface` file into a
`.swiftmodule`:
[#&#8203;1250](https://github.com/bazelbuild/rules_swift/issues/1250)
- Added an XCTest observer to `swift_test` targets that generates a
JUnit-style XML log at the path in the `XML_OUTPUT_PATH` environment
variable defined by Bazel:
[#&#8203;1222](https://github.com/bazelbuild/rules_swift/issues/1222),
[#&#8203;1242](https://github.com/bazelbuild/rules_swift/issues/1242),
[#&#8203;1263](https://github.com/bazelbuild/rules_swift/issues/1263),
and
[#&#8203;1273](https://github.com/bazelbuild/rules_swift/issues/1273)
- Added a `discover_tests` attribute to `swift_test`:
[#&#8203;1259](https://github.com/bazelbuild/rules_swift/issues/1259),
[#&#8203;1266](https://github.com/bazelbuild/rules_swift/issues/1266),
[#&#8203;1273](https://github.com/bazelbuild/rules_swift/issues/1273),
and
[#&#8203;1274](https://github.com/bazelbuild/rules_swift/issues/1274)
- Added a mechanism to provide a list of protocol names for constant
value extraction:
[#&#8203;1170](https://github.com/bazelbuild/rules_swift/issues/1170)
- Added a `swift_common.get_toolchain` helper function:
[#&#8203;1226](https://github.com/bazelbuild/rules_swift/issues/1226),
[#&#8203;1257](https://github.com/bazelbuild/rules_swift/issues/1257),
and
[#&#8203;1258](https://github.com/bazelbuild/rules_swift/issues/1258)
- `resource_set` is now defined for `SwiftCompile` actions:
[#&#8203;1241](https://github.com/bazelbuild/rules_swift/issues/1241)
- Swift compiler sandboxing is now disabled when using Xcode 15.3+,
which fixes nested sandboxing errors:
[#&#8203;1206](https://github.com/bazelbuild/rules_swift/issues/1206)
- We now correctly add `.swiftmodule` directories to the search path:
[#&#8203;1245](https://github.com/bazelbuild/rules_swift/issues/1245)
- We now correctly calculate the minimum supported OS when calculating
the target triple for 'arm64-apple-ios<version>-simulator' targets:
[#&#8203;1247](https://github.com/bazelbuild/rules_swift/issues/1247)
- The new driver is now used on Xcode 14+ since it contains the fixes in
[https://github.com/apple/swift-driver/pull/1036](https://github.com/apple/swift-driver/pull/1036):
[#&#8203;1268](https://github.com/bazelbuild/rules_swift/issues/1268)
- Removed some no-longer-relevant "supports X" features:
[#&#8203;1267](https://github.com/bazelbuild/rules_swift/issues/1267)
- Fixed LLDB expr evaluation for `swift_{binary,test}` targets only
containing Swift in their `srcs`:
[#&#8203;1269](https://github.com/bazelbuild/rules_swift/issues/1269)
- Fixed usage of params files in `_swift_proto_compile`:
[#&#8203;1283](https://github.com/bazelbuild/rules_swift/issues/1283)

This release is compatible with Bazel 6.x LTS, 7.x LTS, and 8.x rolling
releases.

#### MODULE.bazel Snippet

```bzl
bazel_dep(name = "rules_swift", version = "2.0.0", repo_name = "build_bazel_rules_swift")
```

#### Workspace Snippet

```bzl
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "build_bazel_rules_swift",
    sha256 = "32eeb4ef33c708d9c9a4ee0fa8475322ef149dabc81884ddc3b50eb2efff7843",
    url = "https://github.com/bazelbuild/rules_swift/releases/download/2.0.0/rules_swift.2.0.0.tar.gz",
)

load(
    "@&#8203;build_bazel_rules_swift//swift:repositories.bzl",
    "swift_rules_dependencies",
)

swift_rules_dependencies()

load(
    "@&#8203;build_bazel_rules_swift//swift:extras.bzl",
    "swift_rules_extra_dependencies",
)

swift_rules_extra_dependencies()
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/bazel-contrib/rules_bazel_integration_test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants