Fwd: New package

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Fwd: New package

Felix Aparicio Perez

---------- Forwarded message ----------
From: Felix Aparicio Perez <[hidden email]>
Date: 2017-09-25 10:20 GMT+02:00
Subject: New package
To: [hidden email]


I have developed a package-toolbox, called MatPol, made of 65 Octave-Matlab routines, that can be used to make several matrix polynomial computations. Some of the routines make general computations, like polynomial matrix inversion or triangularization, and other routines make computations that are more specific to multivariate time-series analysis (and also useful for signal processing), like spectral factorization or computation of echelon canonical forms. The routines come with a 100 page manual and examples.
In fact I wrote the routines several years ago and it is now that I have decided to make them available to others.
I have made a big effort to ensure that the routines work both with Matlab and with Octave. I have tested them both on Linux and Windows systems.
Now I am thinking in which way(s) I would make the package available to others.
A first idea is to upload it to the server in my working place. The advantage is that it is straightforward, but I guess that not many people would know of their being there.
Another idea is to make an Octave package. The advantage is that the routines would be known by more people. I think that both ideas are compatible, since the paragraph "External Packages" at https://octave.sourceforge.io/dev-descr-two-groups.php sais so.
I am not considering uploading MatPol to Matlab Central, since the license there would have to be a BSD one.
I think that an external package hosted in Octave Forge could be a good solution.
I have read the instructions for authors and downloaded a few Octave packages (sa, optim and tsa), but I still would like to make some points clear:

At https://octave.sourceforge.io/common-requirements.php  it reads that EXCEPT IF NOTED OTHERWISE a package must be in the public domain or covered by a Free software License.
Then, in the Octave Manual (edition 4 for Octave Version 4.2.1 february 2017) in page 857 it reads "No restrictions is made on the license in general. If however the package contains dynamically linked functions the license must be compatible with the GNU General Public License."
Then, at http://wiki.octave.org/FAQ, it reads "Code written entirely in the scripting language of Octave (interpreted code in .m files) may be released under the terms of whatever license you choose".
From all this, since my programs do not contain any dynamically linked functions and they are completely written in the scripting language of Octave, I understand that I have no restrictions on the kind of license for my programs. Is this true?

I would like to keep the things simple. After reading the Octave manual, I think that it would be enough with:
package/CITATION file
package/COPYING file
package/DESCRIPTION file
package/inst folder containing all the m-files
package/doc folder with the pdf manual and may be the m-example files (would the example files rather be in the package/inst folder?)

Moreover, I think that I should also include the copyright notice in the first lines of each m-file.

When I'll have created a directory containing all these files and folders, how shall I upoload it? Has it anything to do with the Mercurial thing?

Since I want to reach so many people as possible, in particular, Matlab users,  I also want to distribute my package in a simple, more primitive form, consisting
 of a compressed file (zip or tar) containg all the routines, manual and examples files, such that, when uncompressed, a folder will be created. The manual then explains that the user, whether in Matlab or in Octave, would only have to submit an addpath(genpath("Folder")) command in order to begin using the routines,
 where Folder is the folder where the routines are. The question is whether I actually have to do this second distribution, for example, uploading the package to the
 web server in my working place, or if there is some simple way to make an Octave package work in Matlab (a package like mine, that only has m-file scripts and that has been designed to work with both Matlab and Octave). Perhaps you have some suggestions and/or know of some people who have managed to distribute their work for both Octave and Matlab in some way that I have not thought of. I have heard, for example, of Github, but I do not know if it is a good idea.
Most of the routines in my package include many comment lines with details. Some of those details relate to pages of books where the corresponding formulae can be found. I read somewhere time ago that in some countries formulae and not only implementations of them are subject to copyright. Should I remove those specific comments? 
What are the tasks a mantainer does? I guess that fixing bugs or providing explanations to users are some of them, but are there more tasks involved? I think that there will be no important future releases of the package, apart from the first one, but there will probably be small releases to correct bugs and make minor modifications, so it would make a lot of sense that I mantain the package, at least for some time.

Thanks for your help