This was extraced from the Datatracker PLAN on 9Jul. Items from the PLAN were moved into tickets.



Notes
Updated: $Date$
===========================

* Consistency fix: in settings.py, name directory settings consistently with
  ..._DIR; reserving ..._PATH for settings with PATH semantics (':'-separated lists
  of directories)

* For documents with Yang modules, add links to the extracted modules (possibly in
  multiple formats -- pyang can generate a large number of alternative formats)

* When we get to the point where we can produce pdf from xml+media, remove the
  pdf upload possibility -- it's a definite attack vector.  Possibly start scanning
  pdf files for /JS and /JavaScript (and workarounds to hide Javascript)

* Add one or more API description pages with examples of common queries

* Add role lists and additional relevant information to the personal profile
  pages

* Increase the requirements on valid email addresses in draft submissions --
  contacting authors is hard if they don't provide an email address.

* Make it possible to let time run backwards in the database (creation timestamps,
  universal changelog)

* Change slugs which were limited by the former 8-character slug length limit
  to be more readable (needs both code changes and migrations).

* Additional charts, various statistics views.

* For graphing and mapping various numbers relative to country population, 
  integrate population data from the world bank,
  http://databank.worldbank.org/data/reports.aspx?source=2&series=SP.POP.TOTL&country=
  (or some other source, if a better is found).  WorldOmeters has running counters,
  but ask for a lot of money for even one.

* Notable New Django Features in 1.8:

  + New data types: UUIDField, DurationField
  + Query Expressions (enhanced expressivity, conditionals, database functions)
  + Improved TestCase fixture loading, additional .setUpTestData() method.
  - Support for alternative template engines
  - Security enhancements (request/response cycle middleware)
  - PostgreSQL-specific fields

* Notable New Django Features in 1.9:

  + New on_commit() hook, for post-commit actions, for instance sending email
  + Password validation option with pluggable validators
  + Running tests in parallel
  + DateTimeFields can be queried with date
  - Permission mixins for class-based views
  - New admin style


* WG document state slug renaming.

  adopt-wg	-> adopted-by-wg
  c-adopt	-> candidate-for-wg-adoption
  chair-w	-> waiting-for-chair-goahead
  dead		-> dead-wg-draft
  info		-> adopted-for-wg-info-only
  parked
  sub-pub	-> submitted-for-publication
  wg-cand	-> wg-candidate
  wg-doc	-> wg-document
  wg-lc		-> wg-last-call
  writeupw	-> waiting-for-shepherd-writeup

* Clean up and normalise the use of canceled / cancelled.  User-visible
  strings should already be all CANCELLED except when manually entered.

* DjangoCon Europe 2017 Notes:

  - Add tracing of Django Query methods from code through templates to the
    sql_queries list provided by 'django.template.context_processors.debug'
    (DONE)

  - Consider rewriting user switches using feature flags, for instance with
    gargoyle.

  - There is now a Django-REST-Framework add-on app which makes it easier to
    do something similar with DRF as with Tastypie.  As Tastypie is not being
    actively maintained, and DRF seems to have better performance, consider
    building /api/v2 using DRF and drf-schema-adapter / drf-auto-endpoint.

  - Consider adding JWT (RFC7519) support for /api/v1 /api/v2, to generate an
    access token from a login, and use that instead of session support for
    access control to access limited endpoints.

  - Once we're on Django 3.5, start using static type annotations to improve
    early discovery of incorrect function/method usage.  There are add-on
    files avaliable for Django which provide type annotation for Django
    functions and methods, and the Python stdlib is type annotated starting
    with Python 3.5.  Check static typing violations with 'mypy'.

  - Consider providing a user-selectable option to import photos from
    gravatar.

  - Consider using django-12factor to apply part of the 12-factor app
    philosophy: https://12factor.net/


