This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/attic.git
The following commit(s) were added to refs/heads/main by this push:
new a24e65a Fix up retire.rb
a24e65a is described below
commit a24e65ab732962b9ce1d45d84e5c5fa3c862fdc8
Author: Sebb <[email protected]>
AuthorDate: Thu May 1 17:57:16 2025 +0100
Fix up retire.rb
Needs updated psych to run under GHA
---
.github/workflows/retire.yml | 12 +++++++++---
Gemfile | 2 ++
Gemfile.lock | 6 ++++++
retire.rb | 25 ++++++++++++++++---------
4 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/retire.yml b/.github/workflows/retire.yml
index 51dfed0..7203570 100644
--- a/.github/workflows/retire.yml
+++ b/.github/workflows/retire.yml
@@ -39,11 +39,17 @@ jobs:
steps:
- name: Install svn package (not included by default)
run: |
- sudo apt-get update
- sudo apt-get install subversion
+ sudo apt-get -q update
+ sudo apt-get -q install subversion
- uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up Ruby
+ # Although ubuntu-latest includes ruby 3.2.2, this step is needed to
set up bundler
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: 3.2.3
+ bundler-cache: true
- name: Create PR for _data/projects/pid.yaml
env:
GH_TOKEN: ${{ github.token }}
@@ -62,7 +68,7 @@ jobs:
set -v
# create new branch
git switch -c retire-$PID
- ruby retire.rb $PID
+ bundle exec ruby retire.rb $PID
git add -A
git commit -m"Retire $PID"
# This will fail if there is an existing branch and PR
diff --git a/Gemfile b/Gemfile
index fb982b7..c006415 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,3 +5,5 @@ gem "jekyll", "~> 4.4.1" # installed by `gem jekyll`
gem "just-the-docs", "0.10.1" # pinned to the current release
# gem "just-the-docs" # always download the latest release
+
+gem "psych", "~> 5.2.0" # needed for retire.rb, as the default is too old
diff --git a/Gemfile.lock b/Gemfile.lock
index 2052fe4..1522e7a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -8,6 +8,7 @@ GEM
colorator (1.1.0)
concurrent-ruby (1.3.5)
csv (3.3.2)
+ date (3.4.1)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
@@ -68,6 +69,9 @@ GEM
mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
+ psych (5.2.3)
+ date
+ stringio
public_suffix (6.0.1)
rake (13.2.1)
rb-fsevent (0.11.2)
@@ -80,6 +84,7 @@ GEM
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-linux-gnu)
google-protobuf (~> 4.29)
+ stringio (3.1.7)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.6.0)
@@ -92,6 +97,7 @@ PLATFORMS
DEPENDENCIES
jekyll (~> 4.4.1)
just-the-docs (= 0.10.1)
+ psych (~> 5.2.0)
BUNDLED WITH
2.5.9
diff --git a/retire.rb b/retire.rb
index 60666ae..c5bd4d3 100755
--- a/retire.rb
+++ b/retire.rb
@@ -29,8 +29,8 @@
# TODO:
# - does not check for Bugzilla issues
# - does not check for GitHub issues
-# - Jira: excalibur/juddi - does not find all the entries
-# - Cwiki: did not find all ODE and COCOON entries
+# - Jira: juddi - does not find scout (is there an alias documented somewhere?)
+# - Cwiki: did not find ODE2
# - aliases: does not check for previous names
# Input:
@@ -53,6 +53,7 @@ require 'open3'
# Sources
CTTEE_RETIRED = 'https://whimsy.apache.org/public/committee-retired.json'
CWIKI_INFO =
'https://cwiki.apache.org/confluence/rest/api/space/?type=global&limit=1000'
+# Note: Two Wikis are lower-case: labs, usergrid. Upper case does seem to be
equivalent for display.
JIRA = 'https://issues.apache.org/jira/rest/api/2/project'
SVNURL = 'https://svn.apache.org/repos/asf/'
GITREPOS = 'https://gitbox.apache.org/repositories.json'
@@ -114,10 +115,11 @@ def find_wikis(pid)
names
end
-# Allow for Apache prefix and (Retired) suffix etc.
+# Allow for Apache prefix and (Retired) suffixes etc.
+# returns first word, downcased
# TODO: what about subnames?
def canon_name(name)
- name.downcase.sub('apache','').sub('(retired)', '').sub('(old)', '').strip
+ name.downcase.sub('apache','').gsub('(retired)', '').sub('(old)',
'').strip.split.first
end
def get_jiras(pid)
@@ -193,12 +195,17 @@ def main()
jiras = get_jiras pid
if jiras.size > 0
- data[:issue_tracker] = {
+ data[:issue_trackers] ||= []
+ tracker =
+ {
type: 'JIRA'
}
- data[:issue_tracker][:keys] = jiras if jiras.size > 1 or jiras.first !=
pid.upcase
+ tracker[:keys] = jiras if jiras.size > 1 or jiras.first != pid.upcase
+ data[:issue_trackers] << tracker
end
+ # TODO: Allow for Bugzilla and GitHub
+
wikis = find_wikis pid
if wikis.size > 0
data[:wiki] = {
@@ -207,12 +214,12 @@ def main()
data[:wiki][:keys] = wikis if wikis.size > 1 or wikis.first != pid.upcase
end
- output = "_data/projects/#{pid}.yaml"
+ dir = ENV['OUTPUT'] || '_data/projects' # Allow override for testing
+ output = File.join(dir, "#{pid}.yaml")
puts "Creating #{output}"
content = YAML.safe_dump(data, permitted_classes: [Date], stringify_names:
true, indentation: 4)
# Massage the output to look more like existing files
- tmp = content.gsub(%r{^- }, ' - ').gsub(%r{^- }, ' - ')
- tmp.sub!('project_description: ', "project_description: >-\n ")
+ tmp = content.sub('project_description: ', "project_description: >-\n ")
File.write(output, tmp)
end
end