Difference between revisions of "Application Packaging"

From Amahi Wiki
Jump to: navigation, search
(New page: Guidelines for Application Packaging Integrity checking is done through the [http://linux.die.net/man/1/sha1sum sha1sum program]. The sha1sum that you as contributor attach to an applica...)
 
 
(30 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Guidelines for Application Packaging
+
The goal of packaging an application is to reduce to zero the technical knowledge required to install and use the application (no database setup, no web server setup, no application configuration, etc.) The actual package install is through a single click from the Amahi user.
  
Integrity checking is done through the [http://linux.die.net/man/1/sha1sum sha1sum program].
+
Packaging applications is through a simple web form in the contributor's area of amahi.org.  
  
The sha1sum that you as contributor attach to an application will be checked at the final destination in the users' HDAs.
+
Here is a ''really old'' 10-page Powerpoint presentation [[:File:Packaging-Applications-for-OneClick-Installation.ppt|HOWTO package an application]] (PPT) <!--([["File:Packaging-Applications-for-OneClick-Installation.pdf|PDF]])-->.
  
More to come ...
+
The fields in the application's form are listed below with their descriptions:
(add FAQs here!)
+
 
 +
= Name for the Application =
 +
Official name for the application. This is the name the user sees for the application. It must be unique (no repeats). Make sure the capitalization is the official capitalization of the original application. Examples: WordPress, Zina, Gallery, MediaWiki...
 +
 
 +
= App Home Page =
 +
 
 +
The URL to the app's home page, if it has one. Otherwise you can leave it blank.
 +
 
 +
= Version/Release =
 +
Version number for this app. Please specify like this: 7.5, 2.3.4, 0.1, etc. and align the version numbering with the source application being packaged.
 +
 
 +
= Logo URL =
 +
Best resolution for the logo is 160x120px or 320x240px.
 +
It should have transparent background (for best integration in all themes).
 +
Valid formats are png (much recommended), jpg and gif. The best logos are well centered with the logo covering most of the image and transparent background.  They must be uploaded in the Amahi wiki and referenced in the app.  Please do not reference images from other sites.
 +
 
 +
If you need a quick image editor, you can use the free online image editor [http://aviary.com/apps/flash/aviary/index.aspx?tid=1&Phoenix Phoenix], by Aviary.
 +
 
 +
= Screenshot URL =
 +
Best resolution for the screenshot is 320x240px or multiples thereof.
 +
Valid formats are png, jpg and gif. It must not be blurry. '''Most times it's best to zoom in as much as possible to a representative area of the screen, not the whole screen of the app.''' They must be uploaded in the Amahi wiki and referenced in the app.  Please do not reference images from other sites.
 +
 
 +
If you need a quick image editor, you can use the free online image editor [http://aviary.com/apps/flash/aviary/index.aspx?tid=1&Phoenix Phoenix], by Aviary.
 +
 
 +
= Source URL =
 +
URL for a tar.gz/tgz or zip file containing the source of the app.
 +
The source tar.gz/tgz or zip file must expand into a single directory to be supported.
 +
 
 +
You can leave this and the SHA1 fields blank if the app is RPM based.
 +
 
 +
= Source SHA1 checksum =
 +
Integrity checking is done through the [http://linux.die.net/man/1/sha1sum sha1sum program]. This field is the SHA1SUM for the source file (tar.gz/tgz or zip file), obtained by running sha1sum on the source code of the app. [[Developers/sha1sum|See how with the sha1sum HOWTO]]
 +
 
 +
= Suggested URL name or "short name" =
 +
 
 +
Suggested DNS '''short-name'' for this app. This is only if the app has a web interface (or much less frequently, if it otherwise needs to have a DNS entry for it to work somehow).  E.g. if you type <code>blog</code> in this field, the application will install and be bound to <code>http://blog</code>.
 +
 
 +
Users will also be able to type blog in the address bar of browsers to reach the app. If this name is not available, a subsequent name will be picked, e.g. blog1.
 +
 
 +
= Package =
 +
This field is name of the package for the application. If this name is different per distro that Amahi is supported on, it may be discerned per the [[Package naming conventions]].
 +
 
 +
= Package Dependencies =
 +
This field is a space-separated list, the name of any other required packages (space-separated).
 +
 
 +
If this list of names is different per distro that Amahi is supported on, it may be discerned per the [[Package naming conventions]].
 +
 
 +
These will be installed via yum/apt-get in one install command. Note, however, that for reliability reasons, these will not be removed upon un-install.
 +
 
 +
= Custom Webapp Options =
 +
This field, if filled, allows you to add custom options to this application,
 +
'''if this app has an associated webapp.''' The values you enter here will be but in a .htaccess file.
 +
 
 +
= App Database =
 +
 
 +
This field should contain the name of the database for this app, if any. MySQL is used by default. A corresponding user by the same name is created.
 +
The password for the user is also the database name. IMPORTANT: BOTH user and database are created at app install time and ARE DROPPED when the app is uninstalled
 +
 
 +
= Kind of application =
 +
Kind of application. Must be one of: php, theme, ror, ... or leave blank (this selects form a pattern of virtual host templates and needs to be more documented)
 +
 
 +
= App home page URL =
 +
Type the URL for the home page or the main site for this application, e.g. http://wordpress.org
 +
 
 +
= App Tags =
 +
Any tags you want for this app. Useful for search and categories for this application. Better to have more tags at this stage.
 +
 
 +
= Short Description =
 +
This field should contain a description of the application in a single paragraph with a sentence or more in it. Ideally, the first sentence should contain an good description within the first 70 characters of this field. You can include some very limited HTML. Links should include a target="_" in it.
 +
 
 +
= Long Description =
 +
This field should contain a full description of the app in several paragraphs. It will be positioned after the short description and should be a follow-through of it. You can include some limite HTML. Links should include a target="_" in it.
 +
 
 +
= Install Scripts =
 +
 
 +
See the section on [[Application Install Scripts]]
 +
 
 +
= App Dependencies =
 +
 
 +
In some rare cases, some apps need other apps in Amahi to be installed first prior to being installed. This is known as an "app dependency" (contrast to package/rpm dependencies).
 +
 
 +
This is supported at the moment, but not exposed to the My Apps interface. Please send the team an email with this request for a dependency to be added.
 +
 
 +
= Troubleshooting =
 +
 
 +
NOTE: The application installer logs install process information in your HDA at:
 +
 
 +
  /var/log/amahi-app-installer.log
 +
 
 +
So please check that log file for exceptions or other errors if your application fails to install!
 +
 
 +
= Releasing =
 +
 
 +
As soon as you are happy with how the app is installed please contact the core team at team at amahi org or in the IRC channel to review. At this stage the basic packaging is complete. You can add other users to the app as contributors to help with the app and
 +
 
 +
Return to the details on how to be an [[Application Contributor]]

Latest revision as of 00:44, 17 May 2018

The goal of packaging an application is to reduce to zero the technical knowledge required to install and use the application (no database setup, no web server setup, no application configuration, etc.) The actual package install is through a single click from the Amahi user.

Packaging applications is through a simple web form in the contributor's area of amahi.org.

Here is a really old 10-page Powerpoint presentation HOWTO package an application (PPT) .

The fields in the application's form are listed below with their descriptions:

Name for the Application

Official name for the application. This is the name the user sees for the application. It must be unique (no repeats). Make sure the capitalization is the official capitalization of the original application. Examples: WordPress, Zina, Gallery, MediaWiki...

App Home Page

The URL to the app's home page, if it has one. Otherwise you can leave it blank.

Version/Release

Version number for this app. Please specify like this: 7.5, 2.3.4, 0.1, etc. and align the version numbering with the source application being packaged.

Logo URL

Best resolution for the logo is 160x120px or 320x240px. It should have transparent background (for best integration in all themes). Valid formats are png (much recommended), jpg and gif. The best logos are well centered with the logo covering most of the image and transparent background. They must be uploaded in the Amahi wiki and referenced in the app. Please do not reference images from other sites.

If you need a quick image editor, you can use the free online image editor Phoenix, by Aviary.

Screenshot URL

Best resolution for the screenshot is 320x240px or multiples thereof. Valid formats are png, jpg and gif. It must not be blurry. Most times it's best to zoom in as much as possible to a representative area of the screen, not the whole screen of the app. They must be uploaded in the Amahi wiki and referenced in the app. Please do not reference images from other sites.

If you need a quick image editor, you can use the free online image editor Phoenix, by Aviary.

Source URL

URL for a tar.gz/tgz or zip file containing the source of the app. The source tar.gz/tgz or zip file must expand into a single directory to be supported.

You can leave this and the SHA1 fields blank if the app is RPM based.

Source SHA1 checksum

Integrity checking is done through the sha1sum program. This field is the SHA1SUM for the source file (tar.gz/tgz or zip file), obtained by running sha1sum on the source code of the app. See how with the sha1sum HOWTO

Suggested URL name or "short name"

Suggested DNS 'short-name for this app. This is only if the app has a web interface (or much less frequently, if it otherwise needs to have a DNS entry for it to work somehow). E.g. if you type blog in this field, the application will install and be bound to http://blog.

Users will also be able to type blog in the address bar of browsers to reach the app. If this name is not available, a subsequent name will be picked, e.g. blog1.

Package

This field is name of the package for the application. If this name is different per distro that Amahi is supported on, it may be discerned per the Package naming conventions.

Package Dependencies

This field is a space-separated list, the name of any other required packages (space-separated).

If this list of names is different per distro that Amahi is supported on, it may be discerned per the Package naming conventions.

These will be installed via yum/apt-get in one install command. Note, however, that for reliability reasons, these will not be removed upon un-install.

Custom Webapp Options

This field, if filled, allows you to add custom options to this application, if this app has an associated webapp. The values you enter here will be but in a .htaccess file.

App Database

This field should contain the name of the database for this app, if any. MySQL is used by default. A corresponding user by the same name is created. The password for the user is also the database name. IMPORTANT: BOTH user and database are created at app install time and ARE DROPPED when the app is uninstalled

Kind of application

Kind of application. Must be one of: php, theme, ror, ... or leave blank (this selects form a pattern of virtual host templates and needs to be more documented)

App home page URL

Type the URL for the home page or the main site for this application, e.g. http://wordpress.org

App Tags

Any tags you want for this app. Useful for search and categories for this application. Better to have more tags at this stage.

Short Description

This field should contain a description of the application in a single paragraph with a sentence or more in it. Ideally, the first sentence should contain an good description within the first 70 characters of this field. You can include some very limited HTML. Links should include a target="_" in it.

Long Description

This field should contain a full description of the app in several paragraphs. It will be positioned after the short description and should be a follow-through of it. You can include some limite HTML. Links should include a target="_" in it.

Install Scripts

See the section on Application Install Scripts

App Dependencies

In some rare cases, some apps need other apps in Amahi to be installed first prior to being installed. This is known as an "app dependency" (contrast to package/rpm dependencies).

This is supported at the moment, but not exposed to the My Apps interface. Please send the team an email with this request for a dependency to be added.

Troubleshooting

NOTE: The application installer logs install process information in your HDA at:

 /var/log/amahi-app-installer.log

So please check that log file for exceptions or other errors if your application fails to install!

Releasing

As soon as you are happy with how the app is installed please contact the core team at team at amahi org or in the IRC channel to review. At this stage the basic packaging is complete. You can add other users to the app as contributors to help with the app and

Return to the details on how to be an Application Contributor