Re: Trying to outline the steps taken to go from "I want this package" to it being installed
On Sat, 22 Dec 2018 at 12:22, Brett Cannon wrote: > > > On Fri, 21 Dec 2018 at 12:08, Sumana Harihareswara > wrote: > >> Brett, did you end up making progress on this? If not, would you be open >> to someone else picking it up? >> > > The complete outline can be found in an email I sent to pypa-dev and I > have started work by trying to add PEP 425 support to 'packaging': > https://github.com/pypa/packaging/pull/156 . > I realized I should have clarified by saying, "and if anyone else wants to take on something from that outline that needs doing then feel free!" :) -Brett > > -Brett > > >> >> Thanks! >> >> -- >> Sumana Harihareswara >> Changeset Consulting >> https://changeset.nyc >> >> On 3/5/18 1:01 PM, Brett Cannon wrote: >> > Thanks for the extra details, Nick! I have some documentation to read on >> > some projects now that I have a complete list, but once that's done I'll >> > come back here with my idea. ;) >> > >> > On Fri, 2 Mar 2018 at 21:50 Nick Coghlan wrote: >> > >> >> On 3 March 2018 at 06:55, Brett Cannon wrote: >> >> >> >>> I have a project idea, but before I start it I need to make sure that >> I >> >>> have the high-order steps necessary to go from `pip install >> pip=9.0.1` to >> >>> it actually ending up on disk. Now I'm only considered with >> >>> modern/bleeding-edge, spec-based stuff, so PEP 517/518 and no >> setup.py, etc. >> >>> >> >>> Anyway, if people can point out any steps the below outline is >> missing I >> >>> would appreciate it. Thanks! >> >>> >> >>> >> >>>1. Specify package requirement >> >>> 1. Translate name to PyPI-compatible name >> >>> 2. Tease out requirement details (e.g. version, markers, etc.) >> >>>2. Check if package is already installed >> >>> >> >>> >> >> Depending on the installer design, a local download/build cache may be >> >> checked before checking PyPI (and since you include a caching step >> later, >> >> you'll presumably want to cover the caching step as well). >> >> >> >> >> >>> >> >>>1. Check PyPI for package >> >>>2. Choose appropriate file >> >>> 1. Get list of files >> >>> 2. Calculate best-fitting wheel >> >>> 3. Fallback to .tar.gz sdist >> >>>3. Download file >> >>>4. If sdist: >> >>> 1. Extract >> >>> 2. Read pyproject.toml >> >>> 3. Create venv >> >>> 4. Install build dependencies >> >>> >> >>> >> >> After installing the static build dependencies, you also need to query >> for >> >> any dynamic build dependencies and install them if they're requested: >> >> https://www.python.org/dev/peps/pep-0517/#get-requires-for-build-wheel >> >> >> >> This build dependency installation step can get arbitrarily >> complicated if >> >> you allow build dependencies to be installed from source, so the >> initial >> >> implementation in pip requires that build dependencies already be >> available >> >> as wheel files (either on the index server or in the local artifact >> cache). >> >> >> >> Cheers, >> >> Nick. >> >> >> >> -- >> >> Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia >> >> >> > >> >
Re: Trying to outline the steps taken to go from "I want this package" to it being installed
On Fri, 21 Dec 2018 at 12:08, Sumana Harihareswara wrote: > Brett, did you end up making progress on this? If not, would you be open > to someone else picking it up? > The complete outline can be found in an email I sent to pypa-dev and I have started work by trying to add PEP 425 support to 'packaging': https://github.com/pypa/packaging/pull/156 . -Brett > > Thanks! > > -- > Sumana Harihareswara > Changeset Consulting > https://changeset.nyc > > On 3/5/18 1:01 PM, Brett Cannon wrote: > > Thanks for the extra details, Nick! I have some documentation to read on > > some projects now that I have a complete list, but once that's done I'll > > come back here with my idea. ;) > > > > On Fri, 2 Mar 2018 at 21:50 Nick Coghlan wrote: > > > >> On 3 March 2018 at 06:55, Brett Cannon wrote: > >> > >>> I have a project idea, but before I start it I need to make sure that I > >>> have the high-order steps necessary to go from `pip install pip=9.0.1` > to > >>> it actually ending up on disk. Now I'm only considered with > >>> modern/bleeding-edge, spec-based stuff, so PEP 517/518 and no > setup.py, etc. > >>> > >>> Anyway, if people can point out any steps the below outline is missing > I > >>> would appreciate it. Thanks! > >>> > >>> > >>>1. Specify package requirement > >>> 1. Translate name to PyPI-compatible name > >>> 2. Tease out requirement details (e.g. version, markers, etc.) > >>>2. Check if package is already installed > >>> > >>> > >> Depending on the installer design, a local download/build cache may be > >> checked before checking PyPI (and since you include a caching step > later, > >> you'll presumably want to cover the caching step as well). > >> > >> > >>> > >>>1. Check PyPI for package > >>>2. Choose appropriate file > >>> 1. Get list of files > >>> 2. Calculate best-fitting wheel > >>> 3. Fallback to .tar.gz sdist > >>>3. Download file > >>>4. If sdist: > >>> 1. Extract > >>> 2. Read pyproject.toml > >>> 3. Create venv > >>> 4. Install build dependencies > >>> > >>> > >> After installing the static build dependencies, you also need to query > for > >> any dynamic build dependencies and install them if they're requested: > >> https://www.python.org/dev/peps/pep-0517/#get-requires-for-build-wheel > >> > >> This build dependency installation step can get arbitrarily complicated > if > >> you allow build dependencies to be installed from source, so the initial > >> implementation in pip requires that build dependencies already be > available > >> as wheel files (either on the index server or in the local artifact > cache). > >> > >> Cheers, > >> Nick. > >> > >> -- > >> Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia > >> > > >
Re: Trying to outline the steps taken to go from "I want this package" to it being installed
Brett, did you end up making progress on this? If not, would you be open to someone else picking it up? Thanks! -- Sumana Harihareswara Changeset Consulting https://changeset.nyc On 3/5/18 1:01 PM, Brett Cannon wrote: > Thanks for the extra details, Nick! I have some documentation to read on > some projects now that I have a complete list, but once that's done I'll > come back here with my idea. ;) > > On Fri, 2 Mar 2018 at 21:50 Nick Coghlan wrote: > >> On 3 March 2018 at 06:55, Brett Cannon wrote: >> >>> I have a project idea, but before I start it I need to make sure that I >>> have the high-order steps necessary to go from `pip install pip=9.0.1` to >>> it actually ending up on disk. Now I'm only considered with >>> modern/bleeding-edge, spec-based stuff, so PEP 517/518 and no setup.py, etc. >>> >>> Anyway, if people can point out any steps the below outline is missing I >>> would appreciate it. Thanks! >>> >>> >>>1. Specify package requirement >>> 1. Translate name to PyPI-compatible name >>> 2. Tease out requirement details (e.g. version, markers, etc.) >>>2. Check if package is already installed >>> >>> >> Depending on the installer design, a local download/build cache may be >> checked before checking PyPI (and since you include a caching step later, >> you'll presumably want to cover the caching step as well). >> >> >>> >>>1. Check PyPI for package >>>2. Choose appropriate file >>> 1. Get list of files >>> 2. Calculate best-fitting wheel >>> 3. Fallback to .tar.gz sdist >>>3. Download file >>>4. If sdist: >>> 1. Extract >>> 2. Read pyproject.toml >>> 3. Create venv >>> 4. Install build dependencies >>> >>> >> After installing the static build dependencies, you also need to query for >> any dynamic build dependencies and install them if they're requested: >> https://www.python.org/dev/peps/pep-0517/#get-requires-for-build-wheel >> >> This build dependency installation step can get arbitrarily complicated if >> you allow build dependencies to be installed from source, so the initial >> implementation in pip requires that build dependencies already be available >> as wheel files (either on the index server or in the local artifact cache). >> >> Cheers, >> Nick. >> >> -- >> Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia >> >