From 33ff6cde9be9b9ab9c2e4c8f9dc5221bc998b673 Mon Sep 17 00:00:00 2001 From: Steve Rowe Date: Mon, 21 Nov 2016 16:47:40 -0500 Subject: [PATCH] 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. --- dev-tools/doap/README.txt | 5 + dev-tools/doap/lucene.rdf | 707 ++++++++++++++++++++++++++++ dev-tools/doap/solr.rdf | 455 ++++++++++++++++++ lucene/CHANGES.txt | 4 + lucene/build.xml | 5 +- lucene/common-build.xml | 5 +- lucene/site/changes/changes2html.pl | 96 ++-- solr/build.xml | 4 +- 8 files changed, 1207 insertions(+), 74 deletions(-) create mode 100644 dev-tools/doap/README.txt create mode 100644 dev-tools/doap/lucene.rdf create mode 100644 dev-tools/doap/solr.rdf 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 9e41067dda5..ca39e65d889 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -131,6 +131,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"/> - +