[ckan-discuss] CKAN/Licenses - outstanding issues

John Bywater john.bywater at appropriatesoftware.net
Wed Mar 10 19:31:41 GMT 2010

Hi guys,

The servicization of the licenses package is shaping up now.

The licenses package can be used to deploy v1.0 and v2.0 level licenses 
service, and the very latest CKAN can be configured to use a v2.0 level 
licenses service (with e.g. ...

licenses_group_url = file:///path/to/your/licenses/service/2.0/all

... in your .ini file). See the README.txt in the licenses package 
source for information about using the licenses package. Hopefully we 
can release a new version of the licenses package and deploy at 
licenses.opendefinition.org soon.

So, the CKAN Package model class has a Licenses register, which has a 
Licenses Service (see model/license.py and model/package.py) for more 
information about how the domain model works after the changes.

All the tests should be passing, however there are a few outstanding 
things to do:

- fix 'license_id' in forms (and REST?) to 'license'

- fix migration script (and mapper from v1 to v2)

- graceful degradation for missing licenses (in case package has a 
license_id which doesn't exist for some reason)

- fix licenses package to order 'all' with top-5 at top (commonly used)

- make package.license_id revisioned (?)

The form field change is probably not hard, but it's something I'd 
prefer to do with somebody who knows the forms lib better than I do 

The migration script will need to change the field type and substitute 
all the values. Again, it's probably not hard, but I'd prefer to do that 
with somebody too.

The graceful degradation won't take very long (but should probably be 
under careful test). I can do that on my own.

The ordering of the licenses is something I suggest we review. It's 
relatively expensive to implement, as an ordered list needs to be 
created and maintained. Also, I would guess an alphabetical list is 
already fairly optimal. Of course, I could easily do this it's more 
important than I believe.

Lastly, as the package.license_id attribute is just a string, it should 
be simple to make the license attribute temporal (if it isn't already?). 
I don't know whether it is or it isn't!

If you have any trouble with any of this, please let me know.

Best wishes,


More information about the ckan-discuss mailing list