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

RFC to rewrite language family #183

Merged
merged 9 commits into from
Jan 11, 2021
Merged

RFC to rewrite language family #183

merged 9 commits into from
Jan 11, 2021

Conversation

sophiewigmore
Copy link
Member

Readable

Signed-off-by: Timothy Hitchener thitchener@pivotal.io
Signed-off-by: Sophie Wigmore swigmore@vmware.com

Signed-off-by: Timothy Hitchener <thitchener@pivotal.io>
Signed-off-by: Sophie Wigmore <swigmore@vmware.com>
@sophiewigmore sophiewigmore requested a review from a team October 14, 2020 18:44
@kvedurmu
Copy link
Member

@thitch97 @sophiewigmore thanks for putting this together, this looks awesome! Couple comments/thoughts:

  • Procfile ID in the order groupings should be paketo-buildpacks/procfile instead of paketo-community/procfile

without the need for the requirements.txt workaround we currently do ...

  • This reads a little confusing (I initially thought this meant that users cannot use a requirements.txt)

Basic Python start command

  • Could we add an example here? e.g docker run -it python-image "run.py"
  • I'm assuming that this would error out without user provided args. Is that correct?


* `pipenv`
* provides: `pipenv`
* requires: `pip` and `cpython` during `build`
Copy link
Member

Choose a reason for hiding this comment

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

Is there no way to install/provide pipenv without requiring pip?
Is this because pipenv requires additional modules not provided by cpython?

I notice later in the doc you mention "We can reuse existing ecosystem tooling like pip to aid in the installation of packages using pipenv". But I think if it's possible, It would be cleaner for a pipenv workflow to exist that is independent of pip.

Copy link
Member

Choose a reason for hiding this comment

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

I think this should be possible, but would require that we have different dependencies than what is present in the existing buildpacks. The existing buildpacks have source code for pip and pipenv as dependencies. This means we need to use python or pip to install each. I believe there is a binary distribution concept called a wheel that we could use.

Copy link
Member

Choose a reason for hiding this comment

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

I didn't know about wheels. Pipenv does publish wheels (https://pypi.org/project/pipenv/#files) but it looks like the conventional way to even install a wheel is through pip, though it looks like a zip you can unpack to disk. Regardless, it would be pretty cool if the buildpack doesn't have to bother about building binary from a source distribution.

Copy link
Member

@joshzarrabi joshzarrabi Nov 2, 2020

Choose a reason for hiding this comment

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

According to the docs you can run curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python

Looks like that installs pip anyway

curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python3
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  4068k      0 --:--:-- --:--:-- --:--:-- 4057k
Collecting pip
  Using cached https://files.pythonhosted.org/packages/cb/28/91f26bd088ce8e22169032100d4260614fc3da435025ff389ef1d396a433/pip-20.2.4-py2.py3-none-any.whl

Copy link
Member

Choose a reason for hiding this comment

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

I took a look at pipenv's whl and it seems to to be a source code distribution and not binary.
A useful stackoverflow conversation about whl

Copy link
Member

Choose a reason for hiding this comment

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

I broke open the source and wheel distributions and they are both just tarballs of python source code. I think it may be possible to install pipenv without pip but that seems hard and unnecessary.

rfcs/0001-restructure.md Outdated Show resolved Hide resolved
@kvedurmu kvedurmu added the rfc label Nov 18, 2020
@ForestEckhardt
Copy link
Contributor

I was looking around pipenv issues and found this, thought it might be interesting/helpful.

arjun024
arjun024 previously approved these changes Dec 4, 2020
rfcs/0001-restructure.md Outdated Show resolved Hide resolved
@joshzarrabi
Copy link
Member

Looks good to me!

@arjun024 arjun024 merged commit 3c1ab0b into main Jan 11, 2021
@arjun024 arjun024 deleted the rewrite-rfc branch January 11, 2021 19:38
@robdimsdale robdimsdale added semver:patch A change requiring a patch version bump and removed semver:patch A change requiring a patch version bump labels Mar 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver:patch A change requiring a patch version bump
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants