Short projects: Difference between revisions

From Octave
Jump to navigation Jump to search
(→‎Feature requests: new section)
(→‎Missing functions: removing another one already addressed)
Line 18: Line 18:


== Missing functions ==
== Missing functions ==
* [https://savannah.gnu.org/bugs/?39532 #39532] hgsave/hgload functions
** There is already a bug report that summarizes this.  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.


* there is a list of missing functions for the [[image package|image]], [[mapping package|mapping]], [[Optimization package|optimization]], and [[Signal package|signal]] packages.
* there is a list of missing functions for the [[image package|image]], [[mapping package|mapping]], [[Optimization package|optimization]], and [[Signal package|signal]] packages.

Revision as of 16:13, 17 March 2014

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 fix to the bug tracker (not to the mailing list) and add a link to the item in question. Use the 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.

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 subscribe to the bug tracker (note that this has a lot of activity so you'll probably prefer to receive a digest).

Warning icon.svg
do not simply add a patch/file to the bug or patch tracker. Always leave a comment at the same time, even if it just a simple "I prepared a change that should fix it". If there is no comment, it's hard to notice that a patch was added since there will be no notice on the discussion about it.


Bugs

Please help with the triage of existing bugs to populate the list of easy bugs below. You may find it useful to review the history of this short projects page, to give you an idea of past successful short projects.

Prepare a changeset

Sometimes a standalone file or a diff file is submitted; Octave maintainers prefer a changeset though; preparing a changeset will expedite bug fixing.

Missing functions

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. 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.
  • 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.
    • When raising errors and warnings try to use the ids that are documented in the functions warning_ids and error_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.
  • extend sub2ind and ind2sub: #41796
  • Convert the m code to C/C++ in #41843

Feature requests