Skip to content

Latest commit

 

History

History
628 lines (506 loc) · 31.3 KB

CHANGELOG.md

File metadata and controls

628 lines (506 loc) · 31.3 KB

Changelog

3.2.0 - 10.04.2024

Features 🎉

  • 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's javaVersion. | 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. | 3037649
  • android_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

Fixes 🛠️

  • Server logs non-existing files instead of failing. | 54a1fecc
  • Server collects more jars from rules_kotlin's KtJvmInfo 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 if bazel.module and WORKSPACE 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 in enabled_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

Security 🚨

  • Bsp cli uses the right permissions for bspcli tmp directory. | 7fded76
  • Server does not use TCP sockets to connect with BES. | aac294d

Features 🎉

  • 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

Fixes 🛠️

  • 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

BREAKING CHANGES 🚨

  • 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 to bazel_binary (now it's compatible with https://ij.bazel.build/docs/project-views.html#bazel_binary). | 5bd2a06

Features 🎉

  • 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

Fixes 🛠️

  • 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

Other changes 🔁

  • Aspects now are more structured - each rule support has been extracted to separate files. | b11e3a1

Fixes 🛠️

  • Collect scalac options from the toolchain | #433
  • Add support for Scala SDK provided by rules_jvm_external | #403

Performance

  • Reduce peak memory footprint | #428

Fixes 🛠️

  • 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

Features 🎉

  • Server uses BEP to log bazel progress. | ae52b8f

Fixes 🛠️

  • 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

SECURITY 🚨

  • Make BEP Server listening on localhost instead of 0.0.0.0. | #369

Fixes 🛠️

  • Create BEP server on demand for each Bazel call. | #370

Features 🎉

  • 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

Fixes 🛠️

  • 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

Changes 🔄

  • Initialize the hash sets with the number of elements they are expected to hold. | #339

Fixes 🛠️

  • 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

Features 🎉

  • Add mainClasses parameters to JvmEnvironmentItem. | #309

  • Exclude bazel-* symlinks; outputPaths endpoint implemented. | #322

2.4.0 - 2.01.2023

Features 🎉

  • Support Bazel 6.0.0 | #318

2.3.1 - 21.12.2022

Fixes 🛠️

  • 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

Features 🎉

  • Send notifications to client while JUnit5 testing. | #299

Changes 🔄

  • Add async and sync output processors. | #288
  • Pass originId into diagnostics. | #291
  • Pass originId into server responses. | #289

Fixes 🛠️

  • BuildTargetIdentifier mapping uses .uri instead of .toString. | #295
  • JVMLanguagePluginParser.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

Fixes 🛠️

  • 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

Features 🎉

  • Server can be used with bloop (--use_bloop flag). | #246
  • Project view supports build_manual_targets - now it is possible to build targets with manual tag. | #243
  • directories and derive_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

Changes 🔄

  • 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

Fixes 🛠️

  • CLI project view generator now supports --excluded-targets and --excluded-directories instead of excluded - prefix. | #267

2.1.0 - 11.05.2022

Features 🎉

  • 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

Changes 🔄

  • 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

Features 🎉

  • 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

Fixes 🛠️

  • 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

Changes 🔄

  • 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 all Project 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 and io.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

Features 🎉

  • 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 or main/java. | #126

Changes 🔄

  • 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

Fixes 🛠️

  • 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

Features 🎉

Changes 🔄

  • 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

Removed ✂️

  • Old implementation of e2e tests. | #86

Fixes 🛠️

  • 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 (including scala_specs2_junit_test) are included in the BSP tests, unfortunately without test classes. | #101

1.0.0 - 23.08.2021

  • Everything... 🎉