Defining a 1.0 goal for Pyramid

9 views
Skip to first unread message

Chris McDonough

unread,
Dec 20, 2010, 11:38:43 AM12/20/10
to pylons-devel
Hi folks,

I'm interested in defining a clear goal for making the necessary changes
so we can create a "1.0" release.

Obviously the current github issue tracker issues will need to be
resolved.

The current TODO.txt of the Pyramid package is included at the bottom of
this message. Some of the items may be a little cryptic, because they
refer to small internal changes, but I've attempted to organize them
into three categories: must-have, should-have, and nice-to-have. I
currently consider only the "must-have" items as necessary for a 1.0
release. If you know of anything else that you believe is "required",
or that you'd like to move from "nice-to-have" or "should-have" to
"must-have" state, pipe up. We'll consider the items that are in the
"must-have" state after this thread to be canonical for 1.0.


Pyramid TODOs
=============

Must-Have (before 1.0)
----------------------

- Narrative docs for ``Configurator.include`` and
``Configurator.commit``.

- Provide a .flash API on session object.

- Consider deprecations for ``model`` and ``resource`` APIs.

Should-Have
-----------

- translationdir ZCML directive use of ``path_spec`` should maybe die.

- Add CRSF token creation/checking machinery (only "should have" vs.
"must
have" because I'm not sure it belongs in Pyramid.. it definitely must
exist
in formgen libraries, and *might* belong in Pyramid).

- Change "Cleaning up After a Request" in the urldispatch chapter to
use ``request.add_response_callback``.

- ``decorator=`` parameter to view_config. This would replace the
existing
_map_view "decorator" if it existed.

Nice-to-Have
------------

- Try to make test suite pass on IronPython.

- Non-bwcompat use of threadlocals that need to be documented or
ameliorated:

security.principals_allowed_by_permission

resource.OverrideProvider._get_overrides: can't credibly be removed,
because it stores an overrideprovider as a module-scope global.

traversal.traverse: this API is a stepchild, and needs to be changed.

Configurator.add_translation_dirs: not passed any context but a
message,
can't credibly be removed.

- Supply ``X-Vhm-Host`` support.

- Basic WSGI documentation (pipeline / app / server).

- Fix message catalog extraction / compilation documentation.

- Change docs about creating a venusian decorator to not use ZCA.

- Try to better explain the relationship between a renderer and a
template in the templates chapter and elsewhere. Scan the
documentation for reference to a renderer as *only* view
configuration (it's a larger concept now).

- Create a ``render_view`` that works by using config.derive_view
against an existing view instead of querying the registry.

- Create a function which performs a recursive request.

- Debug option to print view matching decision.

- Script or paster command that prints, for a given URL, the views
that might match. Underneath each potentially matching route, list
the predicates required. Underneath each route+predicate set, print
each view that might match and its predicates. E.g. with the input
URL ``/foo``::

'/foo' (foo_xhr)
xhr = True
(no view predicates)
mypackage.views.MyXHRFooView.__call__

'/{action}' (action_route)
request_method = 'POST'
action = '^foo$'
mypackage.views.MyView.foo_POST
request_method = 'GET'
action = '^foo$'
mypackage.views.MyView.foo_GET

- Provide a response_cookies attribute on the request for rendered
responses that can be used as input to response.set_cookie.

- Raise an exception when a value in response_headerlist is not a
string or decide to encode.

- Update App engine chapter with less creaky directions.


Reply all
Reply to author
Forward
0 new messages