# WebKit 1.0rc1 Release Notes

WebKit version 1.0rc1 released on 06/06/08

## Introduction

This release contains a few improvements and bugfixes, and it allows better monitoring and handling of long-running threads in the ThreadedAppServer.

## New Features

- Instead of using the standard WebKit adapter mod_webkit, you can also use any SCGI adapter such as mod_scgi (not part of Webware for Python). For details, see the installation and configuration guides.
- The ThreadedAppServer has got a new method `abortRequest()` allowing the abortion of the worker thread processing a request specified by its request id. This feature needs a recent version of `ctypes` and Python (2.3 or higher). The `_canAbortRequest` attribute tells you whether this feature is available.
- The new AppServer.config setting 'MaxRequestTime' allows monitoring long-running requests. All requests with an execution time longer than 'MaxRequestTime' seconds will be automatically aborted. This feature is disabled by setting 'MaxRequestTime' to 0 or None.
- The SMTP authentication when sending error emails has been improved, and it is now possible to use SMTP after POP by adding the name of the POP server to the ``ErrorEmailServer`` setting (Roger Haase).

## Improvements and Refinements

- If an exception occurs within a Task scheduled by the Application TaskManager (obtained from `application.taskManager()`), the exception will be handled by the Application's exception handler (i.e. the exception will be logged and emailed if the appropriate settings have been enabled within Application.config).
- The `_action_` prefix for Webware actions can now be changed by overriding `HTTPContent._actionPrefix`, or setting this to None if you don't want to use actions at all.
- The error email messages are now created using the email module instead of using the deprecated MimeWriter module for Python 2.2 and higher.

## Bugfixes

- ThreadedAppServer could crash with socket error during nmap scan on NetBSD (reported by Patrick TJ McPhee), this should be fixed now.
- Fixed bug with "Memory" Session configuration (as suggested by Steve Schwarz).
- `HTTPResponse` created a Session for every request (bug reported by Ben Parker).
- In the case of nested transactions (when you use forwarding), the session is now only awakened and put to sleep once by the outmost transaction (as suggested by Ben Parker).
- Made `Transaction.die()` work properly with Python 2.2 and higher, where `WebKit.Object` is a new-style class.
- Changed the `urlRedirect` hook to behave as documented when the `urlRedirect` dictionary has an empty string as key.
- __init__.py is not created any more if __init__.pyc exists (Andrew Gaul).