Toolbox Development for GNU Octave and Matlab/Simulink

Developers' FAQ Getting Started Developer Tools GNU Octave
 Frequently-Asked Questions (Developers' FAQ)
=>  What are your selection criteria for toolbox submissions?

Anyone and everyone is encouraged to contribute to the MatLinks Toolchest. We do have a terse list of minimum qualifications that must be met to be considered for any entry at all into the Toolchest. These criteria are the first step in what sets the MatLinks Toolchest apart, and we ask you to consider that in order to maintain the high quality of the tools that you will come to expect in the MatLinks Toolchest, we must insist that you adhere to the same high standards with your own toolbox submission(s).

You must state explicitly the terms of your software license.

The actual licensing terms you wish to state to the end-user must be packaged with your submission in a plain text file. It's your choice whether to also include the same information in other formats, such as HTML (.htm), PostScript (.ps) or Acrobat (.pdf). But without a license file, we cannot process your submission.

MatLinks strongly suggests you seriously consider releasing your work under the GNU General Public License. This license will preserve your copyrights while also allowing others — colleagues, fellow academics, other practising engineers and specialists, and the scientific community at large — to modify your code and redistribute it provided your copyright remains intact. The GPL is carefully worded, has been meticulously researched, and has been proven effective in courts of law. It is probably the strongest guarantee that your software will get the most exposure, and the highest distribution, to as many others in your field as possible. Popular GPL'd software typically earns the highest degrees of peer recognition, whereas non-free softwares more often than not is left unused by most, as free software alternatives appear to replace them.

Several standard licensing agreements to select from may be found here, or you may choose to "roll your own". For instance, some people like to release their software under the "Postcard License", which simply asks that if you find the software useful, you drop the author a friendly postcard. The actual terms of the license you choose are entirely up to you. However, please note that MatLinks will only accept software that is freely (re)distributable over the entire lifetime of the software. If your license doesn't have terminology to this effect, we can't include it in the MatLinks Toolchest, because otherwise we couldn't make it available to others.

You must include appropriate documentation with the software.

Typically this includes installation instructions (readme or readme.txt) at the very least, but you can also include full-blown hypertext or acrobat documentation if you wish to. The more thorough the documentation, the more likely your contribution will be accepted for distribution with the MatLinks download. On the other hand, documentation should be brief and to the point whenever possible. Simply put, the documentation should be sufficiently detailed, but concise, and to the point, in order to be useful to others. The readme file should at least contain your toolbox web site and email contact info.

If you release your source code, include a change log/history.

A change log enables others to keep track of additions, modifications, and bug fixes made to your toolbox. If you have made any such changes before your submission, please bundle it with your toolbox in a file with a name like "changelog.txt", "changes.txt" or "bugfixes.txt". Otherwise, a blank change log will be added for you by the MatLinks project administrators. For each change to the code, the change log must contain: the name and email address of the person making the change, the full date of the change (day, month, year), the name of the module and/or function where the change was made, and finally, a brief, one- or two-line description of the actual change made. It is not necessary to state in the description for what reason a change was made, but if it's not obvious then please do so. Change logs are discussed in some further detail here.

No m-files, p-functions, s-functions etc. may share names with any existing GNU Octave or MatLinks Chorus ToolBox functions or blocksets.

From a legal standpoint, functions with the same name and function may constitute a violation of copyright on the original work. There are ways to deal with this. For example, make a generally-agreed technical improvement to an existing function by doing the same thing in a different, and better, way. More on this can be read at the GNU website.

From a practical standpoint, this is necessary in order to avoid conflicts in the environment namespace after installation of your software by an end-user. Because of the way Octave and Matlab work, you can actually create several functions or files with the same name (known as "overloading"), but many users will have difficulty determining which version of a function or script they are using when several clones exist. A current list of the reserved names and keywords can be viewed here. If for some reason your toolbox contains any "clones", then we will notify you and ask you to make revisions as you feel are appropriate.

It is not entirely unlikely that you may have a better functional representation for something in your toolbox that's done poorly in comparison, by a function with the same name in the existing MatLinks distribution. In such a case, please contact the author of the existing function and collaborate with them to improve or update/replace their version of the function. Once functions are submitted to MatLinks, a concerted effort must be made to ensure that these functions are updated as necessary and appropriate, and the MatLinks project moderators will work with you to ensure that any updates or improvements are implemented, in the interest of maintaining technological progress on the MatLinks Toolchest.

If you happen to have the same name for a function that already exists, but the two functions do entirely different things, then again, the MatLinks moderators will work with you as developers to seek out the most sensible solution. Typically, the decision as to which function to give precedence must be weighed against most users' acceptance of the existing scheme, and how many people are potentially affected. Unfortunately, under most circumstances, the decision weighs heavily against the new contender, and established names are favoured over any changes, purely for practical reasons.

=> Do I retain copyrights to my Toolbox?  Can I contribute a non-free toolboxe to the MatLinks Toolbox?

Yes! Your toolbox can be contributed under your own licensing terms, and you retain full copyright control. If your toolbox isn't copyrighted, you should do so now by including a copyright notice. Toolboxes licensed under the GNU GPL will be reviewed for direct inclusion into the core Chorus Toolbox component of the MatLinks Toolchest. Non-free contributions will be made available via download at, but end-user support requests for your toolbox will not be handled by MatLinks staff; they will instead be passed on to you. Also, if other tools are contributed under the GPL which effectively replace the functionailty of your non-GPL toolbox, then we will include the other toolbox within the Chorus core distribution, and drop support for its non-GPL precursor.

Please do note, however, that you are solely responsible for ensuring that end-users comply with your licensing terms. MatLinks will help you publicise your work and make your tools available, but we cannot accept any responsibility for how they are utilised.

These principles are both in firm keeping with our mission to pursue free software alternatives as soon as they become available, in order to support growth of the GNU Octave project. Please consider releasing your code as open source/free software instead.

=>  Can I protect my work by releasing my toolbox as compiled?

Yes! Because you are free use whatever licensing terms you feel are best for your own needs, you may also elect to contribute compiled versions of your toolbox(es). Compiled scripts (p-functions, mex-functions) fall under the same catagory as "non-free" software as discussed above.

=>  What if my toolbox is shareware? Can I ask royalties for my work?

Yes! Again, you are free use whatever licensing terms you feel are best for your own needs, so you even decide to collect royalties or fees for your work. MatLinks will not help you collect fees, however, and by contributing your non-royalty-free software, shareware, or commercial trial versions to the PowerTools distribution, you are agreeing to provide this software for download at no cost by anyone who visits the download site. By contributing, you are also agreeing that MatLinks is exempt from fees associated with the distribution of your toolbox, in order that we may provide it to others in the PowerTools distribution. MatLinks does not accept any toolbox contributions that would restrict its distribution by download via the MatLinks site, or further re-distribution by others thereafter.

You are also solely responsible for including any mechanisms in your toolbox or installation code that you feel are necessary and appropriate to ensure compliance with your licensing terms, and/or ensuring collection of any fees associated with the use of your fee-based toolbox services. will be set up shortly to provide a directory of links, where you can have your fee-based toolbox or service listed for a nominal fee. This is probably the best way for you to take advantage of MatLinks' services and still retain full control of the distribution of your product, if your toolbox falls into this rather restrictive category. Contact MatLinks for further details.

Why Join the MatLinks Development Team?

Because MatLinks needs you! Drop us a line -- click here to join now.

MatLinks administrators:
Alois Schlögl jump to Alois' homepage TSA Toolbox Medische Infomatik / Technische Universität-Graz / Österreich
Anders Holtsberg jump to Anders' homepage StixBox Toolbox Matematikcentrum / Lunds Tekniska Högskola / Lunds Universitet / Svenska
Jacco van Beek jump to Jacco's homepage MatNMR Toolbox Laboratorium für Physikalische Chemie / Eidgenössische Technische Hochschule (ETH) Zürich / Der Schweiz
Jesper Rydén jump to Jesper's homepage WAFO Toolbox Matematikcentrum / Lunds Tekniska Högskola / Lunds Universitet / Svenska
Julian de Marchi jump to Julian's homepage

Chorale ToolBox

Mechatronics Research Laboratory / Rensselaer Polytechnic Institute / USA

Nuvera Fuel Cells / Cambridge / USA

MatLinks webmaster:
Charlie Young   Financial Times of London


Developers' FAQ Getting Started Developer Tools GNU Octave

Copyright © 2000 MatLinks.Software Network.

Jump to SourceForge
Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.