This extensions creates a short permanent urls for datasets and resources so they can be referenced in articles and other places. https://yourckan.org/link/xxxx -> https://yourcan.org/dataset/my-dataset/resource/xyz
The extension has been developed and tested with CKAN 2.9 + python3
To install ckanext-short-urls:
-
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
-
Install the extension
pip install ckanext-short-urls
-
[optional] Or install from source:
git clone https://github.com/fjelltopp/ckanext-short-urls.git cd ckanext-short-urls pip install -e . pip install -r requirements.txt
-
Add
short-urls
to theckan.plugins
setting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini
). -
Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
-
Initialize the extensions db
ckan -c ckan.ini short-urls initdb
You can create short urls for all already existing datasets and resources with the command:
ckan -c ckan.ini short-urls migrate
To install ckanext-short-urls for development, activate your CKAN virtualenv and do:
git clone https://github.com/fjelltopp/ckanext-short-urls.git
cd ckanext-short-urls
python setup.py develop
pip install -r dev-requirements.txt
To run the tests, do:
pytest --ckan-ini=test.ini
If ckanext-short-urls should be available on PyPI you can follow these steps to publish a new version:
-
Update the version number in the
setup.py
file. See PEP 440 for how to choose version numbers. -
Make sure you have the latest version of necessary packages:
pip install --upgrade setuptools wheel twine
-
Create a source and binary distributions of the new version:
python setup.py sdist bdist_wheel && twine check dist/*
Fix any errors you get.
-
Upload the source distribution to PyPI:
twine upload dist/*
-
Commit any outstanding changes:
git commit -a git push
-
Tag the new release of the project on GitHub with the version number from the
setup.py
file. For example if the version number insetup.py
is 0.0.1 then do:git tag 0.0.1 git push --tags