GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — PEP 440 Implementation by dstufft · Pull Request #1 · pypa/packaging

Conversation

@dstufft

@dstufft dstufft commented May 19, 2014

Copy link
Copy Markdown
Member

TODO

  • Sort local versions using the PEP sort order.
  • Figure out where exactly prefix operators are valid (issue).
  • Figure out if ~=N is a valid operator (issue).
  • Don't allow ~=N.
  • Document the spec? Maybe just linking to PEP 440 is enough?
  • Write a contrib script that will test versions on PyPI against Version() and Version.suggest().
  • Write a contrib script that will test version sorting on PyPI against how we sort then and how pkg_resources sorts them.
  • Implement Version.suggest().
  • Implement Version().is_prerelease or something similar.
  • Ensure all of the specifiers sanely handle Epoch versions.
  • Convert local versions to use + as a separator rather than ~. See issue.
  • Disallow a prefix match after a .devN segment (e.g. ==1.0.dev1.*).
  • Implement extra normalization steps to increase compatibility.
  • Implement ===<anything> which can be used as an escape hatch for non conformant versions.

Pending PEP Updates

  • Local versions are alphanumeric and .
  • Disallow "top level" ~= like ~=1.
  • Removal of default comparison operator
  • Removal of parentheses and returning to the pkg_resources style.
  • rc and c equivalency.
  • Use + instead of ~ for local versions.
  • Disallow a prefix match after a .devN segment (e.g. ==1.0.dev1.*).
  • Document extra normalization steps to increase compatibility.
  • Document the ===<anything> escape hatch.
  • Do not move the local version into a Wheel build number.
  • Figure out how all of our characters map into filenames in current packaging tools.
  • Update the compatibility statistics.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
qwcode
qwcode reviewed May 19, 2014
View reviewed changes
Comment thread packaging/version.py Outdated

@qwcode qwcode May 19, 2014

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

more than just sorting, the fact that you're allowing letters at all.
the spec is written to only support -N[.N]+], although there was a recent conversation to change that.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@dstufft dstufft May 19, 2014

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Nah - https://bitbucket.org/pypa/pypi-metadata-formats/commits/060127ad5a827a903a87586e4b42930121cf47a0

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@dstufft dstufft May 19, 2014

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I mean gosh, it's a whole 2 days old, keep up! ;)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@qwcode qwcode May 19, 2014

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

ok, that hasn't made it up to the PEP page yet.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@qwcode qwcode May 19, 2014

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I had brought it up recently here: https://mail.python.org/pipermail/distutils-sig/2014-May/024185.html

so I figured an update was coming.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@dstufft dstufft mentioned this pull request Jun 25, 2014
PEP 440 Version and Specifiers pypa/pip#1894
Merged
dstufft added 16 commits July 3, 2014 19:16
@dstufft
Require 100% test coverage
7a194d1
@dstufft
Implement PEP 440 versions
fbd039c
@dstufft
Implement PEP 440 specifiers
55c58bc
@dstufft
Create an invoke task to check PEP440 compliance with PyPI
edb18dd
@dstufft
Allow alternative syntax for backwards compatability
c96bae1
@dstufft
Allow identity comparisons, even for non PEP 440 compliant versions
8fc910b
@dstufft
Normalize post releases like pre-releases and development releases
77eee20
@dstufft
Do not throw away trailing digits for representation
4b016f0
Instead of normalizing 1.0 to 1, we'll continue to keep all of the
digits that a version normally contains so we can more faithfully
recreate it. The compare key will still continue to drop trailing
zeros for comparing versions.
@dstufft
Fix the normalization of letter versions and local versions
314effa
@dstufft
Switch from : to ! to denote an Epoch
6e3268a
The : character has special connotations on Windows, which makes it
an invalid character, so we'll use ! instead which is not an invalid
character.
@dstufft
Allow empty specifiers
c26a427
@dstufft
Implement LegacyVersion which can support arbitrary versions
854565a
@dstufft
Rename identity to arbitrary and assure it operates on strings
38ddbb1
@dstufft
Refactor normalization to handle LegacyVersion
a356cc9
@dstufft
Relax the syntax of versions to better parse more versions
4fc2f3e
@dstufft
Allow the implicit post release syntax (e.g. 1.0-5)
8de22d1
alex
alex reviewed Aug 8, 2014
View reviewed changes
Comment thread tox.ini Outdated

@alex alex Aug 8, 2014

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

You should put the exclude in the flake8 section so that people can just run flake8 on the CLI.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@dstufft dstufft Aug 8, 2014

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

The reason I did this, was at the time the tasks were Python 3 only. That might not actually be the case anymore though.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@dstufft
Make the invoke tasks run on Python 2.x as well as Python 3.x
44aec39
merwok
merwok reviewed Aug 9, 2014
View reviewed changes
Comment thread docs/version.rst

@merwok merwok Aug 9, 2014

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

IIRC the things in parens in a Sphinx class definition should be base classes, not arguments for init.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@dstufft dstufft Aug 26, 2014

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

http://sphinx-doc.org/domains.html#directive-py:class seems to indicate otherwise!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
dstufft added a commit that referenced this pull request Aug 26, 2014
@dstufft
Merge pull request #1 from pypa/pep440
affaa73
[WIP] PEP 440 Implementation
@dstufft
dstufft merged commit affaa73 into master Aug 26, 2014
@dstufft
dstufft deleted the pep440 branch August 26, 2014 22:06
@dstufft dstufft changed the title [WIP] PEP 440 Implementation PEP 440 Implementation Aug 26, 2014
dstufft added a commit that referenced this pull request Aug 26, 2014
@dstufft
Merge pull request #1 from pypa/pep440
0d92c43
PEP 440 Implementation
@riccardomurri riccardomurri mentioned this pull request Jan 21, 2016
Problem installing from GitHub owing to old setuptools on CentOS elasticluster/elasticluster#227
Closed
@Aof8888

This comment was marked as spam.

Sign in to view
@shenanigansd shenanigansd mentioned this pull request Dec 19, 2023
Remove coverage ignore for non-existent file #752
Merged
pradyunsg pushed a commit that referenced this pull request Dec 19, 2023
@shenanigansd
Remove coverage ignore for non-existent file (#752)
7698237
The ignore was added in #1, and was migrated from `.coveragerc` to the `pyproject.toml` in #586, even though the file had already been deleted over a year ago in #376.

Since the file no longer exists, the ignore should just be removed.
brettcannon added a commit that referenced this pull request Jan 12, 2024
@joycebrum @step-security-bot @brettcannon
[StepSecurity] ci: Harden GitHub Actions (#1) (#758)
d0067e9
Signed-off-by: StepSecurity Bot <[email protected]>
Co-authored-by: StepSecurity Bot <[email protected]>
Co-authored-by: Brett Cannon <[email protected]>
@henryiii henryiii mentioned this pull request Jul 10, 2026
Add VersionRange.to_specifier_set #1270
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@dstufft @Aof8888 @alex @merwok @qwcode
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.