]project-open[ Package Manager


Published on

This tutorial explains the life cycle of packages in ]project-open[ and how you can use the package manager to install, update and uninstall packages.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

]project-open[ Package Manager

  1. 1. The Package Manager The ]project-open[ Data-Model , Frank Bergmann, 2010-10-05 This tutorial explains the package manager and the life cycle of packages.
  2. 2. The Package Manager GUI Example <ul><li>The Package Manager allows to install, update and uninstall packages. </li></ul>
  3. 3. What is a Package? <ul><li>A package is the basic unit of application code in ]project-open[/OpenACS </li></ul><ul><li>]project-open[ consists of some 200 separate packages. </li></ul><ul><li>Packages can be installed and uninstalled. </li></ul><ul><li>A package consists of: </li></ul><ul><ul><li>Meta-information including package version, dependencies and the “mount” URL </li></ul></ul><ul><ul><li>A data-model including tables, PL/SQL functions etc. </li></ul></ul><ul><ul><li>A number of TCL Web-pages </li></ul></ul><ul><ul><li>A library with TCL functions </li></ul></ul>
  4. 4. Package Lifecycle <ul><li>Download: Most packages are part of the ]project-open[ “standard distribution” that you can download from SourceForge.net. Packages are stored in the ~/packages/ (C:project-open servers projop packages) directory. </li></ul><ul><li>Installation: Please use the Package Manager (see below) for installing a package. During installation, the Package Manager will execute the data-model creation script and “mount” the package. </li></ul><ul><li>Update: After updating the package code in /packages/, you run the Package Manager in order to apply changes in the data-model (“upgrade scripts”). </li></ul><ul><li>Uninstall: You can uninstall a package if no other packages depend on it. During the uninstall, the Package Manager will execute the data-model delete script. </li></ul>Installed Install Package Update Package Uninstall Package Start End Download Package
  5. 5. Anatomy of the “Notes” Package <ul><li>A package consists of several files and directories with specific conventions for the names of files and folders </li></ul><ul><li>You need to stick to the conventions, otherwise the package manager won’t recognize your files. </li></ul>/packages/intranet-notes/ # Package directory intranet-notes.info # Meta information /catalog/ # Localization strings intranet-notes.en_US.ISO-8859-1.xml # US English strings intranet-notes.de_DE.ISO-8859-1.xml # German strings /sql/postgresql/ # Data-model intranet-notes-create.sql # Data-model installation script intranet-notes-delete.sql # Data-model delete script /tcl/ # TCL Library intranet-notes-procs.tcl # *-procs.tcl is a library /www/ # TCL Web-Pages index.tcl # TCL logic for index page index.adp # ADP (=HTML) content for index page
  6. 6. Package Dependencies <ul><li>The Package Manager allows developers to specify package dependencies. </li></ul><ul><li>The Package Manager may warn the user before installing users with unsatisfied dependencies or offer to install missing packages. </li></ul><ul><li>The “.info” package Meta-information file contains two elements for specifying dependencies: </li></ul><ul><ul><li>Provides : Determines the package name and version provided by the current package </li></ul></ul><ul><ul><li>Requires : Specifies dependencies on other packages and a minimum version of these packages. There may be more then one “requires” line per package. </li></ul></ul><provides url=&quot;intranet-notes&quot; version=&quot;;/> <requires url=&quot;intranet-core&quot; version=&quot;;/> (Excerpt from /packages/intranet-notes/intranet-notes.info)
  7. 7. Package Manager Parameters <ul><li>The Package Manager allows you to define “parameters” for every package. </li></ul><ul><li>Parameters definitions and default values are stored in the “.info” file with package meta-information. </li></ul><ul><li>The package manager will read the parameter definitions into the database during package installation. </li></ul><ul><li>The ]po[ Admin -> Parameters page allows you to modify parameter values. </li></ul><ul><li>The screenshot at the right shows an excerpt from intranet-core.info with two parameters of different type (string and number). </li></ul><ul><li>You can define new parameters in the Package Manager -> <your package> -> Parameters. Please make sure your .info file is writable, as the PM will write the new parameter right into the file. </li></ul><ul><li>Please observe the conventions used in other parameter definitions. </li></ul><parameters> <parameter datatype=&quot;number&quot; min_n_values=&quot;1&quot; max_n_values=&quot;1&quot; name=&quot;AuditProjectUpdatesP&quot; default=&quot;0&quot; description=&quot;Enable Auditing?&quot;   /> <parameter datatype=&quot;string&quot; min_n_values=&quot;1&quot; max_n_values=&quot;1&quot; name=&quot;BackupBasePathUnix&quot; default=&quot;/home/ppm/filestorage/backup&quot; description=&quot;Path for backup sets&quot; /> [...] </parameters> (Excerpt from /packages/intranet-core/intranet-core.info)
  8. 8. Writing Package Updates <ul><li>The Package Manager allows to “update” packages: </li></ul><ul><ul><li>The PM will include your package with an “update” status íf specify a “higher” version number in your .info file then the version stored by the PM </li></ul></ul><ul><ul><li>The PM will check </li></ul></ul>
  9. 9. Notes and Learned Lessons <ul><li>In OpenACS 5.1 (]po[ V3.4 and below) the Package Manager does not correctly work with version numbers with double-digit versions (like 11 ). Please keep version numbers single-digit. </li></ul>
  10. 10. Frank Bergmann [email_address] www.project-open.com