Metadata-Version: 1.1
Name: ckanext-datasetversions
Version: 1.0.1
Summary: CKAN extension to support different versions of a dataset
Home-page: https://github.com/aptivate/ckanext-datasetversions
Author: Aptivate
Author-email: mapaction-team@aptivate.org
License: AGPL
Description: =======================
        ckanext-datasetversions
        =======================
        
        This CKAN extension adds support for different versions of a dataset. Sometimes
        is is desirable to store and display together different versions of a dataset,
        for example a daily situation report-style map during a humanitarian crisis.
        
        This plugin provides an action ``dataset_version_create``, for example::
        
            toolkit.get_action('dataset_version_create')(
                context, {
                    'id': dataset['id'],
                    'base_name': base_name,
                    'owner_org': owner_org
                }
            )
        
        The plugin models dataset versions internally by creating a parent dataset, with
        minimal metadata and no resources. A child dataset is created for each version.
        
        ``dataset_version_create`` will create a parent-child relationship between the
        dataset specified by ``base_name`` and that specified by ``id``. If the dataset
        specified by ``base_name`` does not exist, it will be created.
        
        Note that this plugin overrides CKAN's ``package_show`` action. The original
        ``package_show`` is made available as ``ckan_package_show``.
        
        For datasets with different versions, the overridden ``package_show`` will
        return:
        
        * The latest, public, active version of the dataset if the parent name or id is specified
        * A specific version of the dataset if the child name or id is specified
        
        The version ordering is determined by the integer value of ``version`` in the
        dataset metadata.
        
        In addition, ``package_show`` will return a list of the names and URLs of all
        active versions as ``_versions`` in the dictionary.
        
        The plugin provides templates to list versions of a dataset alongside that
        currently viewed and to warn the user if they are looking at an old version of a
        dataset.
        
        ------------
        Requirements
        ------------
        
        This plugin will not work 'out of the box'. You will need to write code to call
        the ``dataset_version_create`` action. A site-specific example is available at
        https://github.com/aptivate/ckanext-mapactionimporter
        
        This is known to work with CKAN 2.5.2, though note there are problems when
        purging datasets with relationships. See:
        
        * https://github.com/ckan/ckan/pull/3112
        * https://github.com/ckan/ckan/issues/2186
        
        ------------
        Installation
        ------------
        
        To install ckanext-datasetversions:
        
        1. Activate your CKAN virtual environment, for example::
        
             . /usr/lib/ckan/default/bin/activate
        
        2. Install the ckanext-datasetversions Python package into your virtual environment::
        
             pip install ckanext-datasetversions
        
        3. Add ``datasetversions`` to the ``ckan.plugins`` setting in your CKAN
           config file (by default the config file is located at
           ``/etc/ckan/default/production.ini``).
        
        4. Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu::
        
             sudo service apache2 reload
        
        
        ---------------
        Config Settings
        ---------------
        
        None
        
        
        ------------------------
        Development Installation
        ------------------------
        
        To install ckanext-datasetversions for development, activate your CKAN virtualenv and
        do::
        
            git clone https://github.com/aptivate/ckanext-datasetversions.git
            cd ckanext-datasetversions
            python setup.py develop
            pip install -r dev-requirements.txt
        
        
        -----------------
        Running the Tests
        -----------------
        
        To run the tests, do::
        
            nosetests --nologcapture --with-pylons=test.ini
        
        To run the tests and produce a coverage report, first make sure you have
        coverage installed in your virtualenv (``pip install coverage``) then run::
        
            nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.datasetversions --cover-inclusive --cover-erase --cover-tests
        
        
        -------------------------------------------
        Registering ckanext-datasetversions on PyPI
        -------------------------------------------
        
        ckanext-datasetversions should be availabe on PyPI as
        https://pypi.python.org/pypi/ckanext-datasetversions. If that link doesn't work, then
        you can register the project on PyPI for the first time by following these
        steps:
        
        1. Create a source distribution of the project::
        
             python setup.py sdist
        
        2. Register the project::
        
             python setup.py register
        
        3. Upload the source distribution to PyPI::
        
             python setup.py sdist upload
        
        4. Tag the first release of the project on GitHub with the version number from
           the ``setup.py`` file. For example if the version number in ``setup.py`` is
           0.0.1 then do::
        
               git tag 0.0.1
               git push --tags
        
        
        --------------------------------------------------
        Releasing a New Version of ckanext-datasetversions
        --------------------------------------------------
        
        ckanext-datasetversions is availabe on PyPI as https://pypi.python.org/pypi/ckanext-datasetversions.
        To publish a new version to PyPI follow these steps:
        
        1. Update the version number in the ``setup.py`` file.
           See `PEP 440 <http://legacy.python.org/dev/peps/pep-0440/#public-version-identifiers>`_
           for how to choose version numbers.
        
        2. Create a source distribution of the new version::
        
             python setup.py sdist
        
        3. Upload the source distribution to PyPI::
        
             python setup.py sdist upload
        
        4. Tag the new release of the project on GitHub with the version number from
           the ``setup.py`` file. For example if the version number in ``setup.py`` is
           0.0.2 then do::
        
               git tag 0.0.2
               git push --tags
        
Keywords: CKAN dataset versions
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
