JBoss.Org-NG Specification
Project Sites
All "project site" prose content must be driven through the wiki as a CMS.
Pages
For a project's site URL www.jboss.org/PROJ each page must provide navigational elements/links to:
The project's entry in the project directory (www.jboss.org/directory/PROJ)
The project's page in JIRA, if available
The project's FishEye URL, if available
The project's anonymous SVN URL if available
The project's documentation page (www.jboss.org/PROJ/docs)
The project's downloads page in the project directory (www.jboss.org/PROJ/downloads)
Link to the join-this-project flow for potential contributors
The front/main/top page should involve a beautiful URL. www.jboss.org/PROJ/content.
Content pages
Content pages beyond the front/main/top page do not necessarily require beautiful URLs.
All content pages must be bookmarkable.
Content must only be editable by approved users (see Role discussions below)
Each page must provide a project-maintainable navigational element.
Style/Theme/Brand
Each project site must present a look-and-feel consistent with JBoss.org.
Each project site must allow customization of at least
Logo
Selection from a finite, pre-selected color palette.
Provisioning
When a project is accepted through the project-submission workflow...
An initial "main" page for the project is created, content populated with information from the meta-data repository. This may include
A "comming soon" disclaimer
General information about JBoss projects
General project description as contained in the repository.
The main page should not include
Instructions to the project leads on what to do next. Most people coming to the page are not project leads, so the page is not an appropriate avenue for communicating only with leads.
The original project submitter must be granted edit access to the pages/space for the new project within the wiki.
When a new user joins the project through the project directory, and the project lead has accepted his application...
The new user must be granted edit access to the content for the project in the wiki.
When a user is removed from a project through the project directory, his edit access must be revoked in the wiki for the content related to that project.
Global .Org Presence (www.jboss.org/)
Front page (www.jboss.org/)
The front page of jboss.org must be customizable from a design point-of-view. James may wish to refresh/alter the design on a regular basis to keep things interesting.
The front page of jboss.org must display administrator-selected headlines and abstracts for entries selected from the feed archive. The administrator must also be allowed to determine the order of the headlines displayed.
The front page of jboss.org must display the latest X releases (pulled from the meta-data repository) across the entirety of projects hosted. Each release displayed should include
Project name, asset name (if different), version
Date/time of the release
Links to source and binary, if both are available
Link to release-notes, if available
The front page of jboss.org must display the latest X headlines of blog entries across project-related blogs. These should pull only from the official project blog sources.
The front page jboss.org must display the latest X podcasts across official blog sources.
Community Verbiage (jboss.org/community/)
For pages such as "How to join" or "Governance rules" and other stuff that lives under /community currently, implement Just Like a Project, with the project site backed by the wiki, as usual.
Events announcements
For HTML pages containing information about some events. The page should be rendered without any standard theming. It should be served under a nice URL (TBD jboss.org/events/ , events.jboss.org/ )
Downloads (www.jboss.org/downloads)
Dynamically-generated tabular listing of latest project asset downloads.
For each asset, data must include:
Project name, asset name (if different), version
Date/time of the release
Links to source and binary, if both are available
Link to release-notes, if available
Links to project's own downloads page for "for additional available versions" since only the latest are listed on the global downloads page.
Feeds (www.jboss.org/feeds)
Primary feeds page (feeds.jboss.org/) must display latest 20 headlines and abstracts from official project feeds. Page should provide additional links for paginating through historical entries.
Community feeds page (feeds.jboss.org/community) must display latest 20 headlines and abstracts from all community-approved feeds. Page should provide additional links for paginating through historical entries.
Navigation to project-level feed aggregators must be provided
Any aggregation of feeds must provide an OPML representation of the set of feeds
Member Directory
Provide a method for browsing registered users alphabetically.
Provide a way to browse geographically
Display users on a map
Filter by project and/or role
Member Profile Page
Each registered user of jboss.org must have a "profile" page, located at a URL similar to www.jboss.org/members/<some-hash-code-or-id> or www.jboss.org/members/USERNAME. This needs to be decided, as some users use their email address as their username. And leaking email addresses would not be cool.
Include the follow user tidbits of information, if provided
Real name (or alias)
Image (120px by 120px square, or such, "avatar")
Location
Publicly display only down to the city level. No street addresses.
Draw it on a Google map
Blog URL(s)
Other URL(s) (LinkedIn profile, Facebook profile, etc)
From the meta-data repository:
Project memberships, and roles
Links to user's corresponding profile pages in JIRA, Wiki, FishEye
Each user must have a form for editing/updating all of his profile information
For location, accept fully-detailed specific addresses, but ensure they are anonymised before being used publicly
New Project Submission
Any logged-in user can submit a new project idea.
Each submission must include
Name (ie, "JBoss jBPM")
Desired id/short name (ie, "jbpm")
Description
License (selected from list)
Desired group(s) (ie, SOA, Framework, Runtime, Portal)
...
Each submission may optionally include
Current code location URL if currently hosted elsewhere
Current doc location URL if currently hosted elsewhere
Each submission enters an approval queue
Upon entry, notification is sent via email to .org Administrators
Queue must be viewable as an authenticated RSS feed
.org Administrators can view the queue, and for each submission
Reject the submission
Rejection requires a "reason"
Rejection sends a polite email with
Boilerplate "don't feel bad" text
The specific reason denoted by the administrator
cc:'s the administrators
Respond to the submission
Sends a response via email to the submitter, typically requesting more information or changes to the submission.
Removes the submission from the queue of awaiting acceptance submissions
The submission is added to holding queue.
Allows the previous submission to be edited and re-submitted
Accept the submission
Optionally edit the submission before accepting
Upon acceptance
provision services, per the submission
Forums or mail-list configuration for the project
The submitter must be granted moderator access
New JIRA project
The submitter must be granted project-lead status
New Subversion project
The submitter must be granted write privs to the repository and the admin/ directory
SVN::Notify or other post-commit hooks configured.
Fisheye
The new project must be configured in FishEye
downloads.jboss.org, repository.jboss.org, snapshots.jboss.org
Create a new directory structure and grant submitter access
docs.jboss.org
Create a new directory structure and grant submitter access
Kosmos/JMM
Project Site in Wiki
See project spec above, under "Provisioning"
Project Directory
begin serving www.jboss.org/directory/PROJ/ pages dynamically
Project Directory Entry (www.jboss.org/directory/PROJ/)
Main directory entry page (www.jboss.org/directory/PROJ/)
Each project must have a main directory page displaying summary/overview information populated from the meta-data repository and other sources, displayed in a standard form.
Latest X headlines from the project'sfeeds
Latest releases links
Latest GA for each asset
Latest Alpha/Beta for each asset
Night snapshot download link, if available
Last 10 bugs opened in JIRA for the project
With link to jira.jboss.org query to view a fuller report of recently-opened bugs
Last 10 bugs resolve in JIRA for the project
With link to jira.jboss.org query to view a fuller report of recently-resolved bugs
Links to
FishEye
JIRA
Anonymous Subversion
Committer Subversion
Kosmos/JMM for the project
Member directory displaying project contributors on a map
Listing of project administrators
Links to their profile pages
Member Roster (www.jboss.org/directory/PROJ/roster)
Each project must have a synthetic www.jboss.org/directory/PROJ/roster page generated to display the current members of the project, and their role(s).
Project administrators can add/remove, promote/demote individual roster members
Changes in roles require changes in access in all connected services
add/remove Subversion access
add/remove JIRA access
add/remove Project Site in Wiki access
add/remove Forum moderator privs
License (www.jboss.org/directory/PROJ/license)
Each project must have a synthetic www.jboss.org/directory/PROJ/license page generated to display the current license of the project.
Downloads (www.jboss.org/directory/PROJ/downloads)
Each project must have a synthetic www.jboss.org/directory/PROJ/downloads page generated from the list of registered releases.
Should be organized by project asset and version
Each entry should provide links to
Date/time of the release
Links to source and binary, if both are available
Link to release-notes, if available
Feeds (www.jboss.org/directory/PROJ/feeds/)
Each project must have a www.jboss.org/directory/PROJ/feed page aggregating official project feeds
It must allow pagination through the historical archive
Each project must have a www.jboss.org/directory/PROJ/feed/community page aggregating all approved community feeds related to the project, if any, in addition the the previous official feeds.
It must allow pagination through the historical archive
For community-submitted blogs or pages, project administrators must be provided a queue for accepting or rejecting submissions.
Queue itself must be made visible as an RSS feed
New items must trigger an email to the project administrators
Documentation (www.jboss.org/PROJ/docs)
Each project must have a www.jboss.org/directory/PROJ/docs page providing links to official project documentation (ie, DocBook).
Each document linked should also provide link to the clearspace annotation/comment page for that document within the project's site.
Join the Project
A user may apply to join a project from the project's entry in the directory.
With his application, he may optionally include a comment/note.
With his application, he may select one-or-more roles he's hoping to attain
Committer to code repository
Editor of site content in wiki
Translator of documentation
...more to be specified as needed
If the user has no Contributor Agreement on file that is compatible with the project's, he must be prompted to sign a contributor agreement.
If the contributor refuses, the application must be automatically rejected
If the contributor agrees, the application must continue to be processed.
All user applications for contribution enter a queue for project-lead approval.
All applications in the queue must represent users who have already signed a compatible Contributor Agreement.
Each new application in the queue should generate a notification to the project administrators for a project.
Email to the administrator
Queue should be visible as an RSS feed with authentication
An application, when rejected
Can accept an optional reason from the project administrator
Sends a polite email to the applicant with boilerplate text and the optional reason
cc:'d to the administrators of the project
An application, when accepted
Gives the administrator a chance to adjust roles before confirming
Sends a polite email to the applicant with
boilerplate text about contributing to JBoss projects in general
helpful information for the specific project (Committer URLs, JIRA, etc)
Provisions the user's permissions in various systems based upon the roles
Administrator
Grants access to perform releases (downloads.jboss.org/repository.jboss.org)
Plus everything of Committer
Committer
Grants "Committer" role in JIRA, if not already held
Grants read/write to committer Subversion repository
Plus everything of Editor
Editor
Grants write access to the project's content in the wiki
Translator
See Mark Newton
Integration with Project Workflow
Integration to collect meta-data is required.
Releases
.org must provide a standard maven plugin to inject release information into the meta-data repository during normal maven-based releases.
Upon creation of a Release meta-data object, the administrators should receive an email with a link to edit the release information. They can provide additional information, URL for release notes (if not provided), etc.
Updating the meta-data repository must automatically update the global and project-level downloads pages
Snapshots
When nightly or snapshot builds are created, .org must integrate a trigger into the maven snapshot process or the CI build notifier.
Comments