Module Submission

From Lunar Linux
(Difference between revisions)
Jump to: navigation, search
m (added note about new submit functionality in theedge)
m (Added a header for the acceptance/rejection criteria)
 
(14 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
Well obviously you can report the problem via
 
Well obviously you can report the problem via
 
the [http://bugs.lunar-linux.org/view_all_bug_page.php Bug Tracker],
 
the [http://bugs.lunar-linux.org/view_all_bug_page.php Bug Tracker],
the [http://forums.lunar-linux.org/ Forums],
 
 
the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List], or discuss it on
 
the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List], or discuss it on
 
the [irc://irc.freenode.net/lunar #Lunar] IRC channel on [http://freenode.net/ Freenode.net]
 
the [irc://irc.freenode.net/lunar #Lunar] IRC channel on [http://freenode.net/ Freenode.net]
Line 23: Line 22:
 
Maybe other people could benefit from your module.
 
Maybe other people could benefit from your module.
 
Maybe other people could improve your module.
 
Maybe other people could improve your module.
So why not submit it to the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List]
+
So why not submit it to the Lunar developers so they can decide whether to commit it to the [[Moonbase]]?
so that the others can see it and the Lunar developers can decide whether to include it in the [[Moonbase]]?
+
Even if they don't, your module will still be available to interested parties via the mailing list archive.
+
  
====So what do you need to be able to submit a module?====
+
====What are the acceptance/rejection criteria for submissions?====
  
* '''You need to be subscribed to the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List].''' Why not do it now anyway?
+
* In general, module submissions will probably be accepted if they:
 +
: + introduce a new or missing module into the moonbase;
 +
: + provide an updated version of a module;
 +
: + provide updated download and website URLs;
 +
: + provide missing dependencies required to build the module;
 +
: + add BUILD options that enable a failing module to build.
  
* '''If you have a working out-going mail connection.'''
+
* However, module submissions are likely to be rejected if they:
** Maybe you haven't yet got or don't want to have a full mail installation on your system. Then you could install a minimal out-going mail only system. Download the [http://modules.lunar-linux.org/index.php?option=module&module=esmtp esmtp] module from the [[Moonbase]] and configure the ''/etc/esmtprc'' or ''$HOME/.esmtprc'' file as described in the [http://esmtp.sourceforge.net/manual.html on-line manual]. That's all there is to it.
+
: - do not follow the formatting guidelines given on the wiki;
** Simply run '''lvu submit myModule'''. You will see a submission template in the editor of your choice. Fill in the blanks: email address, some module details, and some explanatory text about your submission. Are you happy with the BUILD file? What options have you tackled? How much testing have you done? Write the template and submit. It's as easy as that.
+
: - fail to download sources correctly, or fail to build;
 +
: - introduce system specific changes that not all users will want;
 +
: - remove explicit dependencies in favour of implicit ones;
 +
: - form part part of a larger suite of modules that need to be updated and tested together, such as an X, KDE or GNOME component;
 +
: - introduce an svn or git development version of a module that already has a recent, stable version;
 +
: - change a core module, or one which is known to cause update problems for other tools.
  
* '''If you don't have sendmail or esmtp installed''', you can still send updates as patches.
+
====How do I create a new module?====
** Creating a patch is as easy as '''lvu diff myModule > myModule.patch'''. Send the patch file as an attachment to the mailinglist and it will be picked up as a normal submission.
+
  
* '''Remember to watch the mailing list for feedback.''' It might show up as a new module in the Weekly Overview without further comment. You might not hear anything more because the developers are all busy with mainstream infrastructure and modules, but at least you have contributed and your contribution is available in the archives for other interested users.
+
The easiest way is to run '''lvu new''' ''theModule''. It will ask for URLs for the source tarball and the website, and for short and long description entries, and then create a basic [[DETAILS]] file for you. Then follow the guidelines below.
  
'''Note''': the above currently applies to submitting a module using '''lunar'''. ''Sofar'' has just released a version of '''theedge''' that contains new code so that '''lvu submit module''' sends the relevant information using http. All you need to do is fill in a submit message, in the same style as a cvs/svn commit.
+
====How do I update a module?====
 +
 
 +
Let's assume that you have found the ''theModule'' no longer downloads and installs properly and you want to fix it.
 +
 
 +
* run '''lvu edit''' '''''theModule''''' to copy the existing ''theModule'' files to [[zlocal]].
 +
* run '''lvu cd''' '''''theModule''''' or manually change into the directory given by ''lvu edit''
 +
* edit the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file
 +
* if you are updating because there is a new release:
 +
** modify the version number to the latest one available
 +
** edit the ''UPDATED'' date to today's date
 +
** run '''lget''' '''''theModule''''' and see if the new version downloads OK
 +
** run '''sha1sum /var/spool/lunar/theModule-(whatever the new file name is)'''
 +
** insert this checksum in the ''SOURCE_VFY'' field in the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file
 +
* if you are correcting a broken link or sha1sum without changing the version:
 +
** leave the ''UPDATED'' field as it was so that people will not be forced to download and re-install
 +
* run '''lin''' '''''theModule''''' and test, test and test again
 +
** run '''lvu install''' '''''theModule''''' to make sure that it has not installed files where it shouldn't
 +
** run '''lvu links''' '''''theModule''''' and check whether you need to create or update [[DEPENDS]]
 +
 
 +
Many modules only require a [[DETAILS]] file. Others may also need [[DEPENDS]], [[BUILD]], etc. or require '''x86_64''' versions of the files. See [[Module_Basics]] for more information.
 +
 
 +
====How do I submit the module?====
 +
 
 +
Once you have successfully installed the module using '''lin -rc''' ''theModule'':
 +
 
 +
* '''subscribe to the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List].''' Not sure if this is still required, but why not do it now anyway? Other users might have feedback about the module.
 +
 
 +
* if you haven't already done so, you will need run '''lunar set ADMIN''' '''''your@e-mail.adress''''', or run '''lunar''' and follow the menus, before the next step in order for the submission script to work (it requires a valid e-mail address).
 +
 
 +
* run '''lvu submit''' '''''theModule''''' and provide a meaningful message (see Note below).
 +
* you should receive e-mail feedback whether your submission was accepted or the reasons for rejection but remember that:
 +
# the Lunar development team is quite small,
 +
# they are all working in their spare time, and have real lives and other commitments,
 +
# some of the submissions require specific hardware/software environments to be able to install and test them properly
 +
 
 +
'''Note''': The first line of the message will be visible on the on-line [http://foo-projects.org/~sofar/queue.php Submission queue]. Give the reasons why the module has been updated, and what you have changed. This message can then be used directly when submitting the changes to the central [[moonbase]].
 +
 
 +
====The view from the developers' side!====
 +
 
 +
For an idea of how the developers process the submissions, see [[Module_Submission_for_developers]] and [[GitForLunarDevs]]

Latest revision as of 20:03, 22 April 2011

Contents

Submitting modules to the official Moonbase

Why would I want to?

The official Moonbase is maintained and updated by the Lunar Linux developers. But what if there isn't a module in the Moonbase for the package that you want, or it is not the latest version, or it is out-of-date in some other way?

Well obviously you can report the problem via the Bug Tracker, the Lunar Mailing-List, or discuss it on the #Lunar IRC channel on Freenode.net and hope that someone can help you.

Or you can scratch your itch the open source way and create or update the module yourself using the information in the articles: A basic module outline and Writing Lunar-Linux Modules. Remember to work in the zlocal section so that your updates are not lost the next time you download a new Moonbase.

And then what? Maybe other people could benefit from your module. Maybe other people could improve your module. So why not submit it to the Lunar developers so they can decide whether to commit it to the Moonbase?

What are the acceptance/rejection criteria for submissions?

  • In general, module submissions will probably be accepted if they:
+ introduce a new or missing module into the moonbase;
+ provide an updated version of a module;
+ provide updated download and website URLs;
+ provide missing dependencies required to build the module;
+ add BUILD options that enable a failing module to build.
  • However, module submissions are likely to be rejected if they:
- do not follow the formatting guidelines given on the wiki;
- fail to download sources correctly, or fail to build;
- introduce system specific changes that not all users will want;
- remove explicit dependencies in favour of implicit ones;
- form part part of a larger suite of modules that need to be updated and tested together, such as an X, KDE or GNOME component;
- introduce an svn or git development version of a module that already has a recent, stable version;
- change a core module, or one which is known to cause update problems for other tools.

How do I create a new module?

The easiest way is to run lvu new theModule. It will ask for URLs for the source tarball and the website, and for short and long description entries, and then create a basic DETAILS file for you. Then follow the guidelines below.

How do I update a module?

Let's assume that you have found the theModule no longer downloads and installs properly and you want to fix it.

  • run lvu edit theModule to copy the existing theModule files to zlocal.
  • run lvu cd theModule or manually change into the directory given by lvu edit
  • edit the DETAILS file
  • if you are updating because there is a new release:
    • modify the version number to the latest one available
    • edit the UPDATED date to today's date
    • run lget theModule and see if the new version downloads OK
    • run sha1sum /var/spool/lunar/theModule-(whatever the new file name is)
    • insert this checksum in the SOURCE_VFY field in the DETAILS file
  • if you are correcting a broken link or sha1sum without changing the version:
    • leave the UPDATED field as it was so that people will not be forced to download and re-install
  • run lin theModule and test, test and test again
    • run lvu install theModule to make sure that it has not installed files where it shouldn't
    • run lvu links theModule and check whether you need to create or update DEPENDS

Many modules only require a DETAILS file. Others may also need DEPENDS, BUILD, etc. or require x86_64 versions of the files. See Module_Basics for more information.

How do I submit the module?

Once you have successfully installed the module using lin -rc theModule:

  • subscribe to the Lunar Mailing-List. Not sure if this is still required, but why not do it now anyway? Other users might have feedback about the module.
  • if you haven't already done so, you will need run lunar set ADMIN your@e-mail.adress, or run lunar and follow the menus, before the next step in order for the submission script to work (it requires a valid e-mail address).
  • run lvu submit theModule and provide a meaningful message (see Note below).
  • you should receive e-mail feedback whether your submission was accepted or the reasons for rejection but remember that:
  1. the Lunar development team is quite small,
  2. they are all working in their spare time, and have real lives and other commitments,
  3. some of the submissions require specific hardware/software environments to be able to install and test them properly

Note: The first line of the message will be visible on the on-line Submission queue. Give the reasons why the module has been updated, and what you have changed. This message can then be used directly when submitting the changes to the central moonbase.

The view from the developers' side!

For an idea of how the developers process the submissions, see Module_Submission_for_developers and GitForLunarDevs

Personal tools
Namespaces
Variants
Actions
Wiki Navigation
Project Sites
Toolbox