Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 134275 - Convert project-info meta-data into a database table with portal interface
Summary: Convert project-info meta-data into a database table with portal interface
Status: CLOSED FIXED
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: Website (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Eclipse Webmaster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 194307 (view as bug list)
Depends on:
Blocks: 108785 125491 177868 184257 188978 198042 199286 201473
  Show dependency tree
 
Reported: 2006-03-31 10:58 EST by Bjorn Freeman-Benson CLA
Modified: 2013-09-13 16:18 EDT (History)
5 users (show)

See Also:


Attachments
widget to generate an "unified" project-info.xml file (25.57 KB, image/png)
2006-04-14 16:54 EDT, Eduardo A. Romero CLA
no flags Details
project-info-xml.php + mailinglist + newsgroups (19.44 KB, application/zip)
2006-04-27 21:10 EDT, Eduardo A. Romero CLA
no flags Details
project-info-xml.php + mailinglist + newsgroups + db error handling (16.09 KB, application/zip)
2006-04-27 22:05 EDT, Eduardo A. Romero CLA
no flags Details
Same patch as last with a bug fix. (16.07 KB, application/zip)
2006-04-28 12:14 EDT, Diego Figueroa CLA
no flags Details
Cumulative patch from last week and this week (21.59 KB, application/zip)
2006-05-04 22:06 EDT, Diego Figueroa CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bjorn Freeman-Benson CLA 2006-03-31 10:58:52 EST
For historical reasons, projects have to describe their newsgroups and mailing lists in two places: once in the project-info.xml file and once in the maillist or newsgroup file.  We should use a single file (project-info.xml) and we should do it in a backward compatible way, i.e., support both schemes for a while and then slowly convert the projects to the single way.
Comment 1 Eduardo A. Romero CLA 2006-04-14 16:54:07 EDT
Created attachment 38621 [details]
widget to generate an "unified" project-info.xml file

So, how about this:

Currently there's a tool http://www.eclipse.org/projects/web-api/project-info-xml.php?project=<key> that generates a valid project-info.xml file, it was ment as transition from .dates.txt, or startup for those who didnt even had .dates.txt.


Right now, it does the following (given a project key):
a) if project-info.xml exists, it reads the file and just outputs the XML.
b) if the .dates.txt, exists, it reads the file and generates a project-info.xml from there, wich is mostly empty since .dates.txt only includes releases information.
c) if there's no .dates.txt nor project-info, it generates an empty anotated example, so the project leader fills in all the blanks.

The idea would be to modify project-info-xml.php to make it read the information from all valid sources (.dates.txt, maillist, newsgroup, database, et al.) and generate a valid project-info.xml file from that information.

What do you guys think?


Here's an example of what it does righ now:

having a project-info.xml: 
http://www.eclipse.org/projects/web-api/project-info-xml.php?project=technology.ptp

having .dates.txt only:
http://www.eclipse.org/projects/web-api/project-info-xml.php?project=tools.ve

having nothign: http://www.eclipse.org/projects/web-api/project-info-xml.php?project=tools.hyades
Comment 2 Eduardo A. Romero CLA 2006-04-14 16:54:36 EDT
Accepting the Bug
Comment 3 Bjorn Freeman-Benson CLA 2006-04-19 03:08:08 EDT
Pretty cool.
Of course we (you) will need to link it into the documentation and to the bottom of the Timeline page so that people can find and use the tool.
Comment 4 Eduardo A. Romero CLA 2006-04-20 13:51:42 EDT
(In reply to comment #3)
> Pretty cool.
> Of course we (you) will need to link it into the documentation and to the
> bottom of the Timeline page so that people can find and use the tool.
> 

So, i was looking at the bug, but came into this http://www.eclipse.org/vep/project-info/maillist

In this file the comment spans several lines, the other files i checked didn't, so the real question here is,

What's the format for project-info/maillist and project-info/newsgroup?

Also, i'm taggin newsgroups and mailing-lists comming from those files with a source="" attribute, like this:

<mailing-lists>
<list name="wtp-jst-dev" source="maillist"/>
<list name="wtp-wst-dev" source="maillist"/>
<list name="wtp-releng" source="maillist"/>
<list name="wtp-jsf-dev" source="maillist"/>
<list name="wtp-dev"/>
<list name="wtp-pmc"/>
<list name="wtp-requirements"/>
<list name="wtp-jst"/>
<list name="wtp-wst"/>
<list name="wtp-jsf"/>
</mailing-lists>

Is this fine? It shouldn't break nothing, but maybe we don't need to know where the mailinglists/newsgroups came from.
Comment 5 Eclipse Webmaster CLA 2006-04-20 14:00:31 EDT
The maillist and newsgroup files share the same format.  Basically it's 

::list title::desc

The seperator is :: and you can have n lines between one :: and the next. It's up to the groups how long the descriptions are.

-M.
Comment 6 Bjorn Freeman-Benson CLA 2006-04-20 16:59:44 EDT
Why do you need the source?  I think something like:

<list name="wtp-jst-dev">This is a list where the web tools platform Java team hangs out and discusses J2EE issues.</list>

would be a fine combination of the project-info.xml and the maillist data.
Comment 7 Eduardo A. Romero CLA 2006-04-27 21:10:09 EDT
Created attachment 39734 [details]
project-info-xml.php + mailinglist + newsgroups

project-info-xml merges project-info.xml and /project-info/maillist and /project-info/newsgroup.

If no project-info.xml is .dates.txt is used, to generate an empty XML with releases information, newsgroups and maillist

If no .dates.txt is avaliable, the XMl will only include newsgroups and maillists.  


This patch also includes fixes for the following bugs:

109222
106559
113716 
137437
Comment 8 Eduardo A. Romero CLA 2006-04-27 21:14:05 EDT
Marking fixed to trigger the review


A few examples:

/projects/web-api/project-info-xml.php?project=webtools  
input: xml, newsgroup
- adds Newsgroups (at the bottom, no newsgroups on XML)

/projects/web-api/project-info-xml.php?project=technology 
input: xml, newsgroup, maillist
- adds newsgroups (at the bottom, no newsgroups on XML)
- adds a mail-list

/projects/web-api/project-info-xml.php?project=technology.alf 
input:
maillist, newsgroup
- generates a brand new XML (empty, with comments)
- adds mail-list
- adds newsgroups


/projects/web-api/project-info-xml.php?project=birt
inputs: xml
- does nothing exceptional, just outputs the XML =)



Comment 9 Eduardo A. Romero CLA 2006-04-27 22:05:19 EDT
Created attachment 39737 [details]
project-info-xml.php + mailinglist + newsgroups + db error handling

project-info-xml.php + mailinglist + newsgroups

project-info-xml merges project-info.xml and /project-info/maillist and
/project-info/newsgroup.

If no project-info.xml is .dates.txt is used, to generate an empty XML with
releases information, newsgroups and maillist

If no .dates.txt is avaliable, the XMl will only include newsgroups and
maillists.  


This patch also includes fixes for the following bugs:

109222
106559
113716 
137437
Comment 10 Diego Figueroa CLA 2006-04-28 12:14:47 EDT
Created attachment 39796 [details]
Same patch as last with a bug fix.
Comment 11 Diego Figueroa CLA 2006-05-04 22:06:13 EDT
Created attachment 40448 [details]
Cumulative patch from last week and this week
Comment 12 Diego Figueroa CLA 2006-05-04 22:07:40 EDT
The latest patch includes fixes for bugs:

109222
137441
138534
106559
113716 
137437
Comment 13 Bjorn Freeman-Benson CLA 2006-05-09 16:12:22 EDT
bug 109222
bug 137441
bug 138534
bug 106559
bug 113716 
bug 137437
Comment 14 Bjorn Freeman-Benson CLA 2006-05-09 16:14:21 EDT
Patch applied.
Comment 15 Bjorn Freeman-Benson CLA 2006-05-09 17:39:45 EDT
The documentation (http://www.eclipse.org/projects/dev_process/project-status-infrastructure-page2.php) is not updated.
Comment 16 Bjorn Freeman-Benson CLA 2006-05-12 12:35:56 EDT
Patch from bug 140952 applied.
Comment 17 Eduardo A. Romero CLA 2006-05-17 12:02:20 EDT
Here's the URL:

http://eclipse.org/projects/web-api/project-info-xml.php

It's called "Project-Info Generator" in http://www.eclipse.org/projects/dev_process/project-status-infrastructure-page2.php
Comment 18 Bjorn Freeman-Benson CLA 2006-09-30 15:14:53 EDT
Reopening.
Comment 19 Bjorn Freeman-Benson CLA 2007-03-14 11:17:57 EDT
Old title: Merge the maillist and newsgroup files with the project-info.xml file

New plan: convert the text and xml files containing project meta-data into a database table that is accessed via the portal. On the positive side, this will make it easier to write tools and read and use this data. On the negative side, the information will no longer be version controlled in the CVS directory. (Thus the new database table should have a second history stable like the Foundation database has.) On another positive side, this allows the provisioning system to automatically populate this data (for example, when a new newsgroup is created, it can be added to the data without waiting for the project to update it).

1. create the database tables
 1.1 the data table (project, key, value)
 1.2 a keys-descriptions table to remind us what the keys are
 1.3 a history-of-changes table
2. create the portal component for modifying the tables
3. use a script to load all the existing project-info meta-data into the database
4. change the uses of the metadata (especially the project-specific left menu generator) to use the database
5. notify all committers of the switch in storage
6. a weekly script that looks for changes to the old files; if it finds a change, it sends email to the project committers telling them "that change is not being used; you need to update the data via the portal"
Comment 20 Bjorn Freeman-Benson CLA 2007-03-14 11:49:53 EDT
See current project-info text file format here: http://www.eclipse.org/projects/dev_process/project-status-infrastructure-page2.php
Comment 21 Bjorn Freeman-Benson CLA 2007-06-26 07:11:47 EDT
*** Bug 194307 has been marked as a duplicate of this bug. ***
Comment 22 Denis Roy CLA 2007-07-06 11:13:23 EDT
Targetting this for Q3 and moving to Phoenix.

Two elements of project-info that I want closer control over are the newsgroups and mailing lists, as I want the list of both of those resources to be the database.  I'll then write tools that will create new newsgroups and mailing lists automatically from the database information, while still allowing committers to update descriptions etc. from the portal.

This will also allow us to automate the creation of archives, mail aliases, etc.

Nathan and I will come up with a plan and workflow to have all this happen.
Comment 23 Bjorn Freeman-Benson CLA 2007-08-08 21:01:10 EDT
Here are my requirements for the project-info database:

project name (but it probably comes from the master database)
project home page url
cvs/svn source code location
download page url
documentation url
ip log url
update site url
main wiki page url
main newsgroup
other newsgroups
main dev mailing list
other mailing lists
main blog url
other blog urls
descriptive paragraph
project plan url
getting started url
bugzilla product and component
releases (name, status, date/estimated date, download url, description/plan url) - see current project-info.xml documentation 

other things I see as necessary, but are not directly used by any of my (/project) code:
for each newsgroup, a description
for each mailing list, a description
Comment 24 Nathan Gervais CLA 2007-08-09 09:22:30 EDT
(In reply to comment #23)
> Here are my requirements for the project-info database:
> 

Great List Bjorn, this covers all the things I would need in order to migrate the Category pages. 
Comment 25 Karl Matthias CLA 2007-08-29 12:59:18 EDT
Gosh I wish I knew about the existence of Eduardo's script merging all the files into a single XML before Matt and Nathan had to import their data themselves.  From XML my script could have loaded all of it. :(

In any case I don't see anything in comment #23 that is missing now.  I am updating the DB with the project url now.
Comment 26 Karl Matthias CLA 2007-08-29 13:01:07 EDT
Sorry guys, looks like I had this information and didn't notice it. :(
Comment 27 Nathan Gervais CLA 2007-09-07 11:25:02 EDT
Denis, Karl, and Myself have written two new classes for accessing the ProjectInfo data on Phoenix.  

/eclipse.org-common/classes/projects/projectInfo.class.php
/eclipse.org-common/classes/projects/projectInfoList.class.php

These new files provide the accessor classes for the data to be leveraged quickly and easily.

class ProjectInfo(projectID);

This class takes a projectID as a parameter and will retrieve all data associated with that project upon creation.

class ProjectInfoList();
This class takes no paramaters upon creation. The most valuable function in this class is 

function selectProjectInfoList($_projectID , $_mainKey , $_subKey , $_value, $_projectInfoID , $_order_by)

All paramaters are defaulted to NULL to allow the user to sort / filter out the values that they want to return.  This function returns an array of projectInfo classes for consumption

Since this is a change to eclipse.org-common it will require 3 +1's to be accepted.
Comment 28 Denis Roy CLA 2007-09-07 14:28:16 EDT
(In reply to comment #27)
> Since this is a change to eclipse.org-common it will require 3 +1's to be
> accepted.
> 

Of course, this looks good to me.   
+1

FWIW, we designed the API with ease-of use in mind, so committers can easily use the project info like this in their own pages:

$App->useProjectInfo();
$ProjectInfo = new ProjectInfo("technology.phoenix");
$project_name = $ProjectInfo->getValue("projectname");  # contains "Phoenix"
echo "Download page: " . $ProjectInfo->getValue("downloadurl");


Once this is committed, we'll need to:

- document the API in our docs
- document the key names (such as projectname, downloadurl, etc)
- provide code examples via the Phoenix website
Comment 29 Nobody - feel free to take it CLA 2007-09-07 14:34:45 EDT
+1
Comment 30 Bjorn Freeman-Benson CLA 2007-09-21 19:02:49 EDT
Implemented and rolled out. Yahoo!
Comment 31 Bjorn Freeman-Benson CLA 2008-04-28 18:13:25 EDT
Verified. Closing.