Code Monkey home page Code Monkey logo

Comments (15)

di avatar di commented on June 27, 2024

@ncoghlan suggested that this field does not need to be defined in a PEP -- see https://mail.python.org/pipermail/distutils-sig/2016-June/029078.html

from peps.

 avatar commented on June 27, 2024

Thanks.

from peps.

 avatar commented on June 27, 2024

@agronholm

from peps.

ncoghlan avatar ncoghlan commented on June 27, 2024

To be completely clear, there is open work to be done in this area:

It's just meta-process work to make the process change clearer (including adding a cross-reference to the new home from PEP 345), rather than defining a new iteration of the metadata using the current process.

from peps.

agronholm avatar agronholm commented on June 27, 2024

So I take it that https://packaging.python.org/specifications/ is the canonical source of valid field names? Is somebody going to update the JSON schema for packaging metadata? Wheel's test suite started failing the moment this new field was introduced by a new setuptools release. How can we prevent this from happening in the future?

from peps.

agronholm avatar agronholm commented on June 27, 2024

Specifically this file here: https://github.com/python/peps/blob/master/pep-0426/pydist-schema.json
@ncoghlan this seems to be your file, so would you mind adding the new field there? I will then copy it over to the wheel codebase.

from peps.

ncoghlan avatar ncoghlan commented on June 27, 2024

PEP 426 isn't released yet - the metadata.json file defined by wheel is wholly under @dholth's control.

from peps.

agronholm avatar agronholm commented on June 27, 2024

Speaking of which – what's currently blocking that PEP?

from peps.

ncoghlan avatar ncoghlan commented on June 27, 2024

A credible belief on my part that it actually solves a real world problem in a way that will prompt people to invest their time and energy in implementing (I should really put it back to Deferred status on those grounds).

Specifically, I think we're likely to be better off just adding a command to pip to emit a JSON-ified version of the current metadata: pypa/pip#4691

from peps.

agronholm avatar agronholm commented on June 27, 2024

If that is the case, should wheel be writing that data to .dist-info in the first place, as it does now?

from peps.

ncoghlan avatar ncoghlan commented on June 27, 2024

Yes, projects are allowed to write arbitrary files to dist-info (that's by design). wheel calls it metadata.json because we've promised never to use that for any of the formal packaging specifications.

from peps.

tseaver avatar tseaver commented on June 27, 2024

@ncoghlan Without a PEP defining the new fields, how do we figure out what metadata version supports them?

from peps.

di avatar di commented on June 27, 2024

@tseaver My interpretation of the following line in the PyPA spec is that these fields are to be a continuation of version 1.2:

The current core metadata file format, version 1.2, is specified in PEP 345.

However, the version specifiers and environment markers sections of that PEP have been superceded as described below. In addition, metadata files are permitted to contain the following additional fields:

However I agree that it's not immediately clear -- I struggled with the same issue when making the pkginfo merge request.

I'd be happy to make a clarification to pypa/python-packaging-user-guide if @ncoghlan can clarify.

from peps.

ncoghlan avatar ncoghlan commented on June 27, 2024

@tseaver Feature detection - since readers are supposed to ignore-but-preserve fields they don't understand, publishers should be able to add the new fields without breaking anything (even in metadata 1.2).

However, I'm also thinking it may be worth doing a metadata 1.3 specifically to make all this clearer: https://mail.python.org/pipermail/distutils-sig/2017-September/031465.html

from peps.

merwok avatar merwok commented on June 27, 2024

The PEP has now been accepted.

from peps.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.