Hi,

I tried `mvn release:perform` again and find yes it indeed downloads clean
codes from github..... see the output:

[INFO] --- maven-release-plugin:2.5.3:perform (default-cli) @ iotdb-parent
---
[INFO] Checking out the project to perform the release ...
[INFO] Executing: /bin/sh -c cd /****/git/incubator-iotdb/target && git
clone --branch release/0.8.2 ssh:********@
github.com/apache/incubator-iotdb.git
/****/git/incubator-iotdb/target/checkout

So, my previous Chinese document has an error about where to get the
compiled and packed files. I will update the document, and later I can
translate it back to English.

Best,
-----------------------------------
Xiangdong Huang
School of Software, Tsinghua University

 黄向东
清华大学 软件学院


Xiangdong Huang <[email protected]> 于2019年12月3日周二 下午4:56写道:

> Hi Chris,
>
> Yes I agree with you.
> The document was mainly translated from PLC4x's document (except for the
> GPG key),
> and, I just modified some content to let it fit IoTDB project.
>
> I did not write an English version because I think currently letting these
> Chinese guys know how to publish is more important and for English speaking
> guys, PLC4x's document is fine..
>
> Yes if we consider the problem for the future, having English version for
> IoTDB release is needed. I will fix the errors (targets/checkout/targets)
> and prepare an English version later.
>
> Best,
> -----------------------------------
> Xiangdong Huang
> School of Software, Tsinghua University
>
>  黄向东
> 清华大学 软件学院
>
>
> Christofer Dutz <[email protected]> 于2019年12月3日周二 下午3:56写道:
>
>> Hi Xiangdong,
>>
>> No worries, that's what I'm here for. But let's not call it reading. For
>> me and probably all of your mentors reading Chinese documents will stay
>> almost impossible. Same for non Chinese committers and ppmc members. I did
>> some pattern matching to guess what the document might say.
>>
>> When basing your core processes on Chinese, you should pay attention to
>> have an identical English translation. Everything else ist just not
>> inclusive. And makes giving support difficult.
>>
>> I think you saw some of the sideeffects with all of these failed RCs in
>> the past.
>>
>> Chris
>>
>> ------------------------------
>> *Von:* Xiangdong Huang <[email protected]>
>> *Gesendet:* Dienstag, 3. Dezember 2019 03:27:20
>> *An:* [email protected] <[email protected]>
>> *Betreff:* Re: Avoid packing incorrect files into source-release.zip
>>
>> Hi Chris,
>>
>> > And you should guide the RM to the target/checkout/target directory
>> instead of the target directory.
>>
>> I think this is what makes the error. I used target/*-source-release.zip*
>> rather than target/checkout/target/ .
>>
>> Many thanks, and thanks for reading Chinese documents...
>>
>> Best,
>> -----------------------------------
>> Xiangdong Huang
>> School of Software, Tsinghua University
>>
>>  黄向东
>> 清华大学 软件学院
>>
>>
>> Christofer Dutz <[email protected]> 于2019年12月2日周一 下午11:46写道:
>>
>> > Hi Xiangdong,
>> >
>> > I think I know what the general problem is:
>> > From that page (not much I can actually understand much)
>> > But it does mention the release:perform step and immediately after that
>> I
>> > mentions the source and binary distributions.
>> > Also it mentions validating the source and binaries build by the prepare
>> > step and does the release perform after that.
>> >
>> > You have to execute the perform step and then validate the signatures of
>> > the artifacts built by that.
>> >
>> > So you should move the source and bin distribution validation guilde to
>> > after the release:perform.
>> > And you should guide the RM to the target/checkout/target directory
>> > instead of the target directory.
>> >
>> > Chris
>> >
>> >
>> >
>> > Am 02.12.19, 14:42 schrieb "Xiangdong Huang" <[email protected]>:
>> >
>> >     Hi Chris,
>> >
>> >     I am sure that I ran `mvn release:perform` after ran `mvn
>> >     release:prepare`.  On page [1], step 3.1 and 3.2 are  `mvn
>> > release:prepare`
>> >     and `mvn release:perform`
>> >
>> >     As I am going to generate RC2 of 0.8.2, I can try once again.
>> >
>> >     [1]
>> >
>> >
>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=130027555
>> >
>> >     Best,
>> >     -----------------------------------
>> >     Xiangdong Huang
>> >     School of Software, Tsinghua University
>> >
>> >      黄向东
>> >     清华大学 软件学院
>> >
>> >
>> >     Christofer Dutz <[email protected]> 于2019年12月2日周一 下午4:59写道:
>> >
>> >     > Hi Xiangdong,
>> >     >
>> >     > the "mvn release:prepare" step does the following:
>> >     > - Checks if there are uncommitted filed
>> >     > - Updates the version to the release version
>> >     > - Checks if there are remaining SNAPSHOT dependencies
>> >     > - Runs a full build including tests with this version
>> >     > - If this build succeeds, It commits the changes and tags this
>> commit
>> >     > - Then it changes the versions to the next development version
>> >     > - Then it commits this version too
>> >     > - Then it pushes the changes
>> >     >
>> >     > The step you have to do now is run the "mvn release:perform"
>> >     > - Check out the tagged version from git into the main
>> > "target/checkout"
>> >     > directory
>> >     > - Spawns a "mvn -P apache-release deploy" build in that directory
>> >     > - This builds the source bundle in "target/checkout/target" and
>> > creates
>> >     > the hashes and signs the artifacts
>> >     > - During the build it also deploys the maven artifacts to the
>> apache
>> > nexus
>> >     >
>> >     > As soon as that's done, you:
>> >     > - Go to the Apache nexus and close the staging repo
>> >     > - Create a new staged release by uploading the RELEASE_NOTES,
>> README
>> > and
>> >     > the source bundle together with the hashes and signatures to SVN
>> >     >
>> >     > To me it looks as if you're simply uploading the stuff created in
>> the
>> >     > first step, which is not correct as it isn't
>> >     > executed from a clean checkout and it will contain other stuff
>> > that's just
>> >     > laying around in your workspace.
>> >     >
>> >     > Chris
>> >     >
>> >     >
>> >     > Am 01.12.19, 15:35 schrieb "Xiangdong Huang" <[email protected]
>> >:
>> >     >
>> >     >     Hi,
>> >     >
>> >     >     > it will checkout the git revision the prepare goal tagged as
>> > release
>> >     >     version. It will checkout this into the target/checkout
>> > directory.
>> >     >     If so, it is quite strange that why there was something
>> > incorrect in
>> >     >     previous releases..
>> >     >
>> >     >     Now the command is `mvn release:prepare
>> > -DautoVersionSubmodules=true`,
>> >     > I am
>> >     >     not sure whether it download source code from github first, I
>> > need to
>> >     > check
>> >     >     it when I run release next time..
>> >     >
>> >     >     > So I guess you re-ran the release build more than once
>> >     >     Yes it may be. Sometime I ran `mvn release:prepare` .... and
>> if
>> > I find
>> >     >     failures, I ran `mvn release:rollback` and run
>> > `relrease:prepare` again
>> >     >     after fixing problems and didnot ran `mvn clean`..
>> >     >
>> >     >     >The other problem you are having is that the build is
>> generating
>> >     > things
>> >     >     outside the target directory.
>> >     >     A PR is available[1], which is proposed by a new contributor.
>> A
>> > PPCM
>> >     > has
>> >     >     reviewed the codes and approved on github.
>> >     >     But we need to guarantee that new committers also obey the
>> rule
>> > in the
>> >     >     future. So be careful in the code review stage.
>> >     >
>> >     >     By the way, I think an assembly file is useful for the
>> following
>> >     > scenario:
>> >     >
>> >     >     > What is more, it is very helpful when we switch different
>> > branches
>> >     > for
>> >     >     releasing. for example, in v0.9.0, there is a module called
>> > session,
>> >     > which
>> >     >     does not exist in 0.8.0. So, if I switch the branch from 0.9
>> to
>> > 0.8 (or
>> >     >     rel/0.8) for a minor version releasing (e.g., 0.8.2), I have
>> to
>> > remove
>> >     > the
>> >     >     session folder manually. If I forgot that, a dirty
>> > source-release.zip
>> >     > is
>> >     >     generated. But if we have an assembly.xml,  it will avoid
>> that.
>> >     >
>> >     >     As I am using IDEAJ, there is a plain text file  `session.iml`
>> > (like
>> >     >     .classpath and .project in Eclipse) in session's directory.
>> The
>> > file
>> >     > does
>> >     >     not disappear when I switch to 0.8, and even `mvn clean` does
>> not
>> >     > delete
>> >     >     the file.
>> >     >      I am not sure whether `mvn release:prepare
>> >     > -DautoVersionSubmodules=true`
>> >     >     will ignore it ( yes if the command download source codes from
>> >     > github), but
>> >     >     if I try `mvn package -Papache-release -DskipTests`, the file
>> > will be
>> >     >     packed, which is incorrect.
>> >     >
>> >     >     [1] https://github.com/apache/incubator-iotdb/pull/578
>> >     >
>> >     >     Best,
>> >     >     -----------------------------------
>> >     >     Xiangdong Huang
>> >     >     School of Software, Tsinghua University
>> >     >
>> >     >      黄向东
>> >     >     清华大学 软件学院
>> >     >
>> >     >
>> >     >     Christofer Dutz <[email protected]> 于2019年12月1日周日
>> > 下午8:57写道:
>> >     >
>> >     >     > HI all,
>> >     >     >
>> >     >     > I think the problem was that you were not doing the releases
>> > right
>> >     > or not
>> >     >     > staging the right artifacts.
>> >     >     > If you run release:perform ... it will checkout the git
>> > revision the
>> >     >     > prepare goal tagged as release version.
>> >     >     > It will checkout this into the target/checkout directory.
>> > There it
>> >     > will
>> >     >     > run a "mvn deploy" build without the maven-wrapper.
>> >     >     >
>> >     >     > As it is doing this there simply can't be any class or jar
>> > file in
>> >     > the
>> >     >     > .mvn directory of the checkout directory.
>> >     >     > So then the assembly packs up everything in there, it simply
>> > can't
>> >     > pack up
>> >     >     > any class or jar files.
>> >     >     >
>> >     >     > The other problem you are having is that the build is
>> > generating
>> >     > things
>> >     >     > outside the target directory.
>> >     >     > That's a problem you definitely have to fix. As soon as
>> that's
>> > done,
>> >     > there
>> >     >     > shouldn't be any problems as the target directories are
>> > automatically
>> >     >     > excluded.
>> >     >     > But in general the assembly would build the source bundle
>> > before
>> >     > actually
>> >     >     > running any tests and therefore there shouldn't be any
>> binary
>> >     > resources.
>> >     >     > So I guess you re-ran the release build more than once ...
>> >     >     >
>> >     >     > So instead of fixing the symptoms, I would suggest to fix
>> the
>> > cause.
>> >     > The
>> >     >     > cause is that you're not executing the release steps for
>> Maven
>> > builds
>> >     >     > correctly.
>> >     >     >
>> >     >     > Chris
>> >     >     >
>> >     >     >
>> >     >     >
>> >     >     > But I definitely
>> >     >     >
>> >     >     > Am 01.12.19, 06:46 schrieb "Xiangdong Huang" <
>> > [email protected]>:
>> >     >     >
>> >     >     >     Sorry the PR link is [1].
>> >     >     >
>> >     >     >     [1] https://github.com/apache/incubator-iotdb/pull/610
>> >     >     >
>> >     >     >     Best,
>> >     >     >     -----------------------------------
>> >     >     >     Xiangdong Huang
>> >     >     >     School of Software, Tsinghua University
>> >     >     >
>> >     >     >      黄向东
>> >     >     >     清华大学 软件学院
>> >     >     >
>> >     >     >
>> >     >     >     Xiangdong Huang <[email protected]> 于2019年12月1日周日
>> > 下午1:45写道:
>> >     >     >
>> >     >     >     > Hi,
>> >     >     >     >
>> >     >     >     > Considering we packed some incorrect files in the last
>> > release
>> >     > (RC1
>> >     >     > to
>> >     >     >     > RC4), I think writing an assembly.xml file for
>> > generating the
>> >     >     >     > source-release.zip is a good way to avoid that.
>> >     >     >     >
>> >     >     >     > What is more, it is very helpful when we switch
>> different
>> >     > branches
>> >     >     > for
>> >     >     >     > releasing. for example, in v0.9.0, there is a module
>> > called
>> >     > session,
>> >     >     > which
>> >     >     >     > does not exist in 0.8.0. So, if I switch the branch
>> from
>> > 0.9
>> >     > to 0.8
>> >     >     > (or
>> >     >     >     > rel/0.8) for a minor version releasing (e.g., 0.8.2),
>> I
>> > have to
>> >     >     > remove the
>> >     >     >     > session folder manually. If I forgot that, a dirty
>> >     >     > source-release.zip is
>> >     >     >     > generated. But if we have an assembly.xml,  it will
>> > avoid that.
>> >     >     >     >
>> >     >     >     > I have written the source-assembly.xml now in PR [1].
>> The
>> >     > assembly
>> >     >     > file
>> >     >     >     > looks ugly because we have to declare the files one by
>> > one. (I
>> >     > tried
>> >     >     > the
>> >     >     >     > <moduleSet> tag, which is more convenient. But because
>> > our
>> >     >     >     > module.artifactId != module.folder name, there is some
>> > issues
>> >     > that I
>> >     >     > can
>> >     >     >     > not solve. Finally I gave up using <moduleSet> tag).
>> >     >     >     >
>> >     >     >     > If the PR is accepted, then for all contributors
>> please
>> > notice
>> >     > that:
>> >     >     >     >
>> >     >     >     > (1) If you add new source files into a src/ docs/
>> license
>> >     > folder, it
>> >     >     > is ok.
>> >     >     >     > (2) If you add a new module,  create a new folder, or
>> > write a
>> >     > plain
>> >     >     > text
>> >     >     >     > file under the project's (or a module's) root
>> directory,
>> > you
>> >     > have to
>> >     >     >     > maintain the source-assembly.xml file.. Otherwise the
>> > new added
>> >     >     > files will
>> >     >     >     > not be packed into source-release.zip.
>> >     >     >     >
>> >     >     >     > Hope in this way, we can no longer get  dirty
>> >     > source-release.zip
>> >     >     > files.
>> >     >     >     >
>> >     >     >     > [1]
>> >     >     >     > Best,
>> >     >     >     > -----------------------------------
>> >     >     >     > Xiangdong Huang
>> >     >     >     > School of Software, Tsinghua University
>> >     >     >     >
>> >     >     >     >  黄向东
>> >     >     >     > 清华大学 软件学院
>> >     >     >     >
>> >     >     >
>> >     >     >
>> >     >     >
>> >     >
>> >     >
>> >     >
>> >
>> >
>> >
>>
>

Reply via email to