Contributing to the development of packages/modules: Difference between revisions
(Add Category:Outdated pages.) |
|||
(10 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{Warning|The information on this page is outdated. Please refer to the [https://octave.sourceforge.io/developers.php Octave Forge website] for information about contributing to packages.}} | |||
All OctaveForge packages (this name will change as soon we have [http://agora.octave.org/ Agora] online | All OctaveForge packages (this name will change as soon we have [http://agora.octave.org/ Agora] online | ||
running) are hosted in [https://sourceforge.net/p/octave/code/11146/tree/trunk/ this site]. Here we discuss how you can contribute to the development of those packages. Lets say you have found a bug in a function of one package and you know how to fix it. | running) are hosted in [https://sourceforge.net/p/octave/code/11146/tree/trunk/ this site]. Here we discuss how you can contribute to the development of those packages. Lets say you have found a bug in a function of one package and you know how to fix it. | ||
== One shot contribution == | == One shot contribution == | ||
In the OctaveForge site you can look for the package in question and get the latest version of the function you want to fix. This version could be unreleased, that is, it is not yet listed in the OctaveForge website and you will not get it by doing | In the OctaveForge site you can look for the package in question and get the latest version of the function you want to fix. This version could be unreleased, that is, it is not yet listed in the OctaveForge website and you will ''not'' get it by doing {{Codeline|pkg -forge install my_package}} in the Octave prompt. | ||
{{ | |||
pkg -forge install my_package | |||
in the Octave prompt. | |||
You can use this function in Octave if you copy on top of the old one (or rename the old one to *_old.m), but be careful because it may require other new functions. Anyway, you can get the latest and coolest version of any package from that site. | You can use this function in Octave if you copy on top of the old one (or rename the old one to *_old.m), but be careful because it may require other new functions. Anyway, you can get the latest and coolest version of any package from that site. | ||
Once you have the newest version of the function, check if it still has the bug you found. If it doesn't somebody solved it already. If the problem still there go on | Once you have the newest version of the function, check if it still has the bug you found. If it doesn't somebody solved it already. If the problem still there go on and fix it! | ||
Once you have fixed the bug, you can send a patch with your changes. How do you this? Check the [ | Once you have fixed the bug, you can send a patch with your changes. How do you this? Check the [http://octave.sourceforge.net/developers.html developers help] page. | ||
=== Checking out the | === Checking out the package source === | ||
You can also checkout the package in question using svn. For example if you | You can also checkout the package in question using svn. For example if you want to checkout the <tt>general</tt> package you would run | ||
<pre>svn co https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge/main general general_to_debug</pre> | |||
This will create a folder <code>general_to_debug</code> in your current directory. You can hack away as much as you can and then produce the | This will create a folder <code>general_to_debug</code> in your current directory. You can hack away as much as you can and then produce the | ||
patch and send it to the mailing list. | patch and send it to the mailing list. | ||
Many of the packages now use Mercurial (hg) repositories for version control. To checkout, for example, <tt>odepkg</tt>: | |||
<pre>hg clone http://hg.code.sf.net/p/octave/odepkg odepkg_to_debug</pre> | |||
=== Contributing new file or bundle of files === | === Contributing new file or bundle of files === | ||
There is a third way of contributing to OctaveForge. Lets say you do not want to be a developer but you have one or a bundle of functions you | There is a third way of contributing to OctaveForge. Lets say you do not want to be a developer but you have one or a bundle of functions you want to share with the commuity. You can use the [https://sourceforge.net/p/octave/feature-requests/ features request forum] (this will be also replaced by Agora when it is up and running). Upload your file (compressed if it is more than one) and lets us know that you did it by sending a mail to the mailing list. If there is anybody interested they will look at your code and give you suggestions. Speed up that process by adding a [http://en.wikipedia.org/wiki/List_of_FSF-approved_software_licenses GPL compatible license], preferably the latest GPL. | ||
want to share with the commuity. You can use the [https://sourceforge.net/p/octave/feature-requests/ features request forum] (this will be also replaced by Agora when it is up and running). Upload your file (compressed if it is more than one) and lets us know | |||
that you did it by sending a mail to the mailing list. If there is anybody interested they will look at your code and give you suggestions. Speed up that process by adding a [http://en.wikipedia.org/wiki/List_of_FSF-approved_software_licenses GPL compatible license], preferably the latest GPL. | |||
= Being a forger = | == Being a forger == | ||
If you want to be a more permanent member of our community, you can also request to be a Forge developer (name may change) following [http://octave.sourceforge.net/developers.html]. | If you want to be a more permanent member of our community, you can also request to be a Forge developer (name may change) following [http://octave.sourceforge.net/developers.html these instructions]. | ||
Line 38: | Line 36: | ||
Looking forward for your next contribution! | Looking forward for your next contribution! | ||
== | == Maintaining unmaintained packages == | ||
Being a package maintainer would not mean you have to fix all the bugs, only that you get the last word about applying patches from others and including new functions that other users will submit. You don't have to fix bugs, just tell them to use the bug tracker until someone that cares tries to fix it. | |||
About the difference between old and new releases, Octave Forge used to be one single large project. Now each package is released indidually and have their own independent development. As such, there used to be Makefile everywhere as variables would propagate. When the split was made, unmaintained packages, such as video, kept the old Makefiles (because no one removed them). The Makefile at the root of package for example does nothing. | |||
[[Category: | [[Category:Outdated pages]] | ||
Latest revision as of 01:46, 17 October 2019
All OctaveForge packages (this name will change as soon we have Agora online running) are hosted in this site. Here we discuss how you can contribute to the development of those packages. Lets say you have found a bug in a function of one package and you know how to fix it.
One shot contribution[edit]
In the OctaveForge site you can look for the package in question and get the latest version of the function you want to fix. This version could be unreleased, that is, it is not yet listed in the OctaveForge website and you will not get it by doing pkg -forge install my_package
in the Octave prompt.
You can use this function in Octave if you copy on top of the old one (or rename the old one to *_old.m), but be careful because it may require other new functions. Anyway, you can get the latest and coolest version of any package from that site.
Once you have the newest version of the function, check if it still has the bug you found. If it doesn't somebody solved it already. If the problem still there go on and fix it!
Once you have fixed the bug, you can send a patch with your changes. How do you this? Check the developers help page.
Checking out the package source[edit]
You can also checkout the package in question using svn. For example if you want to checkout the general package you would run
svn co https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge/main general general_to_debug
This will create a folder general_to_debug
in your current directory. You can hack away as much as you can and then produce the
patch and send it to the mailing list.
Many of the packages now use Mercurial (hg) repositories for version control. To checkout, for example, odepkg:
hg clone http://hg.code.sf.net/p/octave/odepkg odepkg_to_debug
Contributing new file or bundle of files[edit]
There is a third way of contributing to OctaveForge. Lets say you do not want to be a developer but you have one or a bundle of functions you want to share with the commuity. You can use the features request forum (this will be also replaced by Agora when it is up and running). Upload your file (compressed if it is more than one) and lets us know that you did it by sending a mail to the mailing list. If there is anybody interested they will look at your code and give you suggestions. Speed up that process by adding a GPL compatible license, preferably the latest GPL.
Being a forger[edit]
If you want to be a more permanent member of our community, you can also request to be a Forge developer (name may change) following these instructions.
Let us know if there are more questions
Looking forward for your next contribution!
Maintaining unmaintained packages[edit]
Being a package maintainer would not mean you have to fix all the bugs, only that you get the last word about applying patches from others and including new functions that other users will submit. You don't have to fix bugs, just tell them to use the bug tracker until someone that cares tries to fix it.
About the difference between old and new releases, Octave Forge used to be one single large project. Now each package is released indidually and have their own independent development. As such, there used to be Makefile everywhere as variables would propagate. When the split was made, unmaintained packages, such as video, kept the old Makefiles (because no one removed them). The Makefile at the root of package for example does nothing.