]project-open[ Package Manager

  • 2,541 views
Uploaded 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.

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,541
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
50
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. The Package Manager GUI Example
    • The Package Manager allows to install, update and uninstall packages.
  • 3. What is a Package?
    • A package is the basic unit of application code in ]project-open[/OpenACS
    • ]project-open[ consists of some 200 separate packages.
    • Packages can be installed and uninstalled.
    • A package consists of:
      • Meta-information including package version, dependencies and the “mount” URL
      • A data-model including tables, PL/SQL functions etc.
      • A number of TCL Web-pages
      • A library with TCL functions
  • 4. Package Lifecycle
    • 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.
    • 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.
    • Update: After updating the package code in /packages/, you run the Package Manager in order to apply changes in the data-model (“upgrade scripts”).
    • 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.
    Installed Install Package Update Package Uninstall Package Start End Download Package
  • 5. Anatomy of the “Notes” Package
    • A package consists of several files and directories with specific conventions for the names of files and folders
    • You need to stick to the conventions, otherwise the package manager won’t recognize your files.
    /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. Package Dependencies
    • The Package Manager allows developers to specify package dependencies.
    • The Package Manager may warn the user before installing users with unsatisfied dependencies or offer to install missing packages.
    • The “.info” package Meta-information file contains two elements for specifying dependencies:
      • Provides : Determines the package name and version provided by the current package
      • Requires : Specifies dependencies on other packages and a minimum version of these packages. There may be more then one “requires” line per package.
    <provides url=&quot;intranet-notes&quot; version=&quot;3.4.1.0.8&quot;/> <requires url=&quot;intranet-core&quot; version=&quot;3.4.0.0.0&quot;/> (Excerpt from /packages/intranet-notes/intranet-notes.info)
  • 7. Package Manager Parameters
    • The Package Manager allows you to define “parameters” for every package.
    • Parameters definitions and default values are stored in the “.info” file with package meta-information.
    • The package manager will read the parameter definitions into the database during package installation.
    • The ]po[ Admin -> Parameters page allows you to modify parameter values.
    • The screenshot at the right shows an excerpt from intranet-core.info with two parameters of different type (string and number).
    • 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.
    • Please observe the conventions used in other parameter definitions.
    <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. Writing Package Updates
    • The Package Manager allows to “update” packages:
      • 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
      • The PM will check
  • 9. Notes and Learned Lessons
    • In OpenACS 5.1 (]po[ V3.4 and below) the Package Manager does not correctly work with version numbers with double-digit versions (like 3.4.0.7. 11 ). Please keep version numbers single-digit.
  • 10. Frank Bergmann [email_address] www.project-open.com