Skip to content

Releases: ihmcrobotics/ihmc-build

0.15.1 Release Notes

06 Sep 21:09
Compare
Choose a tag to compare

API Removal

  • ihmc-ci library and plugin is removed from this project and is not automatically applied to projects
  • ihmc.convertJobNameToHyphenatedName has been removed and replaced by
    testSuites.convertJobNameToHyphenatedName (now provided only by ihmc-ci-plugin)

Migration

Please use the following code to get the old functionality:

buildscript {
   repositories {
      maven { url "https://plugins.gradle.org/m2/" }
      mavenLocal()
   }
   dependencies {
      classpath "us.ihmc:ihmc-build:0.15.1" // new build plugin without ci
      classpath "us.ihmc:ihmc-ci-plugin:0.18.0" // apply ci separately now
   }
}
apply plugin: "us.ihmc.ihmc-build"
apply plugin: "us.ihmc.ihmc-ci-plugin"

println testSuites.convertJobNameToHyphenatedName("AtlasAFast") // replaces removed method

testDependencies {
   compile group: "us.ihmc", name: "ihmc-ci-core-api", version: "0.18.0" // these were auto included before
}

0.14.0 Release Notes

27 Jul 01:19
Compare
Choose a tag to compare

Bug fix

  • Dependencies included in the build, but do not have "source" as their version, now keep their declared version instead of inheriting the parent's version

For example, if

  1. project-a has included the build project-b,
  2. project-a's version is 0.2,
  3. project-b's version is 1.0,
  4. project-a/build.gradle contains compile [...] name: project-b, version: 1.0,
    it is no longer the case that the IHMCDependenciesExtension would override 1.0 to 0.2 when passing the version to Gradle.

Quality improvements

  • Improve message for "source" version dependencies that aren't present
  • Add unit tests for test suite generation using ihmc-ci
  • Add binray properties to README

0.13.0 Release Notes

06 Apr 00:47
Compare
Choose a tag to compare

We reworked the publish command-line interface so users can publish to arbitrary repositories easily using the standard gradle publish task. We wanted to make it consistent, supporting maven local naturally and protect against accidental release publishes. This enables publishing an entire project group at once with an intuitive gradle publishAll -PpublishUrl=ihmcRelease, or to maven local using gradle publishAll -PpublishUrl=local.

In addition, having publishUrl = local does not change the version to LOCAL, like publishMode did, which was occasionally frustrating and should be decoupled anyway.

Deprecated API

  • publishMode property is now deprecated. LOCAL, STABLE, and SNAPSHOT values will set up the cooresponding publishUrl and snapshotMode properties. See below.

New Publishing API

New property publishUrl (defaults to local) where publishUrl is a keyword or an actual URL. There will be a few keywords predefined in configurePublications() with custom ones added with addPublishUrl(...):

  • local: The default behavior when publishUrl is not set, gradle publish will publish to mavenLocal()
  • ihmcRelease: Bintray maven-release or Artifactory proprietary-releases (based on openSource variable)
  • ihmcVendor: Bintray maven-vendor or Artifactory proprietary-vendor (based on openSource variable)
  • ihmcSnapshots: Artifactory snapshots or Artifactory proprietary-snapshots (based on openSource variable)

New addPublishUrl() method. Publish to these repos with gradle publish -PpublishUrl=myRepoKeyword

ihmc {
   group = "us.ihmc"
   version = "0.1.0"
   vcsUrl = "some-url"
   openSource = true
   
   configureDependencyResolution()
   // without credentials
   addPublishUrl("myRepoKeyword", "http://my.site/repo")
   // with credentials
   addPublishUrl("mySecureRepoKeyword", "http://my.site/repo", publishUsername, publishPassword)
   configurePublications()
}

On-the-fly custom repoURL publishing:
gradle publish -PpublishUrl=http://my.site/repo [-PpublishUsername=user -PpublishPassword=pass]

publishToMavenLocal still works normally.

New property snapshotMode=true for CI (for dependency configuration only). Set version to SNAPSHOT-0 and sets up dynamic dependency snapping based on additional properties. Internal use only.

0.12.10 Release Notes

19 Mar 20:08
Compare
Choose a tag to compare

Fixed issues

  • #41: compositeSearchHeight alias exists
  • #49: Subprojects of excluded project groups are now excluded

Other minor fixes, improvements.

0.12.1 Release Notes

04 Jan 20:15
Compare
Choose a tag to compare

This release fixes the Artifactory publish repository name for closed source projects from proprietary to proprietary-releases.

0.12.0 Release Notes

22 Dec 00:18
Compare
Choose a tag to compare

API Changes

  • PascalCased dependency declarations will no longer match to kebab-cased artifacts.
    (No IHMC maintained projects were using this, and it was a pretty bad "best effort" type feature.)

Bug fixes

  • Fix bug where kebabCasedNames were not picked up in settings evaluation. Fixes #37.

Under the Hood Improvements

  • Move a few info log messsages to debug level.
  • Exclude builds earlier, enabling simpler logic and less checks later.
  • Simplify transitive dependency function; make it easier to read and understand.
  • Sort included builds and pass them to Gradle in order.
  • Remove load call in properties and do loading in the init block.
  • Add some doc. Rename workspace to repository group. Simplify initial path mapping.

0.11.9 Release Notes

22 Dec 00:20
Compare
Choose a tag to compare

API Changes

  • Remove includeBuildsFromWorkspace property. Setting depthFromWorkspaceDirectory = 0 is the bug free version of includeBuildsFromWorkspace = false.

Usability Improvements

  • Remove Artifactory missing credential message.

0.11.4 Release Notes

22 Dec 00:22
Compare
Choose a tag to compare

Performance Improvements

  • Fix #38 by removing artifactory repositories when not on Bamboo.

0.11.3 Release Notes

20 Dec 22:02
Compare
Choose a tag to compare

Fix #36 by hard crashing when version is declared as "source", but included build is not present.

0.11.2 Release Notes

22 Dec 00:23
Compare
Choose a tag to compare

Bug Fixes

  • Fix new issue where Eclipse copies build files into the bin folder and the build plugin tries to pick them up as projects. Exclude out and bin folders.