Chris McDonough
2011-09-04 90737d6b24775cab3a3816b426c0dc65c03fe43d
TODO.txt
@@ -1,74 +1,38 @@
Pyramid TODOs
=============
Should-Have
-----------
- Debugging setting for detecting why authenticated_userid(request) might
  return None.
- Render HTML versions of http exceptions by default for use by debug
  toolbar.
- Make it possible to use tween aliases in explicit tween config?  If not,
  the tween factories of all add-ons must be APIs.
- Tween factories that are instances get a weird name.  Disallow?
- BeforeRender event subclasses dict but implements a bunch of shit.  Its
  repr is currently broken (it always shows empty).  Decide what to do.
- Come up with an analogue of repoze.zodbconn that doesn't require a closer
  in the pipeline and use it in the ZODB scaffold and tutorial.
- Deprecate pyramid.security.view_execution_permitted (it only works for
  traversal).
- Make "localizer" a property of request (instead of requiring
  "get_localizer(request)"
- Make ``current_route_url`` a method of request.
- Create a ``current_route_path`` function and make it a method of request.
- "static_path" API (omit host and port).
- Provide a way to set the authentication policy and the authorization policy
  during a config.include (they are related, so just exposing the currently
  underscored-private _set_auth* methods won't cut it).
- Try to figure out a way to keep "settings" as the original dictionary
  passed to the Configurator instead of copying it.
- Merge Michael's route group work.
- Kill off ``bfg.routes`` envvars in router.
- Alias the stupid long default session factory name.
- Fix indirect circular import between router and config.
- Eliminate non-deployment-non-scaffold-related Paste dependencies:
  ``paste.urlparser.StaticURLParser``, ``paste.auth.auth_tkt`` (cutnpaste or
  reimplement both).
Nice-to-Have
------------
- Consider adding exclog to all scaffolds to print tracebacks to the console
  while the debug toolbar is enabled.
- Add narrative docs for wsgiapp and wsgiapp2.
- Provide a ``has_view`` function.
- Debug option to print view matching decision (e.g. debug_viewlookup or so).
- Speed up startup time (defer _bootstrap and registerCommonDirectives()
  until needed by ZCML, as well as unfound speedups).
- Nicer Mako exceptions in debug toolbar.
- Better "Extending" chapter.
- Try to make test suite pass on IronPython.
- Flesh out "Paste" narrative docs chapter.
- Basic WSGI documentation (pipeline / app / server).
- 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).
- Add better docs about what-to-do-when-behind-a-proxy: paste.urlmap ("/foo =
  app1" and "domain app1.localhost = app1"), ProxyPreserveHost and the nginx
  equivalent, preserving HTTPS URLs.
- _fix_registry should dictify the registry being fixed.
- Make "localizer" a property of request (instead of requiring
  "get_localizer(request)"?
- Alias the stupid long default session factory name.
- Debug option to print view matching decision (e.g. debug_viewlookup or so).
- Non-bwcompat use of threadlocals that need to be documented or ameliorated:
@@ -82,23 +46,61 @@
  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).
- 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.
- Deprecate pyramid.security.view_execution_permitted (it only works for
  traversal).
- Create a function which performs a recursive request.
- Create a ``render_view`` that works by using config.derive_view against an
  existing view callable instead of querying the registry (some sort of API
  for rendering a view callable object to a response from within another view
  callable). Possible idea: have config.add_view mark up the
  function/method/class like @view_config does, then use the attached info to
  derive a view callable whenever called via some API.
- Provide a ``has_view`` function.
- Update App engine chapter with less creaky directions.
- Introspection features (whatever is needed by Alan/ptah).
Future
------
- 1.5: turn ``pyramid.settings.Settings`` into a function that returns the
  original dict (after ``__getattr__`` deprecation period, it was deprecated
  in 1.2).
- 1.3: Kill off ``bfg.routes`` envvars in router.
- 1.3/1.4: - Eliminate non-deployment-non-scaffold-related Paste dependencies:
  ``paste.urlparser.StaticURLParser``, ``paste.auth.auth_tkt`` (cutnpaste or
  reimplement both).
- 1.3/1.4: use zope.registry rather than zope.component.
- 1.3/1.4: get rid of zope.configuration dependency.  This will also speed up
  startup time (defer _bootstrap and registerCommonDirectives() until needed).
- 1.3: Michael's route group work
- 1.3: Add a default-view-config-params decorator that can be applied to a
  class which names defaults for method-based view_config decorator options.
- 1.4: Remove ``chameleon_text`` / ``chameleon_zpt`` deprecated functions
  (render_*)
- 1.4: Remove ``pyramid.configuration.ConfigurationError`` (deprecated).
- 1.4: Remove ``pyramid.paster.PyramidTemplate`` (deprecated).
- 1.3: Remove ``pyramid.renderers.renderer_from_name`` (deprecated).
- 1.5: Remove ``pyramid.requests.DeprecatedRequestMethodsMixin``.
- 1.4: Remove ``pyramid.settings.get_settings`` (deprecated).
- 1.5: Remove all deprecated ``pyramid.testing`` functions.
Probably Bad Ideas
------------------
@@ -111,3 +113,6 @@
- Maybe add ``add_renderer_globals`` method to Configurator.
- Supply ``X-Vhm-Host`` support (probably better to do what paste#prefix
  middleware does).