inveniosoftware / inveniosoftware/invenio-cli
Spring cleaning workflows and code
- 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
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