Releases: spotify/sourcekit-bazel-bsp
0.4.0
Notable Changes
- Jump to definition will now point to the correct location in most cases (previously, it would send you to Bazel's execroot).
- Target batching no longer requires using our separate sourcekit-lsp fork.
- Target batching now works for all cases (previously, this only worked when
compile-top-levelwas true). - You can now also pass Bazel target wildcards (e.g.
//foo/...) to the--targetflag. - The
setup_sourcekit_bsprule now also generates a.sourcekit-lsp/config.jsonfile containing important configs for sourcekit-lsp itself.
Breaking Changes
--index-build-batch-sizewas removed from the BSP as we're now configuring this via the new.sourcekit-lsp/config.json. The flag in the Bazel rule itself remains though and can handle this change automatically.
What's Changed
- Add support for passing wildcards to --targets by @rockbruno in #97
- PrepareHandler: Dedupe top-level labels by @rockbruno in #96
- Add support for jump to definition by @iMostfa in #95
- Add tests for the jump to definition mapping by @rockbruno in #99
- Use cquery when getting target information by @rockbruno in #98
- BazelTargetDiscover: Also use cquery by @rockbruno in #101
- Index batching: Use upstream version by @rockbruno in #100
- Make jump to definition work as early as possible by @rockbruno in #104
- Add support for batching even when compile_top_level is false by @rockbruno in #105
New Contributors
Full Changelog: 0.3.0...0.4.0
Compatibility
This release was developed / tested for:
- Xcode 26
- Bazel:
8.4.1 - rules_swift:
3.1.2 - rules_apple:
4.1.2 - apple_support:
1.23.1 - sourcekit-lsp:
d449cb78be1a001ae4efd8dd023da8301eb2af0a
0.3.0
Breaking Changes
- The requirement for providing
*_build_testtargets has been removed. All related CLI flags have been removed. The BSP is now able to compile individual libraries correctly without needing extra infra on the user's side. - Removed
--separate-aquery-output. This optimization is not necessary anymore. - Build batching related arguments will as of this release be ignored if not passing the new
--compile-top-levelflag. This is temporary and should go away soon.
New Args
- Added
--compile-top-levelto allow controlling whether the BSP should retain the old behavior of compiling top-level targets directly. Defaults to false.
What's Changed
- Adding support for Objective-C++ compilation by @martinez-karina in #79
- Add better logging for cli parsing errors by @luispadron in #81
- Add macOS CLI app example by @rockbruno in #83
- Make some logs publicly visible by @luispadron in #80
- Optimization: use a single query invocation to collect target information by @luispadron in #82
- Handle more edge cases when parsing targets by @rockbruno in #85
- Use --preemptible if using only one output base by @rockbruno in #72
- Delete existing binary before replacing by @rockbruno in #88
- Remove --separate-aquery-output by @rockbruno in #87
- Remove need for build_test targets by @rockbruno in #89
- Add .bcr/ config by @rockbruno in #86
- fix: add missing top-level rule types by @luispadron in #90
- Infer CPU details from the aquery by @rockbruno in #92
New Contributors
- @luispadron made their first contribution in #81
Full Changelog: 0.2.0...0.3.0
Compatibility
This release was developed / tested for:
- Xcode 26
- Bazel:
8.4.1 - rules_swift:
3.1.2 - rules_apple:
4.1.2 - apple_support:
1.23.1 - sourcekit-lsp: rockbruno/rochab/batchSize-forGen (fork)
0.2.0
Note that the compability list changed on this release!
Notable Changes
- If using the pre-built sourcekit-lsp binary provided with this release, you can now pass
--index-build-batch-sizeto indicate how many targets should be built in parallel during background indexing. - Added a new
--top-level-rule-to-discoverparameter that allows filtering which types of rules should be considered when not passing--targetsdirectly. - The BSP will now perform one aquery for the entire dependency graph, greatly improving the performance of background indexing.
- The BSP now can index C and C++ files in Obj-C targets.
What's Changed
- Log errors that are thrown in Serve.swift by @josh-arnold-1 in #59
- Update compiler working directory to run from execution root by @martinez-karina in #61
- Allow the build test suffix to be further customized by @rockbruno in #57
- Fix Bazel integration by @stephanecopin in #64
- Disable compiler param file for aquerying compiler args by @martinez-karina in #60
- Support for large stdout/stderr data in RunningProcess by @martinez-karina in #65
- RunningProcess: Return stderr on term handler by @rockbruno in #67
- Pre-calculate all sdkRoots by @rockbruno in #68
- BazelTargetStore: Store info about which targets match to which plats by @rockbruno in #69
- Pre-aggregate aquery results by @rockbruno in #70
- Support --top-level-rule flag to customize the top level rules used for target discovery. by @josh-arnold-1 in #66
- Parse top-level-rule-to-discover with ArgumentParser by @rockbruno in #71
- Run one big aquery for everything instead of one per target, base C++ support by @rockbruno in #62
- InitializeHandler: Add batch requests support by @rockbruno in #75
- Improve PrepareHandler logging by @rockbruno in #77
- Simplify Bazel integration, make example project use it by @rockbruno in #76
New Contributors
- @martinez-karina made their first contribution in #61
- @stephanecopin made their first contribution in #64
Full Changelog: 0.1.1...0.2.0
Compatibility
This release was developed / tested for:
- Xcode 26
- Bazel:
8.4.1 - rules_swift:
3.1.2 - rules_apple:
4.1.2 - apple_support:
1.23.1 - sourcekit-lsp: rockbruno/rochab/batchSize-forGen (fork)
0.1.1
Note that the compability list changed on this release!
This release improves the performance of the server by making most code run asynchronously and introducing a new --separate-aquery-output flag that further increases performance at the cost of more disk usage (default: false).
What's Changed
- Update TopLevelRuleType.swift to include 'macos_command_line_application' by @josh-arnold-1 in #50
- Optimize the dependency graph calculation by @rockbruno in #51
- Fix WatchedFiles misreporting target statuses by @rockbruno in #52
- Add base support for async requests by @rockbruno in #53
- Dispatch messages on the background by @rockbruno in #54
- Make the important requests run async by @rockbruno in #55
Full Changelog: 0.0.5...0.1.0
Compatibility
This release was developed / tested for:
- Xcode 16.4
- Bazel:
8.3.1 - rules_swift:
3.1.2 - rules_apple:
4.1.2 - apple_support:
1.23.1 - sourcekit-lsp:
1aae2a4c329035163db85d64ae7bc81ee80aaa3c
0.1.0
0.0.5
What's Changed
Full Changelog: 0.0.4...0.0.5
Compatibility
This release was developed / tested for:
- Xcode 16.4
- Bazel:
8.3.1 - rules_swift:
3.0.2 - rules_apple:
a9fcb1c3ae6382534d773d73c035035e9764eadb - apple_support:
1.22.1
0.0.4
What's Changed
- Clean-up some of the logic in DiscoverTargets and WatchedFileChange by @rockbruno in #39
- Remove custom symlink from the example proj by @rockbruno in #44
- Fix WatchedFileHandler overhandling changes by @rockbruno in #43
- Add base support for all Apple platforms by @rockbruno in #41
- Migrate action query from text to protobuf parsing by @sean7218 in #40
- Sets up setup executable rule for integrating into Bazel projects by @maxwellE in #45
- Build out makefile for making release archives by @maxwellE in #48
- Add base support for request cancelation by @rockbruno in #46
New Contributors
Full Changelog: 0.0.3...0.0.4
Compatibility
This release was developed / tested for:
- Xcode 16.4
- Bazel:
8.3.1 - rules_swift:
3.0.2 - rules_apple:
a9fcb1c3ae6382534d773d73c035035e9764eadb - apple_support:
1.22.1
0.0.3
What's Changed
- Add support for building libraries individually by @rockbruno in #32
- Bazel query parsing with protobuf by @sean7218 in #30
- Dynamically query for build targets by @josh-arnold-1 in #31
- Exclude third party deps in 'queryTargets' by @josh-arnold-1 in #37
- Update WatchedFileChangeHandler.swift to listen for created and deleted changes by @josh-arnold-1 in #38
Full Changelog: 0.0.2...0.0.3
Compatibility
This release was developed / tested for:
- Xcode 16.4
- Bazel:
8.3.1 - rules_swift:
3.0.2 - rules_apple:
a9fcb1c3ae6382534d773d73c035035e9764eadb - apple_support:
1.22.1
0.0.2
What's Changed
- Performance improvements and refactors to the original code.
Compatibility
This release was developed / tested for:
- Xcode 16.4
- Bazel:
8.3.1 - rules_swift:
3.0.2 - rules_apple:
a9fcb1c3ae6382534d773d73c035035e9764eadb - apple_support:
1.22.1
New Contributors
- @BalestraPatrick made their first contribution in #13
- @sean7218 made their first contribution in #14
- @josh-arnold-1 made their first contribution in #8
Full Changelog: 0.0.1...0.0.2