[albatross-users] availability of code for next version

Andrew McNamara andrewm at object-craft.com.au
Thu Feb 20 13:52:49 EST 2003


>I've only recently "discovered" Albatross and, so far, I'm very
>impressed. So far, it seems to have almost everything I want for web
>development. Congratulations to the developers!

Whoohoo! Thanks. 8-)

The intention is to give most people what they want most of the time,
and stop short of giving everybody everything, which would make Albatross
into an unintelligible soup.

>In the mailing list I've noticed a couple of mentions of the next
>release. Is the development code available to the world, perhaps via
>anonymous CVS? If not, is there any documentation available on what we
>can expect?

We haven't had time to set up a public repository (and nobody has asked
for it until now). The simplest answer might be to nightly tar up the CVS
tree.

One of the things that needs to be done before the next release is to go
through the CVS change log and extract important details to form the
release notes. Here's the raw change log (you may have to take some
of the comments with a grain of salt, particularly the "option tag was
never being closed" one - Dave reminded me that HTML permits this):

2003-02-14 15:08  andrewm

	* albatross/tags.py, doc/doctest/tags-input-select1,
	doc/doctest/tags-input-select2, test/templates/form.py: Missed
	another instance of this bug: The option tag was never being closed
	- remarkably the tests were also expecting this erroneous result.  

2003-02-14 14:54  andrewm

	* doc/tags.tex: Added note to <al-comment> tag about enclosed
	content needing to be syntactically correct.  

2003-02-14 14:43  andrewm

	* albatross/tags.py, doc/doctest/tags-input-select3,
	doc/doctest/tags-input-select4, test/templates/form.py: Bugfix -
	The option tag was never being closed - remarkably the tests were 
	also expecting this erroneous result.  

2003-01-28 16:17  andrewm

	* albatross/cgiapp.py: Use the dict get method to fetch REQUEST_URI
	and SERVER_NAME, which allows scripts to be run from the command
	line - suggested by Greg Bond.  

2003-01-27 21:23  djc

	* albatross/apacheapp.py, albatross/app.py, albatross/cgiapp.py,
	albatross/randompage.py, doc/albatross.tex,
	test/sessions/request.py, test/sessions/ses_file.py,
	test/sessions/ses_server.py: Moved all header management into
	HeadersMixin which was renamed as ResponseMixin.   Application
	send_content() method moved into ResponseMixin so end of headers can
	be detected automatically.  Now raises exception if application
	attempts to set headers after they have been sent.  Headers
	automatically sent when the application sends content.  
	__sent_headers removed from cgiapp and apacheapp.  

2003-01-24 23:45  andrewm

	* albatross/context.py: When encoding session, don't silently
	discard unpickleable elements (raise ApplicationError instead,
	including the name of the offending element). cPickle will raise all
	sorts of garbage exceptions - make sure we catch the common ones.  

2003-01-24 23:35  andrewm

	* albatross/common.py: Forgot the most important bit - the
	exception definitions! 

2003-01-24 22:34  andrewm

	* TODO, albatross/__init__.py, albatross/app.py,
	albatross/context.py, albatross/randompage.py,
	albatross/session.py, albatross/sessionfile.py,
	albatross/simpleserver.py, albatross/tags.py,
	albatross/template.py, test/namespace/request.py,
	test/templates/basic.py, test/templates/control_flow.py,
	test/templates/form.py, test/templates/include.py,
	test/templates/iterator.py, test/templates/lookup.py,
	test/templates/macro.py, test/templates/whitespace.py: Rationalised
	Albatross's use of exceptions, all exceptions are now subclasses of
	AlbatrossError, moved all exceptions to a "common" module. Also
	fixed a minor glitch in the tests where template execution output
	needed to be suppressed.  

2003-01-24 22:24  andrewm

	* albatross/tags.py: Make single_select on the LazyTreeIterator an
	optional argument (defaults to "no").  

2003-01-24 14:48  andrewm

	* doc/appuser.tex: Added a little more information about setting up
	mod_python.  

2002-12-28 16:47  djc

	* albatross/: app.py, randompage.py: Move call to
	ctx.flush_content() into Application.run() to allow session to be
	saved back at server before the HTML is sent to the browser.  This 
	allows applications to embed image tags for dynamically generated
	images.  

2002-12-27 16:40  djc

	* albatross/tags.py: Added load_children() method to
	LazyTreeIterator so applications can stop abusing the node_is_open()
	method.  

2002-12-27 12:34  djc

	* albatross/app.py: Create exception formatting context using
	different name so the we remove the original session when we call
	ctx.remove_session.  Derrr.  

2002-12-24 21:02  djc

	* albatross/app.py: Move escaping into formatted exception user.  

2002-12-24 20:53  djc

	* albatross/app.py: Move exception formatting into separate method
	to allow subclasses to make use of formatting without needing to
	roll it themselves.  

2002-12-23 16:48  djc

	* albatross/: app.py, context.py, randompage.py: Patches for
	problems reported by Greg Bond.  Changed the way that
	_caller_globals() locates the desired stack frame it now searches by
	function name.  run_template_once() now generates the same exception
	message as run_template().  

2002-12-23 12:07  djc

	* albatross/tags.py: Added NODE attribute to <al-input> and <al-a>
	tags which perform tree navigation.  This allows tree navigation
	requests to be generated outside of the <al-tree> tag.  Something
	like this: <al-for iter="j" expr="node.children"> <tr><td><al-a
	treeselect="hn" node="j.value()"> 

2002-12-23 12:04  djc

	* albatross/context.py: Place the execution context into the
	execution context for the duration of expression evaluation under
	the name __ctx__.  This allows you to do things like: <al-exec
	expr="hn.node_is_open(__ctx__, node)"> 

2002-12-18 17:06  andrewm

	* albatross/tags.py: 
	* Added select_alias and open_alias to TreeIterators.  
	* Move Lookup registration into object initialisation, lazy
	  evaluation of item_dict (defered until first lookup_html) -
	  to_html() method of Lookup becomes a NOOP.  

2002-12-17 12:21  gregh

	* albatross/app.py: handle_exception now gets 'ctx' aswell as 'req' 

2002-12-17 11:28  andrewm

	* albatross/context.py: Bugfix - If a user's session expires at the
	server side but not at the client, method="get" is being used, and
	the form contains a iterator, a traceback would result (attempt to
	call set_backdoor() on None).  

2002-12-15 19:32  djc

	* albatross/tags.py: Implemented a single select option on
	LazyTreeIterator which is activated via the SINGLE attribute on the
	<al-tree> tag.  

2002-12-11 19:36  andrewm

	* test/namespace/request.py: Added tests for file input handling
	(single field single file, multiple field, single field multiple
	file, __albform__, etc).  

2002-12-11 16:08  andrewm

	* albatross/cgiapp.py, test/Makefile, test/namespace/__init__.py,
	test/namespace/request.py: Added first cut at request merging tests
	(tests for GET and POST exist cgi methods exist, although
	__albform__ functionality isn't being exercised yet).  

2002-12-11 15:10  andrewm

	* albatross/: cgiapp.py, context.py, tags.py: Added support for
	<input type="file">. For inputs of this sort, the local context now
	gets a list of FileField instances. The FileField class contains 
	attributes for filename (filename), open file object (file), and
	mime type 
	(type).  
	
	The NameRecorder Mixin tracks whether a type="file" input has been
	seen, and the to_html method of the Form class generates the
	appropriate enctype attribute if seen (otherwise file inputs simply
	pass back the filename).  
	
	On type="file" inputs, "value" attributes are now ignored.  
	
	Currently this is only supported on the cgiapp request class, and no 
	documentation or tests have been written.  

2002-12-11 12:23  djc

	* albatross/tags.py: Included explanation of why the content trap
	is needed for the <al-option> tag.  

2002-12-06 18:06  andrewm

	* albatross/context.py, doc/mixins.tex: 
	- Raise an exception (SessionError) if add_session_vars is called
	  when the named variable isn't in the local namespace (minor
	compatibility breakage).  
	- New method on SessionBase, default_session_var, which adds a
	  variable to the local namespace if it isn't already defined, and
	  registers the variable in the session dictionary.  
	- Update doco for the above changes.  

2002-12-06 18:01  andrewm

	* doc/doctest/tags-input-text: Doco example fix for this bugfix: 
	- <al-value> was not generating a value attribute when the value
	  evaluated to 0 
	(zero) - fixed and added test. Bug discovered by Michael Neel
	(thanks).  

2002-12-05 15:11  andrewm

	* albatross/app.py: New improved version of req_equals (one less
	hash lookup!) 

2002-12-05 14:45  andrewm

	* albatross/app.py: Make req_equals return true if the request
	evaluates true, rather than "not None" - this allows null strings to
	return false (found by Michael C. Neel).  

2002-12-05 11:26  djc

	* albatross/randompage.py, test/templates/basic.py,
	test/templates/include.py: Ran tabnanny and noticed some problems.  

2002-12-05 11:17  djc

	* TODO: Added some suggestions from Michael C. Neel.  

2002-11-29 21:12  djc

	* albatross/: apacheapp.py, app.py, cgiapp.py: Apply proposed
	changes for altering the status returned to the browser.  

2002-11-29 14:58  andrewm

	* TODO: Added a couple of items from the albatross-users list to
	the TODO list.  

2002-11-28 16:35  andrewm

	* albatross/context.py: NamespaceMixin.set_value() now has a funky
	exception handler. This method is responsible for parsing form
	elements (a somewhat critical task) and it was possible to cause it
	to throw an exception that was completely lacking in any useful
	information. The exception handler now identifies the field by name,
	attempts to identify where in the field name the exception occured,
	and includes the current "index" where an IndexError is raised, and
	re-raises the original exception (in case it really is a bug in
	set_value()).  

2002-11-28 15:40  djc

	* albatross/app.py, albatross/session.py, albatross/sessionfile.py,
	doc/albatross.tex, test/sessions/ses_file.py,
	test/sessions/ses_server.py: Change the way that response headers
	are managed to allow applications to do things like: 
	    ctx.set_header('Content-Type', 'image/gif') 
	    if ctx.get_header('Pragma') == 'no-cache': 
	        ctx.del_header('Pragma') The defaults are established in
	HeadersMixin.__init__() so the application is free to alter them at
	any point during processing.  

2002-11-21 13:49  andrewm

	* albatross/sessionfile.py: 
	- SessionFileContextMixin._get_sesid_from_cookie was not coping with
	  cookies other than the one we wanted being in the Cookie header sent
	  by the browser (it was catching the wrong exception). Found by Greg
	Bond.  

2002-11-19 10:18  andrewm

	* albatross/tags.py, test/templates/form.py: 
	- <al-value> was not generating a value attribute when the value
	  evaluated to 0 
	(zero) - fixed and added test. Bug discovered by Michael Neel
	(thanks).  

2002-11-10 12:24  djc

	* albatross/randompage.py: Fixed import error problem reported by
	Brian Brown.  

2002-10-28 22:51  djc

	* dist/release-checklist: Documented in the OcWiki.  

2002-10-28 12:41  djc

	* dist/dist-albatross.sh: Fix up script which moves files to web
	server.  

2002-10-28 12:16  djc

	* albatross/__init__.py: Fixed up release numbers.  

2002-10-28 12:15  djc

	* setup.py, dist/dist-albatross.sh: Fix release numbers.  

2002-10-28 11:55  djc

	* ChangeLog, dist/release-1.01, doc/albatross.tex,
	doc/installation.tex, doc/mixins.tex, doc/tags.tex: Release 1.01.  

2002-10-28 10:43  djc

	* dist/: dist-albatross.sh, index.ahtml, make_webpage.py: Release
	process does not alter web page any more.  

2002-10-28 10:40  djc

	* dist/release-1.01: All changes for 1.0.1 


-- 
Andrew McNamara, Senior Developer, Object Craft
http://www.object-craft.com.au/



More information about the Albatross-users mailing list