-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES.txt
345 lines (217 loc) · 10.7 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
======================
Change log for Ophelia
======================
0.5 (unreleased)
================
- Nothing changed yet.
0.4.1 (2013-05-07)
==================
- Updated project files to reflect the new secondary, GitHub home at
<https://github.com/tlotze/ophelia>.
- Updated buildout configuration to keep working with zc.buildout 1.
- Fixed a memory leak in Namespaces that would occur with Python versions
prior to 2.7.4.
0.4 (2013-01-02)
================
- Use xsendfile to deliver files from disk in the event that the requested
path couldn't be traversed using the templates. This makes Ophelia
independent of a front-end server for delivering on-disk documents. As a
small trade-off, having directory listings created dynamically is presently
not possible at all, other than explicitly by writing templates and scripts.
- Dropped anything related to Apache and mod_python, continue WSGI-only.
- Dropped support for Python 2.4 and 2.5. This means the wsgiref module is a
part of the Python standard library so the egg's ``wsgiref`` extra is gone.
- Dropped the version restriction on zope.tal, updated tests. Page templates
no longer grow a trailing new-line character when rendering themselves.
- Dropped ``ophelia.tool.feed`` since it was never properly designed, tested
nor even documented.
- Dropped the ``ophelia-dump`` script which has never been really useful.
- Simplified the ``ophelia-wsgiref`` example server so that it no longer reads
a particular section of its configuration file; have Ophelia's development
buildout create a separate configuration file for the included example site.
- Added a paste application factory and some example configuration for running
Ophelia in a WSGI container configured by a paste "ini" file.
- Allow configuration settings to be passed to the WSGI application upon
initialisation.
- Added a debug mode for the WSGI application.
- Declared the ``ophelia`` package a namespace to allow contribution packages
to be called ``ophelia.xxx``.
- Deprecated the ``tools`` package as it was never designed for general use.
Need to keep them around for the sake of some known web sites using them.
- Re-organised the small example site that comes with the source.
- Re-organised tests, added programmatic tests for the WSGI interface.
- Use Python's own ``doctest`` module for tests, got rid of using
zope.testing's deprecated fork of it and thus the zope.testing dependency.
- Applied most of the conventions of ``tl.pkg`` to the package source.
- Made sure that HTTP response headers are of type ``str``.
- Fixed the locale setting for date formatting introduced in 0.3.5.
- Fixed the target location link inside the response body of WSGI redirects.
0.3.5 (2012-02-18)
==================
- Moved the project to the Mercurial version control system with new Bitbucket
home at <https://bitbucket.org/tlotze/ophelia/>.
- Made sure that HTTP response headers are of type ``str``.
- Added a method ``MetaData.header_date`` that formats a date in RFC 2822
format and C locale regardless of the currently active locale. Also format
the expires date in the C locale always. This allows setting up web sites
with a non-C locale without risking non-ASCII characters in HTTP headers,
and non-english month names appearing in RFC 2822 dates more generally.
0.3.4 (2011-04-14)
==================
User-visible:
- The navigation tool now allows splitting menus into blocks by inserting
menu entries with empty titles.
Bug fixes:
- Made WSGI error reporting robust against character encoding issues.
API:
- Added an optional parameter to ``process_file`` to allow executing the
script in a custom namespace.
- Added the ``xml_version`` attribute to the request as a temporary way to
achieve an XML declaration that says "version=1.0", needed by Atom feeds.
Code:
- Store the current request and file context in thread-local stacks instead
of looking them up by inspecting the execution frame stack. Inspecting the
stack was a huge time sink, responsible for 75% of a request's
``__call__`` time on one real-world site.
Organization:
- simplified the buildout configuration due to new versions of Sphinx and
tl.buildout_apache
0.3.3 (2008-12-02)
==================
Bug fixes:
- file-specific context variables were not set during template evaluation
- fixed file positions shown in template traceback supplements skewed by
splitting off scripts from files' beginnings
API:
- added ``input`` request attribute which is a file-like object from which
to read the request body
- added ``headers`` request attribute which is a namespace of HTTP headers
with leading ``HTTP_`` removed
- optionally pre-fill ``response_headers`` namespace with response headers
set earlier by the server environment
Organization:
- added setup for generating HTML documentation using Sphinx
0.3.2 (2008-01-08)
==================
User-visible:
- more helpful tracebacks for broken page templates
- None is available in the page template evaluation context
API:
- added request configuration parameter immediate_result that makes the
request return the unmodified unicode page body to ease further processing
- page templates raise ValueError when constructed from broken template text
Organization:
- simplified setup.py: cleaned up egg contents, set zip_safe flag, removed
provides flag which is not supported by Python 2.4
- Un-declared the feedparser dependency since that egg is awkward to install
using zc.buildout. The feeds tool will stay until 0.4 for compatibility.
0.3.1 (2007-12-07)
==================
User-visible:
- tools: added the Metadata.mtime method which returns the current input
file's modification time as a datetime object
Bug fixes:
- Request.render_template uses full context for rendering a template
- Documented restriction to main_interpreter when run through mod_python.
API:
- renamed request method interpret_template to render_template
- Request.traverse and Request.__call__ accept additional context as keyword
arguments, the WSGI interface accepts it as a mapping named
ophelia.context in the environ dictionary
- console script entry points accept defaults for some command line options
- tools: made Metadata.bump_date accept a datetime object
Organization:
- simplified buildout configuration
0.3 (2007-07-06)
================
User-visible:
- a WSGI application running Ophelia was added along with a basic
wsgiref-based server running that application
- a script for dumping a single Ophelia-generated page to stdout
- use restructured text format for documentation
- scripts are now allowed in macro files
- more informative error pages and logs
- configuration options changed from CamelCase to lower_case
Bug fixes:
- Apache-generated directory indexes and PHP pages work now. This needs at
least version 3.3 of mod_python.
- actually use the template text passed to StopTraversal as a template
API:
- renamed modules, moved classes between modules:
+ publisher.Namespace -> util.Namespace
+ template -> input
+ apache -> modpython
+ publisher.PageTemplate* -> pagetemplate.PageTemplate*
+ publisher.Publisher -> request.Request, publisher -> request,
also renamed script variable __publisher__ -> __request__
- current template moved from request member (template) to pre-defined
script and TALES variable __template__
- request.Redirect exception has an option for replacing the path portion of
the target URL (saves the client some urlparse acrobatics) and uses the
original request's complete URI as a default base for the target
- combined request.StopTraversal exception parameters into one, text
- added methods insert_template and interpret_template to request, reduced
load_macros signature to a single relative file name
- added the next_name request member as a temporary solution for overriding
the file or directory read during the next traversal step
- replaced request member file_path by dir_path as that's simpler to use
- store environment namespace on request as member env instead of the Apache
request
Code:
- use zope.pagetemplate instead of fiddling with the TAL engine directly
- use zope.exceptions instead of log_error to get supplemented tracebacks
and cleaner code
- use zope.interface to formally specify the API exposed to user code
- some clean-up
Organization:
- made egg name lower case
- made the ophelia egg require needed parts of Zope by egg dependencies
- added svn:ignore property
- set up a zc.buildout environment for a development installation
- added tests
0.2 (2007-02-04)
================
User-visible:
- made template and script encodings and the index template name
configurable from Apache config
- renamed SitePrefix config variable to "Site"
- cleaned up pre-defined script variables,
introduced __publisher__ and __file__
- made script variables directly usable in templates
- updated and improved documentation and example site
- switched configuration to using Location directives to get rid of dummy
static directories and index.html files
- added optional redirection of URLs ending with index page to directories
- added ophelia.tool.feed, providing a download function using the Universal
feedparser package, and a feed loader for using the feeds downloaded
Bug fixes:
- correctly compute ETags from unicode content
- fixed a typo in the example's CSS
- fixed a missing trailing slash in the site variable and spurious leading
slashes in the traversal history entries which broke URL synthesis
- made localized dates with non-ASCII chars in month names usable with
templates by adding ophelia.util.strftime
- made the publisher available to functions called from inside templates
API:
- made ophelia.publisher.Namespace subclass dict
- turned publisher and file splitter into objects accessible from scripts
- removed thus obsolete ophelia.oapi module
- added set_chapter() to navigation tool, removed the zoo of URI builders
- added Redirect exception
- renamed methods to get rid of camel case and comply with current PEP 8
- added ophelia.util with an strftime function that returns unicode
Code:
- modularized publishing logic
- straightened out handling of URL and file paths
- replaced file() calls by open() calls
Organization:
- added change log
- moved roadmap from docs to distribution root, added README.txt to root
- started using setuptools and distributing Ophelia as a Python egg
- moved opheliatools package to ophelia.tool for minimal namespace impact
0.1 (2006-07-23)
================
initial "works for me" release
.. Local Variables:
.. mode: rst
.. End: