How can I get involved in Octave development?
Be around. Be social. Participate in our mailing lists email@example.com and firstname.lastname@example.org. Find things about Octave you don't like, and start thinking about how to fix them. Many people who now contribute to Octave first spent several years helping in the mailing list 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 the mailing lists not only helps Octave as a whole, but it also prepares you to be a better Octave contributor.
If you feel ready to dive right into the code, read the Developers wiki page or start here. But do not send an email to the mailing lists listing your skills and offering to help. We won't just suggest things for you to do. 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.
We also need help with this wiki and the manual. These are also important tasks. The documentation is easy to patch, and the help text for individual functions even more so. Editing this wiki is even easier.
Accurate bug reporting is also very useful. Find and report 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 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.
How can I find which file implements a given command?
From within Octave, use
>> which help
'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:
>> edit help
Some functions are already compiled (a.k.a. built-in functions), for example:
>> which addpath
'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 .
If the source code is cloned to a local machine, you can edit the repective file and search for something like "