[ckan-changes] [okfn/ckan] 759c0d: [#943] First draft if new writing extensions tutor...

GitHub noreply at github.com
Mon Sep 9 19:46:22 UTC 2013


  Branch: refs/heads/1178-users-invitations
  Home:   https://github.com/okfn/ckan
  Commit: 759c0d86b38cc0c5f921cc38b57d713665c5fe50
      https://github.com/okfn/ckan/commit/759c0d86b38cc0c5f921cc38b57d713665c5fe50
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-12 (Wed, 12 Jun 2013)

  Changed paths:
    M ckan/plugins/interfaces.py
    A ckanext/examples/iauthfunctions/plugin_1.py
    A ckanext/examples/iauthfunctions/plugin_2.py
    A ckanext/examples/iauthfunctions/plugin_3.py
    M doc/conf.py
    M doc/writing-extensions.rst
    M setup.py

  Log Message:
  -----------
  [#943] First draft if new writing extensions tutorial


  Commit: 90cf45017b0236ae02e23885120095d680931d34
      https://github.com/okfn/ckan/commit/90cf45017b0236ae02e23885120095d680931d34
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-13 (Thu, 13 Jun 2013)

  Changed paths:
    M ckan/pastertemplates/template/setup.py_tmpl

  Log Message:
  -----------
  [#943] Reformat setup.py_tmpl

Spaces, not tabs. Also fix random indentation.


  Commit: 3c2fda0c48f0d568f646f452da6c8cdf95d0636b
      https://github.com/okfn/ckan/commit/3c2fda0c48f0d568f646f452da6c8cdf95d0636b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-24 (Mon, 24 Jun 2013)

  Changed paths:
    M ckanext/examples/iauthfunctions/plugin_3.py

  Log Message:
  -----------
  [#943] Delete an unwanted return

This should not have been committed


  Commit: 5b7b0b466b4e2a40555e0cc984b40494083c2b7a
      https://github.com/okfn/ckan/commit/5b7b0b466b4e2a40555e0cc984b40494083c2b7a
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-24 (Mon, 24 Jun 2013)

  Changed paths:
    M CONTRIBUTING.rst
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Add some minimal extension best practices

There's probably a lot more to mention here.


  Commit: cccf5d29c5b832274e5f7daede1c8992bc68afba
      https://github.com/okfn/ckan/commit/cccf5d29c5b832274e5f7daede1c8992bc68afba
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    A ckanext/examples/iauthfunctions/plugin_4.py
    M doc/api.rst
    M doc/writing-extensions.rst
    M setup.py

  Log Message:
  -----------
  [#943] Add tutorial section on error handling in extensions


  Commit: 6f6389fdec7b4966903b562b4583f5a0508f9d6a
      https://github.com/okfn/ckan/commit/6f6389fdec7b4966903b562b4583f5a0508f9d6a
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    A ckanext/examples/__init__.py
    A ckanext/examples/iauthfunctions/__init__.py

  Log Message:
  -----------
  [#943] Add __init__.py files to examples/iauthfunctions

These are needed for the extension to load successfully.


  Commit: b5c8b7f7f80b4ae5aedd147050b6de31b66f98d2
      https://github.com/okfn/ckan/commit/b5c8b7f7f80b4ae5aedd147050b6de31b66f98d2
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    A ckanext/example_iauthfunctions/__init__.py
    A ckanext/example_iauthfunctions/plugin_1.py
    A ckanext/example_iauthfunctions/plugin_2.py
    A ckanext/example_iauthfunctions/plugin_3.py
    A ckanext/example_iauthfunctions/plugin_4.py
    R ckanext/examples/iauthfunctions/__init__.py
    R ckanext/examples/iauthfunctions/plugin_1.py
    R ckanext/examples/iauthfunctions/plugin_2.py
    R ckanext/examples/iauthfunctions/plugin_3.py
    R ckanext/examples/iauthfunctions/plugin_4.py
    M setup.py

  Log Message:
  -----------
  [#943] Move the example iauthfunctions extension

Put it in the same place as example_idatasetform etc.


  Commit: 53ed705b47f5f184eb5a16a58366a974dec72442
      https://github.com/okfn/ckan/commit/53ed705b47f5f184eb5a16a58366a974dec72442
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    R ckanext/example_iauthfunctions/plugin_1.py
    R ckanext/example_iauthfunctions/plugin_2.py
    R ckanext/example_iauthfunctions/plugin_3.py
    R ckanext/example_iauthfunctions/plugin_4.py
    A ckanext/example_iauthfunctions/plugin_v1.py
    A ckanext/example_iauthfunctions/plugin_v2.py
    A ckanext/example_iauthfunctions/plugin_v3.py
    A ckanext/example_iauthfunctions/plugin_v4.py
    M setup.py

  Log Message:
  -----------
  [#943] Rename example_iauthfunctions plugin modules

Adding a v makes it clearer that they're successive versions of the same
module.


  Commit: c859782a4bc1bd6c1f57f1b0aaf934415670a780
      https://github.com/okfn/ckan/commit/c859782a4bc1bd6c1f57f1b0aaf934415670a780
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Update includes in writing-extensions docs


  Commit: 79deea80bad7fe4b6996f275fcd2aa44503dce82
      https://github.com/okfn/ckan/commit/79deea80bad7fe4b6996f275fcd2aa44503dce82
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    R ckanext/examples/__init__.py

  Log Message:
  -----------
  [#943] Delete stray __init__.py file


  Commit: 559d41602c30c770b11bf5293c97bd8817712071
      https://github.com/okfn/ckan/commit/559d41602c30c770b11bf5293c97bd8817712071
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    M doc/documentation-guidelines.rst
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Edit the writing extensions tutorial

Lots of minor edits


  Commit: bf1847f7bce694b0f98dc2b6ff27f8e2dc07be0f
      https://github.com/okfn/ckan/commit/bf1847f7bce694b0f98dc2b6ff27f8e2dc07be0f
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    M doc/conf.py

  Log Message:
  -----------
  [#943] Show .. todo:: items in Sphinx output


  Commit: 75d1eee0b2d3dd473efc66c388435c2bac2d3901
      https://github.com/okfn/ckan/commit/75d1eee0b2d3dd473efc66c388435c2bac2d3901
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    A ckanext/example_iauthfunctions/plugin.py
    R ckanext/example_iauthfunctions/plugin_v4.py
    A ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py
    M setup.py

  Log Message:
  -----------
  [#943] Add tests for example_iauthfunctions


  Commit: e58153506d463597897b9b7ad8d112f7d7d2828f
      https://github.com/okfn/ckan/commit/e58153506d463597897b9b7ad8d112f7d7d2828f
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    M ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Add some docs about testing extensions


  Commit: d3bbbe1d85b23ef9114a9ed65c6ac0fecf872290
      https://github.com/okfn/ckan/commit/d3bbbe1d85b23ef9114a9ed65c6ac0fecf872290
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Update some includes in writing extensions docs


  Commit: 22d933a3ed6f16fe3b6a56796c0f1d01257b98a6
      https://github.com/okfn/ckan/commit/22d933a3ed6f16fe3b6a56796c0f1d01257b98a6
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-06-28 (Fri, 28 Jun 2013)

  Changed paths:
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Add docs on publishing extensions


  Commit: 8d882999a5c8cb3cb4d2cfacbde16da6b0ab7d5b
      https://github.com/okfn/ckan/commit/8d882999a5c8cb3cb4d2cfacbde16da6b0ab7d5b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-12 (Mon, 12 Aug 2013)

  Changed paths:
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Tweak a TODO in the docs


  Commit: a72d243bb1c1d26044c58257b5194c6940756e3e
      https://github.com/okfn/ckan/commit/a72d243bb1c1d26044c58257b5194c6940756e3e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M ckan/logic/__init__.py
    M ckanext/example_iauthfunctions/plugin.py
    M ckanext/example_iauthfunctions/plugin_v3.py

  Log Message:
  -----------
  [#943] Prepopulate context in check_access()

In some cases authorization functions can get called without the basics
(model, session, user) in their context dict. For example this was
happening to the group_create() auth function in the
example_iauthfunctions plugin, but only when it was called via the
templates not via the API.

This commit just changes check_access() to always put model, session and
user into the context if they aren't there already before passing the
context onto an auth function.

get_action() was already doing this for action functions.


  Commit: 543f4b57b9276f6da897ebb4163c46a688eaf924
      https://github.com/okfn/ckan/commit/543f4b57b9276f6da897ebb4163c46a688eaf924
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M ckan/logic/action/get.py

  Log Message:
  -----------
  [#943] Add :raises: to member_list() action


  Commit: 2f5c0870fc40e62e9089c16593a89749af4dae96
      https://github.com/okfn/ckan/commit/2f5c0870fc40e62e9089c16593a89749af4dae96
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M doc/api.rst

  Log Message:
  -----------
  [#943] Minor API docs correction


  Commit: a51accc67e6948a744cc50722e451a776e4cfdc0
      https://github.com/okfn/ckan/commit/a51accc67e6948a744cc50722e451a776e4cfdc0
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M doc/api.rst

  Log Message:
  -----------
  [#943] Add a note about exceptions to API docs

Add a note to the API docs about what the API does when an action
function raises an exception.


  Commit: da211fa1f7d0f5ec99e2bbec009f5498827bb39c
      https://github.com/okfn/ckan/commit/da211fa1f7d0f5ec99e2bbec009f5498827bb39c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Add a TODO to the docs


  Commit: 491c80ddef9990be94c1f9f91eb00c06412506ad
      https://github.com/okfn/ckan/commit/491c80ddef9990be94c1f9f91eb00c06412506ad
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M ckan/plugins/toolkit.py
    M ckanext/example_iauthfunctions/plugin.py
    M ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py

  Log Message:
  -----------
  [#943] Add ckan.logic.Invalid to the plugins toolkit

This means that extensions that call converter or validator functions
(via the toolkit) don't need to import Invalid directly to catch the
exceptions.


  Commit: 64b32d161eeb2a7275a041f12619e7944307230a
      https://github.com/okfn/ckan/commit/64b32d161eeb2a7275a041f12619e7944307230a
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-13 (Tue, 13 Aug 2013)

  Changed paths:
    M ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py

  Log Message:
  -----------
  [#943] Don't use `with assert_raises`

It doesn't work in Python 2.6


  Commit: e6fcf1e15e6c05801c3f5c590a4df8dc0f0802aa
      https://github.com/okfn/ckan/commit/e6fcf1e15e6c05801c3f5c590a4df8dc0f0802aa
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-27 (Tue, 27 Aug 2013)

  Changed paths:
    M .gitmodules
    A .pipignore
    M .tx/config
    M CHANGELOG.rst
    M CONTRIBUTING.rst
    M LICENSE.txt
    M bin/ckan_edit_local.py
    M bin/ckan_spam.py
    M bin/travis-build
    R build.sh
    M ckan/__init__.py
    M ckan/config/deployment.ini_tmpl
    M ckan/config/environment.py
    M ckan/config/middleware.py
    M ckan/config/routing.py
    M ckan/config/solr/schema-2.0.xml
    M ckan/controllers/admin.py
    M ckan/controllers/api.py
    M ckan/controllers/feed.py
    M ckan/controllers/group.py
    M ckan/controllers/organization.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    A ckan/i18n/ar/LC_MESSAGES/ckan.mo
    A ckan/i18n/ar/LC_MESSAGES/ckan.po
    M ckan/i18n/bg/LC_MESSAGES/ckan.mo
    M ckan/i18n/bg/LC_MESSAGES/ckan.po
    M ckan/i18n/ca/LC_MESSAGES/ckan.mo
    M ckan/i18n/ca/LC_MESSAGES/ckan.po
    M ckan/i18n/ckan.pot
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.mo
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.po
    A ckan/i18n/da_DK/LC_MESSAGES/ckan.mo
    A ckan/i18n/da_DK/LC_MESSAGES/ckan.po
    M ckan/i18n/de/LC_MESSAGES/ckan.mo
    M ckan/i18n/de/LC_MESSAGES/ckan.po
    M ckan/i18n/dv/LC_MESSAGES/ckan.mo
    M ckan/i18n/dv/LC_MESSAGES/ckan.po
    M ckan/i18n/el/LC_MESSAGES/ckan.mo
    M ckan/i18n/el/LC_MESSAGES/ckan.po
    A ckan/i18n/en_AU/LC_MESSAGES/ckan.mo
    A ckan/i18n/en_AU/LC_MESSAGES/ckan.po
    M ckan/i18n/en_GB/LC_MESSAGES/ckan.mo
    M ckan/i18n/en_GB/LC_MESSAGES/ckan.po
    M ckan/i18n/es/LC_MESSAGES/ckan.mo
    M ckan/i18n/es/LC_MESSAGES/ckan.po
    M ckan/i18n/es_AR/LC_MESSAGES/ckan.mo
    M ckan/i18n/es_AR/LC_MESSAGES/ckan.po
    M ckan/i18n/fa_IR/LC_MESSAGES/ckan.mo
    M ckan/i18n/fa_IR/LC_MESSAGES/ckan.po
    M ckan/i18n/fi/LC_MESSAGES/ckan.mo
    M ckan/i18n/fi/LC_MESSAGES/ckan.po
    M ckan/i18n/fr/LC_MESSAGES/ckan.mo
    M ckan/i18n/fr/LC_MESSAGES/ckan.po
    M ckan/i18n/hu/LC_MESSAGES/ckan.mo
    M ckan/i18n/hu/LC_MESSAGES/ckan.po
    M ckan/i18n/id/LC_MESSAGES/ckan.mo
    M ckan/i18n/id/LC_MESSAGES/ckan.po
    M ckan/i18n/is/LC_MESSAGES/ckan.mo
    M ckan/i18n/is/LC_MESSAGES/ckan.po
    M ckan/i18n/it/LC_MESSAGES/ckan.mo
    M ckan/i18n/it/LC_MESSAGES/ckan.po
    M ckan/i18n/ja/LC_MESSAGES/ckan.mo
    M ckan/i18n/ja/LC_MESSAGES/ckan.po
    A ckan/i18n/km/LC_MESSAGES/ckan.mo
    A ckan/i18n/km/LC_MESSAGES/ckan.po
    M ckan/i18n/ko_KR/LC_MESSAGES/ckan.mo
    M ckan/i18n/ko_KR/LC_MESSAGES/ckan.po
    M ckan/i18n/lt/LC_MESSAGES/ckan.mo
    M ckan/i18n/lt/LC_MESSAGES/ckan.po
    M ckan/i18n/lv/LC_MESSAGES/ckan.mo
    M ckan/i18n/lv/LC_MESSAGES/ckan.po
    M ckan/i18n/my_MM/LC_MESSAGES/ckan.mo
    M ckan/i18n/my_MM/LC_MESSAGES/ckan.po
    M ckan/i18n/nl/LC_MESSAGES/ckan.mo
    M ckan/i18n/nl/LC_MESSAGES/ckan.po
    M ckan/i18n/no/LC_MESSAGES/ckan.mo
    M ckan/i18n/no/LC_MESSAGES/ckan.po
    M ckan/i18n/pl/LC_MESSAGES/ckan.mo
    M ckan/i18n/pl/LC_MESSAGES/ckan.po
    M ckan/i18n/pt_BR/LC_MESSAGES/ckan.mo
    M ckan/i18n/pt_BR/LC_MESSAGES/ckan.po
    M ckan/i18n/ro/LC_MESSAGES/ckan.mo
    M ckan/i18n/ro/LC_MESSAGES/ckan.po
    M ckan/i18n/ru/LC_MESSAGES/ckan.mo
    M ckan/i18n/ru/LC_MESSAGES/ckan.po
    M ckan/i18n/sk/LC_MESSAGES/ckan.mo
    M ckan/i18n/sk/LC_MESSAGES/ckan.po
    M ckan/i18n/sl/LC_MESSAGES/ckan.mo
    M ckan/i18n/sl/LC_MESSAGES/ckan.po
    M ckan/i18n/sq/LC_MESSAGES/ckan.mo
    M ckan/i18n/sq/LC_MESSAGES/ckan.po
    M ckan/i18n/sr/LC_MESSAGES/ckan.mo
    M ckan/i18n/sr/LC_MESSAGES/ckan.po
    M ckan/i18n/sr_Latn/LC_MESSAGES/ckan.mo
    M ckan/i18n/sr_Latn/LC_MESSAGES/ckan.po
    M ckan/i18n/sv/LC_MESSAGES/ckan.mo
    M ckan/i18n/sv/LC_MESSAGES/ckan.po
    M ckan/i18n/tr/LC_MESSAGES/ckan.mo
    M ckan/i18n/tr/LC_MESSAGES/ckan.po
    M ckan/i18n/uk_UA/LC_MESSAGES/ckan.mo
    M ckan/i18n/uk_UA/LC_MESSAGES/ckan.po
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.mo
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.po
    M ckan/i18n/zh_TW/LC_MESSAGES/ckan.mo
    M ckan/i18n/zh_TW/LC_MESSAGES/ckan.po
    M ckan/lib/activity_streams.py
    M ckan/lib/app_globals.py
    M ckan/lib/base.py
    M ckan/lib/celery_app.py
    M ckan/lib/cli.py
    M ckan/lib/datapreview.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/dictization/model_save.py
    M ckan/lib/email_notifications.py
    M ckan/lib/formatters.py
    M ckan/lib/helpers.py
    M ckan/lib/i18n.py
    M ckan/lib/navl/__init__.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/package_saver.py
    M ckan/lib/plugins.py
    M ckan/lib/render.py
    M ckan/lib/repoze_patch.py
    M ckan/lib/search/__init__.py
    M ckan/lib/search/index.py
    M ckan/lib/search/query.py
    M ckan/logic/__init__.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/create.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/migration/versions/066_default_package_type.py
    A ckan/migration/versions/068_add_package_extras_index.py
    A ckan/migration/versions/069_resource_url_and_metadata_modified.py
    A ckan/migration/versions/070_add_activity_and_resource_indexes.py
    M ckan/model/activity.py
    M ckan/model/extension.py
    M ckan/model/license.py
    M ckan/model/meta.py
    M ckan/model/modification.py
    M ckan/model/package.py
    M ckan/model/package_relationship.py
    M ckan/model/resource.py
    M ckan/model/user.py
    M ckan/new_authz.py
    M ckan/plugins/core.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/public/base/css/fuchsia.css
    M ckan/public/base/css/green.css
    M ckan/public/base/css/main.css
    M ckan/public/base/css/maroon.css
    M ckan/public/base/css/red.css
    M ckan/public/base/javascript/main.js
    M ckan/public/base/javascript/modules/custom-fields.js
    A ckan/public/base/javascript/modules/dataset-visibility.js
    A ckan/public/base/javascript/modules/media-grid.js
    M ckan/public/base/javascript/modules/related-item.js
    M ckan/public/base/javascript/modules/resource-upload-field.js
    M ckan/public/base/javascript/modules/slug-preview.js
    A ckan/public/base/javascript/plugins/jquery.masonry.js
    M ckan/public/base/javascript/plugins/jquery.slug-preview.js
    M ckan/public/base/javascript/resource.config
    M ckan/public/base/less/ckan.less
    M ckan/public/base/less/dashboard.less
    M ckan/public/base/less/dataset.less
    R ckan/public/base/less/font-awesome.less
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/homepage.less
    M ckan/public/base/less/icons.less
    M ckan/public/base/less/iehacks.less
    M ckan/public/base/less/layout.less
    M ckan/public/base/less/media.less
    M ckan/public/base/less/module.less
    M ckan/public/base/less/nav.less
    A ckan/public/base/less/search.less
    M ckan/public/base/less/toolbar.less
    M ckan/public/base/test/index.html
    M ckan/public/base/test/spec/modules/custom-fields.spec.js
    M ckan/public/base/test/spec/modules/resource-upload-field.spec.js
    M ckan/public/base/test/vendor/mocha.css
    M ckan/public/base/test/vendor/mocha.js
    A ckan/public/base/vendor/bootstrap/img/glyphicons-halflings-white.png
    R ckan/public/base/vendor/bootstrap/img/glyphicons-halflings-white.png
    A ckan/public/base/vendor/bootstrap/img/glyphicons-halflings.png
    R ckan/public/base/vendor/bootstrap/img/glyphicons-halflings.png
    R ckan/public/base/vendor/bootstrap/js/.jshintrc
    M ckan/public/base/vendor/bootstrap/js/bootstrap.js
    M ckan/public/base/vendor/bootstrap/js/bootstrap.min.js
    M ckan/public/base/vendor/bootstrap/less/bootstrap.less
    M ckan/public/base/vendor/bootstrap/less/dropdowns.less
    M ckan/public/base/vendor/bootstrap/less/responsive.less
    M ckan/public/base/vendor/font-awesome/css/font-awesome-ie7.css
    A ckan/public/base/vendor/font-awesome/css/font-awesome-ie7.min.css
    M ckan/public/base/vendor/font-awesome/css/font-awesome.css
    A ckan/public/base/vendor/font-awesome/css/font-awesome.min.css
    M ckan/public/base/vendor/font-awesome/font/FontAwesome.otf
    M ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.eot
    M ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.svg
    M ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.ttf
    M ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.woff
    A ckan/public/base/vendor/font-awesome/less/bootstrap.less
    A ckan/public/base/vendor/font-awesome/less/core.less
    A ckan/public/base/vendor/font-awesome/less/extras.less
    M ckan/public/base/vendor/font-awesome/less/font-awesome-ie7.less
    M ckan/public/base/vendor/font-awesome/less/font-awesome.less
    A ckan/public/base/vendor/font-awesome/less/icons.less
    A ckan/public/base/vendor/font-awesome/less/mixins.less
    A ckan/public/base/vendor/font-awesome/less/path.less
    A ckan/public/base/vendor/font-awesome/less/variables.less
    M ckan/public/base/vendor/jquery.js
    M ckan/public/base/vendor/resource.config
    M ckan/templates/admin/base.html
    M ckan/templates/admin/config.html
    M ckan/templates/admin/index.html
    M ckan/templates/ajax_snippets/related-item.html
    M ckan/templates/footer.html
    M ckan/templates/group/about.html
    M ckan/templates/group/activity_stream.html
    M ckan/templates/group/admins.html
    M ckan/templates/group/base_form_page.html
    M ckan/templates/group/edit.html
    A ckan/templates/group/edit_base.html
    M ckan/templates/group/followers.html
    M ckan/templates/group/history.html
    M ckan/templates/group/index.html
    M ckan/templates/group/member_new.html
    M ckan/templates/group/members.html
    M ckan/templates/group/new.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_form.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/group_list.html
    A ckan/templates/group/snippets/helper.html
    A ckan/templates/group/snippets/info.html
    M ckan/templates/header.html
    M ckan/templates/home/index.html
    M ckan/templates/macros/autoform.html
    M ckan/templates/macros/form.html
    M ckan/templates/organization/about.html
    M ckan/templates/organization/activity_stream.html
    M ckan/templates/organization/admins.html
    M ckan/templates/organization/base_form_page.html
    M ckan/templates/organization/bulk_process.html
    M ckan/templates/organization/edit_base.html
    M ckan/templates/organization/index.html
    M ckan/templates/organization/member_new.html
    M ckan/templates/organization/members.html
    M ckan/templates/organization/new.html
    M ckan/templates/organization/read.html
    M ckan/templates/organization/read_base.html
    A ckan/templates/organization/snippets/helper.html
    M ckan/templates/organization/snippets/organization_form.html
    M ckan/templates/organization/snippets/organization_item.html
    M ckan/templates/organization/snippets/organization_list.html
    M ckan/templates/package/activity.html
    M ckan/templates/package/activity_stream.html
    M ckan/templates/package/base.html
    M ckan/templates/package/edit.html
    M ckan/templates/package/followers.html
    M ckan/templates/package/history.html
    M ckan/templates/package/new_resource.html
    M ckan/templates/package/read.html
    M ckan/templates/package/read_base.html
    M ckan/templates/package/related_list.html
    M ckan/templates/package/resource_edit.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/search.html
    M ckan/templates/package/snippets/additional_info.html
    M ckan/templates/package/snippets/package_basic_fields.html
    M ckan/templates/package/snippets/package_metadata_fields.html
    M ckan/templates/package/snippets/resource_form.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/package/snippets/resources_list.html
    R ckan/templates/package/snippets/search_form.html
    M ckan/templates/package/snippets/stages.html
    M ckan/templates/package/snippets/tags.html
    M ckan/templates/page.html
    M ckan/templates/related/dashboard.html
    M ckan/templates/related/snippets/related_item.html
    M ckan/templates/related/snippets/related_list.html
    M ckan/templates/snippets/activity_item.html
    M ckan/templates/snippets/group_item.html
    M ckan/templates/snippets/organization.html
    M ckan/templates/snippets/organization_item.html
    A ckan/templates/snippets/search_form.html
    M ckan/templates/user/dashboard.html
    A ckan/templates/user/dashboard_datasets.html
    A ckan/templates/user/dashboard_groups.html
    A ckan/templates/user/dashboard_organizations.html
    M ckan/templates/user/edit.html
    M ckan/templates/user/edit_base.html
    M ckan/templates/user/edit_user_form.html
    M ckan/templates/user/read_base.html
    M ckan/templates_legacy/package/resource_read.html
    M ckan/tests/__init__.py
    R ckan/tests/ckantestplugin/ckantestplugin.egg-info/PKG-INFO
    R ckan/tests/ckantestplugin/ckantestplugin.egg-info/SOURCES.txt
    R ckan/tests/ckantestplugin/ckantestplugin.egg-info/dependency_links.txt
    R ckan/tests/ckantestplugin/ckantestplugin.egg-info/entry_points.txt
    R ckan/tests/ckantestplugin/ckantestplugin.egg-info/not-zip-safe
    R ckan/tests/ckantestplugin/ckantestplugin.egg-info/top_level.txt
    R ckan/tests/ckantestplugin/ckantestplugin/__init__.py
    R ckan/tests/ckantestplugin/setup.cfg
    R ckan/tests/ckantestplugin/setup.py
    A ckan/tests/ckantestplugins.py
    A ckan/tests/functional/api/model/test_group_and_organization_purge.py
    M ckan/tests/functional/api/model/test_package.py
    M ckan/tests/functional/api/test_activity.py
    M ckan/tests/functional/api/test_revision_search.py
    M ckan/tests/functional/api/test_util.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_package.py
    M ckan/tests/functional/test_pagination.py
    M ckan/tests/functional/test_preview_interface.py
    M ckan/tests/functional/test_related.py
    M ckan/tests/functional/test_tag_vocab.py
    M ckan/tests/functional/test_user.py
    M ckan/tests/lib/test_dictization.py
    M ckan/tests/lib/test_email_notifications.py
    M ckan/tests/lib/test_helpers.py
    M ckan/tests/lib/test_resource_search.py
    M ckan/tests/logic/test_action.py
    M ckan/tests/mock_plugin.py
    A ckan/tests/models/test_activity.py
    M ckan/tests/models/test_package.py
    M ckan/tests/models/test_package_relationships.py
    M ckan/tests/test_coding_standards.py
    M ckan/tests/test_plugins.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_configure.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    M ckanext/example_idatasetform/plugin.py
    M ckanext/multilingual/solr/schema.xml
    M ckanext/multilingual/tests/test_multilingual_plugin.py
    M ckanext/pdfpreview/plugin.py
    M ckanext/pdfpreview/tests/test_preview.py
    M ckanext/pdfpreview/theme/public/resource.config
    A ckanext/pdfpreview/theme/public/vendor/l10n/ar/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/ar/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ca/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ca/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/ca/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/cs/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/cs/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/da/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/da/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/da/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/de/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/de/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/el/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/el/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/el/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/en-US/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/en-US/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/en-US/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/es/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/es/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/es/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/fi/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/fi/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/fi/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/fr/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/fr/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/fr/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/he/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/he/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/it/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/it/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ja/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ja/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/ja/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ko/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ko/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/ko/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/locale.properties.js
    A ckanext/pdfpreview/theme/public/vendor/l10n/lt/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/lt/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/lt/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/nl/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/nl/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/nl/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/pl/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/pl/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/pl/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/pt-BR/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/pt-BR/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ro/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/ro/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/ru/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/ru/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/sr/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/sr/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/sv/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/sv/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/sv/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/tr/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/tr/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/tr/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/vi/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/vi/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/vi/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/zh-CN/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/zh-CN/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/zh-CN/viewer.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/zh-TW/chrome.properties
    A ckanext/pdfpreview/theme/public/vendor/l10n/zh-TW/metadata.inc
    A ckanext/pdfpreview/theme/public/vendor/l10n/zh-TW/viewer.properties
    M ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.min.js
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.min.js
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-help.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-insert.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-key.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-newparagraph.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-note.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-paragraph.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-next-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-next.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-previous-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-previous.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-small.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/shadow.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-presentationMode.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties.js
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.css
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    M ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.js
    R ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.min.js
    M ckanext/pdfpreview/theme/templates/pdf.html
    M ckanext/reclinepreview/tests/test_preview.py
    M ckanext/reclinepreview/theme/public/preview_recline.js
    M ckanext/reclinepreview/theme/public/resource.config
    M ckanext/reclinepreview/theme/public/vendor/recline/recline.js
    M ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js
    M ckanext/resourceproxy/controller.py
    M ckanext/resourceproxy/tests/test_proxy.py
    M ckanext/stats/stats.py
    M ckanext/test_tag_vocab_plugin.py
    M ckanext/textpreview/plugin.py
    M ckanext/textpreview/tests/test_preview.py
    A dev-requirements.txt
    A doc/changelog.rst
    M doc/conf.py
    M doc/configuration.rst
    M doc/data-viewer.rst
    M doc/datastore.rst
    M doc/documentation-guidelines.rst
    M doc/index.rst
    M doc/install-from-source.rst
    M doc/installing.rst
    M doc/paster.rst
    M doc/release-process.rst
    R doc/releases.rst
    M doc/templating.rst
    M doc/test.rst
    M doc/toolkit.rst
    A doc/upgrade-package-ckan-1-to-2.rst
    A doc/upgrade-package-to-minor-release.rst
    A doc/upgrade-package-to-patch-release.rst
    A doc/upgrade-source.rst
    R doc/upgrading-a-package-install.rst
    R doc/upgrading-a-source-install.rst
    A doc/upgrading.rst
    R fabfile.py
    R jshint.json
    M pip-requirements-docs.txt
    R pip-requirements-test.txt
    R pip-requirements.txt
    A requirements.in
    A requirements.txt
    M setup.py
    M test-core.ini
    R test_sync.ini
    R test_sync2.ini

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 943-writing-extensions-tutorial

Conflicts:
	ckan/logic/__init__.py
	ckan/plugins/toolkit.py
	doc/conf.py


  Commit: 9e49f2ba89bee68f1b32430c74f6ffbc0c584f40
      https://github.com/okfn/ckan/commit/9e49f2ba89bee68f1b32430c74f6ffbc0c584f40
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/plugins/toolkit.py
    A ckan/plugins/toolkit_sphinx_extension.py
    M doc/conf.py
    M doc/toolkit.rst
    M doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Autodoc the plugins toolkit

ckan.plugins.toolkit isn't compatible with autodoc. Autodoc supports
modules and classes, but the plugins toolkit is actually an
object-instance masquerading as a module.

Added a Sphinx extension to do what autodoc does for classes and
modules, but for the plugins toolkit object.

Added a custom __dir__() method to the plugins toolkit so that
inspect.getmembers() works as desired for it.


  Commit: 9bd399d19cc23fec43d0266036ac57de1469a2e0
      https://github.com/okfn/ckan/commit/9bd399d19cc23fec43d0266036ac57de1469a2e0
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/lib/base.py

  Log Message:
  -----------
  [#943] Add some docstrings to lib/base.py

These are functions that are imported into the plugins toolkit, so they
need docstrings.


  Commit: cbd9c2d4274acdabde18955cf549c5f79b0ccd38
      https://github.com/okfn/ckan/commit/cbd9c2d4274acdabde18955cf549c5f79b0ccd38
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/lib/cli.py

  Log Message:
  -----------
  [#943] Add a docstrings to lib/cli.py

This class is imported into the plugins toolkit, so it needs a docstring.


  Commit: 758c80e17a944034110d9983c3ce61cc1aa6396f
      https://github.com/okfn/ckan/commit/758c80e17a944034110d9983c3ce61cc1aa6396f
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  [#943] Add some docstrings to helpers.py.

Everything in the template helpers module should have a docstring.


  Commit: a637afcc23489cdd4363c62c0354e1ffffe21ac4
      https://github.com/okfn/ckan/commit/a637afcc23489cdd4363c62c0354e1ffffe21ac4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/lib/navl/dictization_functions.py

  Log Message:
  -----------
  [#943] Add a docstring to Invalid exception

This exception is imported into the plugins toolkit so it needs a
docstring.


  Commit: 08e7aaec026cf3cfd81a9952c9a94ecca774e249
      https://github.com/okfn/ckan/commit/08e7aaec026cf3cfd81a9952c9a94ecca774e249
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/lib/plugins.py

  Log Message:
  -----------
  [#943] Improve DefaultDatasetForm's docstring


  Commit: e4c8d4ac65d6df0cd04597d6babc6e0eccb88f87
      https://github.com/okfn/ckan/commit/e4c8d4ac65d6df0cd04597d6babc6e0eccb88f87
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/logic/__init__.py

  Log Message:
  -----------
  [#943] Add some docstrings to logic/__init__.py

These functions and exceptions are imported into the plugins toolkit, so
they need docstrings.


  Commit: e7559600e903e59796fea624459fffcb3fced3dd
      https://github.com/okfn/ckan/commit/e7559600e903e59796fea624459fffcb3fced3dd
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/plugins/toolkit.py

  Log Message:
  -----------
  [#943] Add some docstrings to plugins/toolkit.py.

Everything in the plugins toolkit should have a docstring.


  Commit: 3a93c879f7e14eedcd5fc900a957b9c54a317b80
      https://github.com/okfn/ckan/commit/3a93c879f7e14eedcd5fc900a957b9c54a317b80
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/logic/action/get.py
    M ckan/tests/logic/test_action.py
    M doc/documentation-guidelines.rst
    M doc/python-coding-standards.rst

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 943-writing-extensions-tutorial


  Commit: 6c274d35b3b43d9b96842ec6a16e6e10b8a5285a
      https://github.com/okfn/ckan/commit/6c274d35b3b43d9b96842ec6a16e6e10b8a5285a
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/plugins/toolkit.py
    M ckan/plugins/toolkit_sphinx_extension.py

  Log Message:
  -----------
  [#943] Add custom docstrings for some 3rd-party stuff

The plugins toolkit imports some things from 3rd-party libraries, e.g.
the request, response and c objects from Pylons. We want to use our own
docstrings for these rather than having the 3rd-party docstrings appear
in the CKAN docs. Also in some cases the 3rd-psrty function has no
docstring, or introspection would end up with a class docstring where
what we actually want is to document a specific object-instance.

So add custom docstring overrides as a feature implemented in toolkit.py
and toolkit_sphinx_extension.py.


  Commit: d29564ed3efb6a2de66557376c6751d2d4b2d44f
      https://github.com/okfn/ckan/commit/d29564ed3efb6a2de66557376c6751d2d4b2d44f
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/logic/__init__.py
    M ckan/plugins/toolkit.py
    M ckan/plugins/toolkit_sphinx_extension.py
    M doc/background-tasks.rst
    M doc/ckan-coding-standards.rst
    M doc/configuration.rst
    M doc/data-viewer.rst
    M doc/documentation-guidelines.rst
    A doc/extensions/best-practices.rst
    A doc/extensions/converters.rst
    A doc/extensions/index.rst
    A doc/extensions/plugin-interfaces.rst
    A doc/extensions/plugins-toolkit.rst
    A doc/extensions/tutorial.rst
    M doc/index.rst
    M doc/tag-vocabularies.rst
    R doc/toolkit.rst
    R doc/writing-extensions.rst

  Log Message:
  -----------
  [#943] Rearrange the writing extensions docs

But the different parts into different pages


  Commit: 216033ab50bf7a6815df55081df67157eca99905
      https://github.com/okfn/ckan/commit/216033ab50bf7a6815df55081df67157eca99905
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/authorization.rst

  Log Message:
  -----------
  [#943] Add cross-ref from authorization docs to IAuthFunctions


  Commit: a70396b16c88227f825eae0a93ed0a54532ac50e
      https://github.com/okfn/ckan/commit/a70396b16c88227f825eae0a93ed0a54532ac50e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/extensions/tutorial.rst

  Log Message:
  -----------
  [#943] Minor tweaks to the writing extensions tutorial


  Commit: 4d287f76ab628005260fb87c04fcb79b3748e45c
      https://github.com/okfn/ckan/commit/4d287f76ab628005260fb87c04fcb79b3748e45c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/extensions/index.rst
    A doc/extensions/publishing-extensions.rst
    A doc/extensions/testing-extensions.rst
    M doc/extensions/tutorial.rst

  Log Message:
  -----------
  [#943] Move some of the writing extensions tutorial sections into separate files


  Commit: 6e1010bba67384fc2fe9065878ef69f6da737058
      https://github.com/okfn/ckan/commit/6e1010bba67384fc2fe9065878ef69f6da737058
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/extensions/index.rst
    R doc/extensions/publishing-extensions.rst

  Log Message:
  -----------
  [#943] Remove the Publishing extensions page from the docs

It wasn't very good


  Commit: 5d9a95c46b4f9ab9626e68c0ef8153c4cf340542
      https://github.com/okfn/ckan/commit/5d9a95c46b4f9ab9626e68c0ef8153c4cf340542
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/extensions/testing-extensions.rst

  Log Message:
  -----------
  [#943] Typo


  Commit: d5299658fe9ad0cde3cf8784af57d691dab4c8a5
      https://github.com/okfn/ckan/commit/d5299658fe9ad0cde3cf8784af57d691dab4c8a5
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/plugins/interfaces.py
    M doc/extensions/plugin-interfaces.rst

  Log Message:
  -----------
  [#943] Tweak the plugin interfaces reference docs


  Commit: 4adde342af94b39490d17c2272427c246a4b6951
      https://github.com/okfn/ckan/commit/4adde342af94b39490d17c2272427c246a4b6951
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/logic/__init__.py

  Log Message:
  -----------
  [#943] Tweak get_action() docstring


  Commit: f31f8caa4149cdd2e95f7ea1bf568a85ea20ddeb
      https://github.com/okfn/ckan/commit/f31f8caa4149cdd2e95f7ea1bf568a85ea20ddeb
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/extensions/index.rst
    A doc/extensions/validators.rst

  Log Message:
  -----------
  [#943] Add validator functions reference to docs

These are available to plugins to toolkit.get_validator(), so they need
to be in the docs.


  Commit: 22ae3113d18342e2af26c8e5847e18e00773da55
      https://github.com/okfn/ckan/commit/22ae3113d18342e2af26c8e5847e18e00773da55
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M doc/extensions/plugin-interfaces.rst

  Log Message:
  -----------
  [#943] Tweak plugin interfaces reference docs


  Commit: f816eada81a073e38eda5114adbd4fb3db69d5c2
      https://github.com/okfn/ckan/commit/f816eada81a073e38eda5114adbd4fb3db69d5c2
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-29 (Thu, 29 Aug 2013)

  Changed paths:
    M ckan/plugins/toolkit_sphinx_extension.py
    M ckanext/example_iauthfunctions/plugin.py
    M ckanext/example_iauthfunctions/plugin_v1.py
    M ckanext/example_iauthfunctions/plugin_v3.py
    M ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py

  Log Message:
  -----------
  [#943] PEP-8


  Commit: 159c56a9a13be424f8ed504a8f9b97d1b46d1a1a
      https://github.com/okfn/ckan/commit/159c56a9a13be424f8ed504a8f9b97d1b46d1a1a
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-08-30 (Fri, 30 Aug 2013)

  Changed paths:
    M ckan/plugins/toolkit_sphinx_extension.py

  Log Message:
  -----------
  [#943] Delete a done TODO comment


  Commit: d17d095a5fb74caa059de6d85033109b9606db6c
      https://github.com/okfn/ckan/commit/d17d095a5fb74caa059de6d85033109b9606db6c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M doc/extensions/tutorial.rst

  Log Message:
  -----------
  [#943] Add note that extension names must begin with ckanext-


  Commit: feae0ea9d500a186f382efcbe82b0c027fb1db77
      https://github.com/okfn/ckan/commit/feae0ea9d500a186f382efcbe82b0c027fb1db77
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M ckanext/example_iauthfunctions/plugin.py
    M ckanext/example_iauthfunctions/plugin_v2.py
    M ckanext/example_iauthfunctions/plugin_v3.py
    M doc/extensions/tutorial.rst

  Log Message:
  -----------
  [#943] Remove inherit=False from extensions docs

inherit=False is the default behavior anyway, and we're not sure if
inherit=True would actually be much use in CKAN


  Commit: 48031a5607d09d1942952e7abc19bf74ccfb4f71
      https://github.com/okfn/ckan/commit/48031a5607d09d1942952e7abc19bf74ccfb4f71
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M doc/extensions/tutorial.rst

  Log Message:
  -----------
  [#943] Remove Plugin vs SingletonPlugin from the docs

We're not sure what it's for anyway


  Commit: d1d3535e647a4f3f3444238f6e4dc99c5b8bdee5
      https://github.com/okfn/ckan/commit/d1d3535e647a4f3f3444238f6e4dc99c5b8bdee5
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M doc/configuration.rst

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 943-writing-extensions-tutorial


  Commit: d5f80a12563f4cc60452cd1d8963d59f2246be0c
      https://github.com/okfn/ckan/commit/d5f80a12563f4cc60452cd1d8963d59f2246be0c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M doc/extensions/plugin-interfaces.rst

  Log Message:
  -----------
  [#943] Fix a Sphinx error


  Commit: 8de21bd59c1c4d00ada2c2c0bb7fae5c7ab48836
      https://github.com/okfn/ckan/commit/8de21bd59c1c4d00ada2c2c0bb7fae5c7ab48836
  Author: joetsoi <joe.yeung.tsoi at gmail.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M CONTRIBUTING.rst
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/lib/helpers.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/plugins.py
    M ckan/logic/__init__.py
    M ckan/logic/action/get.py
    M ckan/pastertemplates/template/setup.py_tmpl
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    A ckan/plugins/toolkit_sphinx_extension.py
    A ckanext/example_iauthfunctions/__init__.py
    A ckanext/example_iauthfunctions/plugin.py
    A ckanext/example_iauthfunctions/plugin_v1.py
    A ckanext/example_iauthfunctions/plugin_v2.py
    A ckanext/example_iauthfunctions/plugin_v3.py
    A ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py
    M doc/api.rst
    M doc/authorization.rst
    M doc/background-tasks.rst
    M doc/ckan-coding-standards.rst
    M doc/conf.py
    M doc/configuration.rst
    M doc/data-viewer.rst
    M doc/documentation-guidelines.rst
    A doc/extensions/best-practices.rst
    A doc/extensions/converters.rst
    A doc/extensions/index.rst
    A doc/extensions/plugin-interfaces.rst
    A doc/extensions/plugins-toolkit.rst
    A doc/extensions/testing-extensions.rst
    A doc/extensions/tutorial.rst
    A doc/extensions/validators.rst
    M doc/index.rst
    M doc/tag-vocabularies.rst
    R doc/toolkit.rst
    R doc/writing-extensions.rst
    M setup.py

  Log Message:
  -----------
  Merge branch '943-writing-extensions-tutorial'


  Commit: 0f710ac9888b83977641d082eddf59be97023592
      https://github.com/okfn/ckan/commit/0f710ac9888b83977641d082eddf59be97023592
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2013-09-09 (Mon, 09 Sep 2013)

  Changed paths:
    M CONTRIBUTING.rst
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/lib/helpers.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/plugins.py
    M ckan/logic/__init__.py
    M ckan/logic/action/get.py
    M ckan/pastertemplates/template/setup.py_tmpl
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    A ckan/plugins/toolkit_sphinx_extension.py
    A ckanext/example_iauthfunctions/__init__.py
    A ckanext/example_iauthfunctions/plugin.py
    A ckanext/example_iauthfunctions/plugin_v1.py
    A ckanext/example_iauthfunctions/plugin_v2.py
    A ckanext/example_iauthfunctions/plugin_v3.py
    A ckanext/example_iauthfunctions/tests/test_example_iauthfunctions.py
    M doc/api.rst
    M doc/authorization.rst
    M doc/background-tasks.rst
    M doc/ckan-coding-standards.rst
    M doc/conf.py
    M doc/configuration.rst
    M doc/data-viewer.rst
    M doc/documentation-guidelines.rst
    A doc/extensions/best-practices.rst
    A doc/extensions/converters.rst
    A doc/extensions/index.rst
    A doc/extensions/plugin-interfaces.rst
    A doc/extensions/plugins-toolkit.rst
    A doc/extensions/testing-extensions.rst
    A doc/extensions/tutorial.rst
    A doc/extensions/validators.rst
    M doc/index.rst
    M doc/tag-vocabularies.rst
    R doc/toolkit.rst
    R doc/writing-extensions.rst
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 1178-users-invitations


Compare: https://github.com/okfn/ckan/compare/08c45188a91f...0f710ac9888b


More information about the ckan-changes mailing list