# Check if all the packaging/ development tasks work with latest Ant 1.8.x and switch to ant 1.8.x as the "officially supported" build platform.

## Details

• Status: Closed
• Priority: Trivial
• Resolution: Fixed
• Affects Version/s: None
• Fix Version/s:
• Component/s:
• Labels:
None
• Lucene Fields:
New

## Description

Diff the outputs between ant 1.8.2 and ant 1.7.1.

```Target         Windows   Ubuntu    Mac   Jenkins
------------------------------------------------
/
ivy-bootstrap  OK        OK      OK       ?
jar-checksums  OK        OK      OK       ?
validate       OK        OK      OK       ?
test           OK        OK      OK      OK
lucene/
prepare-relea* OK        OK      OK       ?
solr/
prepare-relea* OK        OK      OK       ?
```

Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease

Differences log:

• ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior.
• manifest timestamps are slightly different (Created-By - jvm version is formatted differently, I think more human-friendly in 1.8).
```1.7: Created-By: 22.1-b02 (Oracle Corporation)
1.8: Created-By: 1.7.0_03-b05 (Oracle Corporation)
```

## Attachments

1. LUCENE-4016.patch
3 kB
Dawid Weiss

## Activity

Dawid Weiss created issue -
Field Original Value New Value
Description To be checked:

- Do Lucene and Solr packaging targets generate the same exact release artifacts (modulo timestamps) as ant 1.7.1?
- Does the clover integration, key signing, and other stuff that jenkins jobs use work correctly?
Diff the output artifacts compared to what was produced by ant 1.7.
{noformat}
Target Windows Ubuntu Mac Jenkins
------------------------------------------------
/
ivy-bootstrap ? ? ? ?
jar-checksums ? ? ? ?
validate ? ? ? ?
test ? ? ? ?
lucene/
clover ? ? ? ?
documentation ? ? ? ?
package-tgz ? ? ? ?
package-zip ? ? ? ?
package-tgz-src ? ? ? ?
package-all-b* ? ? ? ?
solr/
clover ? ? ? ?
create-package ? ? ? ?
dist ? ? ? ?
example ? ? ? ?
package-src-tgz ? ? ? ?
run-example ? ? ? ?
{noformat}
 Description Diff the output artifacts compared to what was produced by ant 1.7. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap ? ? ? ?   jar-checksums ? ? ? ?   javadocs ? ? ? ?   validate ? ? ? ?   test ? ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Diff the output artifacts compared to what was produced by ant 1.7. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap ? ? ? ?   jar-checksums ? ? ? ?   javadocs ? ? ? ?   validate ? ? ? ?   test ? ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease
 Description Diff the output artifacts compared to what was produced by ant 1.7. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap ? ? ? ?   jar-checksums ? ? ? ?   javadocs ? ? ? ?   validate ? ? ? ?   test ? ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Diff the output artifacts compared to what was produced by ant 1.7. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap ? ? ? ?   jar-checksums ? ? ? ?   javadocs ? ? ? ?   validate ? ? ? ?   test OK ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.0 creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html
 Description Diff the output artifacts compared to what was produced by ant 1.7. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap ? ? ? ?   jar-checksums ? ? ? ?   javadocs ? ? ? ?   validate ? ? ? ?   test OK ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.0 creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK ? ? ?   jar-checksums OK ? ? ?   validate OK ? ? ?   test OK ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior.
Hide
Robert Muir added a comment -

ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior.

What is the effect of this on javadocs? I intentionally added checks to flush out 'secret' javadocs for packages that had no classes, because its a sign they should really be in overview.html or restructured somehow (http://svn.apache.org/viewvc?rev=1328844&view=rev). Will this break that?

I know, its funky how the check works, by allowing it (includenosourcepackages="true"), we cause a javadocs warning
to occur as a side effect (versus silently discarding the documentation), failing the build

Show
Robert Muir added a comment - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. What is the effect of this on javadocs? I intentionally added checks to flush out 'secret' javadocs for packages that had no classes, because its a sign they should really be in overview.html or restructured somehow ( http://svn.apache.org/viewvc?rev=1328844&view=rev ). Will this break that? I know, its funky how the check works, by allowing it (includenosourcepackages="true"), we cause a javadocs warning to occur as a side effect (versus silently discarding the documentation), failing the build
Hide
Dawid Weiss added a comment -

I only see "package-info.class" generated for source files like spatial\src\java\org\apache\lucene\spatial\package-info.java. This is generated with Ant 1.8 but is not with Ant 1.7.

There are no other differences other than timestamps (builds executed at different time).

Show
Dawid Weiss added a comment - I only see "package-info.class" generated for source files like spatial\src\java\org\apache\lucene\spatial\package-info.java. This is generated with Ant 1.8 but is not with Ant 1.7. There are no other differences other than timestamps (builds executed at different time).
 Description Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK ? ? ?   jar-checksums OK ? ? ?   validate OK ? ? ?   test OK ? ? ? lucene/   clover ? ? ? ?   documentation ? ? ? ?   javadocs ? ? ? ?   package-tgz ? ? ? ?   package-zip ? ? ? ?   package-tgz-src ? ? ? ?   package-all-b* ? ? ? ? solr/   clover ? ? ? ?   create-package ? ? ? ?   dist ? ? ? ?   example ? ? ? ?   javadocs ? ? ? ?   package-src-tgz ? ? ? ?   run-example ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK ? ? ?   jar-checksums OK ? ? ?   validate OK ? ? ?   test OK ? ? ? lucene/   clover ? ? ? ?   prepare-relea* OK ? ? ? solr/   clover ? ? ? ?   run-example ? ? ? ?   prepare-relea* ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior.
Hide
Robert Muir added a comment -

So that means if i have a package, with only a package.html and no classes... that its package.html is now visible?

I'm just trying to think about how my checker will cope

Show
Robert Muir added a comment - So that means if i have a package, with only a package.html and no classes... that its package.html is now visible? I'm just trying to think about how my checker will cope
Hide
Dawid Weiss added a comment -

We misunderstood each other. These package-info.class files are generated for package-info.java (which are a way to put annotations on a package). There are three such files in Lucene (in spatial).

Show
Dawid Weiss added a comment - We misunderstood each other. These package-info.class files are generated for package-info.java (which are a way to put annotations on a package). There are three such files in Lucene (in spatial).
 Description Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK ? ? ?   jar-checksums OK ? ? ?   validate OK ? ? ?   test OK ? ? ? lucene/   clover ? ? ? ?   prepare-relea* OK ? ? ? solr/   clover ? ? ? ?   run-example ? ? ? ?   prepare-relea* ? ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK ? ? ?   jar-checksums OK ? ? ?   validate OK ? ? ?   test OK ? ? ? lucene/   prepare-relea* OK ? ? ? solr/   prepare-relea* OK ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. - manifest timestamps are slightly different (Created-By - jvm version is formatted differently, I think more human-friendly in 1.8). {noformat} 1.7: Created-By: 22.1-b02 (Oracle Corporation) 1.8: Created-By: 1.7.0_03-b05 (Oracle Corporation) {noformat}
Hide
Dawid Weiss added a comment -

I'll check Ubuntu tomorrow. If anybody wants to give Mac a try, go ahead. I don't think there will be any differences, really – if it passed without any glitches on my Windows machine I don't expect any problems on other platforms (typically it's windows that causes problems).

Show
Dawid Weiss added a comment - I'll check Ubuntu tomorrow. If anybody wants to give Mac a try, go ahead. I don't think there will be any differences, really – if it passed without any glitches on my Windows machine I don't expect any problems on other platforms (typically it's windows that causes problems).
 Description Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK ? ? ?   jar-checksums OK ? ? ?   validate OK ? ? ?   test OK ? ? ? lucene/   prepare-relea* OK ? ? ? solr/   prepare-relea* OK ? ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. - manifest timestamps are slightly different (Created-By - jvm version is formatted differently, I think more human-friendly in 1.8). {noformat} 1.7: Created-By: 22.1-b02 (Oracle Corporation) 1.8: Created-By: 1.7.0_03-b05 (Oracle Corporation) {noformat} Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK OK ? ?   jar-checksums OK OK ? ?   validate OK OK ? ?   test OK OK ? ? lucene/   prepare-relea* OK OK ? ? solr/   prepare-relea* OK OK ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. - manifest timestamps are slightly different (Created-By - jvm version is formatted differently, I think more human-friendly in 1.8). {noformat} 1.7: Created-By: 22.1-b02 (Oracle Corporation) 1.8: Created-By: 1.7.0_03-b05 (Oracle Corporation) {noformat}
Hide
Dawid Weiss added a comment -

I'm planning on switching Ubuntu's symlinks to ant 1.8.2 and let it run for a while. So far nothing's been different (I still don't have a confirmation from a mac, but I bet it's identical there). Report any problems, please.

Show
Dawid Weiss added a comment - I'm planning on switching Ubuntu's symlinks to ant 1.8.2 and let it run for a while. So far nothing's been different (I still don't have a confirmation from a mac, but I bet it's identical there). Report any problems, please.
Dawid Weiss committed 1330467 (1 file)
Reviews: none

LUCENE-4016: using ant 1.8.2 on jenkins to build 4.x line builds.

Dawid Weiss committed 1330471 (1 file)
Reviews: none

LUCENE-4016: correcting condition.

 Description Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK OK ? ?   jar-checksums OK OK ? ?   validate OK OK ? ?   test OK OK ? ? lucene/   prepare-relea* OK OK ? ? solr/   prepare-relea* OK OK ? ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. - manifest timestamps are slightly different (Created-By - jvm version is formatted differently, I think more human-friendly in 1.8). {noformat} 1.7: Created-By: 22.1-b02 (Oracle Corporation) 1.8: Created-By: 1.7.0_03-b05 (Oracle Corporation) {noformat} Diff the outputs between ant 1.8.2 and ant 1.7.1. {noformat} Target Windows Ubuntu Mac Jenkins ------------------------------------------------ /   ivy-bootstrap OK OK OK ?   jar-checksums OK OK OK ?   validate OK OK OK ?   test OK OK OK OK lucene/   prepare-relea* OK OK OK ? solr/   prepare-relea* OK OK OK ? {noformat} Check consistency with release instructions: http://wiki.apache.org/lucene-java/ReleaseTodo and http://wiki.apache.org/solr/HowToRelease Differences log: - ant 1.8.x creates empty package-info.class where ant 1.7.x would fail to do so. This is documented at http://ant.apache.org/manual/Tasks/javac.html and is the expected behavior. - manifest timestamps are slightly different (Created-By - jvm version is formatted differently, I think more human-friendly in 1.8). {noformat} 1.7: Created-By: 22.1-b02 (Oracle Corporation) 1.8: Created-By: 1.7.0_03-b05 (Oracle Corporation) {noformat}
Hide
Dawid Weiss added a comment -

Updating the required ant version to 1.8.2+.

Show
Dawid Weiss added a comment - Updating the required ant version to 1.8.2+.
 Attachment LUCENE-4016.patch [ 12524352 ]
Hide
Dawid Weiss added a comment -

Jenkins is running ant 1.8.2. Everything seems to work identically to ant 1.7. I've attached a patch that enforces ant 1.8.2 or later so if you have an older ant, the build will fail for you with a message saying you need to upgrade.

Explanation – ant 1.8.2 is available by default on macs and 1.8.3 is relatively new so I decided to make 1.8.2 a required version. Everything works fine with 1.8.3 as well so you can use the latest one too.

If there are no objections, I'll commit it shortly.

Show
Dawid Weiss added a comment - Jenkins is running ant 1.8.2. Everything seems to work identically to ant 1.7. I've attached a patch that enforces ant 1.8.2 or later so if you have an older ant, the build will fail for you with a message saying you need to upgrade. Explanation – ant 1.8.2 is available by default on macs and 1.8.3 is relatively new so I decided to make 1.8.2 a required version. Everything works fine with 1.8.3 as well so you can use the latest one too. If there are no objections, I'll commit it shortly.
Hide
Michael McCandless added a comment -

As far as I can tell, I can't reproduce the output truncation I was seeing before.

Before, it reproduced easily (1.7.1 worked, 1.8.3 truncated)... I never got to the bottom of it.

So I think the recent changes to the test infra must've worked around the problem?

So I'm fine w/ requiring 1.8.x.

Show
Michael McCandless added a comment - As far as I can tell, I can't reproduce the output truncation I was seeing before. Before, it reproduced easily (1.7.1 worked, 1.8.3 truncated)... I never got to the bottom of it. So I think the recent changes to the test infra must've worked around the problem? So I'm fine w/ requiring 1.8.x.
Hide
Dawid Weiss added a comment -

I'm sure it's switching to junit4 - it's a different runner and different type of buffering. Not everything is smooth (there are issues with jvm debugging options, jvm warnings, etc.) but I'm working on these.

Show
Dawid Weiss added a comment - I'm sure it's switching to junit4 - it's a different runner and different type of buffering. Not everything is smooth (there are issues with jvm debugging options, jvm warnings, etc.) but I'm working on these.
Hide
Robert Muir added a comment -

patch looks good.

Thanks for doing all this testing!

Show
Robert Muir added a comment - patch looks good. Thanks for doing all this testing!
Dawid Weiss committed 1331284 (4 files)
Reviews: none

LUCENE-4016: require ant 1.8.2 or later. Sorry Uwe.

 Status Open [ 1 ] Resolved [ 5 ] Resolution Fixed [ 1 ]
 Status Resolved [ 5 ] Closed [ 6 ]

## People

• Assignee:
Dawid Weiss
Reporter:
Dawid Weiss