Skip to content

Latest commit

 

History

History
92 lines (73 loc) · 5.57 KB

CHANGELOG.md

File metadata and controls

92 lines (73 loc) · 5.57 KB

Changelog

[1.0.7]

  • Update default protoc to 3.21.7
  • For nix-os: support executing statically linked protoc (for versions >=3.23.0)

[1.0.6]

  • Update default protoc to 3.19.2.

[1.0.5]

  • Add option PB.manifestProcessing (defaults to true) that allows you to opt-opt of the manifest processing feature of sbt-protoc that automatically adds option protos as a source file to protoc.

[1.0.4]

  • PB.targets directories are no longer added to managedSourceDirectories as the underlying bug in intellij which prompted that change has been fixed in IntelliJ 2021.1.1.

[1.0.3]

  • This version is published to maven instead of bintray.

[1.0.2]

  • Reduce the amount of artifact resolution & stamping (#227)
  • Honor cacheArtifactResolution := false (#226)
  • Don't run protoc with only Scalapb-Options-Proto sources (#225)
  • Add PB.targets directories to managedSourceDirectories so that IDEs are aware of the generated sources in them and can provide autocompletion etc.
  • Update default version of protoc to 3.15.6

[1.0.1]

  • Compile protos brought by ProtobufSrcConfig only once per project (#219)
  • Better cache invalidation (#217)
  • A plugin downloaded from a maven repository and injected via asProtocPlugin() can now be used in several PB.targets (#220)
  • Protos referenced in the ScalaPB-Options-Proto manifest attribute in JARs included as ProtobufConfig are now automatically added to protoSources, allowing seamless integration with third-party JARs containing code generated by ScalaPB and compiled with different options that the current project (see scalapb/scalapb-validate#70)

[1.0.0-RC7]

  • don't inherit parent configs' values for targets/protocOptions (c9ed1c2)

[1.0.0-RC5]

  • PB.runProtoc has been changed to a TaskKey[ProtocRunner] which can customize how protoc is being invoked. The default implementation runs PB.protocExecutable which in turns downloads and caches protoc executable from Maven. The version can be controlled with PB.protocVersion. If you want to run a locally installed protoc, it is suggested to customize PB.protocExecutable directly. See also ProtocRunner source.

[1.0.0-RC4]

  • Avoid unnecessary warnings by do not passing non-existant directories to protoc (#197)

[1.0.0-RC3]

  • protoc executable is now cached under the user cache directory. The path used is platform dependent:

    • Linux/BSD/SOLARIS: $XDG_CACHE_HOME/protocbridge/v1 or $HOME/.cache/protocbridge/v1
    • Windows: {FOLDERID_LocalApplicationData}/protocbridge/protocbridge/cache
    • OS X: $HOME/Library/Caches/com.thesamet.scalapb/protocbridge/protocbridge/v1

    The value is computed using the directories library and can be overridden by setting PROTOC_CACHE environment variable or the protoc.cache system property. If both are set, then the environment variable takes precedence.

[1.0.0-RC2]

  • The protobuf source directory is now part of
    • unmanagedSourceDirectories so that your IDE will take it as a part of your project and
    • unmanagedResourceDirectories so that the .proto files will be packed into the resulting JAR.

[1.0.0-RC1]

  • Dependency on protoc-jar has been removed. By default, the dependency on a protoc executable is provided through SBT's dependency management. Read below.
  • New task key: protocExecutable: TaskKey[File] returns a path to a protoc executable. By default this task downloads this file from the maven location specified by protocDependency. You can override this task to return a locally installed protoc.
  • New setting: protocDependency: SettingKey[ModuleID] - provides a maven artifact to be downloaded by protocExecutable. Defaults to a protoc version matched by PB.protocVersion.
  • PB.protocVersion used to have a -v prefix. This is no longer required and a deprecation warning is issued. The version number is expected to be in x.y.z format (protocjar accepted a format without dots which is no longer supported).
  • runProtoc has been changed to a TaskKey[Seq[String] => Int]. The default implementation runs protocExecutable with the provided arguments and returns it exit code. SBT's logging facilities are provided to the protoc process. Update: In 1.0.0-RC5, PB.runProtoc signature had changed again. See changelog entry above.
  • NixOS workarounds: if the environment variable NIX_CC is present (usally ormally provided by nix-shell), it is used to locate a dynamic linker (by reading $NIX_CC/nix-support/dynamic-linker). The located dynamic linker is used to run protoc as well as downloaded native plugins, for seamless development experience in nix-shell. See #505 and shell.nix.
  • Deprecated and ignored setting key pythonExe has been removed.

[0.99.31]

Changed

  • In earlier versions, if you wanted to generate .proto files for the Test configuration (for protos under src/test/protobuf) you had to include a line like inConfig(Test)(sbtprotoc.ProtocPlugin.protobufConfigSettings). This line is no longer necessary, and in fact cause an error if the protos in Test depend on the Protos in compile.

[0.99.30]

Added

  • Added support for generating descriptor sets.
  • Fixed race condition when one project depends on unpacked dependencies from another project.

[0.99.29]

Added

  • Add new configuration protobuf-src that adds the unpacked protos in protoSources
  • Updated protoc-jar to 3.11.4