Skip to content

docs: amend OEP-18 to further discourage VCS URL dependencies - #390

Closed
kdmccormick wants to merge 1 commit into
openedx:masterfrom
kdmccormick:kdmccormick/no-github-dependencies
Closed

docs: amend OEP-18 to further discourage VCS URL dependencies#390
kdmccormick wants to merge 1 commit into
openedx:masterfrom
kdmccormick:kdmccormick/no-github-dependencies

Conversation

@kdmccormick

@kdmccormick kdmccormick commented Oct 5, 2022

Copy link
Copy Markdown
Member

to accomodate a forward fix. If a repository maintainer is unresponsive, this
issue can be escalated to tCRIL, which can cut an emergency release if necessary. If
the repository is outside of the Open edX project, then the repository can be forked, and
the package re-released to PyPI under a new name.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of the most common historical causes of VCS dependencies is needing support for a new Python or Django version for a named Open edX release before upstream is ready to merge and/or release it (because Open edX named releases come out before Python/Django EOL dates). The absolute number is still small, but probably happens about 5 times across repos each Django upgrade cycle.

We can technically release forks of these to PyPI each time it happens, but just want to make clear that this will cause a fair bit of overhead each time it happens; we'd want a pretty solid workflow for this, and the "temporary" forks will pretty much sit in PyPI until we're willing to break all installations of the named release that needed it.

<https://github.com/openedx/edx-platform/blob/open-release/nutmeg.2/requirements/edx/github.in#L54-L77>`_
Following ``git blame`` shows that the current VCS URL dependencies
exist simply because it took fewer steps to set them up than it would have to
install them from PyPI.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few other interesting use cases that have come up in the past:

I don't want to argue that installing from VCS is the only way to solve problems like these. I just want to make sure that we have a replacement process that allows us to very quickly deploy a specific commit from a dependency before we eliminate this as an option.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to know @jmbowman . I'm glad you saw this draft PR and brought these up before I went any further with this.

I believe the codejail issue was an instance of an incorrect setup.py. I don't have good alternative workflows for the other instances you brought up, though.

To be honest, I don't think BOM teams adding temporary URL dependencies in order to speed up upgrades and handle critical issues is the problem here. The problem is when URL dependencies are added as a quick-and-dirty way of getting a feature out the door. So, maybe the solution isn't to forbid VCS URLs altogether. Perhaps it'd be better to, for example, use CODEOWNERS to require review from one of the BOM teams when editing github.in, helping ensure the file isn't misused.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I definitely agree that there are things in github.in that have stayed there far too long. Like, there's never been a proper release of our drag & drop assessment XBlock. But we may need something more like a repo health check and a followup process for remediation than an outright ban.

@kdmccormick

Copy link
Copy Markdown
Member Author

Based on Jeremy's feedback, I will be amending this update to be less extreme. I'll leave room in the OEP for using GitHub-based dependencies in the cases he listed. And instead of a blocking linter, I'm going to look into using CODEOWNERS or a repo health check.

@kdmccormick kdmccormick changed the title docs: amend OEP-18 to forbid VCS URL dependencies (WIP) docs: amend OEP-18 to further discourage GitHub-hosted depencies Oct 14, 2022
@kdmccormick kdmccormick changed the title docs: amend OEP-18 to further discourage GitHub-hosted depencies docs: amend OEP-18 to further discourage VCS URL dependencies Oct 14, 2022
@kdmccormick

Copy link
Copy Markdown
Member Author

Superseded by #450

@kdmccormick
kdmccormick deleted the kdmccormick/no-github-dependencies branch February 23, 2023 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants