|
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 MatLinks.net,
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 MatLinks.net
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.
MatLinks.com
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.
|
|
|