By Bryan Quinn and Todd -Nightingale
</authorblurb>The following is a requirements document for the OpenACS Package Manager (APM), version 4.0 (APM4). APM4 offers a superset of APM @@ -32,7 +38,7 @@ Vision Statement
A typical website will tend to offer its users a number of web-based services or applications, e.g. a bulletin board, calendaring, classified ads, etc. A website may also have -underlying subsystems, such as a permissions system, content +underlying subsystems, such as a permission system, content management system, etc. For such applications and subsystem components, modularity - or the degree to which a component can be encapsulated and decoupled from the rest of the system - is of @@ -42,10 +48,10 @@ system. This allows site owners to steadily offer users new and improved services, and also allows programmers to quickly and easily distribute their OpenACS components in a standardized manner -to other OpenACS sites.
In general terms, a package is a unit of software that serves a -single well-defined purpose. The OpenACS Package Manager (APM) -provides a mechanism for packaging, installing, and configuring -OpenACS software in a consistent, user-friendly, and subsite-aware +to other OpenACS sites.
In general, a package is a unit of software that serves a single +well-defined purpose. The OpenACS Package Manager (APM) provides a +mechanism for packaging, installing, and configuring OpenACS +software in a consistent, user-friendly, and subsite-aware manner.
A registry of installed -packages, database-backed and integrated with file -system-based version control
Web-based tools for package development:
Creating new packages locally
Releasing new versions of locally-created packages
Uploading packages to a global package repository on the web
Use of these tools should be safe, i.e. installing or removing a @@ -260,7 +266,7 @@ identified.
4.600.1 Each -package will have a PGP signature and there will be MD5 time stamps +package will have a PGP signature and there will be MD5 timestamps for each file within the package.
4.600.5 The APM will provide a facility to validate both the PGP signature and MD5 @@ -308,18 +314,19 @@ package
20.1 The developer must be able to add files to the package. This is done by copying -the files into the package directory in the host OS's file -system. Files can be added at any point after package creation.
+the files into the package directory in the host OS's +filesystem. Files can be added at any point after package +creation.
20.3 Once a package has been versioned and distributed, no new files should be added to the package without incrementing the version number.
20.5 The APM's UI should facilitate the process of adding new files, by scanning -the file system for new files automatically, and allowing the +the filesystem for new files automatically, and allowing the developer to confirm adding them.
20.10 The developer cannot add files to a given package via the UI that do not exist in -the file system already.
+the filesystem already.
20.15 Package file structure must follow a specified convention. Please see the design document for what we do @@ -333,12 +340,12 @@ 30.1 Access the APM UI, browse the file list, and remove files.
30.1.1If a file is -removed from the package list, but not from the file system, an +removed from the package list, but not from the filesystem, an error should be generated at package load time.
30.5 Remove the -file from file system.
+file from filesystem.
30.5.1 The APM UI should take note of the fact that the file is gone and offer the developer an option to confirm the file's deletion.
@@ -349,8 +356,8 @@ 40.0 Modify files in a package.40.1 The developer -should be able to modify files in the file system. The APM UI -should not interfere with this.
+should be able to modify files in the filesystem. The APM UI should +not interfere with this.
40.5 However, if the developer modifies files containing procedural definitions, APM UI should allow a means to watch those files and @@ -391,7 +398,7 @@ all package information.
70.0 Write an XML package -specification to the file system
+specification to the filesystem
70.1 The developer should be able to write an up-to-date XML specification to disk.
@@ -461,7 +468,7 @@ administrator must be able to install new packages either from locally maintained .APM files or from URLs.
90.5 In the case of -an URL, the APM transparently downloads the APM file off the web, +a URL, the APM transparently downloads the APM file off the web, proceeds with a file based installation, and then optionally removes the .APM file just downloaded.
90.10.1 If .APM @@ -559,7 +566,7 @@ 110.1.1 Running any data model scripts necessary to drop the package.
110.1.5 Moving all -of the files into a separate location in the file system from the +of the files into a separate location in the filesystem from the installed packages.
4.110.1.10 If the package is a compound package, then the administrator must confirm @@ -588,10 +595,10 @@
150.0 Scan for new or modified packages
150.1 The -administrator should be able to scan the file system for any -changes made in any of the installed package files.
+administrator should be able to scan the filesystem for any changes +made in any of the installed package files.
150.5 The -administrator should be able to scan the file system for any newly +administrator should be able to scan the filesystem for any newly installed packages.