Martin Stoufer wrote:


Jim Gallacher wrote:
Apache Wiki wrote:
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Mod_python Wiki" for change notification.

The following page has been changed by MartinStoufer:
http://wiki.apache.org/mod_python/Session_use_with_classes

The comment on the change is:
A good start.

------------------------------------------------------------------------------ Once you understand this framework, you can then add your own content. - First, lets augment a directory element in the ''httpd.conf'' to enable session support. + First, lets augment a directory element in the ''httpd.conf'' to enable both the Publisher model and session support.

+     PythonOption session MemorySession

I'm not sure about the most elegant way to handle this in the wiki, but we likely need to make the reader aware of differences between mod_python versions.

Using this "PythonOption session" as an example, we actually have 3 different cases:

Version 3.1.4
"PythonOption session" is not used. When calling Session.Session(req) you get the default session type for your platform: DbmSession with the prefork-mpm and worker-mpm, MemorySession with the winnt-mpm.


Version 3.2
"PythonOption session" was introduced to allow the default session type to be overridden at run time.

Version 3.3 (real soon now)
We started using PythonOption much more heavily in 3.2 to control the run time configuration of mod_python. It quickly became apparent that the potential for key conflicts with user code was rather high, so for 3.3 we adopted a new PythonOption namespace. Thus "PythonOption session" has been deprecated in favour of "PythonOption mod_python.session.session_type".

So my question is "How do we handle this in general?". At the very least any of the Wiki authors should note which version of mod_python they used when creating their examples.

Jim

Jim,
I honestly didn't even think of this. As I started with v.3.2, my example would of ended up being rather myopic in scope. My suggestion for the time being is to split my page up into SubPages; one per version. Adding these disclaimers (or sanitized versions that don't disclose and secrets/non-finalized ideas) at the top will help alot. Since I don't have any examples from 3.1.4 or 3.3, I will put a call out to the list and see if anyone is willing to post some small examples.

I wouldn't create separate pages just yet. My guess is that your actual code will be compatible across versions 3.1 to 3.3 as the session api has not changed so your usage will be the same. Version >= 3.2 just gives some flexibility in the session configuration through a bunch of PythonOptions.

I think Graham's suggestion is best - avoid the problem all together by not using "PythonOption session" in your configuration. :) On the other hand being able to set the session timeout and some other options in the apache configuration is pretty handy so you might want to mention them. I've appended the relevant 3.3 PythonOptions to bottom of the this email for your reference.

Also, I wouldn't worry too much about 3.1.4 support. It's getting pretty long in the tooth.

As for how to deal with this issue at the wiki-wide level, I am very hesitant to promote a required style guide on pages that discuss topics that vary across releases. Those looking to post a quick nugget of valuable info won't if the process requires too much effort. It may well suffice by having a minimal requirement that posters say upfront what version(s) their examples/info is valid for.

Some sort of detailed style guide is likely not realistic, but I suspect if new authors always see the same sort of boiler plate at the beginning of each example they'll take the hint. Something simple like "Works with version 3.x.x" may be sufficient. If someone comes along and tries it with a different version it'll be easy enough for them to amend that to "Works with version 3.1, 3.2".

Jim

Version 3.3 PythonOption reserved keywords
------------------------------------------
mod_python.legacy.importer * - Enables the obsolete importer.
mod_python.mutex_directory              
mod_python.mutex_locks          
mod_python.psp.cache_database_filename          
mod_python.session.session_type                 
mod_python.session.cookie_name          
mod_python.session.application_domain           
mod_python.session.application_path             
mod_python.session.database_directory           
mod_python.dbm_session.database_filename                
mod_python.dbm_session.database_directory               
mod_python.file_session.enable_fast_cleanup             
mod_python.file_session.verify_session_timeout          
mod_python.file_session.cleanup_grace_period            
mod_python.file_session.cleanup_time_limit              
mod_python.file_session.database_directory              

session - Deprecated, use mod_python.session.session_type

ApplicationPath -Deprecated, use mod_python.session.application_path

session_cookie_name - Deprecated, use mod_python.session.cookie_name

session_directory - Deprecated, use mod_python.session.session_directory

session_dbm - Deprecated, use mod_python.dbm_session.database_filename

session_cleanup_time_limit - Deprecated, use mod_python.file_session.cleanup_time_limit

session_fast_cleanup - Deprecated, use mod_python.file_session.enable_fast_cleanup

session_grace_period - Deprecated, use mod_python.file_session.cleanup_grace_period

session_verify_cleanup - Deprecated, use mod_python.file_session.cleanup_session_timeout

PSPDbmCache - Deprecated, use mod_python.psp.cache_database_filename

Reply via email to