Skip to content

Releases: square/bazel_maven_repository

Bazel Maven Repository Rules v1.0 Release Candidate 2

01 Feb 20:42
Compare
Choose a tag to compare

Production Release (candidate 2) of a convenience mechanism to import maven artifacts into a
bazel workspace in a way that is idiomatic to Bazel, but still ends up familiar to people used to
maven repository handling.

This release includes:

  • Single specification of a list of artifacts representing the "universe"
  • Supports multiple repo roots (e.g. alternatives to repo1.maven.org/maven2)
  • Generates a bazel package path per maven group_id, and a target per artifact_id
  • Supports .jar and .aar packaging
  • Very limited support for classifiers (can use the default artifact or a classifier, but not both)
  • Supports SHA256 validation of the artifact (with an insecure option for not specifying them)
  • Tested with java and kotlin rules, including test rules.
  • auto-building of inter-artifact dependencies (from parsed pom metadata)
    • Parent metadata, dependencyManagement, and properties substitution are all supported
  • per-artifact build-snippet substitution (e.g. to wire in annotation processors, or fix mis-specified deps)
  • per-groupId dependency target substitution (to fix internal build cycles created by build snippet substitution)
  • Tested against java, kotlin, and android projects.

Fixes from last RC:

  • Documentation improvements and updates
  • Added the "build_snippet" property for per-artifact configuration, to replace the map build_substitutes
    that was configured separately from the artifact list in earlier versions. Backward compatibility is
    preserved with a deprecation warning.

Known limitations:

  • Doesn't support -SNAPSHOT dependencies (pending v1.1)
  • Only supports single-version per maven_repository_spec() invocation (monorepo-style).
  • Doesn't support multiple maven_repository_spec() calls
  • Doesn't work on Windows by default (requires cat to be installed as a binary tool, which
    could potentially be fixed if bazelbuild/bazel#7309 is accepted

Please see the README.md file for usage instructions and examples of the above features.

Bazel Maven Repository Rules v1.0 Release Candidate 1

01 Feb 00:01
3658ec4
Compare
Choose a tag to compare

Production Release (candidate 1) of a convenience mechanism to import maven artifacts into a
bazel workspace in a way that is idiomatic to Bazel, but still ends up familiar to people used to
maven repository handling.

This release includes:

  • Single specification of a list of artifacts representing the "universe"
  • Supports multiple repo roots (e.g. alternatives to repo1.maven.org/maven2)
  • Generates a bazel package path per maven group_id, and a target per artifact_id
  • Supports .jar and .aar packaging
  • Very limited support for classifiers (can use the default artifact or a classifier, but not both)
  • Supports SHA256 validation of the artifact (with an insecure option for not specifying them)
  • Tested with java and kotlin rules, including test rules.
  • auto-building of inter-artifact dependencies (from parsed pom metadata)
    • Parent metadata, dependencyManagement, and properties substitution are all supported
  • build-snippet substitution (e.g. to wire in annotation processors, or fix mis-specified deps)
  • Tested against java, kotlin, and android projects.

Known limitations:

  • Doesn't support -SNAPSHOT dependencies (pending v1.1)
  • Only supports single-version per maven_repository_spec() invocation (monorepo-style).
  • Doesn't support multiple maven_repository_spec() calls
  • Doesn't work on Windows by default (requires cat to be installed as a binary tool, which
    could potentially be fixed if bazelbuild/bazel#7309 is accepted

Planned for 1.0:

  • Documentation update.

Please see the README.md file for usage instructions.

Bazel Maven Repository Rules v0.4 (Beta 3)

11 Jan 00:41
9a8bc32
Compare
Choose a tag to compare

Bug fix release.

  • Fixes #17 - Dependencies scope, optionality, and systemPath not accounted for in automated deps generation (
    1e92bc1)

Bazel Maven Repository Rules v0.3 (Beta 2)

10 Jan 18:59
b2e130f
Compare
Choose a tag to compare

A minor interim release with no functional changes, but less output noise.

Fixes:

  • Removed some debug statements (b7a63ff)

Bazel Maven Repository Rules v0.2 (Beta)

10 Jan 01:12
fc35a74
Compare
Choose a tag to compare

Release adds:

  • Inter-artifact dependency detection (only from direct poms, not parents or other inference)
  • Means to override the generated target for an artifact with an alternate build snippet
    • Very useful for swapping out a target for a wrapper target which hooks up an annotation processor.
  • Means to override, per-package, the inferred dependencies and swap them for something else.
    • This is a companion feature to the above build file snippet substitution, since in rewriting the target, it
      is possible to introduce deps cycles or other deps errors, and being able to tweak the dependency
      scanning from poms helps avoid having to do a lot more (and a lot more verbose) snippet replacement.

Known issues:

  • Dependency metadata inferred from <dependencyManagement> and <properties> sections of the
    pom.xml files, or inherited from a <parent> artifact are not supported, so the tool will make some
    mistakes in scoping and version. The version errors really only affect error messages, but the scoping
    can result in test artifacts being brought in. Those artifacts with such inherited/implied deps properties
    can be handled by simple build_substitutes.
  • SNAPSHOT dependencies are still not supported.

This release is also the first under the square organization, as the repo has migrated to github.com/square/bazel_maven_repository. It has been re-licensed under Square, Inc.'s copyright but is still licensed via Apache 2.0. Contributing now will require filling out square's CLA. (See the main project README for details)

Sha256 hashes:
zip: aeb31a44ee8bbd02bf88b2dd96e64f48934f8f3301032d1de2c0f5137a0c713b
.tar.gz: 34de730e8ff83252bd30e5933952ec7f0616bab6bd3b31f949f1c9465529fe55

Bazel Maven Repository Rules v0.1 (Alpha)

12 Dec 23:18
Compare
Choose a tag to compare

Initial release of a convenience mechanism to import maven artifacts into a bazel workspace in a way that
is idiomatic to Bazel, but still ends up familiar to people used to maven repository handling.

This release includes:

  • Single specification of a list of artifacts representing the "universe"
  • Supports multiple repo roots (e.g. alternatives to repo1.maven.org/maven2)
  • Generages a bazel package path per maven group_id, and a target per artifact_id
  • Supports jar and aar packaging
  • Very limited support for classifiers (can use the default artifact or a classifier, but not both)
  • Supports SHA256 validation of the artifact
  • Tested with java and kotlin rules, including test rules.

Known limitations:

  • No auto-building of inter-artifact dependencies
  • No auto-wiring of annotation processors