Henrik Rentz-Reichert
2018-08-10 15:40:39 UTC
Hi,
I'm currently preparing the 2.0 release of the Eclipse eTrice project.
A part of this task is to check whether all dependencies have appropriate CQs and to create new ones where missing.
In the following I want to share how I did that:
* I realized that the old tool to check project dependencies and CQs [0] is deprecated
* I found a hint that Maven can print dependencies [1] and used this in a Jenkins job that I've created for this purpose [2]. A post build step greps the interesting lines, sorts them unique and prints the result to the console (see [6] for an example).
* Then I used an IPzilla query [3] to find the existing CQs for our project.
* In the next step I used the CQ creation page [4] to create CQs for all of the dependencies that missed a CQ. This worked very nice in general. In some cases though the proposals haven't been satisfactory, e.g. for the Apache Commons Command Line Interface CLI. 'org.apache.commons.cli' yields no proposal, 'cli' proposals didn't contain the desired one, only 'command' showed a matching proposal.
* Finally I've collected everything in a Wiki page [5]
Questions and suggestions
* How do other projects handle this task?
* Could the already very helpful page to 'Create a Contribution Questionnaire' be improved further?
o Finding an existing CQ from a dependency as shown by Maven: e.g. 'p2.eclipse-plugin:org.apache.batik.util:jar:1.8.0.v20170214-1941:system', or just 'org.apache.batik.util 1.8.0'
o Select a version already in a second field together with the name
o Indicate that a matching CQ already exists for the project
o Most convenient would we a bulk processing of the Maven dependencies output similar to [6]. The result could be a list of existing CQs and of CQs to be created (with check boxes for their creation)
Best regards,
Henrik
[0] https://www.eclipse.org/projects/tools/downloads.php?id=modeling.mdt.etrice
[1] https://wiki.eclipse.org/OTJPA_dependencies
[2] https://ci.eclipse.org/etrice/job/dependencies/
[3] https://dev.eclipse.org/ipzilla/buglist.cgi?query_format=advanced <https://dev.eclipse.org/ipzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&component=modeling.mdt.etrice&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0> &short_desc_type=allwordssubstr&short_desc=&component=modeling.mdt.etrice&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=
[4] https://projects.eclipse.org/projects/modeling.mdt.etrice/cq/create (for the eTrice project)
[5] https://wiki.eclipse.org/ETrice/Development/Release_2.0
[6] Preprocessed output from a build of our dependencies Jenkins job [2]
[INFO] +- p2.eclipse-plugin:com.google.gson:jar:2.7.0.v20170129-0911:system
[INFO] +- p2.eclipse-plugin:com.google.guava:jar:21.0.0.v20170206-1425:system
[INFO] +- p2.eclipse-plugin:com.google.inject:jar:3.0.0.v201605172100:system
[INFO] +- p2.eclipse-plugin:com.ibm.icu:jar:58.2.0.v20170418-1837:system
[INFO] +- p2.eclipse-plugin:javax.inject:jar:1.0.0.v20091030:system
[INFO] +- p2.eclipse-plugin:org.antlr.runtime:jar:3.2.0.v201101311130:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-antlr.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-bcel.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-bsf.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-log4j.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-oro.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-regexp.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-resolver.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-xalan2.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-commons-logging.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-commons-net.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jai.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-javamail.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jdepend.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jmf.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jsch.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-junit4.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-junit.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-launcher.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-netrexx.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-swing.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-testutil.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.batik.css:jar:1.8.0.v20170214-1941:system
[INFO] +- p2.eclipse-plugin:org.apache.batik.util:jar:1.8.0.v20170214-1941:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.cli:jar:1.2.0.v201404270220:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.codec:jar:1.9.0.v20170208-1614:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.io:jar:2.2.0.v201405211200:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.jxpath:jar:1.3.0.v200911051830:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.lang:jar:2.6.0.v201404270220:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.logging:jar:1.1.1.v201101211721:system
[INFO] +- p2.eclipse-plugin:org.apache.felix.scr:jar:2.0.10.v20170501-2007:system
[INFO] +- p2.eclipse-plugin:org.apache.httpcomponents.httpclient:jar:4.5.2.v20170210-0925:system
[INFO] +- p2.eclipse-plugin:org.apache.httpcomponents.httpcore:jar:4.4.6.v20170210-0925:system
[INFO] +- p2.eclipse-plugin:org.apache.log4j:jar:1.2.15.v201012070815:system
[INFO] +- p2.eclipse-plugin:org.freemarker:jar:2.3.22.v20160210-1233:system
[INFO] +- p2.eclipse-plugin:org.hamcrest.core:jar:1.3.0.v201303031735:system
[INFO] +- p2.eclipse-plugin:org.junit:jar:junit.jar:4.12.0.v201504281640:system
[INFO] +- p2.eclipse-plugin:org.objectweb.asm:jar:5.2.0.v20170126-0011:system
[INFO] +- p2.eclipse-plugin:org.sat4j.core:jar:2.3.5.v201308161310:system
[INFO] +- p2.eclipse-plugin:org.sat4j.pb:jar:2.3.5.v201404071733:system
[INFO] +- p2.eclipse-plugin:org.tukaani.xz:jar:1.5.0.v20170111-1717:system
[INFO] +- p2.eclipse-plugin:org.w3c.css.sac:jar:1.3.1.v200903091627:system
_____
Diese Nachricht wurde mit einer kostenlosen Version von Proxy-Manager <http://www.dimastr.com/proxyman> gesendet.
Wollen Sie von Ihrem Exchange-Konto mit einer Ihrer Proxy SMTP-Adressen senden?
Testen Sie Proxy-Manager kostenlos!
Diese Fu?zeile wird nicht in der registrierten Version von Proxy-Manager <http://www.dimastr.com/proxyman> angezeigt.
Klicken Sie <http://www.dimastr.com/proxyman/register.htm> hier, um Proxy-Manager zu registrieren.
I'm currently preparing the 2.0 release of the Eclipse eTrice project.
A part of this task is to check whether all dependencies have appropriate CQs and to create new ones where missing.
In the following I want to share how I did that:
* I realized that the old tool to check project dependencies and CQs [0] is deprecated
* I found a hint that Maven can print dependencies [1] and used this in a Jenkins job that I've created for this purpose [2]. A post build step greps the interesting lines, sorts them unique and prints the result to the console (see [6] for an example).
* Then I used an IPzilla query [3] to find the existing CQs for our project.
* In the next step I used the CQ creation page [4] to create CQs for all of the dependencies that missed a CQ. This worked very nice in general. In some cases though the proposals haven't been satisfactory, e.g. for the Apache Commons Command Line Interface CLI. 'org.apache.commons.cli' yields no proposal, 'cli' proposals didn't contain the desired one, only 'command' showed a matching proposal.
* Finally I've collected everything in a Wiki page [5]
Questions and suggestions
* How do other projects handle this task?
* Could the already very helpful page to 'Create a Contribution Questionnaire' be improved further?
o Finding an existing CQ from a dependency as shown by Maven: e.g. 'p2.eclipse-plugin:org.apache.batik.util:jar:1.8.0.v20170214-1941:system', or just 'org.apache.batik.util 1.8.0'
o Select a version already in a second field together with the name
o Indicate that a matching CQ already exists for the project
o Most convenient would we a bulk processing of the Maven dependencies output similar to [6]. The result could be a list of existing CQs and of CQs to be created (with check boxes for their creation)
Best regards,
Henrik
[0] https://www.eclipse.org/projects/tools/downloads.php?id=modeling.mdt.etrice
[1] https://wiki.eclipse.org/OTJPA_dependencies
[2] https://ci.eclipse.org/etrice/job/dependencies/
[3] https://dev.eclipse.org/ipzilla/buglist.cgi?query_format=advanced <https://dev.eclipse.org/ipzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&component=modeling.mdt.etrice&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0> &short_desc_type=allwordssubstr&short_desc=&component=modeling.mdt.etrice&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=
[4] https://projects.eclipse.org/projects/modeling.mdt.etrice/cq/create (for the eTrice project)
[5] https://wiki.eclipse.org/ETrice/Development/Release_2.0
[6] Preprocessed output from a build of our dependencies Jenkins job [2]
[INFO] +- p2.eclipse-plugin:com.google.gson:jar:2.7.0.v20170129-0911:system
[INFO] +- p2.eclipse-plugin:com.google.guava:jar:21.0.0.v20170206-1425:system
[INFO] +- p2.eclipse-plugin:com.google.inject:jar:3.0.0.v201605172100:system
[INFO] +- p2.eclipse-plugin:com.ibm.icu:jar:58.2.0.v20170418-1837:system
[INFO] +- p2.eclipse-plugin:javax.inject:jar:1.0.0.v20091030:system
[INFO] +- p2.eclipse-plugin:org.antlr.runtime:jar:3.2.0.v201101311130:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-antlr.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-bcel.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-bsf.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-log4j.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-oro.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-regexp.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-resolver.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-apache-xalan2.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-commons-logging.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-commons-net.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jai.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-javamail.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jdepend.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jmf.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-jsch.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-junit4.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-junit.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-launcher.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-netrexx.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-swing.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.ant:jar:lib/ant-testutil.jar:1.10.1.v20170504-0840:system
[INFO] +- p2.eclipse-plugin:org.apache.batik.css:jar:1.8.0.v20170214-1941:system
[INFO] +- p2.eclipse-plugin:org.apache.batik.util:jar:1.8.0.v20170214-1941:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.cli:jar:1.2.0.v201404270220:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.codec:jar:1.9.0.v20170208-1614:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.io:jar:2.2.0.v201405211200:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.jxpath:jar:1.3.0.v200911051830:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.lang:jar:2.6.0.v201404270220:system
[INFO] +- p2.eclipse-plugin:org.apache.commons.logging:jar:1.1.1.v201101211721:system
[INFO] +- p2.eclipse-plugin:org.apache.felix.scr:jar:2.0.10.v20170501-2007:system
[INFO] +- p2.eclipse-plugin:org.apache.httpcomponents.httpclient:jar:4.5.2.v20170210-0925:system
[INFO] +- p2.eclipse-plugin:org.apache.httpcomponents.httpcore:jar:4.4.6.v20170210-0925:system
[INFO] +- p2.eclipse-plugin:org.apache.log4j:jar:1.2.15.v201012070815:system
[INFO] +- p2.eclipse-plugin:org.freemarker:jar:2.3.22.v20160210-1233:system
[INFO] +- p2.eclipse-plugin:org.hamcrest.core:jar:1.3.0.v201303031735:system
[INFO] +- p2.eclipse-plugin:org.junit:jar:junit.jar:4.12.0.v201504281640:system
[INFO] +- p2.eclipse-plugin:org.objectweb.asm:jar:5.2.0.v20170126-0011:system
[INFO] +- p2.eclipse-plugin:org.sat4j.core:jar:2.3.5.v201308161310:system
[INFO] +- p2.eclipse-plugin:org.sat4j.pb:jar:2.3.5.v201404071733:system
[INFO] +- p2.eclipse-plugin:org.tukaani.xz:jar:1.5.0.v20170111-1717:system
[INFO] +- p2.eclipse-plugin:org.w3c.css.sac:jar:1.3.1.v200903091627:system
_____
Diese Nachricht wurde mit einer kostenlosen Version von Proxy-Manager <http://www.dimastr.com/proxyman> gesendet.
Wollen Sie von Ihrem Exchange-Konto mit einer Ihrer Proxy SMTP-Adressen senden?
Testen Sie Proxy-Manager kostenlos!
Diese Fu?zeile wird nicht in der registrierten Version von Proxy-Manager <http://www.dimastr.com/proxyman> angezeigt.
Klicken Sie <http://www.dimastr.com/proxyman/register.htm> hier, um Proxy-Manager zu registrieren.