Skip to content

Improve install experience with “experimental” diffs #241

Description

@Mr0grog

This package includes the ability to use a couple “experimental” diffs that were in the works by various contributors long ago:

Neither of these is actively maintained, and because they are not published on PyPI, have to be installed via git URLs, which makes installing them awkward — we can’t list them as dependencies because PyPI, for very reasonable safety concerns, will not allow git URLs as dependencies. Instead our install instructions include this madness:

To install them with Pip, run:

curl -O 'https://raw.githubusercontent.com/edgi-govdata-archiving/web-monitoring-diff/refs/heads/main/requirements-experimental.txt'
pip install -r requirements-experimental.txt

If using a different package manager, check the requirements-experimental.txt file and install each of the listed packages.

This is a bad experience. It also creates a long-term dependency on our repository’s URL in GitHub.

We should either:

  1. Remove these diffs altogether. They are not maintained or actively developed, and we never got them up near the same user experience level as our main html_render_diff.

  2. Have a script/command that spits out the requirements file for pip or maybe a bash script of install commands for other popular package managers (poetry, pdm, uv). Then the installation doesn't require extra tools like cUrl and the dependencies are versioned along with the package (because the code to generate the install script is part of the package). Not the greatest, but less awkward than what we have.

  3. Vendor these dependencies directly in our package. I’m not excited about this one and I think it implies a greater responsibility for updating and maintaining things that we have the bandwidth to take on, but it does make installation and usage much more straightforward. If we want to keep these updated, it’s easier to fork them here than try to upstream everything.

(See also #239)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions