Skip to main content
aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-11-08Enable Maven reproducible buildsMatthias Sohn1-1/+1
- configure Maven to run build reproducibly [1] - use UTC timestamp of checked out commit as build timestamp - add git-describe, git-commit-id, git-commit-id, git-tags, git-remote-origin-url to MANIFEST.MF files - configure cyclonedx-maven-plugin to also use UTC timestamp of checked out commit - for packaging build use tycho-buildtimestamp-jgit [2] to ensure version uses the timestamp of the last commit - SBOMs are not reproducible by design [3] they should have a build timestamp matching the time when the build was executed and a serial number which is a unique UUID per build run. Hence exclude them from comparison [4]. - Use gmavenplus-plugin to format build timestamps. Maven expects build timestamp in ISO-8601 format, to replace the qualifier in versions the timestamp format must be compatible with rules for OSGi version numbers. Didn't find a way to read the properties set by the git-commit-id-maven-plugin from another plugin. Hence use JGit in a groovy script to get the commit time of the current HEAD and provide it in these two formats. TODO: packaging build (features and p2 repository) is not yet binary reproducible since that's not yet supported by Tycho [5], artefacts have reproducible version numbers but file lastModified timestamps are not yet reproducible. Test plan for Maven build: - build using mvn clean install" - verify second build is reproducible: mvn -T1 clean verify artifact:compare verification seems not to be thread-safe, hence run it with a single thread using option -T1 For packaging build (still fails due to non-reproducible file timestamps): - build using mvn -f org.eclipse.jgit.packaging/pom.xml clean install - verify second build is reproducible: mvn -T1 -f org.eclipse.jgit.packaging/pom.xml clean verify artifact:compare [1] https://maven.apache.org/guides/mini/guide-reproducible-builds.html [2] https://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers [3] https://github.com/CycloneDX/cyclonedx-maven-plugin/issues/84 [4] https://maven.apache.org/plugins/maven-artifact-plugin/compare-mojo.html [5] https://github.com/eclipse-tycho/tycho/issues/233 Change-Id: I0202f55a1b6ae0edd922cfef638beb39d2ce9417
2023-10-05Update orbit to orbit-aggregation/2023-12Matthias Sohn1-1/+0
- add target platform for Eclipse 4.30 (2023-12) - update org.apache.ant to 1.10.14 Change-Id: Ib7fa7cb79e93ecd6009784bc0ad4269bfa71cb29
2023-09-12OSGi: move plugin localization to subdirectoryThomas Wolf3-2/+2
OSGi can have its plugin localization at an arbitrary place; there is no need to have it in a top-level plugin.properties file. In non-OSGi environments having the files at the root level may mean that these files clash with each other, or, as in the referenced bug, with some third-party plug-in's plugin.properties, which may not even have anything to do with localization. Move our OSGi localization to a subfolder OSGI-INF/l10n. For OSGi environments, that's just as good, and for non-OSGi environments it avoid clashes with other root level items on the classpath or in a fat JAR. For fragments, use neither plugin.properties (which would clash with the host plug-in's plugin.properties) nor fragment.properties (which might clash with other fragments for the same fragment host bundle). Instead use names "relative" to the host bundle. Bug: 582394 Change-Id: Ifbcd046d912e2cfe86c0f7259c5ca8de599d9aa1 Signed-off-by: Thomas Wolf <twolf@apache.org>
2023-09-07Prepare 6.8.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Ifc81f0a96c2ced0b25926b9daa539d9cfc951925
2023-09-07Prepare 6.7.1-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I96097ef8c6f198220f513bbc6d5f8881834a1491
2023-09-05JGit v6.7.0.202309050840-rv6.7.0.202309050840-rMatthias Sohn3-4/+4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Change-Id: Ibe952d97bc178adb909cdd40f48957f5b68af699
2023-08-30Prepare 6.7.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: I49751232464e70b7d1dc3292a9f36b7a7015e44f
2023-08-30JGit v6.7.0.202308301100-rc1v6.7.0.202308301100-rc1Matthias Sohn3-4/+4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Change-Id: I712a9f6830364ed404d03f3a145c055906273544
2023-08-02Prepare 6.7.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: I936d2d9106a1e3b7a98ec89fec8ae8a92ec765f2
2023-08-01JGit v6.7.0.202308011830-m2v6.7.0.202308011830-m2Matthias Sohn3-4/+4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Change-Id: I255a979e9f48f60a251ef7b74ced3f720f012706
2023-06-15Fix all Javadoc warnings and fail on themAntoine Musso5-5/+1
This fixes all the javadoc warnings, stops ignoring doclint 'missing' category and fails the build on javadoc warnings for public and protected classes and class members. Since javadoc doesn't allow access specifiers when specifying doclint configuration we cannot set `-Xdoclint:all,-missing/private` hence there is no simple way to skip private elements from doclint. Therefore we check javadoc using the Eclipse Java compiler (which is used by default) and javadoc configuration in `.settings/org.eclipse.jdt.core.prefs` files. This allows more fine grained configuration. We can reconsider this when javadoc starts supporting access specifiers in the doclint configuration. Below are detailled explanations for most modifications. @inheritDoc =========== doclint complains about explicits `{@inheritDoc}` when the parent does not have any documentation. As far as I can tell, javadoc defaults to inherit comments and should only be used when one wants to append extra documentation from the parent. Given the parent has no documentation, remove those usages which doclint complains about. In some case I have moved up the documentation from the concrete class up to the abstract class. Remove `{@inheritDoc}` on overriden methods which don't add additional documentation since javadoc defaults to inherit javadoc of overridden methods. @value to @link =============== In PackConfig, DEFAULT_SEARCH_FOR_REUSE_TIMEOUT and similar are forged from Integer.MAX_VALUE and are thus not considered constants (I guess cause the value would depends on the platform). Replace it with a link to `Integer.MAX_VALUE`. In `StringUtils.toBoolean`, @value was used to refer to the `stringValue` parameter. I have replaced it with `{@code stringValue}`. {@link <url>} to <a> ==================== @link does not support being given an external URL. Replaces them with HTML `<a>`. @since: being invalid ===================== org.eclipse.jgit/src/org/eclipse/jgit/util/Equality.java has an invalid tag `@since: ` due to the extra `:`. Javadoc does not complain about it with version 11.0.18+10 but does with 11.0.19.7. It is invalid regardless. invalid HTML syntax =================== - javadoc doesn't allow <br/>, <p/> and </p> anymore, use <br> and <p> instead - replace <tt>code</tt> by {@code code} - <table> tags don't allow summary attribute, specify caption as <caption>caption</caption> to fix this doclint visibility issue ======================== In the private abstract classes `BaseDirCacheEditor` and `BasePackConnection` links to other methods in the abstract class are inherited in the public subclasses but doclint gets confused and considers them unreachable. The HTML documentation for the sub classes shows the relative links in the sub classes, so it is all correct. It must be a bug somewhere in javadoc. Mute those warnings with: @SuppressWarnings("doclint:missing") Misc ==== Replace `<` and `>` with HTML encoded entities (`&lt; and `&gt;`). In `SshConstants` I went enclosing a serie of -> arrows in @literal. Additional tags =============== Configure maven-javad0c-plugin to allow the following additional tags defined in https://openjdk.org/jeps/8068562: - apiNote - implSpec - implNote Missing javadoc =============== Add missing @params and descriptions Change-Id: I840056389aa59135cfb360da0d5e40463ce35bd0 Also-By: Matthias Sohn <matthias.sohn@sap.com>
2023-05-24Prepare 6.7.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I50ff7ee31046cfc29a087c8963be3deae24b1c9c
2023-03-01Prepare 6.6.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I17893f9db12bcb208866f40a06cd4f1ccbb4fe30
2022-11-23Prepare 6.5.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I4238b6181e96e22e540cf34802a332f868cb6dfb
2022-09-14Prepare 6.4.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I47ca5f1d0263caa0bfc7c303042360c6c5ac4dec
2022-09-12Prepare 6.3.1-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I44e159eca4131880d74d3078060e7e20f9b5ce76
2022-09-07JGit v6.3.0.202209071007-rv6.3.0.202209071007-rMatthias Sohn3-4/+4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Change-Id: Iea3fae9f6f6c5fb0a79f7684334a3e0059738c4f
2022-09-07JGit v6.3.0.2022009070944-rMatthias Sohn3-4/+4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Change-Id: I3cc78dbcf8c7970e80bf1499751611110ec2b30b
2022-08-17Prepare 6.3.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: Ie398b651c5308ec86812bf01fcc563d3e679c828
2022-08-16JGit v6.3.0.202208161710-m3v6.3.0.202208161710-m3Matthias Sohn3-4/+4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Change-Id: I0954d11a1f35eff196b157df3aa8386476c48a7e
2022-06-06Prepare 6.3.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: I092fdd2c35d85bf35e3ef700aa7078e6d304d977
2022-03-03Prepare 6.2.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Ic2dde88bee3242169d6fa50956f8938f3fc4ba8e
2022-01-05Merge branch 'stable-6.0'Thomas Wolf1-0/+1
* stable-6.0: Use slf4j-simple instead of log4j for logging Update orbit to R20211213173813 Change-Id: I746b7fb71571020ce49f7b50fd675c9864327719 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2022-01-05Merge branch 'stable-5.13' into stable-6.0Thomas Wolf1-0/+1
* stable-5.13: Use slf4j-simple instead of log4j for logging Update orbit to R20211213173813 Change-Id: I219ef3901c1d908b91bf9c8f00431b22686ff7a5 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2021-12-31Update orbit to R20211213173813Matthias Sohn1-1/+1
and update - com.google.gson to 2.8.8.v20211029-0838 - javaewah to 1.1.13.v20211029-0839 - net.i2p.crypto.eddsa to 0.3.0.v20210923-1401 - org.apache.ant to 1.10.12.v20211102-1452 - org.apache.commons.compress to 1.21.0.v20211103-2100 - org.bouncycastle.bcprov to 1.69.0.v20210923-1401 - org.junit to 4.13.2.v20211018-1956 Change-Id: I3ac39fc8a5df571d2e290241a03668f1e60880b4
2021-11-29Prepare 6.0.1-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Iddb67ed9578293b83b8147aa18dd8319426f83d1
2021-11-29JGit v6.0.0.202111291000-rv6.0.0.202111291000-rMatthias Sohn3-4/+4
Change-Id: I6441d9226e8131552bfafe1fb2c353f2e07e42ac Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-11-24Prepare 6.1.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Ied07b1298bd32672a5025cec5079440ab9b9a100
2021-11-24Prepare 6.0.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: I4e06186cf62681767962e391331cc65bafddc205
2021-11-24JGit v6.0.0.202111241155-rc1v6.0.0.202111241155-rc1Matthias Sohn3-4/+4
Change-Id: I35dc089a00ee12f83f506fb320d23762fa030063 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-11-17Prepare 6.0.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: Ibfc7fb21b039fe2a7669c8dee3c10f5ade33d520
2021-11-17JGit v6.0.0.202111161950-m3v6.0.0.202111161950-m3Matthias Sohn3-4/+4
Change-Id: If6c36994be05848c567d3d664eb683d9bed26c48 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-11-10Update Orbit to S20211108222137Matthias Sohn1-1/+0
and update dependencies: - com.google.gson to 2.8.8.v20211029-0838 - com.googlecode.javaewah to 1.1.13.v20211029-0839 - net.i2p.crypto.eddsa to 0.3.0.v20210923-1401 - org.apache.ant to 1.10.12.v20211102-1452 - org.apache.commons.compress to 1.21.0.v20211103-2100 - org.bouncycastle.bcprov to 1.69.0.v20210923-1401 - org.junit to 4.13.2.v20211018-1956 Change-Id: I90ca64f6d9f2a15c9a5d9a27d48956182f1698b4
2021-09-29Enable compiler option --releaseMatthias Sohn2-3/+122
This ensures the compiler compiles against the public, supported and documented API for a specific VM version (here 11) [1]. This also means that we don't need EE descriptors in Eclipse anymore in order to ensure that only supported APIs of the selected Java version can be used. According to [2] if option --release is used --source and --target options can't be used. While we are at it also add default value for all new jdt core options added in Eclipse 4.21. [1] https://docs.oracle.com/en/java/javase/11/tools/javac.html [2] https://docs.oracle.com/en/java/javase/14/docs/specs/man/javac.html#option-release Change-Id: I852a5d7b0a3210751c15d79ec91915b4c01c41e2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-09-29Bump minimum required Java version to 11Matthias Sohn3-5/+9
Bug: 569917 Change-Id: Ifdcdb022a3f29321b4d10da1cc34acca68ed7b03 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-09-13Merge branch 'next'Matthias Sohn3-7/+7
* next: Enable CommitCommand to use a fluent style Prepare 6.0.0-SNAPSHOT builds Change-Id: Ibd247d5990983bedadd8b959a82215914d216ed1
2021-09-13Merge branch 'master' into nextMatthias Sohn1-1/+1
* master: (38 commits) Revert "DFS block cache: Refactor to enable parallel index loading" GitServlet: allow to override default error handlers Silence API error for new interface method ProtocolV2Hook#onObjectInfo transport: add object-info capability Ignore IllegalStateException if JVM is already shutting down Update orbit to R20210825222808 for 2021-09 Update spotbugs-maven-plugin to 4.3.0 Update ant to 1.10.11 also in pom.xml DFS block cache: add additional stats to DfsReaderIoStats Update Orbit to S20210817231813 [gpg] Better GPG home directory determination FS: cleanup use of final modifier Ensure FS#searchPath only selects executable files RevWalk: getMergedInto's result is wrong on the second call DFS block cache: Refactor to enable parallel index loading [test] Create keystore with the keytool of the running JDK [gpg] Update to Bouncy Castle 1.69 [test] Create keystore with the keytool of the running JDK [sshd] Minor code clean-up Support commit.template config property ... Change-Id: I9f99e9a513a23c0c0d252334e79c351512d7355e
2021-09-08Prepare 5.13.1-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Ib2f689d8d13eab022da5b5e83d6d6bebc1bb81d3
2021-09-08JGit v5.13.0.202109080827-rv5.13.0.202109080827-rMatthias Sohn3-4/+4
Change-Id: If3b2d4256712cc7e577c23e75c0d4ad940870e72 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-09-01Prepare 5.13.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: I2a1d7ab24d5ca718348f4ce3cda351553e48cd1f
2021-09-01JGit v5.13.0.202109011149-rc1v5.13.0.202109011149-rc1Matthias Sohn3-4/+4
Change-Id: Id8d0970102f18e61a2fc7cf941267c9089d71c1a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-08-25Prepare 5.13.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: I6db044fdd57b60adbc2dd078c4af8cb54bb331c3
2021-08-25JGit v5.13.0.202108250949-m3v5.13.0.202108250949-m3Matthias Sohn3-4/+4
Change-Id: Icc079b28327f5a02256f9a06837c2be6352ea6e3 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-08-24Update ant to 1.10.11 also in pom.xmlMatthias Sohn1-1/+1
This was missed when the target platform was updated to use ant 1.10.11 in cf9baedb5d. Change-Id: I0d503fa4b27df73a7dad68f1b729346596d78332
2021-06-13Prepare 5.13.0-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Ie9cfc1eeb0eda7b2bbe744a22a7e4cfe6d59bc37
2021-06-13Prepare 5.12.1-SNAPSHOT buildsMatthias Sohn3-7/+7
Change-Id: Idf266c34aa9a04cf9c5e0e09bcb415c13d773d4c
2021-06-07JGit v5.12.0.202106070339-rv5.12.0.202106070339-rMatthias Sohn3-4/+4
Change-Id: I0fbfea2c83f1ce83f75130cc97591547032f1104 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-06-03Prepare 5.12.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: Ifc72d3f3ac84b9c4055b95ec0093d877ffb09ab0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-06-02JGit v5.12.0.202106021050-rc1v5.12.0.202106021050-rc1Matthias Sohn3-4/+4
Change-Id: I622ee049f14f37504ff4a062f03d6fc25465d0ec Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2021-06-02Prepare 5.12.0-SNAPSHOT buildsMatthias Sohn3-4/+4
Change-Id: I25e4efc9b40ae4e7168b37385445c73992c5beb0

Back to the top