All Versions
122
Latest Version
Avg Release Cycle
134 days
Latest Release
799 days ago

Changelog History
Page 1

  • v2.9.5 Changes

    January 19, 2022

    Major features

    • ๐Ÿ‘ Solr 8 support. Starting from version 2.9.5, CKAN supports Solr versions 6 and 8. Support for Solr 6 will be dropped in the next CKAN minor version (2.10). Note that if you want to use Solr 8 you need to use the ckan/config/solr/schema.solr8.xml file, or alternatively you can use the ckan/ckan-solr:2.9-solr8 Docker image which comes pre-configured. (#6530 <https://github.com/ckan/ckan/pull/6530>_)

    ๐Ÿ›  Bugfixes

    • Consistent CLI behavior when no command is provided and when using --help (#6120 <https://github.com/ckan/ckan/pull/6120>_)
    • ๐Ÿ›  Fix regression when validating resource subfields (#6546 <https://github.com/ckan/ckan/pull/6546>_)
    • ๐Ÿ›  Fix user create/edit email validators (#6399 <https://github.com/ckan/ckan/pull/6399>_)
    • ๐ŸŒ Error opening JS translations on Python 2 (#6531 <https://github.com/ckan/ckan/pull/6531>_)
    • ๐ŸŒฒ Set logging level to error in error mail handler (#6577 <https://github.com/ckan/ckan/pull/6577>_)
    • โž• Add RootPathMiddleware to flask stack to support non-root installs running on python 3 (#6556 <https://github.com/ckan/ckan/pull/6577>_)
    • ๐Ÿ‘‰ Use correct auth function when editing organizations (#6622 <https://github.com/ckan/ckan/pull/6622>_)
    • ๐Ÿ›  Fix invite user with existing email error (#5880 <https://github.com/ckan/ckan/pull/5880>_)
    • Accept empty string in one of validator (#6612 <https://github.com/ckan/ckan/pull/6612>_)

    Minor changes

    • โž• Add timeouts to requests calls (see ckan.requests.timeout) (#6408 <https://github.com/ckan/ckan/pull/6408>_)
    • Types of file uploads for group and user imags can be restricted via the ckan.upload.{object_type}.types and ckan.upload.{object_type}.mimetypes config options (eg :ref:ckan.upload.group.types, :ref:ckan.upload.user.mimetypes) (#6477 <https://github.com/ckan/ckan/pull/6477>_)
    • ๐Ÿ‘ Allow children elements on select2 lists (#6503 <https://github.com/ckan/ckan/pull/6503>_)
    • Enable minimumInputLength and fix loading message in select2 (#6554 <https://github.com/ckan/ckan/pull/6554>_)
  • v2.9.4 Changes

    September 22, 2021

    ๐Ÿš€ Note: This release includes requirements upgrades to address security issues

    ๐Ÿ›  Bugfixes

    • Don't show snippet names in non-debug mode (#6406 <https://github.com/ckan/ckan/pull/6406>_)
    • ๐Ÿ‘ท Show job title on job start/finish log messages (#6387 <https://github.com/ckan/ckan/pull/6387>_)
    • ๐Ÿ›  Fix unpriviledged users being able to access bulk process (#6290 <https://github.com/ckan/ckan/pull/6290>_)
    • ๐Ÿ‘ Allow UTF-8 in JS translations (#6051 <https://github.com/ckan/ckan/pull/6051>_)
    • ๐ŸŒฒ Handle Traceback Exception for HTTP and HTTP status Code in logging (#6340 <https://github.com/ckan/ckan/pull/6340>_)
    • ๐Ÿ›  Fix object list validation output (#6149 <https://github.com/ckan/ckan/pull/6149>_)
    • Coerce query string keys/values before passing to quote() (#6099 <https://github.com/ckan/ckan/pull/6099>_)
    • ๐Ÿ›  Fix datetime formatting when listing user tokens on py2. (#6319 <https://github.com/ckan/ckan/pull/6319>_)
    • ๐Ÿ›  Fix Solr HTTP basic auth cred handling (#6286 <https://github.com/ckan/ckan/pull/6286>_)
    • โšก๏ธ Remove not accessed user object in resource_update (#6220 <https://github.com/ckan/ckan/pull/6220>_)
    • Fix for g._timer (#6207 <https://github.com/ckan/ckan/pull/6207>)
    • Fix guard clause on has_more_facets, #6190 (#6190 <https://github.com/ckan/ckan/pull/6190>_)
    • ๐Ÿ›  Fix page render errors when search facets are not defined (#6181 <https://github.com/ckan/ckan/pull/6181>_)
    • ๐Ÿ‘‰ Fix exception when using solr_user and solr_password on Py3 (#6179 <https://github.com/ckan/ckan/pull/6179>_)
    • ๐Ÿ›  Fix pagination links for custom org types (#6162 <https://github.com/ckan/ckan/pull/6162>_)
    • ๐Ÿ›  Fixture for plugin DB migrations (#6139 <https://github.com/ckan/ckan/pull/6139>_)
    • Render activity timestamps with title= attribute (#6109 <https://github.com/ckan/ckan/pull/6109>_)
    • ๐Ÿ›  Fix db init error in alembic (#5998 <https://github.com/ckan/ckan/pull/5998>_)
    • ๐Ÿ›  Fix user email validator when using name as id parameter (#6113 <https://github.com/ckan/ckan/pull/6113>_)
    • โšก๏ธ Fix DataPusher error during resource_update (#5597 <https://github.com/ckan/ckan/pull/5597>_)
    • render_datetime helper does not respect ckan.display_timezone configuration (#6252 <https://github.com/ckan/ckan/pull/6252>_)
    • ๐Ÿ›  Fix SQLAlchemy configuration for DataStore (#6087 <https://github.com/ckan/ckan/pull/6086>_)
    • ๐ŸŒ Don't cache license translations across requests (#5586 <https://github.com/ckan/ckan/pull/5586>_)
    • ๐Ÿ›  Fix tracking.js module preventing links to be opened in new tabs (#6386 <https://github.com/ckan/ckan/pull/6384>_)
    • ๐Ÿ›  Fix deleted org/group feeds (#6368 <https://github.com/ckan/ckan/pull/6368>_)
    • ๐Ÿ›  Fix runaway preview height (#6284 <https://github.com/ckan/ckan/pull/6283>_)
    • 0๏ธโƒฃ Stable default ordering when consuming resource content from datastore (#2317 <https://github.com/ckan/ckan/pull/2317>_)
    • ๐Ÿ“š Several documentation fixes and improvements
  • v2.9.3 Changes

    May 19, 2021

    ๐Ÿ›  Bugfixes

    • Fix Chinese locales. Note that the URLs for the zh_CN and zh_TW locales have changed but there are redirects in place, eg http://localhost:5000/zh_CN/dataset -> http://localhost:5000/zh_Hans_CN/dataset (#6008 <https://github.com/ckan/ckan/pull/6008>_)
    • ๐Ÿ›  Fix performance bottleneck in activity queries (#6028 <https://github.com/ckan/ckan/pull/6028>_)
    • Keep repeatable facets inside pagination links (#6084 <https://github.com/ckan/ckan/pull/6084>_)
    • ๐Ÿ”Œ Ensure order of plugins in PluginImplementations (#5965 <https://github.com/ckan/ckan/pull/5965>_)
    • ๐Ÿ›  Fix for Datastore file dump extension (#5593 <https://github.com/ckan/ckan/pull/5593>_)
    • ๐Ÿ‘ Allow package activity migration on py3 (#5930 <https://github.com/ckan/ckan/pull/5930>_)
    • ๐Ÿ›  Fix TemplateSyntaxError in snippets/changes/license.html (#5972 <https://github.com/ckan/ckan/pull/5972>_)
    • โœ‚ Remove hardcoded logging level (#5941 <https://github.com/ckan/ckan/pull/5941>_)
    • Include extra files into ckanext distribution (#5995 <https://github.com/ckan/ckan/pull/5995>_)
    • ๐Ÿ›  Fix db init in docker as the directory is not empty (#6027 <https://github.com/ckan/ckan/pull/6027>_)
    • ๐Ÿ›  Fix sqlalchemy configuration, add doc (#5932 <https://github.com/ckan/ckan/pull/5932>_)
    • ๐Ÿ›  Fix issue with purging custom entity types (#5859 <https://github.com/ckan/ckan/pull/5859>_)
    • Only load view filters on templates that need them
    • Sanitize user image url
    • ๐Ÿ‘ Allow installation of requirements without any additional actions using pip (#5408 <https://github.com/ckan/ckan/pull/5408>_)
    • Include requirements files in Manifest (#5726 <https://github.com/ckan/ckan/pull/5726>_)
    • ๐Ÿณ Dockerfile: pin pip version (#5929 <https://github.com/ckan/ckan/pull/5929>_)
    • ๐Ÿ‘ Allow uploaders to only override asset / resource uploading (#6088 <https://github.com/ckan/ckan/pull/6088>_)
    • Catch TypeError from invalid thrown by dateutils (#6085 <https://github.com/ckan/ckan/pull/6085>_)
    • Display proper message when sysadmin password is incorect (#5911 <https://github.com/ckan/ckan/pull/5911>_)
    • ๐Ÿ“œ Use external library to parse view filter params
    • ๐Ÿ›  Fix auth error when deleting a group/org (#6006 <https://github.com/ckan/ckan/pull/6006>_)
    • Fix datastore_search language parameter (#5974 <https://github.com/ckan/ckan/pull/5974>_)
    • ๐Ÿ‘‰ make SQL function whitelist case-insensitive unless quoted (#5969 <https://github.com/ckan/ckan/pull/5969>_)
    • ๐Ÿ›  Fix Explore button not working (#3720 <https://github.com/ckan/ckan/pull/3720>_)
    • remove unused var in task_status_update (#5861 <https://github.com/ckan/ckan/pull/5861>_)
    • Prevent guessing format and mimetype from resource urls without path (#5852 <https://github.com/ckan/ckan/pull/5852>_)
    • ๐Ÿ“š Multiple documentation improvements

    Minor changes

    • ๐Ÿ‘Œ Support for setting host and port on the ini file (#5939 <https://github.com/ckan/ckan/pull/5939>_)
    • ๐Ÿ‘ Allow to set path to INI file in the WSGI script (#5987 <https://github.com/ckan/ckan/pull/5987>_)
    • ๐Ÿ‘ Allow multi-level config inheritance (#6000 <https://github.com/ckan/ckan/pull/6000>_)
  • v2.9.2 Changes

    February 10, 2021

    General notes:

    • Note: To use PostgreSQL 12 on CKAN 2.9 you need to upgrade psycopg2 to at least 2.8.4 (more details in #5796 <https://github.com/ckan/ckan/issues/5796>_)

    Major features

    • โž• Add CLI commands for API Token management (#5868 <https://github.com/ckan/ckan/pull/5868>_)

    ๐Ÿ›  Bugfixes

    • Persist attributes in chained functions (#5751 <https://github.com/ckan/ckan/pull/5751>_)
    • ๐Ÿ›  Fix install documentation (#5618 <https://github.com/ckan/ckan/pull/5618>_)
    • ๐Ÿ›  Fix exception when passing limit to organization (#5789 <https://github.com/ckan/ckan/pull/5789>_)
    • ๐Ÿ›  Fix for adding directories from plugins if partially string matches existing values (#5836 <https://github.com/ckan/ckan/pull/5836>_)
    • ๐Ÿ›  Fix upload log activity sorting (#5827 <https://github.com/ckan/ckan/pull/5827>_)
    • Textview: escape text formats (#5814 <https://github.com/ckan/ckan/pull/5814>_)
    • Add allow_partial_update to fix losing users (#5734 <https://github.com/ckan/ckan/pull/5734>_)
    • Set default group_type to group in group_create (#5693 <https://github.com/ckan/ckan/pull/5693>_)
    • โšก๏ธ Use user performing the action on activity context on user_update (#5743 <https://github.com/ckan/ckan/pull/5743>_)
    • ๐Ÿ†• New block in nav links in user dashboard (#5804 <https://github.com/ckan/ckan/pull/5804>_)
    • ๐Ÿ“š Update references to DataPusher documentation
    • ๐Ÿ›  Fix JavaScript error on Edge (#5782 <https://github.com/ckan/ckan/pull/5782>_)
    • ๐Ÿ›  Fix error when deleting resource with missing datastore table (#5757 <https://github.com/ckan/ckan/pull/5757>_)
    • ensure HTTP_HOST is bytes under python2 (#5714 <https://github.com/ckan/ckan/pull/5714>_)
    • โšก๏ธ Don't set old_filename when updating groups (#5707 <https://github.com/ckan/ckan/pull/5707>_)
    • Filter activities from user at the database level (#5698 <https://github.com/ckan/ckan/pull/5698>_)
    • Fix user_list ordering (#5667 <https://github.com/ckan/ckan/pull/5667>_)
    • Allowlist for functions in datastore_search_sql (see :ref:ckan.datastore.sqlsearch.allowed_functions_file)
    • ๐Ÿ›  Fix docker install (#5381 <https://github.com/ckan/ckan/pull/5381>_)
    • ๐Ÿ›  Fix Click requirement conflict (#5539 <https://github.com/ckan/ckan/pull/5539>_)
    • Return content-type header on downloads if mimetype is (#5670 <https://github.com/ckan/ckan/pull/5670>_)
    • ๐Ÿ›  Fix missing activities from UI when internal processes are run by ignored users (#5699 <https://github.com/ckan/ckan/pull/5699>_)
    • ๐Ÿ“„ Replace 'paster' occurrences with 'ckan' in docs (#5700 <https://github.com/ckan/ckan/pull/5700>_)
    • Include requirements files in Manifest (#5726 <https://github.com/ckan/ckan/pull/5726>_)
    • ๐Ÿ›  Fix order which plugins are returned by PluginImplementations changing (#5731 <https://github.com/ckan/ckan/pull/5731>_)
    • Raise NotFound when creating a non-existing collaborator (#5759 <https://github.com/ckan/ckan/pull/5759>_)
    • โช Restore member edit page (#5767 <https://github.com/ckan/ckan/pull/5767>_)
    • โœ… Don't add --ckan-ini pytest option if already added (by pytest-ckan) (#5774 <https://github.com/ckan/ckan/pull/5774>_)
    • โšก๏ธ Update organization_show package limit docs (#5784 <https://github.com/ckan/ckan/pull/5784>_)
    • Solve encoding errors in changes templates (#5785 <https://github.com/ckan/ckan/pull/5785>_)

    Minor changes

    • โž• Add aria attribute and accessible screen reader text to the mobile nav button. (#5555 <https://github.com/ckan/ckan/pull/5555>_)
    • โœ‚ Remove jinja2 blocks from robots.txt (#5648 <https://github.com/ckan/ckan/pull/5648>_)
    • ๐Ÿ‘ Allow to run the development server using SSL (#5825 <https://github.com/ckan/ckan/pull/5825>_)
    • โšก๏ธ Update extension template, migrate tests to GitHub Actions (#5797 <https://github.com/ckan/ckan/pull/5797>_)
  • v2.9.1 Changes

    October 21, 2020

    General notes:

    • Note: This version requires a database upgrade with ckan db upgrade (You should always backup your database first)

    ๐Ÿ›  Bugfixes

    • โช Restore stats extension with reduced functionality (#5215 <https://github.com/ckan/ckan/pull/5215>_)
    • ๐Ÿ‘ Allow IAuthenticator methods to return responses (#5259 <https://github.com/ckan/ckan/pull/5259>_)
    • โšก๏ธ Emit activities when updating datasets in bulk (#5479 <https://github.com/ckan/ckan/pull/5479>_)
    • ๐Ÿ“œ Catch IndexError from date parsing during dataset indexation (#5535 <https://github.com/ckan/ckan/pull/5535>_)
    • โœ‚ Remove foreign keys relationships in revision tables to avoid purge errors (#5542 <https://github.com/ckan/ckan/pull/5542>_)
    • ๐Ÿ›  Fix fullscreen for resource webpageview (#5552 <https://github.com/ckan/ckan/pull/5552>_)
    • ๐Ÿ›  Fix skip to content link hiding on screen readers (#5556 <https://github.com/ckan/ckan/pull/5556>_)
    • ๐Ÿ›  Fix KeyErrors in change list detection (#5562 <https://github.com/ckan/ckan/pull/5562>_)
    • ๐Ÿ›  Fix instantiation of smtp on python 3.8 (#5595 <https://github.com/ckan/ckan/pull/5595>_)
    • ๐Ÿ›  Fix unflatten function and DataDictionary/package extras update bug (#5611 <https://github.com/ckan/ckan/pull/5611>_)
    • ๐Ÿ›  Fix managing resources by collaborators (#5620 <https://github.com/ckan/ckan/pull/5620>_)
    • ๐Ÿ“ฆ package_revise: allow use by normal users (#5637 <https://github.com/ckan/ckan/pull/5637>_)
    • ๐Ÿ›  Fix reloader option on ckan run command (#5639 <https://github.com/ckan/ckan/pull/5639>_)
    • ๐Ÿ‘ Allow config-tool to be used with an incomplete config file (#5647 <https://github.com/ckan/ckan/pull/5647>_)

    Minor changes

    • โž• Add aria attribute and accessible screen reader text to the mobile nav button. (#5555 <https://github.com/ckan/ckan/pull/5555>_)
    • โœ‚ Remove jinja2 blocks from robots.txt (#5648 <https://github.com/ckan/ckan/pull/5648>_)
  • v2.9.0 Changes

    August 05, 2020

    Migration notes

    • โฌ†๏ธ This version does require a requirements upgrade on source installations
    • โฌ†๏ธ This version does require a database upgrade
    • โฌ†๏ธ This version does not require a Solr schema upgrade if you are already using the 2.8 schema, but it is recommended to upgrade to the 2.9 Solr schema.
    • ๐Ÿ”ง This version requires changes to the who.ini configuration file. If your setup doesn't use the one bundled with this repo, you will have to manually change the following lines::

      use = ckan.lib.auth_tkt:make_plugin

    to::

       use = ckan.lib.repoze_plugins.auth_tkt:make_plugin
    

    And also::

       use = repoze.who.plugins.friendlyform:FriendlyFormPlugin
    

    to::

       use = ckan.lib.repoze_plugins.friendly_form:FriendlyFormPlugin
    

    Otherwise, if you are using symbolinc link to who.ini under vcs, no changes required. (#4796 <https://github.com/ckan/ckan/pull/4796>_)

    • ๐Ÿฑ All the static CSS/JS files must be bundled via a webassets.yml file, as opposed to the previously used, optional resource.config file. Check the Assets documentation <https://docs.ckan.org/en/latest/contributing/frontend/assets.html>_ for more details. (#4614 <https://github.com/ckan/ckan/pull/4614>_)
    • 0๏ธโƒฃ When ckan.cache_enabled is set to False (default) all requests include the Cache-control: private header. If ckan.cache_enabled is set to True, when the user is not logged in and there is no session data, a Cache-Control: public header will be added. For all other requests the Cache-control: private header will be added. Note that you will also need to set the ckan.cache_expires config option to allow caching of requests. (#4781 <https://github.com/ckan/ckan/pull/4781>_)
    • A full history of dataset changes is now displayed in the Activity Stream to admins, and optionally to the public. By default this is enabled for new installs, but disabled for sites which upgrade (just in case the history is sensitive). When upgrading, open data CKANs are encouraged to make this history open to the public, by setting this in production.ini: ckan.auth.public_activity_stream_detail = true (#3972 <https://github.com/ckan/ckan/pull/3972>_)
    • โฌ†๏ธ When upgrading from previous CKAN versions, the Activity Stream needs a migrate_package_activity.py running for displaying the history of dataset changes. This can be performed while CKAN is running or stopped (whereas the standard paster db upgrade migrations need CKAN to be stopped). Ideally it is run before CKAN is upgraded, but it can be run afterwards. If running previous versions or this version of CKAN, download and run migrate_package_activity.py like this::

      cd /usr/lib/ckan/default/src/ckan/ wget https://raw.githubusercontent.com/ckan/ckan/3484_revision_ui_removal2/ckan/migration/migrate_package_activity.py wget https://raw.githubusercontent.com/ckan/ckan/3484_revision_ui_removal2/ckan/migration/revision_legacy_code.py python migrate_package_activity.py -c /etc/ckan/production.ini

    Future versions of CKAN are likely to need a slightly different procedure. Full info about this migration is found here: https://github.com/ckan/ckan/wiki/Migrate-package-activity (#4784 <https://github.com/ckan/ckan/pull/4784>_)

    • ๐Ÿ“š The :ref:config_file default name has been changed to ckan.ini across the documentation regardless of the environment. You can use any name including the legacy development.ini and production.ini but to keep in sync with the documentation is recommended to update the name.
    • ๐Ÿšš The old paster CLI has been removed in favour of the new ckan command. In most cases the commands and subcommands syntax is the same, but the -c or --config parameter to point to the ini file needs to provided immediately after the ckan command, eg::

      ckan -c /etc/ckan/default/ckan.ini sysadmin
      
    • The minimum PostgreSQL version required starting from this version is 9.5 (#5458 <https://github.com/ckan/ckan/pull/5458>_)

    Major features

    • ๐Ÿ‘ Python 3 support. CKAN nows supports Python 3.6, 3.7 and 3.8 (Overview <https://github.com/ckan/ckan/projects/3>). Check this page <https://github.com/ckan/ckan/wiki/Python-3-migration-guide-for-extensions> for support on how to migrate existing extensions to Python 3.
    • Dataset collaborators: In addition to traditional organization-based permissions, CKAN instances can also enable the dataset collaborators feature, which allows dataset-level authorization. This provides more granular control over who can access and modify datasets that belong to an organization, or allows authorization setups not based on organizations. It works by allowing users with appropriate permissions to give permissions to other users over individual datasets, regardless of what organization they belong to. To learn more about how to enable it and the different configuration options available, check the documentation on :ref:dataset_collaborators. (#5346 <https://github.com/ckan/ckan/pull/5346>_)
    • API Tokens: an alternative to API keys. Tokens can be created and removed on demand (check :ref:api authentication) and there is no restriction on the maximum number of tokens per user. Consider using tokens instead of API keys and create a separate token for each use-case instead of sharing the same token between multiple clients. By default API Tokens are JWT, but alternative formats can be implemented using ckan.plugins.interfaces.IApiToken interface. (#5146 <https://github.com/ckan/ckan/pull/5146>_)
    • โšก๏ธ Safe dataset updates with package_revise: This is a new API action for safe concurrent changes to datasets and resources. package_revise allows assertions about current package metadata, selective update and removal of fields at any level, and multiple file uploads in a single call. See the documentation at :py:func:~ckan.logic.action.update.package_revise (#4618 <https://github.com/ckan/ckan/pull/4618>_)
    • ๐Ÿ”จ Refactor frontend assets management to use webassets <https://webassets.readthedocs.io/en/latest/>, including support for :ref:x-sendfile (#4614 <https://github.com/ckan/ckan/pull/4614>)
    • 0๏ธโƒฃ Users can now upload or link to custom profile pictures. By default, if a user picture is not provided it will fall back to gravatar. Alternatively, gravatar can be completely disabled by setting ckan.gravatar_default = disabled. In that case a placeholder image is shown instead, which can be customized by overriding the templates/user/snippets/placeholder.html template. (#5272 <https://github.com/ckan/ckan/pull/5272>_)
    • โž• Add plugin_extras field allowing extending User object for internal use (#5382 <https://github.com/ckan/ckan/pull/5382>_)

    Minor changes

    • ๐Ÿ†• New command for running database migrations from extensions. See :ref:extensions db migrations for details, (#5150 <https://github.com/ckan/ckan/pull/5150>_)
    • 0๏ธโƒฃ For navl schemas, the 'default' validator no longer applies the default when the value is False, 0, [] or {} (#4448 <https://github.com/ckan/ckan/pull/4448>_)
    • ๐Ÿ‘‰ Use alembic instead of sqlalchemy-migrate for managing database migrations (#4450 <https://github.com/ckan/ckan/pull/4450>_)
    • ๐Ÿ“ฆ If you've customized the schema for package_search, you'll need to add to it the limiting of row, as per default_package_search_schema now does. (#4484 <https://github.com/ckan/ckan/pull/4484>_)
    • Several logic functions now have new upper limits to how many items can be returned, notably group_list, organization_list when all_fields=true, datastore_search and datastore_search_sql. These are all configurable. (#4562 <https://github.com/ckan/ckan/pull/4562>_)
    • Give users the option to define which page they want to be redirected to after logging in via ckan.route_after_login config variable. (#4770 <https://github.com/ckan/ckan/pull/4770>_)
    • โž• Add cache control headers to flask (#4781 <https://github.com/ckan/ckan/pull/4781>_)
    • 0๏ธโƒฃ Create recline_view on ods files by default (#4936 <https://github.com/ckan/ckan/pull/4936>_)
    • โœ… Replase nosetests with pytest (#4996 <https://github.com/ckan/ckan/pull/4996>_)
    • ๐Ÿ‘‰ Make creating new tags in autocomplete module optional (#5012 <https://github.com/ckan/ckan/pull/5012>_)
    • ๐Ÿ‘ Allow reply to emails (#5024 <https://github.com/ckan/ckan/pull/5024>_)
    • ๐Ÿ‘Œ Improve and reorder resource_formats.json (#5034 <https://github.com/ckan/ckan/pull/5034>_)
    • Email unique validator (#5100 <https://github.com/ckan/ckan/pull/5100>_)
    • Preview for multimedia files (#5103 <https://github.com/ckan/ckan/pull/5103>_)
    • ๐Ÿ‘ Allow extensions to define Click commands (#5112 <https://github.com/ckan/ckan/pull/5112>_)
    • โž• Add organization and group purge (#5127 <https://github.com/ckan/ckan/pull/5127>_)
    • HTML emails (#5132 <https://github.com/ckan/ckan/pull/5132>_)
    • Unified workflow for creating/applying DB migrations from extensions (#5150 <https://github.com/ckan/ckan/pull/5150>_)
    • ๐Ÿ“ฆ Use current package_type for urls (#5189 <https://github.com/ckan/ckan/pull/5189>_)
    • Werkzeug dev server improvements (#5195 <https://github.com/ckan/ckan/pull/5195>_)
    • ๐Ÿ‘ Allow passing arguments to the RQ enqueue_call function (#5208 <https://github.com/ckan/ckan/pull/5208>_)
    • โž• Add option to configure labels of next/prev page button and pager format. (#5223 <https://github.com/ckan/ckan/pull/5223>_)
    • DevServer: threaded mode and extra files (#5303 <https://github.com/ckan/ckan/pull/5303>_)
    • ๐Ÿ”ง Make default sorting configurable (#5314 <https://github.com/ckan/ckan/pull/5314>_)
    • ๐Ÿ‘ Allow initial values in group form (#5345 <https://github.com/ckan/ckan/pull/5345>_)
    • ๐Ÿ‘‰ Make ckan more accessible (#5360 <https://github.com/ckan/ckan/pull/5360>_)
    • โšก๏ธ Update date formatters (#5376 <https://github.com/ckan/ckan/pull/5376>_)
    • ๐Ÿ‘ Allow multiple ext_* params in search views (#5398 <https://github.com/ckan/ckan/pull/5398>_)
    • Always 404 on non-existing user lookup (#5464 <https://github.com/ckan/ckan/pull/5464>_)

    ๐Ÿ›  Bugfixes

    • 500 error when calling resource_search by last_modified (#4130 <https://github.com/ckan/ckan/pull/4130>_)
    • Action function "datastore_search" would calculate the total, even if you set include_total=False. (#4448 <https://github.com/ckan/ckan/pull/4448>_)
    • Emails not sent from flask routes (#4711 <https://github.com/ckan/ckan/pull/4711>_)
    • Admin of organization can add himself as a member/editor to the organization and lose admin rights (#4821 <https://github.com/ckan/ckan/pull/4821>_)
    • Error when posting empty array with type json using datastore_create (#4826 <https://github.com/ckan/ckan/pull/4826>_)
    • ๐Ÿ”ง ValueError when you configure exception emails (#4831 <https://github.com/ckan/ckan/pull/4831>_)
    • Dataset counts incorrect on Groups listing (#4987 <https://github.com/ckan/ckan/pull/4987>_)
    • ๐Ÿ›  Fix broken layout in organization bulk_process (#5147 <https://github.com/ckan/ckan/pull/5147>_)
    • Index template with template path instead of numeric index (#5172 <https://github.com/ckan/ckan/pull/5172>_)
    • โž• Add metadata_modified field to resource (#5236 <https://github.com/ckan/ckan/pull/5236>_)
    • Send the right URL of CKAN to datapusher (#5281 <https://github.com/ckan/ckan/pull/5281>_)
    • ๐ŸŒ Multiline translation strings not translated (#5339 <https://github.com/ckan/ckan/pull/5339>_)
    • Allow repeaded params in h.add_url_param (#5373 <https://github.com/ckan/ckan/pull/5373>_)
    • Accept timestamps with seconds having less than 6 decimals (#5417 <https://github.com/ckan/ckan/pull/5417>_)
    • ๐Ÿ›  RTL css fixes (#5420 <https://github.com/ckan/ckan/pull/5420>_)
    • ๐Ÿ‘‰ Prevent account presence exposure when ckan.auth.public_user_details = false (#5432 <https://github.com/ckan/ckan/pull/5432>_)
    • ckan.i18n_directory config option ignored in Flask app. (#5436 <https://github.com/ckan/ckan/pull/5436>_)
    • ๐Ÿ‘ Allow lists in resource extras (#5453 <https://github.com/ckan/ckan/pull/5453>_)

    ๐Ÿ—„ Removals and deprecations

    • ๐Ÿšš Revision and History UI is removed: /revision/* & /dataset/{id}/history in favour of /dataset/changes/ visible in the Activity Stream. model.ActivityDetail is no longer used and will be removed in the next CKAN release. (#3972 <https://github.com/ckan/ckan/pull/3972>_)
    • c.action and c.controller variables should be avoided. ckan.plugins.toolkit.get_endpoint can be used instead. This function returns tuple of two items(depending on request handler):
      1. Flask blueprint name / Pylons controller name
      2. Flask view name / Pylons action name In some cases, Flask blueprints have names that are differs from their Pylons equivalents. For example, 'package' controller is divided between 'dataset' and 'resource' blueprints. For such cases you may need to perform additional check of returned value:

    if toolkit.get_endpoint()[0] in ['dataset', 'package']: do_something()

    In this code snippet, will be called if current request is handled via Flask's dataset blueprint in CKAN>=2.9, and, in the same time, it's still working for Pylons package controller in CKAN`_)

    • ๐Ÿšš The following logic functions have been removed (#4627 <https://github.com/ckan/ckan/pull/4627>_):
      • dashboard_activity_list_html
      • organization_activity_list_html
      • user_activity_list_html
      • package_activity_list_html
      • group_activity_list_html
      • organization_activity_list_html
      • recently_changed_packages_activity_list_html
      • dashboard_activity_list_html
      • activity_detail_list
    • โœ‚ Remove Bootstrap 2 templates (#4779 <https://github.com/ckan/ckan/pull/4779>_)
    • ๐Ÿ—„ Extensions that add CLI commands should note the deprecation of ckan.lib.cli.CkanCommand and all other helpers in ckan.lib.cli. Extensions should instead implement CLIs using the new IClick interface. (#5112 <https://github.com/ckan/ckan/pull/5112>_)
    • โœ‚ Remove paster CLI (#5264 <https://github.com/ckan/ckan/pull/5264>_)
  • v2.8.10 Changes

    January 19, 2022

    ๐Ÿ›  Fixes:

    • โž• Add timeouts to requests calls (see ckan.requests.timeout) (#6408 <https://github.com/ckan/ckan/pull/6408>_)
    • ๐Ÿ›  Fix user create/edit email validators (#6399 <https://github.com/ckan/ckan/pull/6399>_)
    • ๐Ÿ‘ Allow children elements on select2 lists (#6503 <https://github.com/ckan/ckan/pull/6503>_)
  • v2.8.9 Changes

    September 22, 2021

    ๐Ÿ›  Fixes:

    • render_datetime helper does not respect ckan.display_timezone configuration (#6252 <https://github.com/ckan/ckan/pull/6252>_)
    • ๐Ÿ›  Fix SQLAlchemy configuration for DataStore (#6087 <https://github.com/ckan/ckan/pull/6086>_)
    • ๐ŸŒ Don't cache license translations across requests (#5586 <https://github.com/ckan/ckan/pull/5586>_)
    • ๐Ÿ›  Fix tracking.js module preventing links to be opened in new tabs (#6386 <https://github.com/ckan/ckan/pull/6384>_)
    • ๐Ÿ›  Fix deleted org/group feeds (#6368 <https://github.com/ckan/ckan/pull/6368>_)
    • ๐Ÿ›  Fix runaway preview height (#6284 <https://github.com/ckan/ckan/pull/6283>_)
    • ๐Ÿ›  Fix unreliable ordering of DataStore results (#2317 <https://github.com/ckan/ckan/pull/2317>_)
  • v2.8.8 Changes

    May 19, 2021
    • ๐Ÿ›  Fix Chinese locales (#4413 <https://github.com/ckan/ckan/pull/4413>_)
    • ๐Ÿ‘ Allow installation of requirements without any additional actions using pip (#5408 <https://github.com/ckan/ckan/pull/5408>_)
    • Include requirements files in Manifest (#5726 <https://github.com/ckan/ckan/pull/5726>_)
    • ๐Ÿณ Dockerfile: pin pip version (#5929 <https://github.com/ckan/ckan/pull/5929>_)
    • ๐Ÿ‘ Allow uploaders to only override asset / resource uploading (#6088 <https://github.com/ckan/ckan/pull/6088>_)
    • Catch TypeError from invalid thrown by dateutils (#6085 <https://github.com/ckan/ckan/pull/6085>_)
    • Display proper message when sysadmin password is incorect (#5911 <https://github.com/ckan/ckan/pull/5911>_)
    • ๐Ÿ“œ Use external library to parse view filter params
    • ๐Ÿ›  Fix auth error when deleting a group/org (#6006 <https://github.com/ckan/ckan/pull/6006>_)
    • Fix datastore_search language parameter (#5974 <https://github.com/ckan/ckan/pull/5974>_)
    • ๐Ÿ‘‰ make SQL function whitelist case-insensitive unless quoted (#5969 <https://github.com/ckan/ckan/pull/5969>_)
    • ๐Ÿ›  Fix Explore button not working (#3720 <https://github.com/ckan/ckan/pull/3720>_)
    • remove unused var in task_status_update (#5861 <https://github.com/ckan/ckan/pull/5861>_)
    • Prevent guessing format and mimetype from resource urls without path (#5852 <https://github.com/ckan/ckan/pull/5852>_)
  • v2.8.7 Changes

    February 10, 2021

    General notes:

    • โฌ†๏ธ Note: To use PostgreSQL 12 on CKAN 2.8 you need to upgrade SQLAlchemy to 1.2.17 and vdm to 0.15 (more details in #5796 <https://github.com/ckan/ckan/issues/5796>_)

    ๐Ÿ›  Fixes:

    • Persist attributes in chained functions (#5751 <https://github.com/ckan/ckan/pull/5751>_)
    • ๐Ÿ›  Fix install documentation (#5618 <https://github.com/ckan/ckan/pull/5618>_)
    • ๐Ÿ›  Fix exception when passing limit to organization (#5789 <https://github.com/ckan/ckan/pull/5789>_)
    • ๐Ÿ›  Fix for adding directories from plugins if partially string matches existing values (#5836 <https://github.com/ckan/ckan/pull/5836>_)
    • ๐Ÿ›  Fix upload log activity sorting (#5827 <https://github.com/ckan/ckan/pull/5827>_)
    • Textview: escape text formats (#5814 <https://github.com/ckan/ckan/pull/5814>_)
    • Add allow_partial_update to fix losing users (#5734 <https://github.com/ckan/ckan/pull/5734>_)
    • Set default group_type to group in group_create (#5693 <https://github.com/ckan/ckan/pull/5693>_)
    • โšก๏ธ Use user performing the action on activity context on user_update (#5743 <https://github.com/ckan/ckan/pull/5743>_)
    • ๐Ÿ†• New block in nav links in user dashboard (#5804 <https://github.com/ckan/ckan/pull/5804>_)
    • ๐Ÿ“š Update references to DataPusher documentation
    • ๐Ÿ›  Fix JavaScript error on Edge (#5782 <https://github.com/ckan/ckan/pull/5782>_)
    • ๐Ÿ›  Fix error when deleting resource with missing datastore table (#5757 <https://github.com/ckan/ckan/pull/5757>_)
    • ensure HTTP_HOST is bytes under python2 (#5714 <https://github.com/ckan/ckan/pull/5714>_)
    • โšก๏ธ Don't set old_filename when updating groups (#5707 <https://github.com/ckan/ckan/pull/5707>_)
    • Filter activities from user at the database level (#5698 <https://github.com/ckan/ckan/pull/5698>_)
    • Fix user_list ordering (#5667 <https://github.com/ckan/ckan/pull/5667>_)
    • Allowlist for functions in datastore_search_sql (see :ref:ckan.datastore.sqlsearch.allowed_functions_file)