blob: 0fc19be320233b719d21224a62d6d50ff437db63 [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
$pageTitle = "Suggestions for New Contributors";
$pageKeywords = "photran, contributing";
$pageAuthor = "Jeffrey Overbey";
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<div id="maincontent">
<div id="midcolumn">
<h1>$pageTitle</h1>
<div class="homeitem3col">
<h3>Getting Started</h3>
<p>New Photran contributors are always welcome. Here are some suggestions for getting started.</p>
<ol>
<li> <b>Java.</b>
Photran is built on top of Eclipse and is written in Java. Obviously, this means you need to know Java.
If you have programmed in C or C++, learning the basics of Java should only take a few weeks, and you will
find that programming in Java is far less painful than programming in C or C++.
<li> <b>Eclipse.</b>
Photran is essentially Fortran add-on for Eclipse. If you have not used Eclipse before, or if you're not
quite sure what &quot;perspectives&quot; and &quot;views&quot; are, you should work through
a basic Eclipse tutorial before attempting to learn Photran. Start Eclipse, click on the Help menu,
and click Help Contents. Expand the Workbench User's Guide, expand Getting Started, and work through
the section labeled Basic Tutorial.
<li> <b>CDT and Photran.</b>
If you have not used Photran before, you should become a fluent Photran user before you try to add a new
feature or fix a bug in it. See the Documentation page on the Photran web site. Photran reuses many
components of the Eclipse C/C++ Development Tool (CDT), so you will actually want to focus on learning
CDT. Once you know how to use CDT, you will know how to use Photran.
<li> <b>JDT, PDE, and Simple Plug-in.</b>
If you have never developed an Eclipse plug-in before, develop a simple plug-in, perhaps one which
adds an item to the menu bar which pops up a &quot;Hello, world!&quot; message box when you click it.
For example, work through Chapters 7 through 9 in <i>The Java Developer's Guide to Eclipse, 2/e</i>
by D'Anjou et al. This will also require you to learn how to do Java development in Eclipse, although
this should be easy if you already know how to do C/C++ and Fortran development in Eclipse.
<li> <b>Editor Framework (JFace Text).</b>
If you will be working on the Photran editor, read about the JFace Text framework (Chapter 26 in
D'Anjou et al.). It may not make sense immediately; that's OK. Use the sample XML editor as a starting
point. Try changing the syntax highlighting, or adding auto-indentation, or whatever feature(s) are
relevent to the work you want to do. Make sure you can implement them in a simple editor before tackling
the Photran editors.
<li> <b>JUnit.</b>
If you will be working on refactorings or another non-UI part of Photran, you will probably need to write
unit tests. This is done in JUnit, which is nicely integrated with the Eclipse Java Development Tools
(JDT).
<li> <b>Check Out Photran from CVS and Compile It.</b>
Read <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.photran/org.eclipse.photran-dev-docs/dev-guide/cvs-instructions.pdf?cvsroot=Technology_Project">How
to Check Out Photran from CVS and Compile It</a>, and actually do it. Make sure you can compile
Photran.
<li> <b>Photran Architecture.</b>
Read the first two chapters of the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.photran/org.eclipse.photran-dev-docs/dev-guide/dev-guide.pdf?cvsroot=Technology_Project">Photran
Developer's Guide</a>. If you are working on a project involving the parser, semantic analysis, or
refactoring, you may need to read the rest of it as well.
<li> <b>Mailing Lists.</b>
<ul>
<li> Join the main <a href="https://dev.eclipse.org/mailman/listinfo/photran">Photran
Mailing List</a>. This is where Photran users post questions and get answers.
If you have problems or questions about how to <i>use</i> Photran, this is a good place to start.
<li> Join the <a href="https://dev.eclipse.org/mailman/listinfo/photran-dev">Photran
Contributors' Mailing List</a>. This is where architectural/design issues are discussed,
new releases are planned, etc.
</ul>
<li> <b>Coding Conventions.</b>
Read the <a href="http://dev.eclipse.org/conventions.html">Eclipse Naming, Coding, and JavaDoc Conventions</a>.
Look through some of the classes in org.eclipse.photran.refactoring.core to get a feel for the coding
style used in Photran (120-character lines, 4-column tabs, descriptive variable names,
curly braces on the next line, etc.).
</ol>
</div>
<div class="homeitem3col">
<h3>Projects for New Developers</h3>
<h2>UI Enhancements</h2>
<ul>
<li> Context-sensitive syntax highlighting
<li> Content assist (scope based on line number)
<li> Matching parenthesis highlighting
<li> Hover tips containing declaration/type
<li> Auto-indent
<li> Folding
<li> Fortran search/find all references
<li> Preference page like JDT
</ul>
<h2>Easy Refactorings</h2>
<ul>
<li> Canonicalize Capitalization
<li> Eliminate Specification Statements
</ul>
<h2>From LANL</h2>
<ul>
<li> Generate Doxygen stubs
<li> Enforcement of naming conventions
</ul>
<h2>Large Test Codes</h2>
<ul>
<li> POP
<li> NWChem
</ul>
</div>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>