Revision history for Perl extension OpenInteract.
1.2 Tue Aug 28 17:20:44 EDT 2001
Overall:
This release has a number of substantial changes. If you're upgrading,
please read 'UPGRADE' in the distribution directory.
* Multiple datastore handles:
- You can now setup and use multiple datastore (including DBI)
handles for objects, so your data can be in as many databases as
you require. This entails changes to your server configuration file
even if you're not using this feature, please see the entry for
'conf/sample-server.perl' below.
* Tighter Template Toolkit support:
- OpenInteract now includes a Template Toolkit provider to deliver
templates from the filesystem or database, as well as a TT Plugin
to provide more consistent (and extensible) template behavior
functions. If you're upgrading you need to run a script to
translate old templates to new.
* LDAP support:
- LDAP can now be used as a datastore. Thanks to MSN Marketing
Service Nordwest GmbH for funding development! See doc/LDAP.html
for more information about setting up and using LDAP.
* DBI session support consolidated:
- All DBI session management uses one class now; if you're
upgrading, see the entry for 'conf/sample-server.perl' below for a
configuration modification
Individual:
* conf/sample-httpd_static.conf:
- Allow the front-end proxy server to deal with '/robots.txt'
requests. (Also with '/default.ida' Code Red requests...)
* conf/sample-httpd_modperl.conf:
- Add pointer to the standalone mod_perl configuration file
* conf/sample-httpd_modperl_solo.conf:
- Create new configuration file for running OpenInteract in a
standalone mod_perl environment (no proxy frontend). Thanks to
Stephen Adkins <stephen.adkins@officevision.com> for pointing out
the usefulness of this.
* conf/sample-server.perl:
- Overall: Lots of changes were made to the sample
configuration. If you're upgrading it might be a good idea to open
the sample configuration and your existing configuration
side-by-side, copying values from your existing configuration to
the sample as appropriate.
- See UPGRADE for specific changes.
* eg/template_translate.pl:
- Added standalone script to translate old templates to new
templates. This only works on files in the filesystem, and you
shouldn't need to run it for system packages.
* OpenInteract.pm:
- allow users to put OI under different location root -- note that
we DO NOT rewrite outbound URLs yet; this just ensures that if OI
is under <Location /oi> that a request for '/oi/User/' gets mapped
to the '/User/' action
- paranoid inclusion of stash/other module 'require' calls
- removed method _connect_to_database(). Datastore (DBI and LDAP)
connections are now made on demand (in OpenInteract::Request)
rather than all at the beginning of a request. The first time a
handle is needed the connection is made, thereafter it's kept in
the stash class.
- removed method _setup_context() since it was a relic of a
group_context scheme attempted a while ago. We might bring it back
but there's no reason to have it around now.
* OpenInteract/Auth.pm:
- Set the result of $user->id rather than $user->{user_id} into the
session after a successful login. (Thanks to Andreas Nolte.)
* OpenInteract/Error/System.pm:
- Put 'package' with all templates being called.
* OpenInteract/LDAP.pm:
- Created central class to connect/bind to LDAP directories
* OpenInteract/Package.pm:
- Updated 'check()' -- called from 'oi_manage check_package' -- to
determine if data import files are valid Perl data structures (also
added 'read_data_file()' for this purpose)
- Modified 'check()' to pass the right directory to read the
package configuration
- Updated 'check()' -- called from 'oi_manage check_package' -- to
determine if the templates in a package are syntactically
valid. This doesn't mean they'll do what you want, only that
they'll parse.
* OpenInteract/Request.pm:
- Updated to enable both DBI and LDAP handles to be requested (and
stored in the stash) by a connection key.
- Moved connection logic from OpenInteract.pm to here so we can
return DBI and LDAP connections on demand rather than creating them
all at once.
* OpenInteract/Session/DBI.pm:
- Added functionality to detect when we're using MySQL as a session
store and put the extra parameter ('LockHandle') in.
* OpenInteract/Session/MySQL.pm:
- Removed. Use 'OpenInteract::Session::DBI' for all DBI session
management now.
* OpenInteract/SPOPS.pm:
- Removed 'global_db_handle()' and moved to OI/SPOPS/DBI.pm. Note
that ALL objects previously using 'OpenInteract::SPOPS' should now
use 'OpenInteract::SPOPS::DBI'.
* OpenInteract/SPOPS/DBI.pm:
- Created subclass of OI::SPOPS specifically for objects using
SPOPS::DBI
* OpenInteract/SPOPS/LDAP.pm:
- Created subclass of OI::SPOPS specifically for objects using
SPOPS::LDAP
* OpenInteract/SQLInstall.pm:
- Created new data transformation 'transform_default_to_id' that
allows you to tag fields in your data import and specify values for
these fields that are keys in the 'default_objects' hash in your
server configuration. See
pkg/base_group-x.xx/data/install_security.dat for an example.
* OpenInteract/Template.pm:
- Added deprecation warnings (will remove the class soon).
* OpenInteract/Template/Toolkit.pm:
- Added deprecation warnings (will remove the class soon).
* OpenInteract/Template/Context.pm:
- Added new class: Added custom context so we can avoid the TT
template naming syntax of 'prefix::thingy'
* OpenInteract/Template/Plugin.pm:
- Added new class: Take all the behaviors out of OI::T::Toolkit,
add some new ones, revisit the old ones, add lots of documentation.
* OpenInteract/Template/Process.pm:
- Added new class: Port the 'handler()' and 'initialize()' methods
from OI::T::Toolkit
* OpenInteract/Template/Provider.pm:
- Added new class: Move all the file-or-object finding stuff from
OI::Template here, plus take advantage of TT caching, compiling,
etc.
* OpenInteract/UI/Main.pm:
- Updated to use base template name in 'package::name' format. This
way your base template doesn't need to be in the 'base_theme'
package.
* script/oi_manage
- Added (and documented!) new action 'update_object', which simply
fetches all instances of a particular object class and saves
them. This is useful if you've implemented a schema change that
needs a 'save()' to activate a trigger which fills data. For
instance, a 'last_update' field gets triggered by a save -- by
running this action you automatically set all objects to a known
value. Another example would be if your objects use the indexing
feature of the full_text package -- just run this action and the
index will be automatically updated.
- Modified 'test_db' action to check multiple datasources
- Added (and documented!) new action 'test_ldap' which tests all
LDAP connections configured for a particular website.
- Ensure that 'check_package' can check multiple packages at once
(using the '--package_dir' parameter to specify the root of a
series of packages)
- You can now run separate actions with 'install_sql' using the new
'--sql_action' parameter. This allows people who need to do so to
run the 'structure', 'data' and 'security' steps
individually. (Docs added for this too!)
- Added (and documented!) new action 'list_objects' which lists all
the objects that can be created in a website.
* script/template_translate.pl
- Created script to translate old templates (using
OpenInteract::Template and OpenInteract::Template::Toolkit) to new
templates (OpenInteract::Template::Plugin). You must run this to
make your templates work properly.
Many packages have changed between versions 1.1 and 1.2. Please see
the 'Changes' file in each to find out what was modified.
OpenInteract 1.1 -> 1.2
----------------------------
base: 1.52 -> 1.60
base_box: 0.23 -> 0.30
base_component: 1.23 -> 1.25
base_error: 1.22 -> 1.30
base_group: 1.16 -> 1.25
base_security: 1.33 -> 1.45
base_template: 1.18 -> 1.27
base_theme: 1.18 -> 1.26
base_user: 1.23 -> 1.34
results_manage: 0.02 -> 0.02
static_page: 1.40 -> 1.49
system_doc: 1.19 -> 1.24
classified: 1.19 -> 1.28
full_text: 1.25 -> 1.26
news: 1.27 -> 1.33
1.1 Fri Jul 20 07:00:48 EDT 2001
* Shuffled lots of modules out of the 'base' package and into the
core distribution:
OpenInteract.pm
OpenInteract/Auth.pm
OpenInteract/Cache.pm
OpenInteract/Cache/File.pm
OpenInteract/Cache/IPC.pm
OpenInteract/Cookies.pm
OpenInteract/Cookies/CGI.pm
OpenInteract/Cookies/Apache.pm
OpenInteract/Error/Main.pm
OpenInteract/Error/System.pm
OpenInteract/Handler/GenericDispatcher.pm
OpenInteract/Session.pm
OpenInteract/Session/DBI.pm
OpenInteract/Session/MySQL.pm
OpenInteract/Template.pm
OpenInteract/Template/Toolkit.pm
OpenInteract/UI/Main.pm
OpenInteract/Utility.pm
As a result, also moved OpenInteract.pod to OpenInteract/Intro.pod
since 'perldoc OpenInteract' will bring up the Apache content
handler class now.
* New package: 'results_manage'
- A new package 'results_manage' has been added to the
distribution. This package makes it simple to persist different
types of search results from request to request to produce paged
output, exportable output, etc. The package is still quite young,
so if you have feedback please email
openinteract-dev@lists.sourceforge.net.
* doc/*:
- Updated all docs -- mostly small changes, but added patch from
Christian Lemburg (lemburg@aixonix.de) to doc/developer.html
specifying the recommended method of package development.
* OpenInteract/ApacheStartup.pm:
- Added a debugging line so we can know when a PerlChildInitHandler
is getting run (and for what child).
* OpenInteract/Package.pm:
- Thanks to a spot by Reinier Post <rp@win.tue.nl>, you can now
have multilevel handlers (e.g.,
'OpenInteract::Handler::Entity1::Handler1') in a package --
modified the _copy_handler_files() subroutine to use the new
_create_full_path() subroutine.
- Create a _clean_package_name() subroutine that ensures a package
name can be used as a Perl namespace.
* OpenInteract/SPOPS.pm:
- Added two methods and ruleset to accommodate new way of referring
to objects. The new method uses a table 'object_keys' (found in the
'base' package) and associates a 32-character key with an object
and class.
Currently this is only used in the modified 'full_text' package,
but we expect to change other modules that use a class and object
ID (object tracking, object security, etc.) to use this scheme
simply because it saves space and should speed up searches.
* OpenInteract/Startup.pm:
- die in setup_static_environment() if we cannot read the base
configuration information properly. (Generally indicates that the
directory given wasn't a valid website directory.)
- add functionality to setup_static_environment() to create the
superuser if given the password to check against.
- add method 'setup_static_environment_options()' to check for log
option '--website_dir' and environment variable OIWEBSITE to pass
to 'setup_static_environment()', thus saving lots of copy-n-paste
operations around the globe.
* OpenInteract/Template.pm:
- Fixed Sourceforge bug 406291, enabling templates to be read from
the filesystem. (Paper bag fix -- just made the wrong call to fetch
the package information from the repository, and it was never
tested. Doh!)
* script/oi_manage:
- Check the return value from $PACKAGE->create_skeleton() to see
whether the name of the package created differs from the name we
wanted to create, and let the user know if they're different.
- Add the directory 'overflow' to that created by the
'create_website' process.
- Add the package 'results_manage' to the list of core packages
* Packages
Many packages have changed. One of the common additions has been
the use of the SPOPS::Iterator (or subclass) object to display
results, as opposed to retrieving a (potentially long) list of
objects to pass to the template. See the 'Changes' file of each
package for change details.
Here are the different versions:
OpenInteract 1.07 -> 1.1
----------------------------
base: 1.42 -> 1.52
base_box: 0.20 -> 0.23
base_component: 1.18 -> 1.23
base_error: 1.21 -> 1.22
base_group: 1.16 -> 1.16
base_security: 1.30 -> 1.33
base_template: 1.17 -> 1.18
base_theme: 1.17 -> 1.18
base_user: 1.21 -> 1.23
results_manage: n/a -> 0.02
static_page: 1.36 -> 1.40
system_doc: 1.19 -> 1.19
classified: 1.18 -> 1.19
full_text: 1.16 -> 1.25
news: 1.26 -> 1.27
1.07 Sun Jun 10 14:31:36 EDT 2001
* Overall
- This version runs on mod_perl/Win32 with a supported database.
- This version now runs on PostgreSQL (version dependencies
unknown) along with Sybase ASE, Sybase ASA, and MS SQL
Server. (This is in addition to MySQL from previously.)
- This version requires SPOPS 0.40, since it's the first version
which supports PostgreSQL, along with a few other items.
- Hopefully debugging is more efficient -- at least when you want
to turn debugging off. All files have been changed to use the
following construction:
$R->DEBUG && $R->scrib( 1, "..." );
so that (the relatively expensive) scrib() method doesn't even get
called if debugging isn't turned on for your app.
* script/oi_manage:
- fixed typo in method call in remove_template() (thanks to Olaf
Stauffer <olaf.stauffer@web.de> for spotting)
- tiny change so that you can call use the action name
'install-template' and 'install_template' synonymously (anyplace
you see a '_' you can also use a '-'. Note that this ONLY APPLIES
TO COMMANDS, not to parameters.
- added the command 'change_spops_driver' so you can modify the
drivers (e.g., 'SPOPS::DBI::MySQL' -> 'SPOPS::DBI::Sybase') for
many objects at once.
- when you run the 'upgrade_package' command, a file named
'UPGRADE' will be displayed in the status. You should put any
package-specific upgrading notes here.
- ensure that the 'website_name' parameter fits our naming
conventions (thanks to Nimrod Levy <nlevy@intes.net> for the catch)
- the 'test_db' command now tries to create a table, which tests
whether the given user has such permissions.
- ensure the user running 'install_package' has permission to write
to the base installation directory and to the base package
repository.
* conf/sample-package.pod:
- Added more headers to the skeleton documentation generated for a
package.
* conf/sample-server.perl:
- Changed the default cookie processing class to
'OpenInteract::Cookies::Apache'
(change from {system_alias}->{'OpenInteract::Cookies'} to
{system_alias}->{'OpenInteract::Cookies::Apache'}), since right now
everyone is required to have Apache::Request for parameters
anyway. Unless you're running Win32, then use
{system_alias}->{'OpenInteract::Cookies::CGI'} since
Apache::Request had a few hiccups running there.
- Added 'long_read_len' and 'long_trunc_ok' in the db_info key.
- Added 'remember_field' to the 'login' key
* OpenInteract/DBI.pm:
- Added {LongReadLen} and {LongTruncOk} as database handle
properties. **NOTE** If you're upgrading, please add something like
the following to your conf/server.perl file:
db_info => {
...,
long_read_len => 65536,
long_trunc_ok => 0,
},
There are defaults defined for these but it's better to make them
explicit in your configuration.
* OpenInteract/Package.pm:
- Make various modifications to work under Win32. Primarily to
check directory specifications and to accommodate the version of
Archive::Tar that is distributed with ActivePerl.
- Fix _copy_handler_files() to not replace ALL 'OpenInteract'
instances in the file/path, just the relevant one (thanks to Olaf
Stauffer <olaf.stauffer@web.de> for the spot)
- Small fixes to error reporting (primarily in
install_distribution())
- Small fix so we don't copy over coderefs from the
conf/action.perl and conf/spops.perl files when installing a
package from the base installation to a website
* OpenInteract/PackageRepository.pm:
- Fixed docs for the 'find_file' method to match the
implementation.
- Pass the package name from 'find_file' to 'fetch_package_by_name'
in a hashref rather than by itself (duh)
* OpenInteract/Request.pm: added 'DEBUG()' method to get (if
available) application-level debugging and if not, to use the class
variable 'DEBUG'. This allows '$R->DEBUG && $R->scrib( ... )' so
that scrib() won't get called if you're not using debugging in your
app. Cool.
* OpenInteract/SPOPS.pm: Updated the object tracking save/retrieval
so that it's not using the 'oid' field any longer.
* OpenInteract/SQLInstall.pm:
- Fixed Sybase IDENTITY specification (thanks to Harry Danilevsky
<hdanilevsky@DeerfieldCapital.com> for pointing it out)
- Allow user to specify a different database type than the driver
name (useful if you're using DBD::ODBC with MS SQL Server, which
uses the SPOPS driver 'Sybase' and the DBD driver 'ODBC')
- Document the 'field_type' parameter when you're specifying SQL
statements (rather than SPOPS objects) to be built with the data
files (thanks to Harry Danilevsky
<hdanilevsky@DeerfieldCapital.com> for pointing it out)
- New key in struct files: %%INCREMENT_TYPE%%. This allows you to
specify linking fields to be the same type -- for instance, an
IDENTITY field in T-SQL is NUMERIC( x, y ) while an AUTO_INCREMENT
field in MySQL is an INTEGER, as is a SERIAL (sequence) field in
PostgreSQL. (Example: 'pkg/base_group/struct/group_table.sql' and
'pkg/base_user/struct/user.sql' for the increment, then
'pkg/base_group/struct/link_table.sql' for the increment type.)
* OpenInteract/Startup.pm: require_module() can now take either an
arrayref of classes to include or a single class to
include. (Previously only an arrayref.)
* doc/database.html: Added some preliminary instructions for creating
a new database and user to work with OpenInteract -- currently only
with MySQL and PostgreSQL.
* Packages
Many packages have changed. One of the larger-scale changes
resulted from renaming the 'level' field in the security object to
'security_level'. See the each individual package's 'Changes' file
for more details.
Here are the different versions:
OpenInteract 1.06 -> 1.07
----------------------------
base: 1.30 -> 1.42
base_box: 0.14 -> 0.20
base_component: 1.14 -> 1.18
base_error: 1.14 -> 1.21
base_group: 1.11 -> 1.16
base_security: 1.20 -> 1.30
base_template: 1.11 -> 1.17
base_theme: 1.11 -> 1.17
base_user: 1.15 -> 1.21
static_page: 1.24 -> 1.36
system_doc: 1.15 -> 1.19
classified: 1.12 -> 1.18
full_text: 1.11 -> 1.16
news: 1.15 -> 1.26
1.06 Sun Feb 25 15:16:43 EST 2001
* OpenInteract/Package*: Split out previous OpenInteract/Package.pm
into OpenInteract/PackageRepository.pm (SPOPS::HashFile object
representing a package respository) and OpenInteract/Package.pm
(class methods operating on simple hashrefs representing individual
packages). In certain ways both are simpler and easier to
understand, and this allows you to think of and work with a package
repository as a single item rather than solely on individual packages.
This has a couple of effects:
1) GDBM is no longer used by OpenInteract. This was the primary
motivator behind the change.
2) You MUST modify all repositories from the old GDBM format to
the new format. If you run the new 'upgrade' command from
oi_manage when you download and install this distribution the base
installation repository will be translated for you. Here's a
list of commands for a manual upgrade:
> tar -zxvf OpenInteract-1.06.tar.gz
> cd OpenInteract-1.06
> perl Makefile.PL
> make
> make test
> make install
> oi_manage upgrade --base_dir=/opt/OpenInteract
And if you're using CPAN:
> perl -MCPAN -e shell
cpan> install OpenInteract::Package
cpan> exit
> cd ~/.cpan/build/OpenInteract-1.06
> oi_manage upgrade --base_dir=/opt/OpenInteract
However, after you do this you also need to translate the website
repositories like this:
oi_manage upgrade_repository --website_dir=<website-directory>
If you want to do things the hard way, there's also a script in
the 'eg/' directory called 'new_package_repository.pl' which will
translate a package repository from GDBM to the new format.
3) Any code you've written that operates on packages must be
redone. Sorry about this, but hopefully not too many people have
gone scouting around the package repositories in the first place,
and the benefits outweigh the costs at this relatively early
stage of OI development.
Here's a simple example:
Old:
my $pkg = OpenInteract::Package->fetch_by_name(
{ name => 'blah',
directory => '/blah/blah' });
New:
my $repository = OpenInteract::PackageRepository->fetch(
undef, { directory => '/blah/blah });
my $info = $repository->fetch_package_by_name({ name => 'blah' });
If you've actually done work with packages and need some help,
email Chris <chris@cwinters.com> for more detailed guidelines.
* script/oi_manage, OpenInteract/ApacheStartup.pm,
OpenInteract/Startup.pm, OpenInteract/SQLInstall.pm: Modified
all functions dealing with packages to work with new system.
* OpenInteract/Package.pm:
-- Fixed file handling bug in revised module method
install_distribution() which checked $_ (empty) rather than
$p->{package_file}. Thanks to Takanori Ugai <ugai@jp.fujitsu.com>
for the catch and patch.
-- Fixed new behavior of remove() which removed the directory in
addition to the entry from the repository. You can pass in 'remove'
as the third argument to have it remove the directory, otherwise
the directory is kept, which was the default behavior before the
new stuff was written.
-- Added 'script/' as set of files to be copied over when applying
a package from the base installation to a website.
* conf/sample-server.perl: new keys:
{session_info}->{expiration} = '+3M',
(allows you to set a default expiration time for the session
cookie)
{system_alias}->{'OpenInteract::PackageRepository'} = 'repository',
(alias used to reference the repository class)
{box}->{custom_box_handler} = '',
(allows you to define a handler to be called on every request to
create/inspect/modify boxes)
You'll probably want to copy the items over into your server
configuration, although this brings up the interesting point as to
how to insert new configuration options into existing
websites. Perhaps we need a utility like that used in Win32
environments with the registry -- you can distribute a simple file
which is used by oi_manage to insert new keys into a website's
server.perl file.
* script/oi_manage:
-- Modified format to be more readable; added more documentation.
-- Mdified all calls to 'open_base_config()' to call the routine in
OpenInteract::Startup
-- Added checks for 'website_name' in the 'create_website' command,
since the parameter must refer to a valid Perl package identifier.
-- Added new action 'upgrade' (just like 'install' but we don't
create a new directory)
-- Added new action 'refresh_doc' (allow a website to get the
latest version of the documentation in the base installation
directory).
* OpenInteract/Startup.pm: Modified name of parameter passed into
'read_base_config()' (shouldn't affect anyone); added
'create_base_config_filename()' so we have one place to generate
it.
* OpenInteract/SPOPS.pm: added the URL to view the object to the
email sent by notify()
* doc/admin.html: Cleaned up and added some more information
* Several packages were also modified, but each of these has its own
changelog for the specific changes. Many of the changes were quite
small, including conf/spops.perl modifications to accommodate
changes in SPOPS key generation (add an 'increment_field => 1' for
those classes using a MySQL AUTO_INCREMENT field).
base: 1.20 -> 1.30
base_box: 0.13 -> 0.14
base_component: 1.11 -> 1.14
base_error: 1.13 -> 1.14
base_group: 1.10 -> 1.11
base_security: 1.18 -> 1.20
base_template: 1.09 -> 1.11
base_theme: 1.09 -> 1.11
base_user: 1.14 -> 1.15
static_page: 1.21 -> 1.24
classified: 1.07 -> 1.12
full_text: 1.09 -> 1.11
news: 1.13 -> 1.15
1.05 Thu Feb 1 00:26:14 EST 2001
Added 'setup_static_environment' to OpenInteract/Startup.pm -- this
makes it *incredibly* easy to setup an OI environment outside of
Apache/CGI/Web-whatever, allowing you to do data reporting, import,
export, etc.
Refactored (not 100%, but still pretty well) OpenInteract/Package.pm
to be easier to understand, including breaking up longer 'meaty'
subroutines into easier-to-digest versions. Added lots of POD
documentation as well.
Added website installation message to 'oi_manage' and modified it to
display an 'INSTALL' file whenever the package is installed to a
website (either via 'upgrade' or 'apply'). This means that package
authors can alert users to potential schema change or other API
modifications and be sure that users will see this when the package
is applied/upgraded -- minimize potential user excuses :-)
The basic OpenInteract documentation (included with the Perl
distributed in 'doc/') is now copied over to the OpenInteract base
installation directory (when you do 'oi_manage install') and is
copied from there to a website's HTML directory when you create a
new one. This means that the HTML OI documentation is available when
you first fire up your browser to see your website.
Lots of modifications to many packages, including the addition of a
new package to the core OpenInteract family: base_box. Let's give
him a big hand!
1.04 Thu Dec 21 01:01:14 EST 2000
Modified OpenInteract/Package.pm to accommodate earlier versions of
Archive::Tar, which had very different interfaces. Added some more
items to the PREREQ piece of Makefile.PL and scrapped the
'INSTALLSCRIPT' option to let MakeMaker put the bin files in the
"right" place.
**NOTE -- this means you should remove all older versions of
'oi_manage' that might be someplace like '/usr/local/bin'**
We now require version 2.00 of the Template Toolkit. Version 1.06+
might still work, but it's no longer actively supported.
Modified scripts/oi_manage to implement a 'list_actions' command,
which reads in all your website action.perl files and then tells you
all the actions programmed in the system and which package the
action comes from.
Many changes to various packages -- see the changelogs for
'base', 'base_security', 'base_theme', 'static_page' and several
others.
1.03 Nov 30 2000
Added some modifications to when you install OpenInteract and when
you create a new package (OpenInteract/Package.pm;
script/oi_manage). Modified documentation in the Developer and Admin
guides as well as the two INSTALL documents; got that bulky .GIF out
of the distribution, replacing it with a slightly lame Visio
drawing (to PNG).
Relatively minor fixes to the packages news, base_error, base and
system_doc. See their 'Changes' files for more info.
Modified scripts/oi_manage to have the same semantics for
'check_package' as for 'export_package' -- that is, you can chdir to
the working directory for a package and run the command without any
parameters and have a check properly performed.
(minor) Superficial change in just about every file to modify email
'cwinters@intes.net' to 'chris@cwinters.com'. Also changed all RCS
'$Header' tags to '$Id'.
1.02 Nov 10 2000
Package management and oi_manage routines are pretty much rock-solid
as done from informal testing. We've made new installs and websites
by the handful and everything has gone well. Added lots of overall
documentation (in the 'doc/' directory) including targeted guides
for managers, administrators and developers, plus a glossary, all in
HTML format. Eliminated a pretty evil bug in the
'OpenInteract/Template.pm' file of the 'base' package which only
manifested itself when running more than one website. SQL
installation has also been smoothed out and tested in numerous
ways. Lots of other little changes (structure, format, etc.).
Also made some changes to terminology and enforced it throughout. A
'base installation' is where you first install OpenInteract (using
'oi_manage') and a 'server' is the Apache/mod_perl process. A
'website' is a particular instantiation of OpenInteract with its own
packages, namespace, etc. The definition for 'package' hasn't really
changed, but we've made a package kindasorta synonymous with 'tool',
even though a package can contain more than one tool.
1.01 Nov 3 2000
Lots of new things -- massively overhauled package management
(oi_manage and OpenInteract::Package) including scads of
documentation and the functions for package removal and upgrade
capabilities, you can check a package, get a listing of packages
installed to an application or to the base installation, and can now
create a 'skeleton' package, which should help out a little bit with
development; more documentation in the packages distributed with the
system. You can also add or dump a package's templates, test a
database connection given the configuration parameters for an
application, and (more below) install the SQL structures and data
for a package.
Added the class 'OpenInteract::DBI' which gives us a central
location for connecting to a database. Also modified how the
configuration file is setup wrt database info.
All 'module.perl' files will hereafter be known as 'action.perl' --
this is so we can better communicate the concept of the 'Action
Table' and what it means when you're developing packages and
applications.
Added lots of configuration documentation -- see all the files in
'conf/'. The 'spops.perl' and 'action.perl' files are now
well-documented and OpenInteract::Package was modified to copy these
sample files into a new package when a skeleton is created.
Also modified the 'full_text' scripts for doing certain actions from
the command-line -- these are good scripts to review if you want to
create an OpenInteract 'environment' (all the classes created and
linked, database handle and config object created, etc.) from a
script rather than from mod_perl.
Added 'OpenInteract::SQLInstall' and modified all of the packages to
use its methods as well as translated their incoming structures and
data to its format. (This was much more work than it sounds like :)
Numerous other small-to-medium fixes here and there.
1.00 Sep 28 2000
First public version. Everything is new!