edgent-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dale LaBossiere <dml.apa...@gmail.com>
Subject Re: Understanding the snapshot and release process
Date Tue, 23 May 2017 14:46:53 GMT

> On May 22, 2017, at 9:54 PM, John D. Ament <johndament@apache.org> wrote:
> ...
> I'm trying to understand the current snapshot and release process for
> Edgent, specifically to make it so that we can easily publish JARs into
> maven central.
> ...

Yeah, the gradle stuff ended up that complicated as a result of preserving certain behaviors
of the original ant-based build, and being a gradle/maven newbie. It would be great to be
able to simplify it!  [I wasn’t the author of the ant builds.]

The binary build (current and previous) results in a layout of Edgent and 3rd party jars:
    java8/<component>/<edgent-jars>
                                  [/ext/<component-dependent-3rd-party-jars>]

The generated Edgent jars include MANIFEST.MF/Class-Path for all immediate edgent-jar dependencies
and the component’s transitive external dependencies.  All are specified as relative
paths given the above layout.

Edgent applications need to only include an Edgent component that they directly use on the
their classpath.  Internal and external transitive dependencies are automatically handled
by virtue of the manifests' classpath.  In practice they need only include the path to the
Edgent provider jar (which
takes care of all of the core/lib Edgent jars), and then Edgent jars for individual connectors
or other
optional components. See [1].

The release mgmt guide [2] steps related to source-release and binary-release bundle creation
and signing are:
    ./gradlew -Dedgent.snapshotId=“” release
    ./gradlew signAll —no-daemon

See [2] for staging and publishing steps too.

Oh, and there was some additional complication as a result of preserving the ability of Edgent-runtime
developers to continue to use Eclipse without switching to gradle and/or maven [3]

[1] “Building Applications” at the end of https://edgent.apache.org/javadoc/latest/index.html
<https://edgent.apache.org/javadoc/latest/index.html>
[2] https://cwiki.apache.org/confluence/display/EDGENT/Release+Manager%27s+Guide <https://cwiki.apache.org/confluence/display/EDGENT/Release+Manager's+Guide>
[3] https://github.com/apache/incubator-edgent/blob/master/DEVELOPMENT.md#using-eclipse

Hope that helps clarify things.
— Dale


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message