Design
- Documents
- Requirements
- UML
Implementation
Java
- Coding standards
- CVS
- Exception handling
- I18N & L10N aka G11N
- Preferences
- Defaults
- Third-party libraries
- UI
- Eclipse
- Other
Other languages
Testing
- Target
- Unit tests
Documentation
- Comments
- JavaDoc
- Other
- Help
Release
- Plugin
- Feature
- Product
Implementation
Java Coding Standards
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
Additional standards:
- Package names start with edu.stanford.slac.
Java Exception Handling
- You should never throw/catch a generic exception (an instance of Exception, Throwable, or Error).
- Exceptions resulting from AIDA/EPICS data errors should be logged via Err.
Java G11N Practices
- All meaningful strings should be externalized.
Eclipse UI Best Practices
http://wiki.eclipse.org/index.php/UI_Best_Practices_v3.x
Documentation
JavaDoc Guidelines
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
Additional guidelines:
- All fields and methods (incl. those that are private) should have JavaDoc comments.
- You should generate links to external JavaDoc (see here).
Testing
Testing Against Target
All software must be tested against SEAL target.
Release
How To Release A New Plugin
- Reset target to DEFAULT.
- Check out all SEAL/CSS plugin projects from CVS.
- Increment the version of your plugin.
- Increment the version of each updated feature.
- Build "SEAL product" using "seal.applications".
- (Test) Run the product.
- Check out the "update.seal" project from CVS.
- Update the names and versions of the features in site.xml.
- Export site.xml to SEAL update site. (Export => General => File System)
- Start SEAL in "admin"- mode.
- Update SEAL.
- Build JavaDoc. (optional)
- Commit all changes to CVS.
- Remove all old plugins from the installation site.
- Remove all unnecessary projects from your workspace.
- Reload your Plug-in Development target.
- Remove plugins/features from the update site.
NOTE: If something doesn't work, tell everyone who might be concerned, take a break, and start from absolute ZERO!