Please remember to BACK UP YOUR FILES before attempting to run migration
scripts.

=============================================================
Migration from 0.99 to 1.00

1. Several of the <PKIT_*> tags have changed.  To update the templates
run
migration/migrate_pagekit_0.99_to_1.00.pl /path/to/pagekit_root

=============================================================
Migration from 0.98 to 0.99

1. The View/Component and View/Page directories have merged into one
directory under View.  To merge the templates, run
migration/migrate_pagekit_0.98_to_0.99.pl

2. <PKIT_VAR NAME="SELFURL"> has been changed to <PKIT_SELFURL>
You can apply this change easily by running from the View directory:

cd /path/to/pagekitroot/View
perl -pi -e 's!<PKIT_VAR +NAME *= *"?SELFURL"? *>!<PKIT_SELFURL>!gi' \
	`find . -name "*.tmpl"`

3. $model->input_param has been changed to $model->input for getting
	request parameters and $model->fillinform for filling in HTML forms
	and $model->pnotes for passing around data between different handlers

	$model->output_param has been changed to $model->output

4. $model->input_param('pkit_user') and $model->output_param('pkit_user')
	is no longer set by authentication code.  Instead, set 
	$model->pnotes(pkit_user => $pkit_user) in your
	pkit_auth_session_key in your model code and use
	$model->pnotes('pkit_user') to access the set value

=============================================================
Migration from 0.97 to 0.98

1. Apache::PageKit::Error has been renamed to Apache::ErrorReport
If you use PerlSetVar PKIT_ERROR_HANDLER anywhere in your httpd.conf
file, you should change it to PerlSetVar ErrorReportHandler

You can do this easily by running:

perl -pi -e 's/PerlSetVar PKIT_ERROR_HANDLER/PerlSetVar ErrorReportHandler/g' httpd.conf

Also if you include Apache::PageKit::Error in your httpd.conf run:

perl -pi -e 's/PerlModule Apache::PageKit::Error/PerlModule Apache::ErrorReport/g' httpd.conf

=============================================================
Migration from 0.96 to 0.97

1. The DTD for the Config file is now PageKit_Config-0.97.dtd.  You
should update Config/Config.xml to reflect this and copy
PageKit_Config-0.97.dtd into the Config directory.

2. Support for navigation bars has been removed.  If you had been using
them, please contact me and I will help you work around this.  If there
is sufficient demand, I will try to implement navigation bars again in a more
clean and robust manner (XPointers in Content XML files, with hooks in
Model code??).  Note that these template variable will no longer work:
<PKIT_LOOP NAME="BREAD_CRUMB"> and <PKIT_VAR NAME="LAST_CRUMB">.  However,
it is recommended that you keep the parent_id in your Config.xml file, as
this might be used in the future.

3. $model->content_param no longer works, since content is now compiled into
the template and it is not possible to get or set the tags run time.
Instead you can simply place <MODEL_VAR> tags into the content and set
them from the model.

4. <PKIT_VAR NAME="LOGINOUT_LINK"> has been removed since
it isn't really elegant and can easily be replaced.  To replace, use
something like:

<MODEL_IF NAME="PKIT_USER">
	<a href="/login_page?pkit_done=http://yoursite/page_to_view_after_login">Log In</a>
<MODEL_ELSE>
	<a href="<PKIT_VAR NAME="SELFURL">pkit_logout=1">Log Out</a>
</MODEL_IF>

5. The content part of pagekit has been rewritten from the
ground up.  You should use the included migrate_pagekit_0.96_to_0.97.pl
file to update your content file.

*********NOTE that this doesn't seem to work with CDATA sections - I'm not
sure why - if you figure why, let me know.  Otherwise, just do what I did,
convert this CDATA sections to PCDATA, escaping any <, >, and & characters
along the way.

6. The html_clean_level option has been moved
from the Global section to the Server section of the
configuration file.  If you have specifed the 'html_clean_level'
option in your Config.xml file, you
have to move the attribute(s) from the <GLOBAL> tag to
<SERVER> tag.

7. Login code has been rewriten.  To login, you must set the 'pkit_login'
to a true value.  In addition, the 'new_credential' option is no longer
supported.  Instead, you should make sure that 'require_login' is set to
'no' and perform a pkit_redirect in the model code to a URL that logs
the user in.  See newacct2 in eg/Model/MyPageKit/MyModel.pm for an
example of how this should work.  In addition, you must rewrite
pkit_auth_credential to take the credentials from the input_param method.

8. <PKIT_COMPONENT> can no longer be set dynamically.  If you were using
this feature, please contact me and I'll see what I can do.  If there is
sufficient demand, I will put support for this back in.

=============================================================
Migration from 0.94 to 0.95

1. A couple of new configuration options have been added to
Config/Config.xml.

You should replace the Config/Config.dtd file in your Pagekit directory
with the Config.dtd contained in the eg/ directory of your distribution
to reflect this change.

==============================================================
Migration from 0.93 to 0.94

1. MyPageKit has been replaced with MyPageKit::Model.

To update rename MyPageKit to MyPageKit::Model and rename
auth_credential and auth_session_key to pkit_auth_credential and
pkit_session_credential.  Modify methods to take $model as
first argument instead of $pk.

Also, replace handler with pkit_dbi_connect, pkit_session_setup,
and pkit_common_code.  See the code in eg/Model/MyPageKit/Common.pm
for an example of how to do this.

