Short projects
This is a list of small projects to start helping with Octave development. The following items could be done
- in a reasonable amount of time (a few hours) and
- without Octave development knowledge.
Use the Savannah patch tracker for submissions unrelated to an existing bug.
The list is meant to be dynamic -- please add, remove, and comment on it. And since the things are likely to be of short duration, don't ask if is there is anyone already working on it. Projects of long duration should be added to the Projects page instead.
Another way to catch a small project is to subscribe to the bug tracker (note that the bug tracker has a lot of activity). You may find it useful to review the history of this short projects page, to give you an idea of past successful short projects.
Bugs
Please help with the triage of existing bugs to populate the list of easy bugs below.
- #41674 - image package: temporary arrays in imresize are doubles
- #8368 - imremap - Change to imremap to reduce memory footprint
- #8369 - imresize - Change to imresize to reduce memory footprint
Missing functions / feature requests
Implement missing Octave functions or implement desired features and general improvements.
- #32088 -
-ALL
option forwhich
- #40211 - More compact output for structs and cell arrays
- #41530 - Editor debug mode could show a dbup/dbdown GUI component
- #41796 - extend sub2ind and ind2sub
- #41844 - GUI Debug Menu could offer "Stop If..."
- #47239 - calling system without shell
- #56639 - rescale: new function to scale an array to match a given interval
- #39439, #39434 - Use non-empty identifiers in all warnings and errors issued by Octave
- #57041 - Missing matlab function: startsWith
- You may tackle as many or as few IDs as you have time for. As it is a widespread issue, finding occurrences in the source code should give you valuable knowledge about the way Octave files are organized. When raising errors and warnings try to use the ids that are documented in the functions
warning_ids
anderror_ids
. If you really need a new id (please, first read the ones already there!), please add it to those functions as well. If you see other ids used in core that are not given by the functions mentioned above, please, report or submit patch for them, in addition to the patch to the calling functions as well.
- You may tackle as many or as few IDs as you have time for. As it is a widespread issue, finding occurrences in the source code should give you valuable knowledge about the way Octave files are organized. When raising errors and warnings try to use the ids that are documented in the functions
- Lists of missing functions for several packages.
- It would help to group the missing functions in the image package, as per [1] (similar to what was done in the signal package wiki page); please keep the original alphabetical list intact.
Function Compatibility
A number of functions are implemented, but may have known incompatibilities to Matlab or only partially handled option sets, etc.
- Sorry none yet.
Review or create changesets
Sometimes a standalone file or a diff file is submitted; Octave maintainers prefer a changeset though; preparing a changeset will expedite bug fixing. See the Mercurial and Commit message guidelines page how to do it.
- Sorry none yet.
Write Built-In Self Tests (BISTs)
Writing BISTs improves Octave's regression testing and ensures that we don't break anything when we add new features.
- BIST for C++ functions
- BIST for m-files. See also Projects#Tests.
Miscellaneous
- C++ cleanup of packages after the switch to exceptions (late 2015). See Invert if/else/error.
- Use "units.h" from GNU units in function units (from the Octave-Forge miscellaneous package) rather than making a system call and parsing its output (and having to handle multiple versions of it). This change will make it much more robust. It likely will alleviate the requirement of having GNU units installed in the system separately by the user. This requires knowledge of C (units is written on C) and C++ to write its Octave interface. It can be very easy if the units.h truly allows to be used as library or maybe impossible if it does not. This has not been investigated yet.