Editing Developer FAQ

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 5: Line 5:
* <p>'''Kill the bugs.'''</p><p>Accurate bug reporting is also very useful.  Find and report [http://bugs.octave.org/ bugs], making an attempt to diagnose them.  Eventually, you will also know how to fix them.  If you want to help with bug reports or patches, subscribe to the [https://lists.gnu.org/mailman/listinfo/octave-bug-tracker bug tracker mailing list].  You'll get updates on all bug activity, and you can jump in when you see something you can help with.</p>
* <p>'''Kill the bugs.'''</p><p>Accurate bug reporting is also very useful.  Find and report [http://bugs.octave.org/ bugs], making an attempt to diagnose them.  Eventually, you will also know how to fix them.  If you want to help with bug reports or patches, subscribe to the [https://lists.gnu.org/mailman/listinfo/octave-bug-tracker bug tracker mailing list].  You'll get updates on all bug activity, and you can jump in when you see something you can help with.</p>


* <p>'''Getting hands dirty.'''</p><p>See [[#How can I contribute code to Octave?]] below. We lack volunteers and '''we do need your help''', but because of that, we also lack the time to provide good guidance and mentoring.  If there is a specific short-term project you would like to work on, say so, and '''just do it'''.  Then ask for help or advice when you're doing it.  It is a lot more important that you do something that you're actually interested on than something we suggested because it only matches your skills.</p>
* <p>'''Getting hands dirty.'''</p><p>If you feel ready to dive right into the code to make some changes, the [[Building]], [[Mercurial]], and [[Contribution guidelines]] wiki pages are a very useful start.</p><p>We lack volunteers and '''we do need your help''', but because of that, we also lack the time to provide good guidance and mentoring.  If there is a specific short-term project you would like to work on, say so, and '''just do it'''.  Then ask for help or advice when you're doing it.  It is a lot more important that you do something that you're actually interested on than something we suggested because it only matches your skills.</p>


* <p>'''Octave needs more documentation.'''</p><p>If you like documenting software or have great ideas for Octave, please get in contact with us.  Additionally, see [[Project - Documentation]] for details.</p>
* <p>'''Octave needs more documentation.'''</p><p>If you like documenting software or have great ideas for Octave, please get in contact with us.  Additionally, see [[Project - Documentation]] for details.</p>
Line 11: Line 11:
* <p>'''Need inspiration?'''</p><p>Look at our [[projects]], [[short projects]], and [[Summer of Code - Getting Started]] if you need specific inspiration for coding tasks that we would like to get done.</p>
* <p>'''Need inspiration?'''</p><p>Look at our [[projects]], [[short projects]], and [[Summer of Code - Getting Started]] if you need specific inspiration for coding tasks that we would like to get done.</p>


== How can I contribute code to Octave? ==
== How can I find which file implements a given command? ==
 
In general you can contribute code to Octave in form of '''patches (changesets)'''.  Those have to be uploaded to the [https://savannah.gnu.org/bugs/?group=octave bug] or [https://savannah.gnu.org/patch/?group=octave patch] tracker.
 
* In [[Building]] is described, how you get and build the latest Octave source code on your system.
* In [[Mercurial]] we describe, how you create a patch (changeset) from your modifications.
* Our [[Contribution guidelines]] should be read and followed as well, to ensure acceptance of your contribution.
 
== How can I find which source file implements a given command? ==
 
Use Octave's  {{manual|which}} command.
 
=== m-file functions ===


From within Octave, use <code>which</code>:
<syntaxhighlight lang="Octave">
<syntaxhighlight lang="Octave">
>> which help
>> which help
Line 31: Line 20:
   'help' is a function from the file /some/path/m/help/help.m
   'help' is a function from the file /some/path/m/help/help.m


In this case, the desired function is a m-file, one can simply edit it inside the GUI, just type:
If the desired function is a m-file, one can simply edit it inside the GUI, just type:
 
<syntaxhighlight lang="Octave">
<syntaxhighlight lang="Octave">
>> edit help
>> edit help
</syntaxhighlight>
</syntaxhighlight>
=== built-in functions ===


Some functions are already compiled (a.k.a. ''built-in functions''), for example:
Some functions are already compiled (a.k.a. ''built-in functions''), for example:
Line 47: Line 33:
   'addpath' is a built-in function from the file libinterp/corefcn/load-path.cc
   'addpath' is a built-in function from the file libinterp/corefcn/load-path.cc


This function is to be found in Octave's source code, in this case at {{Path|[https://hg.savannah.gnu.org/hgweb/octave/file/b33d4fbce33e/libinterp/corefcn/load-path.cc#l2355 libinterp/corefcn/load-path.cc]}}. Open the respective file with an editor of your choice and search for the pattern "<code> (addpath,</code>".
This function is to be found in Octave's source code, in this case at [https://hg.savannah.gnu.org/hgweb/octave/file/b33d4fbce33e/libinterp/corefcn/load-path.cc#l2355].
 
If the source code is cloned to a local machine, you can edit the repective file and search for something like "<code> (addpath,</code>".


[[Category:Development]]
[[Category:Development]]
[[Category:FAQ]]
[[Category:FAQ]]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page: