3.2.0 - 10.04.2024
workspace/directories
implementation | 43abdfb- Experimental Bazel JVM target debugging through BSP. | 94f2af7
- Add
workspace/invalidTargets
endpoint. | 14a117f - The server will now download bazelisk if Bazel is not found in the PATH. | 89beaf7
- Support bzlmod in rules detection mechanism. | 47cdfa8
- Support kotlin stdlibs in bzlmod project. | 24aa30d
- Experimental Rust support. | ec66172
- Provide the
android.jar
library for Android targets. | c4aaf5e - Assign value of javac -target flag to
JvmBuildTarget
'sjavaVersion
. | 9098181 workspace/inverseSources
with now uses query. | 26ef246- Add an option to override detected rules. | 8230406
- Server creates an empty project view file if it doesn't exist instead of failing. | 660d9cd
- Add Android resources to the project model. | 33760f0
- Add manifest and resourceFolders to
AndroidBuildTarget
. | 2989f70 - Filtering out libraries with no interface jars. | ec41697
- Add the
mobileInstall
request. | a4dc63c aar_import
support. | 3037649android_local_test
support. | ebb4676- Jetpack Compose preview support. | dc830f8
- Add "build and get build targets" BSP endpoint for build & resync action. | 774e427
- Add support for
buildTarget/jvmCompileClasspath
. | cd00ed5 - Add flag
ide_java_home_override
to project view to override the java home to work with local IDE. | c0de197 - Add
dependencyModules
request support. | e62f321 - Fix task workflow. | 73008c5
- AIDL import support. | 7571695
- Server logs non-existing files instead of failing. | 54a1fecc
- Server collects more jars from
rules_kotlin
'sKtJvmInfo
to handle the lack of generated jars. | e7faadc - Server allows aspects to be injected normally when users enable bzlmod. | 84c4f9a
- Project cache correctly deserializes kotlin modules. | cd64dbb
- Remove build_flags from non-build calls. | 242995b
- Add fallback for custom bazel version. | 9ad762b
- Python extension is always loaded and projects created using native python rules get their Python data collected. | 74ba7c9
- Resources should check type too. | 02a9e01
- Compute classpath lazily in
JvmEnvironment
requests. | f6823e7 - Read classpath on demand in javacOptions and scalacOptions requests handlers. | a10ecb0
- Kotlin stdlibs now are obtained from toolchain instead of classpath. | e6ad2a0
- Kotlin is set to have higher precedence than Java to always return Kotlin data object if exists. | 9915acf
- Compiler errors should be parsed properly and handle bytestream provider uri. | 80ec82c
- File system in the installer is now closed after use. | 2f86f1d
- Server does not build the project on sync for newer Bazel versions. | 6ec65a8
CARGO_BAZEL_REPIN
flag is used only during sync. | cac0b01- Fix issue if classpath query returns more results. | 67692aa
- Server handles properly remote artefacts after sync. | 0cc0014
canDebug
flag is now set to true if target is runnable. | 55e4faa- Fix the
@@
prefix issue ifbazel.module
andWORKSPACE
are used together. | 86fd20b - Avoid
SLF4J
"Failed to load class" warning. | a1ef51f bazel-<workspace-name>
symlink exclusion uses real name of the workspace instead of sanitized one. | b9598d9- ijars are included in libraries. | c66358e
- The spurious "too many open files" issue has been fixed. | 28797b6
- android features are enabled only if
rules_android
are inenabled_rules
. | 33daf98 enabled_rules
section is reread on each sync. | b1655d9- Test targets are always included in targets, not libraries. | b117aec
- Fix showing Scala 3 diagnostics. | 3629a3f
- Use Android flags for run and test to avoid cache invalidation | ade3e68
3.1.0 - 18.09.2023
- Bsp cli uses the right permissions for bspcli tmp directory. | 7fded76
- Server does not use TCP sockets to connect with BES. | aac294d
- The server generates
extensions.bzl
based on languages (external rules) relevant to the project. | a29c1da - Adding available sources to libraries for workspace/libraries call. | 2e17ea0
- Enhance Kotlinc Opts support. | 6b45eb6
- Include libraries defined in
jdeps
files during sync. | bb47e49 - Add support for buildTarget/jvmCompileClasspath | f7f2662
- Avoid using execroot if there are alternative options. | 6a8a7ac
- Fixed
resolveOutput
implementation - now should work with projects without symlinks like bazel-bin, bazel-out. | eb5df0a - Aspects don't fail if target contains another target as
srcs
attribute. | 637f0d9 - Server can obtain scala 3 compiler. | c4a6701
- Correctly find symlink names even after folder renaming. | f4fb71b
- Server does not omit targets that contain dots. | 1c51f02
- Server adds sources to generated libs. | eaa5161
- Support Scala 3 diagnostics. | 744735f
3.0.0 - 09.08.2023
- The server no longer builds the project on initial sync - in order to generate and collect generated sources build + resync is required. | ba44564
- Project view
targets
has its default value changed from all targets (//...
) to no targets. | 779fade. - Bloop support has been dropped. | 3d23205
- Project view file is obligatory now! Server requires path to the file in
argv
in.bsp/bazelbsp.json
. Debugger address (debugger_address
), java path (java_path
) and flag for trace log (produce_trace_log
) are no longer fields in project view files! They can be set only using installer flags (check README). | f2423bb - Project view
bazel_path
has been renamed tobazel_binary
(now it's compatible with https://ij.bazel.build/docs/project-views.html#bazel_binary). | 5bd2a06
- Support for Python targets, including
buildTarget/pythonOptions
endpoint (a big thank you to the students of the University of Warsaw!). | 8152cc2 - Enhance support for Kotlin by providing Kotlin target's specific info | c06acc6
- Experimental
workspace/libraries
endpoint that returns list of external libraries. | 3360353
- Now we report the failure of the whole test target and binaries are reporting stdout. | 224c1ec
- Aspects don't throw an exception for kotlin rules if an attr doesn't exist. | f08fe8b
- Fix 'this.bepLogger is null' error on project sync. | 956bc00
- Aspects now are more structured - each rule support has been extracted to separate files. | b11e3a1
- Collect scalac options from the toolchain | #433
- Add support for Scala SDK provided by rules_jvm_external | #403
- Reduce peak memory footprint | #428
- Publish
build/publishDiagnostics
with an empty array of diagnostics to clear former diagnotics. | #381 - Prioritize most frequently used JDKs when selecting the project JDK. | #420
- Fix ide classpath computation for recent rules_jvm_external. | #421
- Process exit instead of hang in case of uncaught exception in pooled threads | #425, #426
- Server uses BEP to log bazel progress. | ae52b8f
- Add class jars generated during annotation processing. | #372
- Set PublishDiagnosticsParams.reset to be true. | #377
- Update document about how to use projectview. | #383
- Fixup failed target names from BEP in bazel 6+ in the bloop mode. | #402
- Make BEP Server listening on localhost instead of 0.0.0.0. | #369
- Create BEP server on demand for each Bazel call. | #370
- Project view file flag for disabling trace log. | #344
- Create BEP connection on demands instead of keeping it as a service (reduces memory footprint) | #356
- Fixed handle bazelisk exec on windows. | #6294219
- Reduced memory footprint of the application after project import is done | #359
- Exit bazel-bsp process when std io streams are closed | #356
2.5.1 - 08.02.2023
- Initialize the hash sets with the number of elements they are expected to hold. | #339
- Current target jar is excluded from dependencies - aka jump to definition within a module should work now. | #340
- Changed separator for classpath to os-agnostic. | #BAZEL-255
2.5.0 - 29.01.2023
-
Add mainClasses parameters to
JvmEnvironmentItem
. | #309 -
Exclude bazel-* symlinks;
outputPaths
endpoint implemented. | #322
2.4.0 - 2.01.2023
- Support Bazel 6.0.0 | #318
2.3.1 - 21.12.2022
- Correctly handle java files with package names not corresponding to file paths | #312
- Correctly determine language type for JVM binary targets. | #306
2.3.0 - 26.10.2022
- Send notifications to client while JUnit5 testing. | #299
- Add async and sync output processors. | #288
- Pass originId into diagnostics. | #291
- Pass originId into server responses. | #289
BuildTargetIdentifier
mapping uses.uri
instead of.toString
. | #295JVMLanguagePluginParser.calculateJVMSourceRoot
does not throw an exception for package longer than the path. | #294- Fix transitive target failure check in bloop export. | #287
- Use direct source dependencies for thrift targets if present. | #298
- Postpone bazel info. | #300
2.2.1 - 09.08.2022
- Adding generated jars to source jars list. | #285
- Workspace root is always used as a bazel directory. | #284
- Kebab case in the installer flags & help typo fix & log typo fix. | #283
- Don't use
Label.toString
now that it's no longer overriden. | #282
2.2.0 - 27.07.2022
- Server can be used with bloop (
--use_bloop
flag). | #246 - Project view supports
build_manual_targets
- now it is possible to build targets withmanual
tag. | #243 directories
andderive_targets_from_directories
sections are now available in project view files. | #247- Dependent targets can be imported as modules based on
import_depth
project view parameter. | #248 - BSP can be installed in a separate directory.
-w
flag sets Bazel workspace,-d
sets the BSP installation root
- Added cache of targets info in incremental syncs. | #273
- Dependency sources are now filtered if they belong to other root target | #265
- Packages are parsed in order to determine source roots. | #258
- BazelPathsResolver caches uris and paths (preformance improvement). | #256
- Scala version regex has been fixed. | #249
- e2e test for local jdk and remote jdk | #253
- Dependency sources are now filtered if they belong to other root target | #265
- JvmEnvironmentItem is set using env from target | #260
- Server has undergone basic changes leading to the ability to work with CPP language. | #277
- CLI project view generator now supports
--excluded-targets
and--excluded-directories
instead of excluded-
prefix. | #267
2.1.0 - 11.05.2022
- Manual tag and
build_manual_targets
support in project view. Using this flag it is possible to build targets marked as manual. | #236 - Build flags are reloaded during sync. | #242
- Support for detecting jdk through runtime_jdk poperty; infer jdk | #241
- New project view parser without default file. | #242
- Map label->module is no longer serialized - it was doubling size of the file. | #233
- Diagnostic message doesn't contain path to file anymore. Also, column number is now inferred from the message. | #238
2.0.0 - 22.04.2022
- New installer with project view generator - now it is possible to create a project view using installer. | #227
- New implementation of diagnostics extraction. It collects both warnings and errors, doesn't show irrelevant errors in BUILD files, shows line and character position and does not run bazel query before each build anymore. | #225
build_flags
support in project view. | #194- New installer - it is possible to specify installation directory and project view file using flags. | #201
- Server now keeps the state of the project between runs. | #205
- Improved bazel runner. The BSP Client now receives invoked bazel command, its output, duration and exit code. | #198
- Scala diagnostics work without a fork (technically it worked already for a while). | #170
- Parsing of project view file fails if the file doesn't exist. | #215
- Project view path is mapped to the absolute path in the installer. | #213
- Kotlin targets don't break import. | #211
- Now sources of thrift dependencies are included as dependencies. | #202
- Handle the case when there is no JDK in the project. | #200
- Fixed extraction of java version and java home for bazel
5.0.0
. | #165 - Log messages are no longer trimmed. | #157
- Memoize BazelProcess output so that it doesn't get lost. | #154
bazel info
call caching mechanism. | #228- Logging level has been set to info and doesn't include events. | #223
- Deletion of semantic version class. | #216
- Duplicate bazel output lines are not shown in bsp-client. | #209
- Project uses bazel
5.1.0
. | #208 - Parse bazel query output from stream rather than from all bytes. | #210
- JUnit5! | #206
- Do not throw on aborted event from BEP. Show warning instead. | #205
- Readable
toString
for allProject
related classes. | #205 - Measure and report time of longer operations during sync. | #205
- Support for excluded targets in the sync mechanism. | #196
- Introduction of installation context. | #184
- Project uses (mostly)
io.vavr.Option
andio.vavr.List
. | #192 - Introducing execution context and workspace context. | #172
- Changed the structure of the README and other documents and added contribution guide. | #181
- Project view parser has more logging, targets section is optional and sections are using specific types instead of raw strings. | #166
- Improve the
install.sh
script. | #167 - Now the project is using the latest bazel version -
5.0.0
. Installer skips bazelisk cache binaries during bazel binary discovery mechanism. | #160 - Rewrite of all endpoints to rely on single bazel aspect to extract all necessary data. It improves performance and correctness as wel as extensibility of the server. With this change also c++ support is temporarily dropped. | #147
1.1.1 - 16.02.2022
- New, better project view! Now you can configure installer as well! | #143
- Server returns only the relevant output jar rather than 5-6 jars. | #136
- Server supports multiple subprojects in one workspace (first step). | #130
JvmBuildServer
implementation - now tests execution should be working! | #128- Improved heuristics for guessing source roots. It looks directory structures such as
src/java
ormain/java
. | #126
- Server filters out non-runtime jars for running apps and tests. | #131
- Now server uses Java 11. | #129
- Bazel runner allows running a bazel command without positional arguments. | #123
- Error diagnostics are now also sent for source files, including targets. | #146
- Badges in the README work now (and there are even more of them). | #142
- Server builds a project during sync in order to fix dependency resolving mechanism. | #137
- Server handles aspects properly when multiple projects are in workspace. | #132
- Now the project is built using bazel version
3.7.2
, as the rules currently used are no longer supported by bazel. | #141
1.0.1 - 24.09.2021
- Implementation of e2e tests. Have been moved to the
e2e
module and are now based on execution scenarios. | #83 - Github actions e2e tests execution - e2e tests are executed in parallel. | #84
- Project structure - now it is multi module project. | #87
- Github actions unit tests execution - each module has a separate job. | #89
- Created document with release tips. | #91
- Old implementation of e2e tests. | #86
- Warnings generated by the WORKSPACE file. | #81
- Semantic versioning parser - now it can parse every valid version. | #93
exports
attribute propagation to the BSP | #98- Now all
scala_junit_test
based rules (includingscala_specs2_junit_test
) are included in the BSP tests, unfortunately without test classes. | #101
1.0.0 - 23.08.2021
- Everything... π