Getting started as a developer: Difference between revisions

From FreeMind
Jump to navigationJump to search
No edit summary
 
No edit summary
 
(11 intermediate revisions by 2 users not shown)
Line 5: Line 5:
A new developer starts in two stages.
A new developer starts in two stages.
# ''Patches''. At firsts, she sends her contributions as ''patches'' into [http://sourceforge.net/tracker/?group_id=7118&atid=307118 Patches tracker].
# ''Patches''. At firsts, she sends her contributions as ''patches'' into [http://sourceforge.net/tracker/?group_id=7118&atid=307118 Patches tracker].
# ''CVS''. Later, after she has shown some volume of contribution, she gets access to [[CVS]] repository.
# ''GIT''. Later, after she has shown some volume of contribution, she gets access to [[GIT]] repository.
   
   
Detail: If you are considering becoming a new developer, please proceed as follows.
Detail: If you are considering becoming a new developer, please proceed as follows.
Line 11: Line 11:
# Create a user account at SourceForge.   
# Create a user account at SourceForge.   
# Discuss your contribution (the change, feature, bug fix, documentation or test plan) in our [http://sourceforge.net/forum/forum.php?forum_id=22101 open discussion forum].  
# Discuss your contribution (the change, feature, bug fix, documentation or test plan) in our [http://sourceforge.net/forum/forum.php?forum_id=22101 open discussion forum].  
# If the topic is accepted, start to change the up-to-date code that you have downloaded from CVS. Beware of using the right CVS branch:
# If the topic is accepted, start to change the up-to-date code that you have downloaded from GIT. Beware of using the right GIT branch:
#* Currently we use the branch with a strange name "fm_060405_integration".  
#* Currently, there is no GIT branch.
#* It could be better if you start from code state already labeled by a tag, for instance "fm_0_9_0_beta9", to make the later merging of the code you develop easier,
# If, during implementing the feature, you have any questions, feel free to ask them in the "Open Discussion" forum. It is read by the other developers who possible can help you.
# If, during implementing the feature, you have any questions, feel free to ask them in the "Open Discussion" forum. It is read by the other developers who possible can help you.
# Post your contribution in the patch section of SourceForge or send it by email to the current project manager. We do not respond immediately, as FreeMind team consists of volunteers.
# Post your contribution in the patch section of SourceForge or send it by email to the current project manager. We do not respond immediately, as FreeMind team consists of volunteers.
# After having successfully developed and integrated some items, you get access to FreeMind's CVS repository at SourceForge.
# After having successfully developed and integrated some items, you get access to FreeMind's GIT repository at SourceForge.


===Getting the latest beta version of FreeMind from CVS===
===Getting the latest beta version of FreeMind from GIT===


A beta version you can get from the [[CVS]], searching there for the latest branch, or the branch of your choice. Please note that beta versions are unstable and may contain serious bugs. Please, use beta versions only if:
A beta version you can get from the [[GIT]], searching there for the latest branch, or the branch of your choice. Please note that beta versions are unstable and may contain serious bugs. Please, use beta versions only if:
# you urgently need a feature included in the version, and you are willing to backup your work often, or
# you urgently need a feature included in the version, and you are willing to backup your work often, or
# you want to give FreeMind developers feedback on the beta versions, which is highly appreciated.
# you want to give FreeMind developers feedback on the beta versions, which is highly appreciated.


To get a beta version from CVS, see the guides at [[CVS]] section.
To get a beta version from GIT, see the guides at [[GIT]] section.


===Compiling last stable version of FreeMind===
=== Compile, Branch and Patch of the lastest version ===
* get the latest code: <code bash>git clone git://freemind.git.sourceforge.net/gitroot/freemind/freemind</code>
* <code bash>cd freemind/freemind</code>
* start FreeMind: <code bash>ant run</code>
* create branch "new_feature": <code bash>git checkout -b new_feature</code>
* ... change the code ...
* commit changes: <code bash>git commit -a</code>
* ... change again ...
* commit again: <code bash>git commit -a</code>
* create patch file: <code bash>git format-patch master --stdout > patch_by_''username''_for_feature_''xyz''.txt</code>


: ''See detail in [http://freemind.sourceforge.net/docs/compile/windows/Quick%20guide%20to%20compiling%20Freemind%20on%20an%20XP%20system.html Quick guide to compiling Freemind on an XP system using Eclipse]. (This didn't work for me, see below instead)
(on Mac use <code bash>ant runmac</code> to run FreeMind).


Here's what I did to get things working on Eclipse 3.3 with Windows XP:


#download the [http://sourceforge.net/project/showfiles.php?group_id=7118 source code] for whichever version you're interested in (I myself downloaded freemind-src-0.9.0_Beta_13_icon_butterfly.tar.gz )
===Compiling last stable version of FreeMind===
#Create a new Java Project in Eclipse
#Extract the archive you downloaded
#Open the freemind directory in Windows (it should contain .classpath, .project, build.xml, and a whole bunch of other files and folders)
#Select all of the files and drag them onto your newly created project, in the Eclipse Package Explorer
#Select yes when it asks you if you want to overwrite
#That should do it. 
 
A simple way for a developer of compiling FreeMind is perhaps the following.
 
# install [http://java.sun.com/javase/downloads/index.html Java SDK] &mdash; standard development kit
# install [http://ant.apache.org/ Ant] &mdash; a tool for building code using complicated make files)
# download FreeMind's [http://sourceforge.net/project/showfiles.php?group_id=7118 source code]  as published in the Files section
# unpack the source code package with the extension <code>tar.gz</code>
# change directory to the one where <code>built.xml</code> file resides &mdash; the build file for Ant, similar to make files for the C language
# type <code>ant</code> in the command shell


===Working with CVS===
See [[Building]].


See [[CVS]].


===Further development wiki pages===
===See also===
 
Further reading (still under construction):


* [[FreeMind Actions]]
* [[FreeMind Actions]]
Line 67: Line 56:
* [http://freemind.sourceforge.net/Freemind-development.mm Obsolete development mind map for download]
* [http://freemind.sourceforge.net/Freemind-development.mm Obsolete development mind map for download]
* [http://freemind.sourceforge.net/Freemind-development-exported.html Obsolete development mind map exported to HTML with folding]
* [http://freemind.sourceforge.net/Freemind-development-exported.html Obsolete development mind map exported to HTML with folding]
[[Category:Development]]

Latest revision as of 14:43, 7 August 2011

Getting started as a developer

Contributing to FreeMind as a developer

A new developer starts in two stages.

  1. Patches. At firsts, she sends her contributions as patches into Patches tracker.
  2. GIT. Later, after she has shown some volume of contribution, she gets access to GIT repository.

Detail: If you are considering becoming a new developer, please proceed as follows.

  1. Create a user account at SourceForge.
  2. Discuss your contribution (the change, feature, bug fix, documentation or test plan) in our open discussion forum.
  3. If the topic is accepted, start to change the up-to-date code that you have downloaded from GIT. Beware of using the right GIT branch:
    • Currently, there is no GIT branch.
  4. If, during implementing the feature, you have any questions, feel free to ask them in the "Open Discussion" forum. It is read by the other developers who possible can help you.
  5. Post your contribution in the patch section of SourceForge or send it by email to the current project manager. We do not respond immediately, as FreeMind team consists of volunteers.
  6. After having successfully developed and integrated some items, you get access to FreeMind's GIT repository at SourceForge.

Getting the latest beta version of FreeMind from GIT

A beta version you can get from the GIT, searching there for the latest branch, or the branch of your choice. Please note that beta versions are unstable and may contain serious bugs. Please, use beta versions only if:

  1. you urgently need a feature included in the version, and you are willing to backup your work often, or
  2. you want to give FreeMind developers feedback on the beta versions, which is highly appreciated.

To get a beta version from GIT, see the guides at GIT section.

Compile, Branch and Patch of the lastest version

  • get the latest code: git clone git://freemind.git.sourceforge.net/gitroot/freemind/freemind
  • cd freemind/freemind
  • start FreeMind: ant run
  • create branch "new_feature": git checkout -b new_feature
  • ... change the code ...
  • commit changes: git commit -a
  • ... change again ...
  • commit again: git commit -a
  • create patch file: git format-patch master --stdout > patch_by_username_for_feature_xyz.txt

(on Mac use ant runmac to run FreeMind).


Compiling last stable version of FreeMind

See Building.


See also

Development resources