Latest revision |
Your text |
Line 1: |
Line 1: |
| == How can I get involved in Octave development? == | | == ''How can I find which file implements a given command?'' == |
| | |
| * <p>'''Be around. Be social.'''</p><p>Participate in our [https://octave.discourse.group/ Discourse Forum]. Find things about Octave you don't like, and start thinking about how to fix them. '''Please do not just send a message listing your skills and offering to help.'''</p><p>Many people who now contribute to Octave first spent some time observing the community communication before they started to delve into the code. A good way to learn Octave is to understand the problems other people are having with it, so being helpful in Discourse not only helps Octave as a whole, but it also prepares you to become a better Octave contributor.</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>'''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>'''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? ==
| |
| | |
| 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 8: |
| '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 21: |
| '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]]
| |