ckan / ckan/ideas

Abstract away virtualenv and CKAN config on the command-line

Open
#183 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
39
Forks
1
PR merge metrics
No merged PRs in 30d

Description

# What

Have a thin-wrapper around the paster CLI and pip commands that:
* runs them in the appropriate python virtual environment
* finds the CKAN config file (for paster CLI)
* find the plugin (for paster CLI)

# Examples

Existing:

$ . /usr/lib/ckan/default/bin/activate
(pyenv) $ pip install -r pip-requirements.txt

Replacement:

$ ./ckan_pip install -r pip-requirements.txt

Existing:

(pyenv) $ paster --plugin=ckanext-harvest harvester initdb --config=/etc/ckan/default/production.ini

Replacement:

$ ./ckan_manage harvester initdb

# Why

The python virtual environment causes a substantial proportion of CKAN support questions. Forget to activate when running any python command and you get a weird error. Worse, forget to activate it when running any 'pip install' command and you install stuff in the wrong place and it gets really confusing.

The CKAN config file is not confusing, but it is a faff to remember and verbose to document.

The plugin is annoying to have to remember and verbose to document.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names the paster CLI, pip commands, the CKAN virtual environment, and the CKAN config and plugin arguments, but no implementation files or tests. Start by checking the current CKAN repository and its Discussions, since this ideas repository is deprecated, then determine where command wrappers belong. Done means both example workflows run without manual virtualenv, config-path, or plugin handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.