Details

    • Type: New Feature New Feature
    • Status: Resolved Resolved
    • Priority: Normal Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.4.0
    • Component/s: Artifact Storage
    • Labels:
      None

      Description

      Add support for pip packages for Python

        Activity

        Hide
        Ted
        added a comment -

        This would be very useful, as our network prevents our pre-prod environments from accessing the outside world.

        Show
        Ted
        added a comment - This would be very useful, as our network prevents our pre-prod environments from accessing the outside world.
        Hide
        Trevor Powell
        added a comment -

        Yes , Please add this feature!!

        Show
        Trevor Powell
        added a comment - Yes , Please add this feature!!
        Hide
        Eddie Welker
        added a comment -

        +1

        Show
        Eddie Welker
        added a comment - +1
        Hide
        Adrian Robert
        added a comment -

        This would be good. What exactly is needed here? Having a flat repository served over HTTP is not enough?

        Show
        Adrian Robert
        added a comment - This would be good. What exactly is needed here? Having a flat repository served over HTTP is not enough?
        Hide
        Trevor Powell
        added a comment - - edited

        There are two types of feature when supporting Python Pypi. If you roll your own modules, the flat repository should work fine. But if you want to sync the modules from the internet. Artifactory has issues.

        Today we sync python modules from pypi.python.org/
        This gives us a structure of modules under:
        packages/source/$FIRST_LETTER/$MODULENAME/

        For example
        packages/source/M/M2Crypto/

        pip wants to point to a url like https://pypi.python.org/simple/
        Where all the modules folders are on the root path
        $MODULENAME/
        or
        M2Crypto/

        Trying to artifactory sync from https://pypi.python.org/simple/ gives some errors at this time. I believe it is having trouble following redirects in the https://pypi.python.org/simple/ directory structure ??

        Show
        Trevor Powell
        added a comment - - edited There are two types of feature when supporting Python Pypi. If you roll your own modules, the flat repository should work fine. But if you want to sync the modules from the internet. Artifactory has issues. Today we sync python modules from pypi.python.org/ This gives us a structure of modules under: packages/source/$FIRST_LETTER/$MODULENAME/ For example packages/source/M/M2Crypto/ pip wants to point to a url like https://pypi.python.org/simple/ Where all the modules folders are on the root path $MODULENAME/ or M2Crypto/ Trying to artifactory sync from https://pypi.python.org/simple/ gives some errors at this time. I believe it is having trouble following redirects in the https://pypi.python.org/simple/ directory structure ??
        Hide
        Ted Sheibar
        added a comment -

        No need for a pypi.python.org mirror. But, building in self-hosted pypi server capabilities would be fantastic, along with the ability - both through the API and the UI - to upload source Python packages (e.g. python setup.py sdist upload -r my-artifactory-server).

        Official source code: https://github.com/schmir/pypiserver

        Show
        Ted Sheibar
        added a comment - No need for a pypi.python.org mirror. But, building in self-hosted pypi server capabilities would be fantastic, along with the ability - both through the API and the UI - to upload source Python packages (e.g. python setup.py sdist upload -r my-artifactory-server ). Official source code: https://github.com/schmir/pypiserver
        Hide
        Eddie Welker
        added a comment -

        Since the fix version was recently changed to 3.3.0, can you tell us when that may be planned for?

        I've been trying to use the Defend against fruit setup, but the extra windows server proxy to PyPI and the other extra hoops required are proving to be a pain.

        Show
        Eddie Welker
        added a comment - Since the fix version was recently changed to 3.3.0, can you tell us when that may be planned for? I've been trying to use the Defend against fruit setup, but the extra windows server proxy to PyPI and the other extra hoops required are proving to be a pain.
        Hide
        Jürgen Hermann
        added a comment - - edited

        It would be nice if this included the PyPI mirroring protocol, so you can chain Artifactory (e.g. inherit it into a devpi server). That might need to be its own issue, though probably the needed extensions aren't that hard to provide.

        The only "documentation" for this seems to be https://bitbucket.org/pypa/pypi/src/default/rpc.py (plus what's at https://github.com/pypa/warehouse/blob/master/docs/api-reference/xml-rpc.rst#mirroring-support), and https://bitbucket.org/pypa/bandersnatch/ (maintained version of https://pypi.python.org/pypi/pep381client) is a client-side implementation.

        Show
        Jürgen Hermann
        added a comment - - edited It would be nice if this included the PyPI mirroring protocol, so you can chain Artifactory (e.g. inherit it into a devpi server). That might need to be its own issue, though probably the needed extensions aren't that hard to provide. The only "documentation" for this seems to be https://bitbucket.org/pypa/pypi/src/default/rpc.py (plus what's at https://github.com/pypa/warehouse/blob/master/docs/api-reference/xml-rpc.rst#mirroring-support ), and https://bitbucket.org/pypa/bandersnatch/ (maintained version of https://pypi.python.org/pypi/pep381client ) is a client-side implementation.

          People

          • Assignee:
            Shay Yaakov
            Reporter:
            Baruch Sadogursky
          • Votes:
            29 Vote for this issue
            Watchers:
            29 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: