Extras-devel

Line 16: Line 16:
See also the [[Extras/3rd Party Package Policy]] being tested in Fremantle.
See also the [[Extras/3rd Party Package Policy]] being tested in Fremantle.
-
=== Downloads ===
+
=== Downloads OBSOLETE FIXME===
{{main|Providing changes since last version of a package}}
{{main|Providing changes since last version of a package}}
You can [https://maemo.org/downloads/product/create/OS2008/application.html create an entry] for your application in the [http://maemo.org/downloads maemo.org downloads section]. If the unixname of your entry is the same as your debian package in Extras, the version information will be automatically updated when you upload a new package.
You can [https://maemo.org/downloads/product/create/OS2008/application.html create an entry] for your application in the [http://maemo.org/downloads maemo.org downloads section]. If the unixname of your entry is the same as your debian package in Extras, the version information will be automatically updated when you upload a new package.
There is a discussion going on about how to provide changes since last version of a package. At the moment there isn't a conclusion to this discussion yet.
There is a discussion going on about how to provide changes since last version of a package. At the moment there isn't a conclusion to this discussion yet.
 +
 +
== Promoting packages to extras-testing ==
 +
 +
Developers can tinker as much as they want in the extras-devel repository. Once they think their an application is ready to go public they need to promote it to extras-testing following these steps:
 +
 +
1. Go to the armel version of your application.
 +
* This will be at maemo.org > packages > Fremantle Extras-devel free armel > ''packagename'' > ''version''
 +
 +
2. Check if you are listed as maintainer for the package.
 +
* This should correspond to your login name - you must be logged in
 +
 +
3. Check if there is a 'Promote package' link, if there is: click it
 +
* This is normally in the lower-right corner of the package description
 +
 +
If there are no errors shown your application will be promoted to extras-testing. This can take some time.
 +
 +
In case there are warning or errors on the details page of your package, please try to resolve these issues first. If the interface doesn't detect any problem, it will unlock the 'Promote package' link automatically.
 +
 +
You don't have to promote the i386 versions of your packages, they will be promoted automatically.
 +
 +
A promotion can fail because your application depends on an other 'user/*' category application. In this case you need to promote the other application first and wait until that package shows up in Extras-testing.
 +
 +
=== Promotion checks ===
 +
 +
The package interface will try to prevent promotion for packages with known issues. The following tests are in place:
 +
 +
* Application is using one of the official 'user/*' sections.
 +
* Promoting person is maintainer for the package.
 +
* All specified dependencies can be found in the origin repository or neighbour repositories.
 +
* All specified version dependencies are met.
 +
* Application doesn't depend on another 'user/*' application which hasn't been promoted yet.
 +
* Check if all dependencies which are in origin and not in target can be promoted.
 +
* Check dependencies of dependencies. (Check complete tree)
 +
* Check if the application hasn't been promoted already
 +
 +
 +
=== Maemian/Minimae checks after builds ===
 +
 +
Jeremiah is implementing the following checks in minimae for this Sprint:
 +
 +
* Control information is UTF-8
 +
* Control file contains an image (Not having an image is not an error, it's just that minimae should notice if there is an image or not, its size and type. This check is only done for user/ apps since libs have no icon.)
 +
* XB- (or XS-) Fields in control file
 +
* Version is consistent with what is in changelog
 +
* Use of trademarked names in package (not in version string.) i.e. A package cannot be called MaemoCamera or MaemoMusic since that is use of a registered trademark.
 +
* Make sure the name of the binary package that gets built is the same as the package name. i.e. a package called foo should build a binary called foo, not bar.
 +
* Each package has to have a copyright file
 +
* Copyright file cannot be compressed, i.e. zipped
 +
* Remove helper files from copyright, check for properly assigned copyright
 +
* Make sure the Architecture field is correct according to debian specifications. I.e. all, any, or a specific arch - multiple arches not allowed.

Revision as of 12:17, 23 October 2009

The software hosted in extras-devel is most likely not ready for end users! PLEASE PLEASE PLEASE don't play with it unless you really know what you are doing.

Developers upload the newest version of their software to extras-devel. From there the packages go Extras-testing and finally Extras through an automatic and human Quality Assurance process. This is a repository for developers and regular contributors of specific software projects. If you want to play with extras-devel software you need to be prepared to feel some pain sooner or later.

In order to activate extras-devel in the Application manager you need to follow the same instructions used to enable the extras-testing repository, only using "extras-devel" instead. The instructions are not made more simple just on purpose.  :)

Contents

For developers

Uploading to Extras

Main article: Uploading to Extras

Anyone with a Garage account can upload packages to Extras, and so make them available to the widest possible user base. It is important to note that the uploader needs a Garage account: the package itself does not need to be hosted in the Garage.

Policy

Main article: Task:Consolidation of Extras

The Extras policies are still in the process of being defined and refined. See Extras repository process definition and Diablo Extras repository proposal for details and discussion.

See also the Extras/3rd Party Package Policy being tested in Fremantle.

Downloads OBSOLETE FIXME

Main article: Providing changes since last version of a package

You can create an entry for your application in the maemo.org downloads section. If the unixname of your entry is the same as your debian package in Extras, the version information will be automatically updated when you upload a new package.

There is a discussion going on about how to provide changes since last version of a package. At the moment there isn't a conclusion to this discussion yet.

Promoting packages to extras-testing

Developers can tinker as much as they want in the extras-devel repository. Once they think their an application is ready to go public they need to promote it to extras-testing following these steps:

1. Go to the armel version of your application.

  • This will be at maemo.org > packages > Fremantle Extras-devel free armel > packagename > version

2. Check if you are listed as maintainer for the package.

  • This should correspond to your login name - you must be logged in

3. Check if there is a 'Promote package' link, if there is: click it

  • This is normally in the lower-right corner of the package description

If there are no errors shown your application will be promoted to extras-testing. This can take some time.

In case there are warning or errors on the details page of your package, please try to resolve these issues first. If the interface doesn't detect any problem, it will unlock the 'Promote package' link automatically.

You don't have to promote the i386 versions of your packages, they will be promoted automatically.

A promotion can fail because your application depends on an other 'user/*' category application. In this case you need to promote the other application first and wait until that package shows up in Extras-testing.

Promotion checks

The package interface will try to prevent promotion for packages with known issues. The following tests are in place:

  • Application is using one of the official 'user/*' sections.
  • Promoting person is maintainer for the package.
  • All specified dependencies can be found in the origin repository or neighbour repositories.
  • All specified version dependencies are met.
  • Application doesn't depend on another 'user/*' application which hasn't been promoted yet.
  • Check if all dependencies which are in origin and not in target can be promoted.
  • Check dependencies of dependencies. (Check complete tree)
  • Check if the application hasn't been promoted already


Maemian/Minimae checks after builds

Jeremiah is implementing the following checks in minimae for this Sprint:

  • Control information is UTF-8
  • Control file contains an image (Not having an image is not an error, it's just that minimae should notice if there is an image or not, its size and type. This check is only done for user/ apps since libs have no icon.)
  • XB- (or XS-) Fields in control file
  • Version is consistent with what is in changelog
  • Use of trademarked names in package (not in version string.) i.e. A package cannot be called MaemoCamera or MaemoMusic since that is use of a registered trademark.
  • Make sure the name of the binary package that gets built is the same as the package name. i.e. a package called foo should build a binary called foo, not bar.
  • Each package has to have a copyright file
  • Copyright file cannot be compressed, i.e. zipped
  • Remove helper files from copyright, check for properly assigned copyright
  • Make sure the Architecture field is correct according to debian specifications. I.e. all, any, or a specific arch - multiple arches not allowed.