This is an automated email from the ASF dual-hosted git repository.
curcuru pushed a commit to branch json-editor
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/json-editor by this push:
new ccdb79e Sketch of dataflow mapping
ccdb79e is described below
commit ccdb79e6580ad993aa4f81344ac54a36bc8411b3
Author: Shane Curcuru <[email protected]>
AuthorDate: Mon May 1 21:27:44 2017 -0400
Sketch of dataflow mapping
Should dataflow.json just be a file, or should it get turned into a
lib/whimsy/asf model for easier use?
---
www/test/dataflow-schema.json | 38 ++-----
www/test/dataflow.cgi | 59 ++++++++++
www/test/dataflow.json | 248 ++++++++++++++++++++++++++++++++++++++++--
3 files changed, 304 insertions(+), 41 deletions(-)
diff --git a/www/test/dataflow-schema.json b/www/test/dataflow-schema.json
index 043d29d..826bc7f 100644
--- a/www/test/dataflow-schema.json
+++ b/www/test/dataflow-schema.json
@@ -6,27 +6,20 @@
"datafile": {
"id": "/properties/datafile",
"properties": {
- "generator": {
- "default": "ASF::Committee|filename.cgi",
- "description": "The code that generates/writes this data;
either ASF::Class or path/file.rb.",
- "id": "/properties/datafile/properties/generator",
- "title": "Generator",
- "type": "string"
- },
+ "description": {
+ "default": "Describe what data is in the file",
+ "description": "This is the description of the thing
itself.",
+ "id": "/properties/datafile/properties/description",
+ "title": "Description",
+ "type": "string"
+ },
"maintainer": {
- "default": "role|mailing-list",
- "description": "Group responsible for maintaining this
data; ASF officer role or mailinglist.",
+ "default": "role|path/tool.rb",
+ "description": "Group/script responsible for maintaining
this data; ASF officer role or mailinglist.",
"id": "/properties/datafile/properties/maintainer",
"title": "Maintainer",
"type": "string"
},
- "model": {
- "default": "ASF::Committee|filename.rb",
- "description": "Any code that reads or models this data;
either ASF::Class or path/file.rb.",
- "id": "/properties/datafile/properties/model",
- "title": "DataModel",
- "type": "string"
- },
"sources": {
"additionalItems": true,
"id": "/properties/datafile/properties/sources",
@@ -39,19 +32,6 @@
},
"type": "array",
"uniqueItems": true
- },
- "usedby": {
- "additionalItems": true,
- "id": "/properties/datafile/properties/usedby",
- "items": {
- "default": "https://projects.apache.org/index.html",
- "description": "Known tools/websites that directly
rely on this data.",
- "id": "/properties/datafile/properties/usedby/items",
- "title": "UsedBy",
- "type": "string"
- },
- "type": "array",
- "uniqueItems": true
}
},
"required": [
diff --git a/www/test/dataflow.cgi b/www/test/dataflow.cgi
new file mode 100644
index 0000000..6a40d4c
--- /dev/null
+++ b/www/test/dataflow.cgi
@@ -0,0 +1,59 @@
+#!/usr/bin/env ruby
+# Wvisible:tools Crawl data sources and emit /public related links
+$LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
+require 'json'
+require 'whimsy/asf'
+require 'wunderbar'
+require 'wunderbar/bootstrap'
+
+PAGETITLE = 'Public Datafiles And Dependencies'
+
+_html do
+ _body? do
+ _whimsy_header PAGETITLE
+ deplist = JSON.parse(File.read('dataflow.json'))
+ _whimsy_content do
+ _p %{ Whimsy tools consume and produce a variety of data files
+ about PMCs and the ASF as a whole. This non-comprehensive
+ page explains which tools generate what intermediate data,
+ and where the canonical underlying data sources are (many
+ of which are privately stored).
+ }
+
+ _ul do
+ deplist.each do |dep, info|
+ _li do
+ _a '', name: dep
+ if dep =~ /http/i then
+ _code do
+ _a File.basename(dep), href: dep
+ end
+ else
+ _code dep
+ end
+ _ info['description']
+ _br
+ if info['maintainer'] =~ %r{/} then
+ _span.text_muted "Maintained by: Whimsy PMC using script:
#{info['maintainer']}"
+ else
+ _a.text_muted "Maintained by role/PMC: #{info['maintainer']}",
href: "https://whimsy.apache.org/roster/orgchart/#{info['maintainer']}"
+ end
+ _br
+ if info.key?('sources') then
+ _ul do
+ _span.text_muted 'Derived from:'
+ info['sources'].each do |src|
+ _li do
+ _a "#{src}", href: "##{src}"
+ end
+ end
+ end
+ else
+ _br # Add a little more space
+ end
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/www/test/dataflow.json b/www/test/dataflow.json
index 4f21d6a..1979198 100644
--- a/www/test/dataflow.json
+++ b/www/test/dataflow.json
@@ -1,16 +1,240 @@
{
- "committee-info.json": {
- "period": "d",
- "maintainer": "generator",
- "model": "ASF::Committee",
- "generator": "tools/public_committee_info.rb",
- "usedby": [
- "https://projects.apache.org",
- "https://whimsy.apache.org/"
- ],
- "sources": [
- "private/committers/board/committee-info.txt",
- "ASF::LDAP"
+ "https://whimsy.apache.org/public/committee-info.json": {
+ "description": "Committee (PMC) names and membership",
+ "maintainer": "/www/roster/public_committee_info.rb",
+ "sources": [
+ "/lib/whimsy/asf/committee.rb",
+ "/lib/whimsy/asf/person.rb",
+ "private/committers/board/committee-info.txt"
+ ]
+ },
+ "https://whimsy.apache.org/public/icla-info.json": {
+ "description": "Names of people who have submitted ICLAs who have uids
(committer accounts)",
+ "maintainer": "/tools/icla-info.rb",
+ "sources": [
+ "/lib/whimsy/asf/icla.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/icla-info_noid.json": {
+ "description": "Names of people who have submitted ICLAs who don't (yet)
have uids (commiter accounts)",
+ "maintainer": "/tools/icla-info_noid.rb",
+ "sources": [
+ "/lib/whimsy/asf/icla.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/member-info.json": {
+ "description": "ASF Member name listing",
+ "maintainer": "/tools/member-info.rb",
+ "sources": [
+ "/lib/whimsy/asf/member.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_ldap_authgroups.json": {
+ "description": "Membership of LDAP auth groups. Membership of an LDAP auth
group is used to grant commit karma for sub-project and other resources",
+ "maintainer": "/www/roster/public_ldap_authgroups.rb",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_ldap_committees.json": {
+ "description": "Membership of LDAP committee groups. Note: Membership of
an LDAP committee group != membership of the PMC",
+ "maintainer": "/www/roster/public_ldap_committees.rb",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_ldap_groups.json": {
+ "description": "Membership of LDAP unix groups. Membership of an LDAP unix
group is used to grant commit karma for a whole project",
+ "maintainer": "/www/roster/public_ldap_groups.rb",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_ldap_people.json": {
+ "description": "Basic details of LDAP personal entries. Shows the public
name and whether the login is currently disabled",
+ "maintainer": "/www/roster/public_ldap_people.rb",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_ldap_services.json": {
+ "description": "Membership of LDAP service groups. For example pmc_chairs
shows the list of people with PMC chair karma",
+ "maintainer": "/www/roster/public_ldap_services.rb",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_nonldap_groups.json": {
+ "description": "Membership of auth groups not defined in LDAP. For
example, Incubator podlings",
+ "maintainer": "/www/roster/public_nonldap_groups.rb",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_podling_status.json": {
+ "description": "Current Incubation status of each podling",
+ "maintainer": "/www/roster/public_podling_status.rb",
+ "sources": [
+ "/lib/whimsy/asf/podlings.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/public_podlings.json": {
+ "description": "Listings of podling data TODO?",
+ "maintainer": "/www/roster/public_podlings.rb",
+ "sources": [
+ "/lib/whimsy/asf/podlings.rb"
+ ]
+ },
+ "https://whimsy.apache.org/public/site-scan.json": {
+ "description": "Current status of project websites relating to required
navigation links",
+ "maintainer": "/tools/site-scan.rb",
+ "sources": [
+ "https://www.apache.org/foundation/marks/pmcs"
+ ]
+ },
+ "https://www.apache.org/foundation/marks/pmcs": {
+ "description": "Policy for display of Apache PMC websites",
+ "maintainer": "brand"
+ },
+ "/lib/whimsy/asf/auth.rb": {
+ "description": "ASF::Authorization: Models LDAP and other authorizations
based on id.apache.org; See also ASF::Person",
+ "maintainer": "whimsy",
+ "sources": [
+ "infrastructure-puppet/modules/subversion_server/files/authorization/"
+ ]
+ },
+ "/lib/whimsy/asf/committee.rb": {
+ "description": "ASF::Committee: model both PMCs and other committees; See
also ASF::Person",
+ "maintainer": "whimsy",
+ "sources": [
+ "private/committers/board/committee-info.txt"
+ ]
+ },
+ "/lib/whimsy/asf/icla.rb": {
+ "description": "ASF::ICLA: Tracks ICLAs and names; See also ASF::Person",
+ "maintainer": "whimsy",
+ "sources": [
+ "private/foundation/officers/iclas.txt",
+ "*reserved-ids.yml",
+ "*historic/committers.json"
+ ]
+ },
+ "/lib/whimsy/asf/ldap.rb": {
+ "description": "ASF::LDAP: See also ASF::Config, Person, Member, Group",
+ "maintainer": "whimsy",
+ "sources": [
+ "ASF::LDAP::HOSTS",
+ "/apache/infrastructure-puppet/deployment/data/common.yaml"
+ ]
+ },
+ "/lib/whimsy/asf/mail.rb": {
+ "description": "ASF::Mail: Associate email addresses with Persons; See
also ASF::Config, Person, Committee, Podling",
+ "maintainer": "whimsy",
+ "sources": [
+ "infra/infrastructure/apmail/trunk/bin/.archives"
+ ]
+ },
+ "/lib/whimsy/asf/member.rb": {
+ "description": "ASF::Member: Data and auth about ASF Members; See also
ASF::Person",
+ "maintainer": "whimsy",
+ "sources": [
+ "private/foundation/members.txt"
+ ]
+ },
+ "/lib/whimsy/asf/nominees.rb": {
+ "description": "Extends ASF::Person to add data about nominees around
meetings",
+ "maintainer": "whimsy",
+ "sources": [
+ "special/nominated-members.txt"
+ ]
+ },
+ "/lib/whimsy/asf/person.rb": {
+ "description": "ASF::Person: Data about an ICLA signer, committer, etc.;
Extensive integration with ASF::LDAP for auth",
+ "maintainer": "whimsy",
+ "sources": [
+ "/lib/whimsy/asf/ldap.rb",
+ "/lib/whimsy/asf/icla.rb"
+ ]
+ },
+ "/lib/whimsy/asf/podlings.rb": {
+ "description": "ASF::Podlings: Committee analogue for Incubator podlings",
+ "maintainer": "whimsy",
+ "sources": [
+ "asf/incubator/public/trunk/content/podlings.xml"
+ ]
+ },
+ "/lib/whimsy/asf/rack.rb": {
+ "description": "ASF::Rack: add functionality to ASF::Auth,
ASF::Committers, ASF::MembersAndOfficers",
+ "maintainer": "whimsy"
+ },
+ "/lib/whimsy/asf/site.rb": {
+ "description": "ASF::Site: Utility methods added to ASF::Committee",
+ "maintainer": "whimsy",
+ "sources": [
+ "asf/infrastructure/site/trunk/content/index.html"
+ ]
+ },
+ "/lib/whimsy/asf/svn.rb": {
+ "description": "ASF::SVN: Utility for SVN repo and file access; See also
ASF::Config(reads .whimsy)",
+ "maintainer": "whimsy"
+ },
+ "/lib/whimsy/asf/git.rb": {
+ "description": "ASF::Git: Utility for Git repo and file access; See also
ASF::Config(reads .whimsy)",
+ "maintainer": "whimsy"
+ },
+ "/lib/whimsy/asf/agenda.rb": {
+ "description": "ASF::Board::Agenda: Utility for approved and posted board
minutes; many touchpoints: roster tool, board minutes",
+ "maintainer": "whimsy",
+ "sources": [
+ "https://www.apache.org/foundation/board/"
]
+ },
+ "private/committers/board/committee-info.txt": {
+ "description": "Official record of PMC and committee membership",
+ "maintainer": "secretary"
+ },
+ "infrastructure-puppet/modules/subversion_server/files/authorization/": {
+ "description": "Authorization records for source control repos",
+ "maintainer": "infra-staff"
+ },
+ "private/foundation/officers/iclas.txt": {
+ "description": "Official record of signed ICLAs",
+ "maintainer": "secretary"
+ },
+ "*reserved-ids.yml": {
+ "description": "ID names reserved from use by committers",
+ "maintainer": "infra-staff"
+ },
+ "*historic/committers.json": {
+ "description": "Historical data about past committer date changes",
+ "maintainer": "whimsy"
+ },
+ "/apache/infrastructure-puppet/deployment/data/common.yaml": {
+ "description": "Core infrastructure data locations",
+ "maintainer": "infra-staff"
+ },
+ "infra/infrastructure/apmail/trunk/bin/.archives": {
+ "description": "Records about mail archives and emails",
+ "maintainer": "infra-staff"
+ },
+ "private/foundation/members.txt": {
+ "description": "Official record of ASF corporate Membership",
+ "maintainer": "secretary"
+ },
+ "special/nominated-members.txt": {
+ "description": "Temporary listing of Member nominees before a Member's
Meeting",
+ "maintainer": "secretary"
+ },
+ "asf/incubator/public/trunk/content/podlings.xml": {
+ "description": "Listing of active podlings and incubation status details",
+ "maintainer": "incubator"
+ },
+ "asf/infrastructure/site/trunk/content/index.html": {
+ "description": "Listing of active podling websites",
+ "maintainer": "incubator"
+ },
+ "https://www.apache.org/foundation/board/": {
+ "description": "Official records and calendar of ASF Board of Directors",
+ "maintainer": "secretary"
}
}
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].