| <?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> |
| |
| <h4>All Developers</h4> |
| <ol> |
| <li> <b>Learn 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>Learn to Use 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 "perspectives" and "views" 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>Learn to Use 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 may want to focus on learning |
| CDT: Once you know how to use CDT, you will know how to use Photran. |
| <li> <b>Learn to use the JDT and PDE to Develop a 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 "Hello, world!" 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>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>Read the Photran Developer's Guide (Chapters 1 & 2).</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>. These chapters apply to all developers. |
| <li> <b>Join the 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, conference calls are announced, etc. |
| </ul> |
| <li> <b>Read about Our 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. In general, we use 120-character lines, 4-column tabs, descriptive variable names, |
| and curly braces on the next line, etc. A copyright notice must appear at the top of every source file, |
| and every API class should be JavaDoc'ed. Vocabulary specific to that class appears in bold in the class |
| documentation, and method comments assume that the reader has already read the class documentation |
| (so that vocabulary can be used freely). |
| </ol> |
| |
| <h4>Developers of UI Enhancements</h4> |
| <ol> |
| <li> <b>Learn the 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> If you will be working on dialog boxes, you will need to learn the Standard Widget Toolkit. Depending on |
| what you will be working on--preference pages, project property dialogs, etc.--you may need to learn about |
| other parts of the Eclipse framework as well. Ask if you are not sure. |
| </ol> |
| |
| <h4>Developers of Program Analyses, Transformations, and Refactorings</h4> |
| <ol> |
| <li> <b>Learn Fortran.</b> |
| Work through <i>Fortran 95/2003 Explained</i> by Metcalf, Reid, and Cohen or another book on Fortran 90/95. |
| Depending on what you're writing, you might be able to ignore certain parts of the language. Ask if you |
| are not sure. |
| <li> <b>Read the Photran Developer's Guide (Remaining Chapters).</b> |
| Read the remaining 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>. Spend some time looking at the Fortran parsing grammar (fortran95.bnf) and familiarizing |
| yourself with the AST. |
| <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). See <a href="http://www.junit.org" target="_top">junit.org</a>. |
| </ol> |
| |
| </div> |
| |
| <div class="homeitem3col"> |
| <h3>Projects for New Developers</h3> |
| |
| <h2>UI Enhancements</h2> |
| <ul> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Context-sensitive syntax highlighting OR semantic highlighting<br> |
| <small<small>See org.eclipse.cdt.internal.ui.editor.Semantic*.java</small></small> |
| </td><td align="left"> |
| Very Challenging |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Content assist (scope based on line number) |
| </td><td align="left"> |
| Moderate |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Matching parenthesis highlighting |
| </td><td align="left"> |
| Very Easy |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Hover tips containing declaration/type |
| </td><td align="left"> |
| Easy |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Auto-indent |
| </td><td align="left"> |
| Easy |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Folding |
| </td><td align="left"> |
| Easy |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Fortran search/find all references |
| </td><td align="left"> |
| Moderate |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Preference page like JDT |
| </td><td align="left"> |
| Easy |
| </td></tr></table> |
| </ul> |
| |
| <h2>Easy Refactorings</h2> |
| <ul> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Canonicalize Capitalization |
| </td><td align="left"> |
| Easy |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Eliminate Specification Statements |
| </td><td align="left"> |
| Moderate |
| </td></tr></table> |
| </ul> |
| |
| <h2>Static Analyses</h2> |
| <ul> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Enforcement of naming conventions |
| </td><td align="left"> |
| Moderate |
| </td></tr></table> |
| </ul> |
| |
| <h2>Doxygen Support</h2> |
| <ul> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Generate Doxygen stubs |
| </td><td align="left"> |
| Moderate |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| Doxygen view and Doxygen checking (requires parser) |
| </td><td align="left"> |
| Challenging |
| </td></tr></table> |
| <li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%"> |
| "Generate Doxygen" action |
| </td><td align="left"> |
| Easy |
| </td></tr></table> |
| </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); |
| ?> |