diff --git a/dev-tools/doap/README.txt b/dev-tools/doap/README.txt
new file mode 100644
index 00000000000..f2a9a9c807a
--- /dev/null
+++ b/dev-tools/doap/README.txt
@@ -0,0 +1,5 @@
+This folder contains the DOAP[1] files for each project.
+
+Upon release, these files should be updated to include new release details.
+
+[1] DOAP: https://github.com/edumbill/doap
diff --git a/dev-tools/doap/lucene.rdf b/dev-tools/doap/lucene.rdf
new file mode 100644
index 00000000000..8f70467443d
--- /dev/null
+++ b/dev-tools/doap/lucene.rdf
@@ -0,0 +1,707 @@
+
+
+
+
+
+ 2001-09-01
+
+ Apache Lucene Core
+
+
+
+ Apache Lucene is a high-performance, full-featured text search engine library
+ Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
+
+
+
+
+ Java
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apache Lucene Team
+
+
+
+
+
+
+ lucene-6.3.0
+ 2016-11-08
+ 6.3.0
+
+
+
+
+ lucene-6.2.1
+ 2016-09-20
+ 6.2.1
+
+
+
+
+ lucene-6.2.0
+ 2016-08-25
+ 6.2.0
+
+
+
+
+ lucene-6.1.0
+ 2016-06-17
+ 6.1.0
+
+
+
+
+ lucene-6.0.1
+ 2016-05-28
+ 6.0.1
+
+
+
+
+ lucene-6.0.0
+ 2016-04-08
+ 6.0.0
+
+
+
+
+ lucene-5.5.3
+ 2016-09-09
+ 5.5.3
+
+
+
+
+ lucene-5.5.2
+ 2016-06-25
+ 5.5.2
+
+
+
+
+ lucene-5.5.1
+ 2016-05-05
+ 5.5.1
+
+
+
+
+ lucene-5.5.0
+ 2016-02-22
+ 5.5.0
+
+
+
+
+ lucene-5.4.1
+ 2016-01-23
+ 5.4.1
+
+
+
+
+ lucene-5.4.0
+ 2015-12-14
+ 5.4.0
+
+
+
+
+ lucene-5.3.2
+ 2016-01-23
+ 5.3.2
+
+
+
+
+ lucene-5.3.1
+ 2015-09-24
+ 5.3.1
+
+
+
+
+ lucene-5.3.0
+ 2015-08-21
+ 5.3.0
+
+
+
+
+ lucene-5.2.1
+ 2015-06-15
+ 5.2.1
+
+
+
+
+ lucene-5.2.0
+ 2015-06-07
+ 5.2.0
+
+
+
+
+ lucene-5.1.0
+ 2015-04-14
+ 5.1.0
+
+
+
+
+ lucene-5.0.0
+ 2015-02-20
+ 5.0.0
+
+
+
+
+ lucene-4.10.4
+ 2015-03-03
+ 4.10.4
+
+
+
+
+ lucene-4.10.3
+ 2014-12-29
+ 4.10.3
+
+
+
+
+ lucene-4.10.2
+ 2014-10-31
+ 4.10.2
+
+
+
+
+ lucene-4.10.1
+ 2014-09-29
+ 4.10.1
+
+
+
+
+ lucene-4.10.0
+ 2014-09-03
+ 4.10.0
+
+
+
+
+ lucene-4.9.1
+ 2014-09-22
+ 4.9.1
+
+
+
+
+ lucene-4.9.0
+ 2014-06-25
+ 4.9.0
+
+
+
+
+ lucene-4.8.1
+ 2014-05-20
+ 4.8.1
+
+
+
+
+ lucene-4.8.0
+ 2014-04-28
+ 4.8.0
+
+
+
+
+ lucene-4.7.2
+ 2014-04-15
+ 4.7.2
+
+
+
+
+ lucene-4.7.1
+ 2014-04-02
+ 4.7.1
+
+
+
+
+ lucene-4.7.0
+ 2014-02-26
+ 4.7.0
+
+
+
+
+ lucene-4.6.1
+ 2014-01-28
+ 4.6.1
+
+
+
+
+ lucene-4.6.0
+ 2013-11-22
+ 4.6.0
+
+
+
+
+ lucene-4.5.1
+ 2013-10-24
+ 4.5.1
+
+
+
+
+ lucene-4.5
+ 2013-10-05
+ 4.5
+
+
+
+
+ lucene-4.4
+ 2013-07-23
+ 4.4
+
+
+
+
+ lucene-4.3.1
+ 2013-06-18
+ 4.3.1
+
+
+
+
+ lucene-4.3
+ 2013-05-06
+ 4.3
+
+
+
+
+ lucene-4.2.1
+ 2013-04-03
+ 4.2.1
+
+
+
+
+ lucene-4.2
+ 2013-03-11
+ 4.2
+
+
+
+
+ lucene-4.1
+ 2013-01-22
+ 4.1
+
+
+
+
+ lucene-4.0
+ 2012-10-12
+ 4.0
+
+
+
+
+ lucene-4.0-BETA
+ 2012-08-13
+ 4.0-BETA
+
+
+
+
+ lucene-4.0-ALPHA
+ 2012-07-03
+ 4.0-ALPHA
+
+
+
+
+ lucene-3.6.2
+ 2012-12-25
+ 3.6.2
+
+
+
+
+ lucene-3.6.1
+ 2012-07-22
+ 3.6.1
+
+
+
+
+ lucene-3.6
+ 2012-04-12
+ 3.6
+
+
+
+
+ lucene-3.5
+ 2011-11-11
+ 3.5
+
+
+
+
+ lucene-3.4
+ 2011-09-15
+ 3.4
+
+
+
+
+ lucene-3.3
+ 2011-07-10
+ 3.3
+
+
+
+
+ lucene-3.2
+ 2011-06-03
+ 3.2
+
+
+
+
+ lucene-3.1
+ 2011-03-31
+ 3.1
+
+
+
+
+ lucene-3.0.3
+ 2010-12-03
+ 3.0.3
+
+
+
+
+ lucene-3.0.2
+ 2010-06-18
+ 3.0.2
+
+
+
+
+ lucene-3.0.1
+ 2010-02-26
+ 3.0.1
+
+
+
+
+ lucene-3.0
+ 2009-11-25
+ 3.0
+
+
+
+
+ lucene-2.9.4
+ 2010-12-03
+ 2.9.4
+
+
+
+
+ lucene-2.9.3
+ 2010-06-18
+ 2.9.3
+
+
+
+
+ lucene-2.9.2
+ 2010-02-26
+ 2.9.2
+
+
+
+
+ lucene-2.9.1
+ 2009-11-06
+ 2.9.1
+
+
+
+
+ lucene-2.9
+ 2009-09-25
+ 2.9
+
+
+
+
+ lucene-2.4.1
+ 2009-03-09
+ 2.4.1
+
+
+
+
+ lucene-2.4
+ 2008-10-08
+ 2.4
+
+
+
+
+ lucene-2.3.2
+ 2008-05-06
+ 2.3.2
+
+
+
+
+ lucene-2.3.1
+ 2008-02-22
+ 2.3.1
+
+
+
+
+ lucene-2.3
+ 2008-01-23
+ 2.3
+
+
+
+
+ lucene-2.2
+ 2007-06-19
+ 2.2
+
+
+
+
+ lucene-2.1
+ 2007-02-17
+ 2.1
+
+
+
+
+ lucene-2.0.0
+ 2006-05-26
+ 2.0.0
+
+
+
+
+ lucene-1.9.1
+ 2006-03-02
+ 1.9.1
+
+
+
+
+ lucene-1.9-final
+ 2006-02-27
+ 1.9 final
+
+
+
+
+ lucene-1.9-rc1
+ 2006-02-21
+ 1.9 RC1
+
+
+
+
+ lucene-1.4.3
+ 2004-12-07
+ 1.4.3
+
+
+
+
+ lucene-1.4.2
+ 2004-10-01
+ 1.4.2
+
+
+
+
+ lucene-1.4.1
+ 2004-08-02
+ 1.4.1
+
+
+
+
+ lucene-1.4-final
+ 2004-07-01
+ 1.4 final
+
+
+
+
+ lucene-1.4-rc3
+ 2004-05-11
+ 1.4 RC3
+
+
+
+
+ lucene-1.4-rc2
+ 2004-03-30
+ 1.4 RC2
+
+
+
+
+ lucene-1.4-rc1
+ 2004-03-29
+ 1.4 RC1
+
+
+
+
+ lucene-1.3-final
+ 2003-12-26
+ 1.3 final
+
+
+
+
+ lucene-1.3-rc3
+ 2003-11-25
+ 1.3 RC3
+
+
+
+
+ lucene-1.3-rc2
+ 2003-10-22
+ 1.3 RC2
+
+
+
+
+ lucene-1.3-rc1
+ 2003-03-24
+ 1.3 RC1
+
+
+
+
+ lucene-1.2-final
+ 2002-06-13
+ 1.2 final
+
+
+
+
+ lucene-1.2-rc5
+ 2002-05-14
+ 1.2 RC5
+
+
+
+
+ lucene-1.2-rc4
+ 2002-02-14
+ 1.2 RC4
+
+
+
+
+ lucene-1.2-rc3
+ 2002-01-27
+ 1.2 RC3
+
+
+
+
+ lucene-1.2-rc2
+ 2001-10-19
+ 1.2 RC2
+
+
+
+
+ lucene-1.2-rc1
+ 2001-10-02
+ 1.2 RC1
+
+
+
+
+ lucene-1.01b
+ 2001-06-02
+ 1.01b
+
+
+
+
+ lucene-1.0
+ 2000-10-04
+ 1.0
+
+
+
+
+ lucene-0.04
+ 2000-04-19
+ 0.04
+
+
+
+
+ lucene-0.01
+ 2000-03-30
+ 0.01
+
+
+
+
diff --git a/dev-tools/doap/solr.rdf b/dev-tools/doap/solr.rdf
new file mode 100644
index 00000000000..1483c64da29
--- /dev/null
+++ b/dev-tools/doap/solr.rdf
@@ -0,0 +1,455 @@
+
+
+
+
+
+ 2006-01-17
+
+ Apache Solr
+
+
+
+ Solr is a full-text search server
+ Solr is an open source enterprise search server based on the Lucene Java search library, with XML/HTTP and JSON, Ruby, and Python APIs, hit highlighting, faceted search, caching, replication, and a web administration interface.
+
+
+
+
+ Java
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apache Solr Team
+
+
+
+
+
+
+ solr-6.3.0
+ 2016-11-08
+ 6.3.0
+
+
+
+
+ solr-6.2.1
+ 2016-09-20
+ 6.2.1
+
+
+
+
+ solr-6.2.0
+ 2016-08-25
+ 6.2.0
+
+
+
+
+ solr-6.1.0
+ 2016-06-17
+ 6.1.0
+
+
+
+
+ solr-6.0.1
+ 2016-05-28
+ 6.0.1
+
+
+
+
+ solr-6.0.0
+ 2016-04-08
+ 6.0.0
+
+
+
+
+ solr-5.5.3
+ 2016-09-09
+ 5.5.3
+
+
+
+
+ solr-5.5.2
+ 2016-06-25
+ 5.5.2
+
+
+
+
+ solr-5.5.1
+ 2016-05-05
+ 5.5.1
+
+
+
+
+ solr-5.5.0
+ 2016-02-22
+ 5.5.0
+
+
+
+
+ solr-5.4.1
+ 2016-01-23
+ 5.4.1
+
+
+
+
+ solr-5.4.0
+ 2015-12-14
+ 5.4.0
+
+
+
+
+ solr-5.3.2
+ 2016-01-23
+ 5.3.2
+
+
+
+
+ solr-5.3.1
+ 2015-09-24
+ 5.3.1
+
+
+
+
+ solr-5.3.0
+ 2015-08-21
+ 5.3.0
+
+
+
+
+ solr-5.2.1
+ 2015-06-15
+ 5.2.1
+
+
+
+
+ solr-5.2.0
+ 2015-06-07
+ 5.2.0
+
+
+
+
+ solr-5.1.0
+ 2015-04-14
+ 5.1.0
+
+
+
+
+ solr-5.0.0
+ 2015-02-20
+ 5.0.0
+
+
+
+
+ solr-4.10.4
+ 2015-03-03
+ 4.10.4
+
+
+
+
+ solr-4.10.3
+ 2014-12-29
+ 4.10.3
+
+
+
+
+ solr-4.10.2
+ 2014-10-31
+ 4.10.2
+
+
+
+
+ solr-4.10.1
+ 2014-09-29
+ 4.10.1
+
+
+
+
+ solr-4.10.0
+ 2014-09-03
+ 4.10.0
+
+
+
+
+ solr-4.9.1
+ 2014-09-22
+ 4.9.1
+
+
+
+
+ solr-4.9.0
+ 2014-06-25
+ 4.9.0
+
+
+
+
+ solr-4.8.1
+ 2014-05-20
+ 4.8.1
+
+
+
+
+ solr-4.8.0
+ 2014-04-28
+ 4.8.0
+
+
+
+
+ solr-4.7.2
+ 2014-04-15
+ 4.7.2
+
+
+
+
+ solr-4.7.1
+ 2014-02-26
+ 4.7.1
+
+
+
+
+ solr-4.7.0
+ 2014-02-26
+ 4.7.0
+
+
+
+
+ solr-4.6.1
+ 2014-01-28
+ 4.6.1
+
+
+
+
+ solr-4.6.0
+ 2013-11-22
+ 4.6.0
+
+
+
+
+ solr-4.5.1
+ 2013-10-24
+ 4.5.1
+
+
+
+
+ solr-4.5
+ 2013-10-05
+ 4.5
+
+
+
+
+ solr-4.4
+ 2013-07-23
+ 4.4
+
+
+
+
+ solr-4.3.1
+ 2013-06-18
+ 4.3.1
+
+
+
+
+ solr-4.3
+ 2013-05-06
+ 4.3
+
+
+
+
+ solr-4.2.1
+ 2013-04-03
+ 4.2.1
+
+
+
+
+ solr-4.2
+ 2013-03-11
+ 4.2
+
+
+
+
+ solr-4.1
+ 2013-01-22
+ 4.1
+
+
+
+
+ solr-4.0
+ 2012-10-12
+ 4.0
+
+
+
+
+ lucene-4.0-BETA
+ 2012-08-13
+ 4.0-BETA
+
+
+
+
+ lucene-4.0-ALPHA
+ 2012-07-03
+ 4.0-ALPHA
+
+
+
+
+ lucene-3.6.2
+ 2012-12-25
+ 3.6.2
+
+
+
+
+ lucene-3.6.1
+ 2012-07-22
+ 3.6.1
+
+
+
+
+ solr-3.6
+ 2012-04-12
+ 3.6
+
+
+
+
+ solr-3.5
+ 2011-11-11
+ 3.5
+
+
+
+
+ solr-3.4
+ 2011-09-15
+ 3.4
+
+
+
+
+ solr-3.3
+ 2011-07-10
+ 3.3
+
+
+
+
+ solr-3.2
+ 2011-06-03
+ 3.2
+
+
+
+
+ solr-3.1
+ 2011-03-31
+ 3.1
+
+
+
+
+ solr-1.4.1
+ 2010-6-25
+ 1.4.1
+
+
+
+
+ solr-1.4.0
+ 2009-11-10
+ 1.4.0
+
+
+
+
+ solr-1.3.0
+ 2008-09-16
+ 1.3.0
+
+
+
+
+ solr-1.2.0
+ 2007-06-06
+ 1.2.0
+
+
+
+
+ solr-1.1.0
+ 2006-12-22
+ 1.1.0
+
+
+
+
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 5ad36ad98a2..61c41cc1338 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -83,6 +83,10 @@ Build
* LUCENE-7387: fix defaultCodec in build.xml to account for the line ending (hossman)
+* LUCENE-7543: Make changes-to-html target an offline operation, by moving the
+ Lucene and Solr DOAP RDF files into the Git source repository under
+ dev-tools/doap/ and then pulling release dates from those files, rather than
+ from JIRA. (Mano Kovacs, hossman, Steve Rowe)
======================= Lucene 6.3.0 =======================
diff --git a/lucene/build.xml b/lucene/build.xml
index 11f4644467d..8b73ca622dd 100644
--- a/lucene/build.xml
+++ b/lucene/build.xml
@@ -357,13 +357,14 @@
+ changes.product="lucene"/>
+
@@ -478,7 +479,7 @@
-
+
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index d92c4529014..d2db40bbd18 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -2504,18 +2504,17 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
+
-
-
+
diff --git a/lucene/site/changes/changes2html.pl b/lucene/site/changes/changes2html.pl
index d71f2962655..b3f8fdb58c5 100755
--- a/lucene/site/changes/changes2html.pl
+++ b/lucene/site/changes/changes2html.pl
@@ -23,9 +23,8 @@
use strict;
use warnings;
+use XML::Simple;
-# JIRA REST API documentation:
-my $project_info_url = 'https://issues.apache.org/jira/rest/api/2/project';
my $jira_url_prefix = 'http://issues.apache.org/jira/browse/';
my $github_pull_request_prefix = 'https://github.com/apache/lucene-solr/pull/';
my $bugzilla_url_prefix = 'http://issues.apache.org/bugzilla/show_bug.cgi?id=';
@@ -45,7 +44,7 @@ my @releases = ();
my @lines = ; # Get all input at once
#
-# Cmdline args: (only from Solr)
+# Cmdline args: (only from Solr)
#
my $product = $ARGV[0];
my %release_dates = &setup_release_dates($ARGV[1]);
@@ -804,10 +803,6 @@ sub get_release_date {
# Handle '1.2 RC6', which should be '1.2 final'
$release = '1.2 final' if ($release eq '1.2 RC6');
- if (not exists($release_dates{$release})) {
- $release =~ s/\.0\.0/\.0/;
- }
-
$reldate = ( exists($release_dates{$release})
? $release_dates{$release}
: 'unknown');
@@ -825,60 +820,46 @@ sub get_release_date {
# Returns a list of alternating release names and dates, for use in populating
# the %release_dates hash.
#
-# Pulls release dates via the JIRA REST API. JIRA does not list
-# X.Y RCZ releases independently from releases X.Y, so the RC dates
-# as well as those named "final" are included below.
+# Pulls release dates from the project DOAP file.
#
sub setup_release_dates {
my %release_dates;
my $file = shift;
- if (uc($product) eq 'LUCENE') {
- %release_dates
- = ( '0.01' => '2000-03-30', '0.04' => '2000-04-19',
- '1.0' => '2000-10-04', '1.01b' => '2001-06-02',
- '1.2 RC1' => '2001-10-02', '1.2 RC2' => '2001-10-19',
- '1.2 RC3' => '2002-01-27', '1.2 RC4' => '2002-02-14',
- '1.2 RC5' => '2002-05-14', '1.2 final' => '2002-06-13',
- '1.3 RC1' => '2003-03-24', '1.3 RC2' => '2003-10-22',
- '1.3 RC3' => '2003-11-25', '1.3 final' => '2003-12-26',
- '1.4 RC1' => '2004-03-29', '1.4 RC2' => '2004-03-30',
- '1.4 RC3' => '2004-05-11', '1.4 final' => '2004-07-01',
- '1.4.1' => '2004-08-02', '1.4.2' => '2004-10-01',
- '1.4.3' => '2004-12-07', '1.9 RC1' => '2006-02-21',
- '1.9 final' => '2006-02-27', '1.9.1' => '2006-03-02',
- '2.0.0' => '2006-05-26', '2.1.0' => '2007-02-14',
- '2.2.0' => '2007-06-19', '2.3.0' => '2008-01-21',
- '2.3.1' => '2008-02-22', '2.3.2' => '2008-05-05',
- '2.4.0' => '2008-10-06', '2.4.1' => '2009-03-09',
- '2.9.0' => '2009-09-23', '2.9.1' => '2009-11-06',
- '3.0.0' => '2009-11-25');
- }
- my $project_info_json = readFile($file);
- my $project_info = json2perl($project_info_json);
- for my $version (@{$project_info->{versions}}) {
- if ($version->{releaseDate}) {
- my $date = substr($version->{releaseDate}, 0, 10);
- my $version_name = $version->{name};
- $release_dates{$version->{name}} = $date;
- if ($version_name =~ /^\d+\.\d+$/) {
- my $full_version_name = "$version->{name}.0";
- $release_dates{$full_version_name} = $date;
+ my $project_info = XMLin($file)->{Project};
+ my $version;
+ my $date;
+ for my $release (@{$project_info->{release}}) {
+ $version = $release->{Version};
+ if ($version->{created}) {
+ $date = normalize_date($version->{created});
+ my $version_name = $version->{revision};
+ $release_dates{$version->{revision}} = $date;
+ if ($version_name =~ /^([1-9]\d*\.\d+)([^.0-9].*|$)/) {
+ my $padded_version_name = "$1.0$2"; # Alias w/trailing ".0"
+ $release_dates{$padded_version_name} = $date;
+ } elsif ($version_name =~ /\.0(?=[^.0-9]|$)/) {
+ my $trimmed_version_name = $version_name;
+ $trimmed_version_name =~ s/\.0(?=[^.0-9]|$)//; # Alias w/o trailing ".0"
+ $release_dates{$trimmed_version_name} = $date;
}
}
}
return %release_dates;
}
-sub readFile {
- my $file = shift;
- open(F, '<'.$file) || die "could not open $file: $!";
- local $/ = undef;
- my $project_info_json = ;
- close(F);
- return $project_info_json;
+#
+# normalize_date
+#
+# Left-zero-pads month and day-of-month to 2 digits in dates of format YYYY-(M)M-(D)D
+#
+sub normalize_date {
+ my $date = shift;
+ my ($year, $month, $dom) = $date =~ /^(2\d\d\d)-(\d+)-(\d+)$/;
+ return sprintf("%04d-%02d-%02d", $year, $month, $dom);
}
+
#
# setup_month_regex
#
@@ -1038,23 +1019,4 @@ sub setup_lucene_bugzilla_jira_map {
36628 => 432);
}
-#
-# json2perl
-#
-# Converts a JSON string to the equivalent Perl data structure
-#
-sub json2perl {
- my $json_string = shift;
- $json_string =~ s/(:\s*)(true|false)/$1"$2"/g;
- $json_string =~ s/":/",/g;
- $json_string =~ s/\'/\\'/g;
- $json_string =~ s/\"/\'/g;
- my $project_info = eval $json_string;
- die "ERROR eval'ing munged JSON string ||$json_string||: $@\n"
- if ($@);
- die "ERROR empty value after eval'ing JSON string ||$json_string||\n"
- unless $project_info;
- return $project_info;
-}
-
1;
diff --git a/solr/build.xml b/solr/build.xml
index b426d79a40e..4c52b031d37 100644
--- a/solr/build.xml
+++ b/solr/build.xml
@@ -483,7 +483,7 @@
+ changes.product="solr"/>
-
+