As far as I can tell, the version plugin is supposed to populate these
files
https://github.com/apache/storm/blob/master/storm-client/src/resources/storm-client-version-info.properties
and
https://github.com/apache/storm/blob/master/storm-core/src/resources/storm-core-version-info.properties.
I'm not sure why we need this file in both storm-client and storm-core, I'm
not sure anything reads the storm-core file, so maybe we can delete it?

When the build runs, those files are supposed to be populated with version
info (commit hash, author info and so on) from the plugin. The version info
is then read into
https://github.com/apache/storm/blob/925422a5b5ad1c3329a2c2b44db460ae94f70806/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java.
The VersionInfo file also loads the Storm version from the pom, where it's
used to populate e.g. the version in Storm UI for Nimbus and Supervisors.

It looks like this:

version=2.0.0
revision=2ba95bbd1c911d4fc6363b1c4b9c4c6d86ac9aae
branch=(no branch)
user=tgoetz
date=2019-04-29T21:17Z
url=https://git-wip-us.apache.org/repos/asf/storm.git
srcChecksum=58779abf76d8a8bbd20a2bd5f466

The only field I see read is the Storm version from the pom, I'm not sure
we use the other stuff (e.g. commit hash, commit author). For 2.0.0
something broke when splitting out storm-client, so the file for that
module doesn't have all fields populated:

version=2.0.0
revision=${version-info.scm.commit}
branch=${version-info.scm.branch}
user=tgoetz
date=${version-info.build.time}
url=${version-info.scm.uri}
srcChecksum=${version-info.source.md5}

It's most likely just because storm-client is missing configuration to run
the plugin when building.

I think if we're not using these extra fields from git, we might as well
drop the version info mojo. If we only need to set the "version" field, we
don't need to invoke git during the build.

If we do need these fields for something, we should just make the mojo set
the fields to "Unknown" if it fails to invoke git (i.e. if SCM.NONE is
set). I'm guessing what's happening for Derek is that he downloaded the
sources and is trying to run the build with files that aren't part of a git
repo. So when the mojo tries to do "git branch" it gets an error.

What do you think?

Den tor. 15. aug. 2019 kl. 06.02 skrev Ethan Li <ethanopensou...@gmail.com>:

> Derek ran into this error when building from source:
>
> [ERROR] Failed to execute goal
> org.apache.storm:storm-maven-plugins:2.1.0:version-info (version-info) on
> project storm-core: java.lang.IllegalArgumentException: SCM NONE is not
> supported -> [Help 1]
>
>
> The log before this is
>
> [INFO] --- storm-maven-plugins:2.1.0:version-info (version-info) @
> storm-core ---
> [WARNING] [svn, info] failed with error code 1
> [WARNING] [git, branch] failed with error code 128
> [INFO] SCM: NONE
>
>
> I compared with apache-storm-2.0.0 and found that it can pass although
> there are similar WARNINGs:
>
> [INFO] --- storm-maven-plugins:2.0.0:version-info (version-info) @
> storm-core ---
> [WARNING] [svn, info] failed with error code 1
> [WARNING] [git, branch] failed with error code 128
> [INFO] SCM: NONE
> [INFO] Computed MD5: 58779abf76d8a8bbd20a2bd5f466
>
> This is the PR that changed the behavior
> https://github.com/apache/storm/pull/3061/files#diff-f1197661326b04376e94e3b25cc3eedcR197
> <
> https://github.com/apache/storm/pull/3061/files#diff-f1197661326b04376e94e3b25cc3eedcR197>.
> I am not sure what this storm-maven-plugin should do though. Will need to
> look into it. Or if anyone has better idea, please let me know.
>
>
>
> > On Aug 14, 2019, at 6:53 PM, P. Taylor Goetz <ptgo...@gmail.com> wrote:
> >
> > Nice work Ethan!
> >
> > I’ll try to take a look in the next few days.
> >
> > -Taylor
> >
> >> On Aug 14, 2019, at 2:13 PM, Ethan Li <etha...@apache.org> wrote:
> >>
> >> This is a call to vote on releasing Apache Storm 2.1.0 (rc2)
> >>
> >> Full list of changes in this release:
> >>
> >>
> https://dist.apache.org/repos/dist/dev/storm/apache-storm-2.1.0-rc2/RELEASE_NOTES.html
> >>
> >> The tag/commit to be voted upon is v2.1.0:
> >>
> >>
> https://gitbox.apache.org/repos/asf?p=storm.git;a=tree;h=6c7adb8c7095cb718d5c49d07331034ae0e8434a;hb=f875619fc1017e401d65bd2900b195738f90e754
> >>
> >> The source archive being voted upon can be found here:
> >>
> >>
> https://dist.apache.org/repos/dist/dev/storm/apache-storm-2.1.0-rc2/apache-storm-2.1.0-src.tar.gz
> >>
> >> Other release files, signatures and digests can be found here:
> >>
> >> https://dist.apache.org/repos/dist/dev/storm/apache-storm-2.1.0-rc2
> >>
> >> The release artifacts are signed with the following key:
> >>
> >> https://www.apache.org/dist/storm/KEYS
> >>
> >> The Nexus staging repository for this release is:
> >>
> >> https://repository.apache.org/content/repositories/orgapachestorm-1085/
> >>
> >> Please vote on releasing this package as Apache Storm 2.1.0.
> >>
> >> When voting, please list the actions taken to verify the release.
> >>
> >> This vote will be open for at least 72 hours.
> >>
> >> [ ] +1 Release this package as Apache Storm 2.1.0
> >> [ ]  0 No opinion
> >> [ ] -1 Do not release this package because...
> >>
> >> Thanks to everyone who contributed to this release.
> >>
> >> Ethan
>
>

Reply via email to