PageRenderTime 15ms CodeModel.GetById 1ms app.highlight 10ms RepoModel.GetById 0ms app.codeStats 1ms

/www/tags/NOV_07_2009/htdocs/devel.html

#
HTML | 203 lines | 160 code | 40 blank | 3 comment | 0 complexity | 8ace6fb9dc2eb789fe8ca4a4f3b727fd MD5 | raw file
  1<html>
  2<!-- begin devel.text -->
  3<!-- for jEdit: :mode=html:indentSize=2:tabSize=2:noTabs=true: -->
  4
  5<h1 id="development">jEdit Development</h1>
  6
  7<p> Developers, you'll want to bookmark this page. </p>
  8
  9<h2> Handy Links/TOC </h2>
 10<ul>
 11
 12<li><a href="index.php?page=feedback">Mailing list subscription</a>
 13</li>
 14<li> <a href="http://subversion.tigris.org">Subversion</a>: <a href="https://sourceforge.net/svn/?group_id=588">Help</a>, <a href="#migration">Migration</a>,  <a href="http://jedit.svn.sourceforge.net/viewvc/jedit/">Browse SVN</a>, <a href="http://jedit.cvs.sourceforge.net/jedit/">Browse CVS</a> </li>
 15<li> <b>Docs:</b> <a href="http://www.jedit.org/users-guide/">Users Guide</a>,
 16<a href="api/index.html">API docs</a>, <a href="42docs/news42/index.html">jEdit 4.2 plugin porting guide</a> </li>
 17<li> <b>Trackers: </b> <a href="https://sourceforge.net/tracker/?group_id=588&atid=100588">Bugs</a>, 
 18<a href="https://sourceforge.net/tracker/?group_id=588&atid=565475">Plugin Bugs</a>, 
 19<a href="https://sourceforge.net/tracker/?group_id=588&atid=350588">Feature Requests</a>,
 20
 21<a href="https://sourceforge.net/tracker/?group_id=588&atid=997936">Plugin Feature Requests</a>, 
 22<a href="https://sourceforge.net/tracker/?group_id=588&atid=625093">Plugin Central Submissions</a>, 
 23<a href="https://sourceforge.net/tracker/?group_id=588&atid=300588">Patches</a>, <a href="https://sourceforge.net/tracker/?group_id=588&atid=997936">Plugin Patches</a></li>
 24<li> <a href="#patches">Creating</a> and <a href="https://sourceforge.net/tracker/?group_id=588&atid=300588">Submitting</a> patches. </li>
 25<li> <a href="http://plugins.jedit.org/releasing.php">Releasing plugins</a></li>
 26<li> <a href="#help">Want to join us? Help wanted!</a> </li>
 27<li> <a href="http://jedit.wiki.sourceforge.net/Developers+zone">Developers Zone</a> - the Wiki community. </li>
 28<li> <a href="#contributions">Types of Contributions</a> </li>
 29<li> <a href="#schedule">Release Schedule</a></li>
 30</ul>
 31
 32
 33<a name="schedule">
 34<h2> Release Schedule </h2>
 35</a>
 36<p> A new release of jEdit is scheduled to come out every 1-3 months.
 37Whether it is a "pre" or a final depends on what kinds of bugs
 38are reported/fixed. After 4.3final is released, we will start development on 4.4pre1. </p>
 39
 40
 41<ul>
 42<li> <b>jEdit 4.3pre9</b>: January 20, 2007</li>
 43<li> <b>jEdit 4.3pre10</b>: July 15 2007</li>
 44<li> <b>jEdit 4.3pre11</b>: October 04 2007</li>
 45<li> <b>jEdit 4.3pre12</b>: December 08 2007</li>
 46<li> <b>jEdit 4.3pre13</b>: March 13 2008</li>
 47<li> <b>jEdit 4.3pre14</b>: April 27 2008</li>
 48<li> <b>jEdit 4.3pre15</b>: August 10 2008</li>
 49<li> <b>jEdit 4.3pre16</b>: November 19 2008</li>
 50<li> <b>jEdit 4.3pre17</b>: July 05 2009</li>
 51<li> <b>jEdit 4.3pre18</b>: November 07 2009</li>
 52<li> <b>jEdit 4.3pre19</b>: February ?? 2010</li>
 53</ul>
 54
 55<a name="help" >
 56<h2> Want to join us? Help Wanted! </h2>
 57</a>
 58
 59<p> Specific requests for help can be found on the <a href="http://jedit.wiki.sourceforge.net/Help+Wanted">wiki page</a>. </p> 
 60
 61<h2>Becoming a jEdit developer</h2>
 62
 63<p> <a href="http://jedit.wiki.sourceforge.net/Core+development">Core Development Road Map</a> contains a road map of what needs to be done, and who is paying attention to what in the core. </p>
 64
 65<p>jEdit is looking always looking for more people to help. If you examine the  <a href="https://sourceforge.net/tracker/?group_id=588&atid=350588">Feature Requests</a> and open <a href="https://sourceforge.net/tracker/?group_id=588&atid=100588">Bugs</a>, you will see that many of them are "unassigned". </p>
 66
 67<p> Most of our code is managed using an open-source tool called Subversion. It is recommended you learn the basics of this tool, to help you keep up to date on the latest changes from other developers, as well as to generate patches against specific file revisions.
 68</p>
 69
 70<p> Slava is no longer actively involved in development, and many other plugin authors have also left the community and are not maintaining their plugins. Some plugins have a new maintainer, others have been replaced by newer plugins. Once you become a developer, we can always use help by closing some of these open issues. You can make comments on them, or if you want to assign yourself tracker items, feel free. </p>
 71
 72<p>Inclusion in the jEdit "development team" is informal and open to anyone. You can "join" simply by <a
 73href="index.php?page=feedback">subscribing to the <tt>jEdit-devel</tt> and
 74<tt>jEdit-users</tt> mailing lists</a>. Your level and focus of involvement is entirely up to you. For active developers, it is also highly recommended you join <a href="http://lists.sourceforge.net/mailman/listinfo/jedit-cvs">jedit-commits</a> which includes commit logs on the subversion repository. Watching this list allows you to see clearly who are the active developers, and precisely what they are working on.
 75</p>
 76
 77<p>Membership in the <a
 78href="http://www.sourceforge.net/projects/jedit/">jEdit</a>
 79SourceForge project is granted on an as-needed basis. If you join the jEdit mailing lists, participate, and end up working on one or more plugins (either your own, or existing ones), then you can ask one of the administrators of the project for access to the CVS or SVN repository. If you still find yourself with inadquate permissions to do your work, ask one of the project administrators for the permissions you need. This includes access to statistics, databases, etc.
 80</p>
 81
 82<a name="contributions" >
 83<h2>Specific contributions</h2>
 84</a>
 85
 86<h3>Writing/updating edit modes</h3>
 87
 88<p>Writing syntax highlighting modes is covered in detail in the jEdit user's guide. If you want your mode to be included with jEdit, send it along with a mode catalog entry to
 89the <a href="https://sourceforge.net/tracker/?group_id=588&atid=300588">jedit patches</a>
 90tracker. </p>
 91
 92<p> Please note that between jEdit 4.2 and 4.3, there were some <a href="http://www.jedit.org/users-guide/currentmodeformat.html">changes</a>
 93in the mode definition syntax. Since we (the jEdit developer community) do not patch jEdit 4.2final, please make sure your mode file is up to date with the latest format. </p>
 94
 95<h3>Writing macros</h3>
 96
 97<p>Macro development is covered in the jEdit user's guide. Macros should only
 98be used for simple tasks; more complicated features should be coded as
 99plugins. If you want your macro to be included with jEdit, send it to
100<a href="mailto:jedit-devel@lists.sourceforge.net">jedit-devel</a> or the
101<a href="https://sourceforge.net/tracker/?group_id=588&atid=300588">jedit patches</a>
102tracker. </p>
103
104<h3>Writing plugins</h3>
105
106<p>Plugin development is covered in the jEdit user's guide, but the information there only scratches the surface, since plugins
107can do anything any Java program can. You can learn more by looking at the sourcecode of another plugin which does something similar to what you want. </p>
108
109<p>
110Once your plugin is in a minimally useful state, send a message to the
111<tt>jEdit-users</tt> mailing list with a
112short summary of your plugin, and possibly a download link. Remember to
113release early and often - feedback at early stages of development is
114always a good thing.
115</p>
116
117<h3> Fixing plugin or core bugs </h3>
118
119<p> Even if you can't fix a bug yourself, you can still help in its eventual resolution by adding useful comments or metadata to the existing tracker items.  If you want to help in categorizing or closing bugs, just ask for tracker admin permissions from one of the existing project admins. </p>
120
121<p>
122If you want to make changes to existing plugins, or jEdit itself, make sure that you are working on the latest released (i.e. development) versions. Until you are ready to commit directly, you can submit your patches via the
123<a href="https://sourceforge.net/tracker/?group_id=588&atid=300588">jedit patches</a> tracker, as an attachment or a comment in the actual tracker item. After you have submitted a few patches, you can ask for permission to commit directly. 
124</p>
125
126<a name="patches" >
127<h3>Creating and submitting Patches</h3>
128</a>
129<p> We prefer patches which are generated against the latest "trunk" in subversion. By checking out a copy of the source and making changes to your local copy, you can create a patch by simply typing <tt>svn diff</tt>, (or <tt>cvs diff</tt>, if it's in CVS) from the root directory of your project. This command will give you context, as well as version numbers for all differences between your versions and the versions you checked out from the repository. Redirect this command to a file and attach it with proper documentation to a <a href="https://sourceforge.net/tracker/?group_id=588&atid=300588">patches</a> tracker item.
130</p>
131
132<h3>Adding plugins to the Subversion repository</h3>
133
134<p>To get an account on the sourceforge jedit Subversion repository, first you need a <a href="http://www.sourceforge.net">SourceForge</a>
135user account.</p>
136
137<p> For your own plugin, add a file named "README.<i>name of plugin</i>" to the
138"guidelines" module detailing your policy regarding others making changes; if they should ask for permission first, if they should commit directly or send a patch, and so on.</p>
139
140<p>Once you feel your plugin is reasonably complete (this should be determined partly by feedback you get during the development process), you can post your submission on the submissions tracker.  At this point, it will become a candidate for release on <a href="http://plugins.jedit.org">plugin central</a>.
141See <a href="http://plugins.jedit.org/releasing.php">this page</a> to find out how.</p>
142
143
144<a name="migration" >  
145<h3> Migration to Subversion </h3> 
146</a>
147<p> We are moving projects, on a one-by-one basis, from CVS to Subversion. Plugins which are not being actively developed will be left on the CVS repository and not migrated (but we will not remove them either, in case someone wants to revive them). Access to the Subversion repository is granted on a one-by-one basis. </p>
148<ol>
149<li> Download from the CVS repository what you want to migrate using rsync. 
150<pre># change this to your plugin name
151<b>export PLUGIN=TextFilter
152export JEDITSVN=https://jedit.svn.sourceforge.net/svnroot/jedit/
153rsync -avz rsync://jedit.cvs.sourceforge.net/cvsroot/jedit/plugins/$PLUGIN . </b></pre>
154</li>
155<li> <p> Examine the files and clean up any old Attic files you don't think need to be imported. </p>
156</li>
157<li> Run <tt>cvs2svn</tt>, which will generate an svn dump file, you can import into jEdit's svn repo. </p>
158<p> (svn 1.3 and earlier) </p>
159<pre><b>cvs2svn --dump-only $PLUGIN</b>
160<b>mv cvs2svn-dump $PLUGIN-dump</b>
161</pre>
162<p> (svn 1.4 and later) </p>
163<pre>
164<b>cvs2svn --dumpfile=$PLUGIN-dump $PLUGIN</b>
165</pre>
166</li>
167<li> compress to .gz
168<pre>
169<b>gzip $PLUGIN-dump</b>
170</pre>
171</li>
172<li> Upload the file to sf.net shell server:
173<pre>
174<b>scp $PLUGIN-dump.gz plugins.jedit.org:/home/groups/j/je/jedit </b>
175</pre>
176</li>
177<li> Create a plugin directory in the jedit svn repository <a href="http://jedit.svn.sourceforge.net/viewvc/jedit/plugins/">plugins directory</a>.  
178<pre>
179<b>svn mkdir $JEDITSVN/plugins/$PLUGIN</b>
180</pre>
181
182</li>
183<li> Go to the <a href="https://sourceforge.net/project/admin/svn_migration.php?group_id=588">Migration page</a>. Select "SVN dump file archive", give name of the file you uploaded, and the destination in the repository: (e.g., "plugins/$PLUGIN" ). <b>Do not check the "replace" checkbox. </b>
184</li>
185<li> Checkout trunk of new project and verify it's all working: 
186<pre>
187<b> svn co $JEDITSVN/plugins/$PLUGIN/trunk $PLUGIN </b>
188</pre>
189(if you don't specify "trunk", you'll checkout all the tags/branches/etc that cvs2svn created during the migration)
190</li>
191<li> Last, but not least, open a ticket in the <a href="https://sourceforge.net/tracker/?func=add&group_id=1&atid=200001">Sourceforge.net support tracker</a> requesting that the old CVS repo directory for this plugin be cleaned up.
192</li>
193</ol>
194
195<h2>Thanks</h2>
196
197<p>Special thanks to the <a href="http://www.gjt.org">Giant Java Tree</a>, which
198hosted the jEdit CVS and web site for the first few years of jEdit's
199development. </p>
200<p> Thanks to sourceforge.net for hosting and providing for free, all of the online services we need to collaborate. </p>
201<p> Questions? Ask on the <tt>jedit-devel</tt> mailing list. </p>
202<!-- end devel.text -->
203</html>