You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
If you have been named a module lead, you can follow this document to get your module's infrastructure setup.
A module's infrastructure consists of:
You will need to work with the Seam project leads to get these established. However, to create a module, first need commit access.
The first thing you need to gain commit access to Seam is an invitation from the Seam project lead. We will reach out to you when we feel it's time. Assuming you have received the invite, you will need to become a JBoss contributor.
To become a JBoss contributor, you need to:
Once that it done, the Seam project lead will need to approve it. To request commit access to the Seam repository:
This process is described from the perspective of the module lead on the page Setting Up a New Committer.
With that out of the way, it's time to setup your module's infrastructure, starting with the SCM source root.
Seam currently uses Git as the source code management tool. Even though you are a committer, you will still use your own github.com account to commit changes. Once the changes are ready, you will send a pull request to have the Seam integration manager merge them into master. Here is the documentation for the pull request process on github.com.
The Seam administrators will setup the master repository for your module.
If you want pull-request merge notifications (so that when you merge someones pull request they get an email) add seam-github-emailhook.appspot.com as a Post Receive URL hook on github's admin page for your repository (or ask a project admin to do it).
Please see the Module Anatomy page for instructions on how to structure the module project and setup the build.
Each module has it's own JIRA project to track issues. The process is to email Shane or Rodney, cc'ing the seam-dev list, requesting a project is created. You need to include:
Here is an example for the JMS module that you can use as a template:
JIRA Name: SEAMJMS
Friendly Name: Seam JMS
Lead (JBoss.org & github.com username): Jordan Ganoff (jganoff)
Project URL: http://sfwk.org/Seam3/JMSModule
Additional Project Administrators (JBoss.org username): Dan Allen (dan.j.allen)
JIRA Components: Injection, Event Forwarding
Developers (JBoss.org usernames): Jordan Ganoff (jganoff)
The project should be configured as follows:
Issue Type Scheme: Seam Issue Type Scheme
Notification Scheme: Seam
Field Configuration Scheme: Seam Field Configuration Scheme
Workflow Scheme: Seam Workflow Scheme v2
Project Category: c) Programming Model
It should also use the orange Seam logo (instead of the blue one).
After the project is created, it should appear in the list of projects that you can administer.
Each JIRA project should have at least the following set of components (categories) in which issues can be filed:
You should create additional components for each major subdivision of the API. If the module is small, you can simply use Core API
and Core Implementation
components.
See the Seam Faces and Solder projects for examples.
The final step to setting up your project is to create a Hudson build. You'll need three jobs:
First, create a JIRA in your module's issue tracker for setting up these jobs. Then coordinate with Seam QE to have the work completed.
In order for the documentation snapshot to work, you'll need to get someone with access to seam@filemgmt.jboss.org to create the following directory:
/docs_htdocs/seam/3/{module}/snapshot/reference /docs_htdocs/seam/3/{module}/snapshot/api
Hudson sends out emails if a commit you make causes the build to fail. If you work for Red Hat, your email address is set up automatically. If you don't, and you do commit to Weld or Seam, please could you send Shane your jboss.org username, and the email address you would like these emails to go to so he can check that you have the correct details entered into Hudson.
Each module should have a page that provides the mission statement, a list of developers and contributors, a description, a roadmap and design notes. It's your module's start page or dashboard. In the beginning, it's mostly design notes and a rough overview. As the module matures, it tightens up, includes some getting started references (or snippets), etc. I do feel that there should always be a little whiteboard at the bottom to host emerging ideas.
It's okay if each module's page develops it's own unique style, though the pages shouldn't be too divergent. We don't want to shock the user, but we don't want to look cookie cutter either.
But we have to begin with something, so here's a template you can use to get started:
Creating the module page template is a bit tricky. Follow these steps to create it:
{Short name} Module, where {Short name} is the short name of the module (e.g., Faces)
Seam 3 {Short name} module
{Short name} Module Overview
in progress...in the document
Now populate the overview page with the content from the Module Page Template and customize to your module. Don't forget to remove the sentence This document is the template you should follow...
We also recommend these settings for the overview page:
Seam 3