-
Notifications
You must be signed in to change notification settings - Fork 6
ckanext-qa Py3 + CKAN 2.9 support #574
Description
User Story
As a data.gov developer, I want ckanext-qa running with CKAN 2.9 and Python 3 so that we can move out of CKAN 2.8 and reduce our technical debt and meet compliance standards.
Acceptance Criteria
- WHEN I view CI
THEN I see a successful job testing the extension under CKAN 2.9
AND I see a successful job testing the extension under CKAN 2.8
AND I see a successful job testing the extension under the legacy test environment - WHEN I remove the tests
THEN I see CI fail due to test coverage being below a threshold
Background
CKAN 2.9 extension tracker.
Details / tasks
The goal is to support running this extension against CKAN 2.9 (Python 3) and CKAN 2.8 (Python 2) environments.
Please refer to the main CKAN documentation for Python 3 extensions migration. We're not following this guide exactly. Instead of creating a long-lived py3 branch, we should be merging often. New CI test suites don't need to required or to be fully passing in order to merge. It's only important that changes don't introduce new failures or break the existing test suites.
Below are a list of tasks. Depending on the extension's functionality, not all tasks will be actionable.
Tasks:
- Update spreadsheet to indicate the extension upgrade is in progress
- Rename default branch ->
main
. - Remove any CKAN 2.3 tests and functionality
- Look for
check_ckan_version
- grep for '2.3'
- See GSA/ckanext-datagovtheme@5968f42 for additional examples
- Look for
- Dependencies must be python 3 compatible (run
caniusepython3 -r requirements.txt
from within the virtualenv) and post the results to this issue (docs) - Add additional CI config for CKAN 2.8 and 2.9 Update CI config. These new CI jobs do not to be required yet (docs)
- add code coverage reporting and required threshold (example)
- Update documentation with compatibility table (docs)
- Features
- "Usage" (how to use/install/configure the extension) vs "Development" (how to test etc)
- Required extensions and dependencies
- "Weak" dependencies or how this code interacts with other extensions
- Update/add docker-compose environment in order to run tests locally (example)
- Update test suite (docs)
- Fix Python 3 issues / futurize code (docs)
- Install future and run
futurize --both-stages --write ckanext
- Install future and run
- Import from core ckan using toolkit (
git grep -w 'paste\|pylons'
should return no imports) (docs) - (optional) Create Mixin plugin implementations for Pylons / Flask (docs) (example)
- Convert controllers to flask views/blueprints (docs)
- Migrate Paster CLI commands to Click (docs)
- Migrate js and css assets to Web assets (docs) (example)
- Update templates (docs) (example)
- you may want to split the template for CKAN >=2.9 in order to keep templates readable while maintaining backwards compatibility
- update resource tags to asset for Web Assets
- update
controller='package'
->controller='dataset'
orcontroller='resource'
- Update spreadsheet to indicate the extension upgrade is complete
Additional resources:
Metadata
Metadata
Assignees
Labels
Type
Projects
Status