Short projects
This is a list of small projects, the type that could be done in a couple of hours, maybe even minutes (no promises, we should all know about how estimates for software development work). This is probably the best place for users who want to start helping with Octave development (please, see also Octave coding guidelines). Please submit a patch to the patch tracker (not to the mailing list) and add a link to the item in question.
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.
Please help with the triage of existing bugs to populate the list of easy bugs below. You may find it useful to review the list of finished short projects at the bottom, to give you an idea of past successful short projects.
Most of the small and easy bugs are caught and fixed quickly by the Octave developers. The best way to catch an easy one is then to to the bug tracker (note that this has a lot of activity so you'll probably prefer to receive a digest).
Bugs
- #41186 image: fspecial disk is not matlab compatible
- this should be easy very easy to fix. The only complicate part is figuring out how Matlab does the calculations (since that is not documented). Needless to say, you cannot borrow from Matlab's source code!
- #41484 change error message from validatestring to follow Octave guidelines
- this is a very very easy fix. Things can't get easier than this. Only reason why Octave developers haven't done this themselves was to give an entry point for someone new to Octave development.
- #41476 listdlg() doesn't allow scrolling in the window
- There is a proposed fix in the bug report. Just need to make the modification and verify that everything else still works.
Missing functions
- hgsave/hgload functions
- There is already a bug report that summarizes this (https://savannah.gnu.org/bugs/?func=detailitem&item_id=39532#options). It would be quite easy to add these functions based on using hdl2struct and then saving the resulting struct and loading the struct and using struct2hdl to do the reverse.
- conversion between units of length and angles for the mapping package (please see #8371, #8372, and #8373 first)
- sm2deg
- sm2rad
- nm2rad
- km2rad
- rad2km
- rad2nm
- rad2sm
- there is a list of missing functions for the image, mapping, optimization, and signal packages.
Miscellaneous
- 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. Should be very simple but requires knowledge of C (units is written on C) and C++ to write its Octave interface.
- Write one missing test; see also Projects#Tests.
- Use non-empty identifiers in all warnings and errors issued by Octave; see #39439, #39434, #37559, #36861. 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 Octave files organization.
Finished short projects
- conversion between units of length for the mapping package (see patch 8320)
- km2nm
- km2sm
- nm2km
- nm2sm
- sm2km
- sm2nm
- #41633 postpad does not pad singleton dimensions
- Function is implemented as an m file and should be simple enough to work
- #41773 "imshow (im , 'xdata', [-5 5], 'ydata', [-5 5])" fails
- This is a very simple input checking problem.