Skip to content

End to end approach for third-party packages handlings in ScanCode #2135

Description

@pombredanne

When this all done, we will have NO files under thirdparty/ anymore.

Instead I will have:

  1. all the wheels, source archives, ABOUT files and licenses, etc available for reference as release assets in some public GitHub PyPI-like repository that will be at https://github.com/nexB/third-party-packages/release

  2. I have several requirements files with hashes, one per OS/Arch/Python combo for production.

  3. I have one requirements file with hashes (supporting for all OS/Arch/Pythons combos) that is used for development only (e.g. it would have the tools we use under thirdparty/dev as well as new libraries such as pip-tools and similar)

  4. For each release of ScanCode, I have the following assets attached to the scancode-toolkit release at https://github.com/nexB/scancode-toolkit/releases .This means:

  • we have 4 OS/arch combos: linux-x86_64, macOS-x86_64, win-x86_64, win-x86_32
  • we 3 CPython versions: 3.6, 3.7, 3.8 (and soon 3.9)
  • Therefore we have 4 x 3 = 12 different installable sdist archives that area available in https://github.com/nexB/scancode-toolkit/release

In terms of what I can do:

This archive is an sdist-like archive and I can extract it and run as we can do it today with existing release archive. This archive is one of the 12 possible archives as listed in (4)

  • Use case: Install ScanCode from a git checkout Use case: Install ScanCode from a git checkout #2089 : We will ensure that the configure.py script work such such that it no longer uses wheels from thirdparty/ but instead fetches installs wheel from our PyPI repo in (1) using requirement files from (2) and the dev requirement file from (3)

The other tickets are to actually create utilities to support these use case and to support scancode developers to automate the release operations.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions