Hi,

Thank Chris for the wonderful maven settings and test. That is great!

> - When running on Windows in the iotdb module there are systematic test
failures as there seem to be some file locking problems in the teardown
methods of the tests

@gaofei and @liukun, can you reproduce the problem, record it on issues and
fix it?

> In the iotdb there are multiple issues with the JavaDoc generation.

@ all other committers,  can we supply JavaDoc ASAP?

> the class referenced in the MANIFEST.MF of the iotdb module doesn't exist

I will remove the manifest.mf. The class was for performance testing and
has been discarded.

> The vulnerable dependency check does list several problematic library
versions (Lib versions for which public CVEs have been filed)

I am not unfamiliar with CVE,  can anyone give me a  reference? or tell me
what it is short for? Then I can fix the problem.

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

 黄向东
清华大学 软件学院


Christofer Dutz <christofer.d...@c-ware.de> 于2018年12月12日周三 下午8:41写道:

> Hi all,
>
> ok ... so I'm working on it ... ok ... I'm mostly finished.
>
> I tested things on Mac, Windows and Linux (Ubuntu 18.04)
>
> The root pom now contains several profiles which should automatically
> activate themselves as soon as the conditions are met.
> As soon as a maven project contains a directory "src/main/thrift" it will
> download and use the executable matching the OS type and generate the
> sources to the maven default of "target/generated-sources/thrift"
> This automatically excludes those sources from several checks (Such as the
> RAT tool).
>
> Using the Maven Wrapper there the only prerequisite for building is Java 8
> or above. Instead of using "mvn" you can now simply use "mvnw" and the
> script will auto-download and configure the right Maven version.
>
> Some things I noticed:
> - When running on Windows in the iotdb module there are systematic test
> failures as there seem to be some file locking problems in the teardown
> methods of the tests
> - In the iotdb there are multiple issues with the JavaDoc generation.
> - the class referenced in the MANIFEST.MF of the iotdb module doesn't exist
> - The vulnerable dependency check does list several problematic library
> versions (Lib versions for which public CVEs have been filed)
> - With the fix in the Time test the build on my Mac and Ubuntu ran
> flawlessly
>
>
> Chris
>
>
>
>
>
>
>
> Am 12.12.18, 09:16 schrieb "Willem Jiang" <willem.ji...@gmail.com>:
>
>     Hi Christofer,
>
>     Please go ahead. It could be great if you can give a hand on it.
>
>     Willem Jiang
>
>     Twitter: willemjiang
>     Weibo: 姜宁willem
>
>     On Wed, Dec 12, 2018 at 3:12 PM Christofer Dutz
>     <christofer.d...@c-ware.de> wrote:
>     >
>     > Hi Willem,
>     >
>     > If you don't mind, I would like to give it a try to automate this. I
> think the should be options for it.
>     >
>     > Chris
>     >
>     > Outlook for Android<https://aka.ms/ghei36> herunterladen
>     >
>     > ________________________________
>     > From: Willem Jiang <willem.ji...@gmail.com>
>     > Sent: Wednesday, December 12, 2018 3:49:54 AM
>     > To: dev@iotdb.apache.org
>     > Subject: Re: Things I noticed
>     >
>     > I just did a quick search of thrift generated tool. It looks like
>     > there is no across system platform tools to do the job.
>     > We still need to install the thrift binary before generate the thrift
>     > related code. In this case I think it's fine to check in the
> generated
>     > code there. But we still need to update the rat[1] tool to skip the
>     > License header checking for those codes.
>     >
>     > [1]https://creadur.apache.org/rat/
>     >
>     > Willem Jiang
>     >
>     > Twitter: willemjiang
>     > Weibo: 姜宁willem
>     > On Wed, Dec 12, 2018 at 8:58 AM Xiangdong Huang <saint...@gmail.com>
> wrote:
>     > >
>     > > Hi,
>     > >
>     > > Christofer, thank you so much for your detailed suggestion. It is
> a good
>     > > chance to let us know how a clear and canonical maven project is.
>     > >
>     > > I have organized all of these issues and open 3 issues at Github:
> #502,
>     > > #503, #504
>     > >
>     > > * https://github.com/thulab/iotdb/issues/502
>     > > * https://github.com/thulab/iotdb/issues/503
>     > > * https://github.com/thulab/iotdb/issues/504
>     > >
>     > > And, all guys (current committers), it is time to fight.
>     > >
>     > > As for the release-profile, I have no experience about that. We
> will try
>     > > our best to fix it, and may ask for more help. :D
>     > >
>     > > As for the generated codes, especially for Thrfit, I have some
> question.
>     > > Generating Thrift code on Windows is easy, you just need a
> thrfit.exe file.
>     > > But for Linux and Mac OS, you have to install the thrift yourself.
> And you
>     > > must make sure that the version of the thrift is the same with us
> (v0.9).
>     > > If someone does not install thrift, Maven will says that something
> like
>     > > `/usr/local/bin/thrift does not exist`, and the maven build will
> failed.
>     > > Besides, we can find some other projects also check in the
> generated thrift
>     > > code, like Apache Cassandra v2.0[1].
>     > >
>     > > Reference:
>     > > [1]
> https://github.com/apache/cassandra/tree/cassandra-2.0/interface
>     > >
>     > > Best,
>     > > -----------------------------------
>     > > Xiangdong Huang
>     > > School of Software, Tsinghua University
>     > >
>     > >  黄向东
>     > > 清华大学 软件学院
>     > >
>     > >
>     > > Christofer Dutz <christofer.d...@c-ware.de> 于2018年12月12日周三
> 上午4:49写道:
>     > > >
>     > > > Hi all,
>     > > >
>     > > > So I was curious, checked out the code and ran a build. I had to
> disable
>     > > one test (more details down the document), but in the end I got a
>     > > successful build. Congrats on that … some of us – especially one
> other of
>     > > your mentors -  know at least one project where it takes a little
> more
>     > > setting up to get it to build ;-)
>     > > >
>     > > > Here comes a list of things we will need changing for Apache
> (And or in
>     > > order to avoid a lot of problems in the future):
>     > > >
>     > > >
>     > > >   *   The parent pom in the root has to be set to
> “org.apache:apache:21”
>     > > (or the latest version of that)
>     > > >   *   As far as I know the ASF doesn’t like the “developers”
> section in
>     > > the pom files
>     > > >   *   All non-binary files need the ASF header (Yes … all of
> them … I
>     > > know this will not be the most glorious job, but it has to be done)
>     > > >   *   Module Grafana
>     > > >      *   The parent of this module is not within the project
> scope. This
>     > > quite often causes problems with the maven tooling and when
> releasing, the
>     > > module it will not inherit the settings of the apache parent. This
> has to
>     > > be changed (Try adding the iotdb-parent as parent and adding the
> missing
>     > > configuration options from the spring-boot-starter-parent. This
> way you
>     > > don’t have to redefine all the settings you can no longer inherit
> from the
>     > > iotdb-parent.
>     > > >   *   Module service-rpc and tsfile:
>     > > >      *   You are defining a “release” profile which is obviously
> intended
>     > > for releasing. This will not apply as apache releases are
> performed with
>     > > the “apache-release” profile. So if important stuff is to be done
> here (it
>     > > actually shouldn’t)
>     > > >         *   From a quick look all defined there is also done by
> the
>     > > profile defined in the “apache-release” profile in the “apache”
> parent pom.
>     > > So all except the exclusion for package names including “thrift”
> could
>     > > simply be removed. (Maybe it’s worth configuring the
> maven-javadoc-plugin
>     > > in a pluginManagement section of the root to exclude them in
> general and
>     > > get rid of the “release” profiles in general)
>     > > >         *   Especially the staging part has to be removed as you
> will be
>     > > staging to repository.apache.org instead of the oss sonatype repo.
>     > > >
>     > > > Things I personally would suggest to change:
>     > > >
>     > > >
>     > > >   *   Don’t use a property to define the version of the
> artifacts that
>     > > are part of the build (project.version) (The release plugin
> updates this
>     > > for you and believe me I have encountered a lot of problems with
> this
>     > > approach in my last 10 years of managing Maven projects as a
> consultant)
>     > > >   *   Why are you generating code (thrift) and checking that in?
> I would
>     > > strongly suggest to always generate the code, move the thrift
> files to
>     > > “src/main/thrift” and have the build generate things ot its usual
> location
>     > > “target/generated-sources/thrift” (or something like that … the
> last part
>     > > of the path may differ)
>     > > >   *   General observations:
>     > > >      *   Replace the antrun plugin with the dependencies plugin
> for
>     > > copying the libs to the iotdb/lib directory (antrun is highly
> deprecated)
>     > > >      *   No need to re-define the license, scm, distribution
> management
>     > > in sub-modules
>     > > >      *   Try to unify the plugin definitions in the root pom.
>     > > >      *   The “release” profile could be causing problems in a
> real
>     > > release (will not be executed as with apache it’s called
> “apache-release”)
>     > > >      *   You are relying on Java 8 so the Jodatime library is
> included in
>     > > general there is no need to use the external library and the
> included
>     > > classes could be used)
>     > > >      *   It might we worth defining an “example” module which
> contains
>     > > real maven buildable examples (some projects even move them to a
> separate
>     > > examples repository) right now there is no way to automatically
> detect that
>     > > the code has changed and the example no longer matches that API.
>     > > >      *   I wouldn’t produce fat jars (using the assembly plugin)
> as this
>     > > bundles classes in to a library that might be used in another
> application
>     > > that has dependencies to the same libraries but in a different
> version …
>     > > trust me … these are the worst problems to track down.
>     > > >   *   Module iotdb:
>     > > >      *   Have the MANIFEST.MF generated by maven instead.
>     > > >      *   You have a dependency on the antlr3 maven plugin.
> Instead you
>     > > should depend on the antlr-runtime artifact that matches your
> antlr3
>     > > version.
>     > > >      *   What is the “kvmatch-iotdb” artifact referring to?
> Seems it is
>     > > not part of this project.
>     > > >      *   Why are you manually configuring an additional
> compilation in
>     > > the pre-integration-test phase? There is no code in “src/it/java”
>     > > >      *   One test is failing because I’m in a different time
> zone: Failed
>     > > tests:   test(cn.edu.tsinghua.iotdb.sql.DateFormatTest):
>     > > expected:<…02-01T11:12:35.000+0[1]:00> but
>     > > was:<…02-01T11:12:35.000+0[8]:00>
>     > > (cn.edu.tsinghua.iotdb.sql.DateFormatTest.test has most references
> ending
>     > > with “+08:00” which makes the tests only run in one time-zone)
>     > > >      *
>     > >
> cn.edu.tsinghua.iotdb.queryV2.engine.control.OverflowFileStreamManager uses
>     > > the deprecated internal SUN API which is not available in Java 11
> anymore
>     > > >   *   Module jdbc:
>     > > >      *   You are adding a “interface/thrift” directory to the
> sources,
>     > > but that doesn’t exist.
>     > > >   *   Module service-rpc:
>     > > >      *   Move the interfaces thirft files to “src/main/thrift”
> and have
>     > > the code generated on every build to “target/generated-sources”
> (default)
>     > > >      *   Don’t check in generated code.
>     > > >   *   Module tsfile_
>     > > >      *   In general the same remarks apply as to the service-rpc
> module
>     > > >   *   Module spark
>     > > >      *   You have included *.tsfile in your “.gitglobal” but
> seem to have
>     > > forced in a “tsfile”-file in the test resources (Things can get
> quite messy
>     > > in such situations if the file is ever changed, as the IDE will
> never
>     > > detect changes and never commit any changes to that file)
>     > > >   *   Module Hadoop
>     > > >      *   Looks a little unfinished … so I won’t go into details
> here.
>     > > >
>     > > > So much for a quick run through the project … If you want, I
> could be of
>     > > assistance with the actual transformation … I know I could
> probably address
>     > > most in half a day and that most people would probably take a lot
> longer.
>     > > After all we want you to learn the Apache way … not to learn
> setting up
>     > > projects ;-) (Other mentors please correct me if I’m wrong)
>     > > >
>     > > > So … I’ll call it a night or my girlfriend will get angry ;-)
>     > > >
>     > > > Chris
>     > > >
>     > > >
>
>
>

Reply via email to