Closed andrewhsu closed 4 years ago
@andrewhsu, the release process is dead simple: SpecialAgent is released to Maven Central, and relies on Sonatype's nexus-staging-maven-plugin
, and Maven's maven-deploy-plugin
to publish builds to the repos. The the version string in the <version>
tag ends in "SNAPSHOT", then maven-deploy-plugin
deploys to Maven Central Snapshot Repo. If the version does not end in "SNAPSHOT", then it goes to Maven Central Release Repo.
Builds that get deployed to Maven Central Snapshot Repo can be managed (updated or deleted) via Sonatype's dashboard at https://oss.sonatype.org/.
Builds that get deployed to Maven Central Release Repo cannot be changed once they are released.
The failure recovery process has several layers:
.config.yml
file already takes care of this, but it's important to note the criticality of it being Maven 3.5.2 -- otherwise, debugging resulting issues could lead to a significant loss of time.Some further notes:
opentracing-specialagent-util
opentracing-adapter
opentracing-specialagent-api
specialagent-fingerprint
specialagent-maven-plugin
opentracing-specialagent
rule/*
modules, however, are compiled with various class versions. This is due to the fact that some 3rd-party libs inherently require higher class versions, so instrumentation integrations can only be made for these higher class versions. This results in a packaging of SpecialAgent that contains a mixed bag of integrations compiled for different class versions. This is fine, however, because for the 3rd-party libs requiring higher class versions to function, one would be running his application with the appropriate JVM version for the 3rd-party lib anyway -- i.e. akka-http
integration requires jdk8, but one would not be running Akka on jdk7 for there to be a problem.
test/*
modules are also a mixed bag of class versions. This is not an issue, however, as these modules are only relevant during the build process.
rule/*
or test/*
module is compiled to the jdk8 class version, execute the following:
grep '<maven.compiler.target>1.8</maven.compiler.target>' rule/*/pom.xml
grep '<maven.compiler.target>1.8</maven.compiler.target>' test/*/pom.xml
@safris thanks for that!
Following on from #538 was looking around the https://github.com/opentracing-contrib/java-specialagent/blob/master/.circleci/config.yml and could not find how the release process is executed to verify this. Would like to have some documentation that takes through the steps and how to recover from failure if release process bonks out halfway through.