Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validating CKAN2.9 & Python3 framework with catalog #3401

Closed
4 tasks done
jbrown-xentity opened this issue Aug 26, 2021 · 4 comments
Closed
4 tasks done

Validating CKAN2.9 & Python3 framework with catalog #3401

jbrown-xentity opened this issue Aug 26, 2021 · 4 comments

Comments

@jbrown-xentity
Copy link
Contributor

jbrown-xentity commented Aug 26, 2021

User Story

In order to increase confidence that we are ready to run in a Python 3 environment, the team wants to validate our applications with all their extensions under Py3.

Acceptance Criteria

[ACs should be clearly demoable/verifiable whenever possible. Try specifying them using BDD.]

  • GIVEN All relevant ckan extension is upgraded to CKAN 2.9 + PY3
    When The testing environment for catalog.data.gov supports CKAN 2.9 + PY3
    THEN the catalog.data.gov tests can run and pass \

Background

[Any helpful contextual notes or links to artifacts/evidence, if needed]
Since they're not all consistent, we want to make sure we're using all the right branches/versions of the various extensions in inventory and catalog, and ensure they're all at least minimally working correctly in an integrated deployment.

Security Considerations (required)

None.

Sketch

Any necessary changes go on main (we have no expectation to backport to CKAN 2.8/Py2)

  • Use the cloud.gov-provided Python buildpack (which is Py3)
  • If we need an integration test to validate each extension is working correctly, we add it
  • The local test environment is updated to use the openknowledge foundation ckan-dev image
@jbrown-xentity
Copy link
Contributor Author

I debated about trying to use the current bats tests vs moving to cypress tests. After adding cypress basic tests, they were definitely the way to go. Already found bugs in downstream extension templates that we will need to resolve, using API would not have found these bugs.

@jbrown-xentity
Copy link
Contributor Author

Harvests are working in tests. Note that the harvest will complete with the correct number of harvested datasets, but the harvest source will show no datasets associated with the source. If a reindex is run (ckan search-index rebuild), then the datasets are associated appropriately. Not sure why at this time.

@jbrown-xentity
Copy link
Contributor Author

See final PR here: GSA/catalog.data.gov#328
This represents some major changes in catalog dev environment, including:

  • OKFN base image (2.9 with Py3)
  • Cypress testing over bats testing
  • requirements management (pip instead of poetry)
  • CKAN command usage
  • Deprecate usage of the following extensions: report, archiver, and qa

@mogul mogul added this to the Sprint 20210916 milestone Sep 16, 2021
@mogul mogul closed this as completed Sep 16, 2021
@nickumia-reisys
Copy link
Contributor

nickumia-reisys commented Dec 25, 2021

Summary of Related Work

It was an honor to be a part of this Python 3 migration/upgrade effort because of how cross-platform, cross-disciplinary, open-source and integrated CKAN is in the overall data community. This was a very large effort because of the various communities that rely on the software and the various software abstractions that exist from Python, Front-end Technologies (React, HTML/JS/CSS), web networking, Database Integrations, Search Integration, External services (harvesting methodologies, S3 integration, and more). Even the main data.gov web apps are wrapped in a cloud.gov app that has further layers of abstraction. The following list encompasses the highlights associated with Python 3 compatability,

Note: There were various bug fixes after these initial passes were complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🗄 Closed
Development

No branches or pull requests

3 participants