inveniosoftware / inveniosoftware/invenio-cli

Spring cleaning workflows and code

Open
#430 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
14
Forks
49
PR merge metrics
No merged PRs in 30d

Description

By now, the code has collected quite a bit of cruft.
Writing code for this package does not feel very good; there's a lack of focus and clear goals here that leads to messy APIs and lots of clutter.

For instance, there's a bunch of helper functions that are *just* not flexible enough for the general case, leading to a bunch of functions still (almost) duplicating code (looking at `commands/requirements.py` here).

The `commands/upgrade.py` file also seems to be in a pretty sad state; not sure who that is for... Or when it was for anybody.

If I'm not mistaken, some workflows like allowing pre-release versions in the `install` command (`cli/install.py`) are also not really a thing that we do anymore.

I propose a general spring-cleaning for this package.
We should collect a set of workflows that should be supported, and cut out the rest.
We should also refactor a lot of the functions and structure.

By now, I feel we have collectively gathered sufficient experience to make a better design feasible.

Contributor guide

Open the contributing guide

Research direction

Read commands/requirements.py, commands/upgrade.py, and cli/install.py to inventory the duplicated helpers, unclear upgrade behavior, and pre-release workflow mentioned in the issue. Start by documenting the workflows the package should support and the clutter to remove; done requires an agreed scope and redesigned structure rather than a single isolated edit.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.