Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support python #931

Closed
rarkins opened this issue Oct 13, 2017 · 17 comments
Closed

Support python #931

rarkins opened this issue Oct 13, 2017 · 17 comments
Labels
help wanted Help is needed or welcomed on this issue priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others type:feature Feature (new functionality)

Comments

@rarkins
Copy link
Collaborator

rarkins commented Oct 13, 2017

As suggested by @khornberg and @hbetts in #121

This issue is for building up (a) support (please +1 if you would like to see python support) and (b) requirements, e.g. helping suggest what scope is required and what APIs can be used.

@rarkins rarkins added type:feature Feature (new functionality) needs-requirements priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others labels Oct 13, 2017
@rarkins
Copy link
Collaborator Author

rarkins commented Oct 14, 2017

Files

File names: requirements.txt
Can be multiple in same repo: yes

Registry

PyPi

Example URL: https://pypi.python.org/pypi/Versio/json

Versioning

Similar to semver, defined in https://www.python.org/dev/peps/pep-0440/

@rarkins
Copy link
Collaborator Author

rarkins commented Oct 14, 2017

@khornberg
Copy link
Contributor

Since suggesting python, I have found https://github.com/pyupio/pyup
I have found it to be easy to work with and seems to be basically the same except targeting Python.

@rarkins
Copy link
Collaborator Author

rarkins commented Oct 15, 2017

@rarkins rarkins added the help wanted Help is needed or welcomed on this issue label Oct 20, 2017
@rarkins rarkins added priority-4-low Low priority, unlikely to be done unless it becomes important to more people and removed priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others labels Nov 10, 2017
@mxey
Copy link
Contributor

mxey commented Mar 23, 2018

The officially recommended tool for Python is now Pipenv, which uses Pipfile and Pipfile.lock: https://docs.pipenv.org/basics/#example-pipfile-pipfile-lock

@hutson
Copy link
Contributor

hutson commented Mar 23, 2018

For context, I found pipenv used as the official tool in the official Python documentation - https://packaging.python.org/tutorials/managing-dependencies/

@keimlink
Copy link
Contributor

Python packaging tools and requirement files that should be supported:

  • conda - used by many scientific projects
    • environment.yml
  • pip - Python packaging tool currently used by the majority of projects
    • requirements.txt (could be also called requirements.pip, some projects use several files for production, testing and development requirements)
    • setup.cfg - see setuptools documentation
    • tox.ini - used by tox
  • pipenv - The latest Python packaging tool, more projects start using it
    • Pipfile
    • Pipfile.lock

@rarkins
Copy link
Collaborator Author

rarkins commented Apr 28, 2018

We've added basic requirements.txt support just now - it works on pinned versions (e.g. v1.2.3) only. More advanced support like npm, as well as other files/managers will be added later. To enable or test this initial support:

  "pip_requirements": {
    "enabled": true
  }

@rarkins rarkins added priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others and removed priority-4-low Low priority, unlikely to be done unless it becomes important to more people labels Apr 28, 2018
@rarkins
Copy link
Collaborator Author

rarkins commented Apr 29, 2018

Next step is to implement (port) pep440 to JS so that we can use its validation and comparison functions instead of semver.

We may do this in a stand-alone repo to avoid any licensing concerns with related python implementations.

@khornberg
Copy link
Contributor

Thanks @rarkins

@rarkins
Copy link
Collaborator Author

rarkins commented May 6, 2018

Useful article on pipenv: https://buff.ly/2KcoT7S

@rarkins
Copy link
Collaborator Author

rarkins commented Jun 5, 2018

Python support has now been expanded to support all stable "equals" values (e.g. ==x, ==x.y, ==x.y.z) plus all related core Renovate capabilities (e.g. major/minor separation, etc).

It remains disabled by default, so you need to manually enable it as mentioned previously.

I have opened #2085 to specifically track support for advanced PEP440 specifiers.

@dserodio
Copy link

dserodio commented Jul 3, 2018

Thank you for your work @rarkins. It seems that the basic support for Python is already done, but it isn't mentioned in the documentation. Are you waiting for some milestone to be reached, or are you just waiting for a volunteer to document it? :)

@ghost
Copy link

ghost commented Jul 3, 2018

Are you waiting for some milestone to be reached, or are you just waiting for a volunteer to document it? :)

I'm not @rarkins, but I'd love to see documentation for Renovate's Python support. We've already started to use it in our organization, and I don't personally have any concerns with advertising it's usage to our wider community through dedicated, top-level, Renovate documentation.

@rarkins
Copy link
Collaborator Author

rarkins commented Jul 4, 2018

I left this issue open because the list of requirements in it was only partially complete. However it is true that pip requirements.txt support is complete (including ranges) and available. I think what we should do is:

  • Break further functionality described here into new/separate issues
  • Add documentation for Python
  • Flip the switch to make it enabled by default
  • Mark this issue as resolved

@dserodio I wasn't explicitly waiting for a volunteer but you are very welcome to jump in :)

@rarkins
Copy link
Collaborator Author

rarkins commented Jul 4, 2018

I've now added a few new issues to track remaining functionality for python. All have the new #python hashtag

@rarkins rarkins added the #python label Jul 4, 2018
@rarkins
Copy link
Collaborator Author

rarkins commented Jul 4, 2018

Python support is now enabled by default, so closing this issue. Thanks for everyone's help and suggestions

@rarkins rarkins closed this as completed Jul 4, 2018
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 15, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
help wanted Help is needed or welcomed on this issue priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others type:feature Feature (new functionality)
Projects
None yet
Development

No branches or pull requests

7 participants