Developer FAQ: Difference between revisions

Jump to navigation Jump to search
543 bytes added ,  11 June 2020
(2 intermediate revisions by the same user not shown)
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>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>'''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>'''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 find which file implements a given command? ==
== How can I contribute code to Octave? ==
 
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 20: Line 31:
   '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


If the desired function is a m-file, one can simply edit it inside the GUI, just type:
In this case, 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 33: Line 47:
   '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 [https://hg.savannah.gnu.org/hgweb/octave/file/b33d4fbce33e/libinterp/corefcn/load-path.cc#l2355].
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>".
 
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]]

Navigation menu