summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2011-09-06 23:14:18 -0400
committerChris McDonough <chrism@plope.com>2011-09-06 23:14:18 -0400
commitd00fa00e0ee116cce61f157b24b3924d38a352a5 (patch)
tree396a9efcab053130c20c75cf7df3d7e75c023b39
parentf46d5561e7a1e2ca3bf66e9ce05afa5a4e122fe7 (diff)
downloadpyramid-d00fa00e0ee116cce61f157b24b3924d38a352a5.tar.gz
pyramid-d00fa00e0ee116cce61f157b24b3924d38a352a5.tar.bz2
pyramid-d00fa00e0ee116cce61f157b24b3924d38a352a5.zip
prep for 1.2a6
-rw-r--r--CHANGES.txt16
-rw-r--r--docs/conf.py2
-rw-r--r--docs/tutorials/wiki/src/authorization/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki/src/models/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki/src/tests/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki/src/views/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki2/src/authorization/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki2/src/models/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki2/src/tests/tutorial/__init__.py2
-rw-r--r--docs/tutorials/wiki2/src/views/tutorial/__init__.py2
-rw-r--r--docs/whatsnew-1.2.rst15
-rwxr-xr-xpyramid/scaffolds/alchemy/+package+/__init__.py_tmpl2
-rw-r--r--pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl2
-rw-r--r--pyramid/scaffolds/starter/+package+/__init__.py_tmpl2
-rw-r--r--pyramid/scaffolds/zodb/+package+/__init__.py_tmpl2
-rw-r--r--setup.py2
18 files changed, 42 insertions, 21 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index ba89e1989..fcf97b099 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,5 @@
-Next release
-============
+1.2a6 (2011-09-06)
+==================
Bug Fixes
---------
@@ -13,12 +13,12 @@ Internal
- Internalize code previously depended upon as imports from the
``paste.auth`` module (futureproof).
+- Replaced use of ``paste.urlparser.StaticURLParser`` with a derivative of
+ Chris Rossi's "happy" static file serving code (futureproof).
+
- Fixed test suite; on some systems tests would fail due to indeterminate
test run ordering and a double-push-single-pop of a shared test variable.
-- Replaced use of ``paste.urlparser.StaticURLParser`` with a derivative of
- Chris Rossi's "happy" static file serving code.
-
Behavior Differences
--------------------
@@ -31,6 +31,12 @@ Behavior Differences
that cannot be accessed by the Pyramid process' user due to file
permissions, an IOError (or similar) will be raised.
+Scaffolds
+---------
+
+- All scaffolds now send the ``cache_max_age`` parameter to the
+ ``add_static_view`` method.
+
1.2a5 (2011-09-04)
==================
diff --git a/docs/conf.py b/docs/conf.py
index 735159aa4..a6e4f2239 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -93,7 +93,7 @@ copyright = '%s, Agendaless Consulting' % datetime.datetime.now().year
# other places throughout the built documents.
#
# The short X.Y version.
-version = '1.2a5'
+version = '1.2a6'
# The full version, including alpha/beta/rc tags.
release = version
diff --git a/docs/tutorials/wiki/src/authorization/tutorial/__init__.py b/docs/tutorials/wiki/src/authorization/tutorial/__init__.py
index 5daff6b22..1241cecd4 100644
--- a/docs/tutorials/wiki/src/authorization/tutorial/__init__.py
+++ b/docs/tutorials/wiki/src/authorization/tutorial/__init__.py
@@ -23,6 +23,6 @@ def main(global_config, **settings):
config = Configurator(root_factory=root_factory, settings=settings,
authentication_policy=authn_policy,
authorization_policy=authz_policy)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.scan('tutorial')
return config.make_wsgi_app()
diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py b/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py
index 3424807c0..e49a61129 100644
--- a/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py
+++ b/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py
@@ -10,6 +10,6 @@ def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
config = Configurator(root_factory=root_factory, settings=settings)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.scan('tutorial')
return config.make_wsgi_app()
diff --git a/docs/tutorials/wiki/src/models/tutorial/__init__.py b/docs/tutorials/wiki/src/models/tutorial/__init__.py
index 612966c5c..2d637b9de 100644
--- a/docs/tutorials/wiki/src/models/tutorial/__init__.py
+++ b/docs/tutorials/wiki/src/models/tutorial/__init__.py
@@ -10,7 +10,7 @@ def main(global_config, **settings):
""" This function returns a WSGI application.
"""
config = Configurator(root_factory=root_factory, settings=settings)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.scan('tutorial')
return config.make_wsgi_app()
diff --git a/docs/tutorials/wiki/src/tests/tutorial/__init__.py b/docs/tutorials/wiki/src/tests/tutorial/__init__.py
index 5daff6b22..1241cecd4 100644
--- a/docs/tutorials/wiki/src/tests/tutorial/__init__.py
+++ b/docs/tutorials/wiki/src/tests/tutorial/__init__.py
@@ -23,6 +23,6 @@ def main(global_config, **settings):
config = Configurator(root_factory=root_factory, settings=settings,
authentication_policy=authn_policy,
authorization_policy=authz_policy)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.scan('tutorial')
return config.make_wsgi_app()
diff --git a/docs/tutorials/wiki/src/views/tutorial/__init__.py b/docs/tutorials/wiki/src/views/tutorial/__init__.py
index 70d48c8b2..009013b3f 100644
--- a/docs/tutorials/wiki/src/views/tutorial/__init__.py
+++ b/docs/tutorials/wiki/src/views/tutorial/__init__.py
@@ -10,6 +10,6 @@ def main(global_config, **settings):
""" This function returns a WSGI application.
"""
config = Configurator(root_factory=root_factory, settings=settings)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.scan('tutorial')
return config.make_wsgi_app()
diff --git a/docs/tutorials/wiki2/src/authorization/tutorial/__init__.py b/docs/tutorials/wiki2/src/authorization/tutorial/__init__.py
index 4cd84eda5..cca52fdfe 100644
--- a/docs/tutorials/wiki2/src/authorization/tutorial/__init__.py
+++ b/docs/tutorials/wiki2/src/authorization/tutorial/__init__.py
@@ -19,7 +19,7 @@ def main(global_config, **settings):
root_factory='tutorial.models.RootFactory',
authentication_policy=authn_policy,
authorization_policy=authz_policy)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.add_route('view_wiki', '/')
config.add_route('login', '/login')
diff --git a/docs/tutorials/wiki2/src/basiclayout/tutorial/__init__.py b/docs/tutorials/wiki2/src/basiclayout/tutorial/__init__.py
index c74f07652..b4038de3c 100644
--- a/docs/tutorials/wiki2/src/basiclayout/tutorial/__init__.py
+++ b/docs/tutorials/wiki2/src/basiclayout/tutorial/__init__.py
@@ -9,7 +9,7 @@ def main(global_config, **settings):
engine = engine_from_config(settings, 'sqlalchemy.')
initialize_sql(engine)
config = Configurator(settings=settings)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.add_route('home', '/')
config.add_view('tutorial.views.my_view', route_name='home',
renderer='templates/mytemplate.pt')
diff --git a/docs/tutorials/wiki2/src/models/tutorial/__init__.py b/docs/tutorials/wiki2/src/models/tutorial/__init__.py
index ecc41ca9f..fda7c9ce6 100644
--- a/docs/tutorials/wiki2/src/models/tutorial/__init__.py
+++ b/docs/tutorials/wiki2/src/models/tutorial/__init__.py
@@ -9,7 +9,7 @@ def main(global_config, **settings):
engine = engine_from_config(settings, 'sqlalchemy.')
initialize_sql(engine)
config = Configurator(settings=settings)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.add_route('home', '/')
config.add_view('tutorial.views.my_view', route_name='home',
renderer='templates/mytemplate.pt')
diff --git a/docs/tutorials/wiki2/src/tests/tutorial/__init__.py b/docs/tutorials/wiki2/src/tests/tutorial/__init__.py
index 4cd84eda5..cca52fdfe 100644
--- a/docs/tutorials/wiki2/src/tests/tutorial/__init__.py
+++ b/docs/tutorials/wiki2/src/tests/tutorial/__init__.py
@@ -19,7 +19,7 @@ def main(global_config, **settings):
root_factory='tutorial.models.RootFactory',
authentication_policy=authn_policy,
authorization_policy=authz_policy)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.add_route('view_wiki', '/')
config.add_route('login', '/login')
diff --git a/docs/tutorials/wiki2/src/views/tutorial/__init__.py b/docs/tutorials/wiki2/src/views/tutorial/__init__.py
index ad89c124e..7d79f7a1f 100644
--- a/docs/tutorials/wiki2/src/views/tutorial/__init__.py
+++ b/docs/tutorials/wiki2/src/views/tutorial/__init__.py
@@ -9,7 +9,7 @@ def main(global_config, **settings):
engine = engine_from_config(settings, 'sqlalchemy.')
initialize_sql(engine)
config = Configurator(settings=settings)
- config.add_static_view('static', 'tutorial:static')
+ config.add_static_view('static', 'tutorial:static', cache_max_age=3600)
config.add_route('view_wiki', '/')
config.add_route('view_page', '/{pagename}')
config.add_route('add_page', '/add_page/{pagename}')
diff --git a/docs/whatsnew-1.2.rst b/docs/whatsnew-1.2.rst
index ba92e3542..8a64e2756 100644
--- a/docs/whatsnew-1.2.rst
+++ b/docs/whatsnew-1.2.rst
@@ -58,6 +58,9 @@ Scaffolding Changes
error catching / email sending is now the domain of the ``pyramid_exclog``
package (see https://docs.pylonsproject.org/projects/pyramid_exclog/dev/).
+- All scaffolds now send the ``cache_max_age`` parameter to the
+ ``add_static_view`` method.
+
Minor Feature Additions
-----------------------
@@ -237,6 +240,18 @@ Backwards Incompatibilities
returns a route object. This change was required to make route vs. view
configuration processing work properly.
+Behavior Differences
+--------------------
+
+- An ETag header is no longer set when serving a static file. A
+ Last-Modified header is set instead.
+
+- Static file serving no longer supports the ``wsgi.file_wrapper`` extension.
+
+- Instead of returning a ``403 Forbidden`` error when a static file is served
+ that cannot be accessed by the Pyramid process' user due to file
+ permissions, an IOError (or similar) will be raised.
+
Documentation Enhancements
--------------------------
diff --git a/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl b/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl
index 942c1973c..8eb878688 100755
--- a/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl
+++ b/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl
@@ -9,7 +9,7 @@ def main(global_config, **settings):
engine = engine_from_config(settings, 'sqlalchemy.')
get_root = appmaker(engine)
config = Configurator(settings=settings, root_factory=get_root)
- config.add_static_view('static', '{{package}}:static')
+ config.add_static_view('static', '{{package}}:static', cache_max_age=3600)
config.add_view('{{package}}.views.view_root',
context='{{package}}.models.MyRoot',
renderer="templates/root.pt")
diff --git a/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl b/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl
index f5e3a0630..24201912b 100644
--- a/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl
+++ b/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl
@@ -9,7 +9,7 @@ def main(global_config, **settings):
engine = engine_from_config(settings, 'sqlalchemy.')
initialize_sql(engine)
config = Configurator(settings=settings)
- config.add_static_view('static', '{{package}}:static')
+ config.add_static_view('static', '{{package}}:static', cache_max_age=3600)
config.add_route('home', '/')
config.add_view('{{package}}.views.my_view',
route_name='home',
diff --git a/pyramid/scaffolds/starter/+package+/__init__.py_tmpl b/pyramid/scaffolds/starter/+package+/__init__.py_tmpl
index 32b69e902..d763b2435 100644
--- a/pyramid/scaffolds/starter/+package+/__init__.py_tmpl
+++ b/pyramid/scaffolds/starter/+package+/__init__.py_tmpl
@@ -8,5 +8,5 @@ def main(global_config, **settings):
config.add_view('{{package}}.views.my_view',
context='{{package}}:resources.Root',
renderer='{{package}}:templates/mytemplate.pt')
- config.add_static_view('static', '{{package}}:static')
+ config.add_static_view('static', '{{package}}:static', cache_max_age=3600)
return config.make_wsgi_app()
diff --git a/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl b/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl
index 764cfc0ba..935121888 100644
--- a/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl
+++ b/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl
@@ -10,6 +10,6 @@ def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
config = Configurator(root_factory=root_factory, settings=settings)
- config.add_static_view('static', '{{package}}:static')
+ config.add_static_view('static', '{{package}}:static', cache_max_age=3600)
config.scan('{{package}}')
return config.make_wsgi_app()
diff --git a/setup.py b/setup.py
index bc5b47020..48cfdac23 100644
--- a/setup.py
+++ b/setup.py
@@ -52,7 +52,7 @@ if sys.version_info[:2] < (2, 6):
install_requires.append('simplejson')
setup(name='pyramid',
- version='1.2a5',
+ version='1.2a6',
description=('The Pyramid web application development framework, a '
'Pylons project'),
long_description=README + '\n\n' + CHANGES,