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

Fix specifier matching when the specifier is long and has an epoch #712

Merged
merged 1 commit into from Oct 2, 2023

Conversation

SpecLad
Copy link
Contributor

@SpecLad SpecLad commented Aug 26, 2023

_pad_version assumes that all components that aren't numeric are suffixes. But that assumption breaks when epoch numbers are present, because _version_split outputs a component like "2!1".

Fix the assumption by making _version_split separate the epoch number into its own component. Introduce _version_join to correctly join the output of _version_split back into a string, which is needed by _compare_compatible.

Fixes #683

`_pad_version` assumes that all components that aren't numeric are
suffixes. But that assumption breaks when epoch numbers are present,
because `_version_split` outputs a component like "2!1".

Fix the assumption by making `_version_split` separate the epoch number
into its own component. Introduce `_version_join` to correctly join
the output of `_version_split` back into a string, which is needed by
`_compare_compatible`.

Fixes pypa#683
@pradyunsg pradyunsg merged commit c52d2b3 into pypa:main Oct 2, 2023
30 checks passed
@SpecLad SpecLad deleted the epoch-spec branch October 2, 2023 00:55
lengau pushed a commit to canonical/charmcraft that referenced this pull request Mar 14, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [packaging](https://togithub.com/pypa/packaging) | `==23.2` ->
`==24.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/packaging/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/packaging/23.2/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/23.2/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pypa/packaging (packaging)</summary>

### [`v24.0`](https://togithub.com/pypa/packaging/releases/tag/24.0)

[Compare
Source](https://togithub.com/pypa/packaging/compare/23.2...24.0)

#### What's Changed

- Fix specifier matching when the specifier is long and has an epoch by
[@&#8203;SpecLad](https://togithub.com/SpecLad) in
[pypa/packaging#712
- Clarify version split/join usage by
[@&#8203;uranusjr](https://togithub.com/uranusjr) in
[pypa/packaging#725
- Default optional metadata values to None by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#734
- Stop using deprecated/removed keys by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#739
- Correctly use the ExceptionGroup shim only when needed by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#736
- Update CHANGELOG entry about `validate` kwarg by
[@&#8203;pradyunsg](https://togithub.com/pradyunsg) in
[pypa/packaging#731
- Support --disable-gil builds (PEP 703) in packaging.tags by
[@&#8203;colesbury](https://togithub.com/colesbury) in
[pypa/packaging#728
- Skip `test_glibc_version_string_ctypes_raise_oserror` if `ctypes` is
unavailable by [@&#8203;kevinchang96](https://togithub.com/kevinchang96)
in
[pypa/packaging#741
- Enable CodeQL by [@&#8203;joycebrum](https://togithub.com/joycebrum)
in
[pypa/packaging#743
- PEP 703: Rename `Py_NOGIL` to `Py_GIL_DISABLED` by
[@&#8203;hugovk](https://togithub.com/hugovk) in
[pypa/packaging#747
- Replace PEP references with PUG links by
[@&#8203;jeanas](https://togithub.com/jeanas) in
[pypa/packaging#750
- Remove coverage ignore for non-existent file by
[@&#8203;shenanigansd](https://togithub.com/shenanigansd) in
[pypa/packaging#752
- Update URLs by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#764
- Configure dependabot by
[@&#8203;joycebrum](https://togithub.com/joycebrum) in
[pypa/packaging#757
- Hash pin github actions by
[@&#8203;joycebrum](https://togithub.com/joycebrum) in
[pypa/packaging#758
- Apply some refurb suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#763
- Appply some bugbear suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#761
- Apply some ruff suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#772
- Add riscv64 as a supported manylinux architecture by
[@&#8203;markdryan](https://togithub.com/markdryan) in
[pypa/packaging#751

#### New Contributors

- [@&#8203;colesbury](https://togithub.com/colesbury) made their first
contribution in
[pypa/packaging#728
- [@&#8203;kevinchang96](https://togithub.com/kevinchang96) made their
first contribution in
[pypa/packaging#741
- [@&#8203;jeanas](https://togithub.com/jeanas) made their first
contribution in
[pypa/packaging#750
- [@&#8203;shenanigansd](https://togithub.com/shenanigansd) made their
first contribution in
[pypa/packaging#752
- [@&#8203;markdryan](https://togithub.com/markdryan) made their first
contribution in
[pypa/packaging#751

**Full Changelog**:
pypa/packaging@23.2...24.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC,
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/canonical/charmcraft).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzguMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
kodiakhq bot pushed a commit to cloudquery/plugin-sdk-python that referenced this pull request Apr 1, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [packaging](https://togithub.com/pypa/packaging) | major | `==23.2` -> `==24.0` |

---

### Release Notes

<details>
<summary>pypa/packaging (packaging)</summary>

### [`v24.0`](https://togithub.com/pypa/packaging/releases/tag/24.0)

[Compare Source](https://togithub.com/pypa/packaging/compare/23.2...24.0)

#### What's Changed

-   Fix specifier matching when the specifier is long and has an epoch by [@&#8203;SpecLad](https://togithub.com/SpecLad) in [pypa/packaging#712
-   Clarify version split/join usage by [@&#8203;uranusjr](https://togithub.com/uranusjr) in [pypa/packaging#725
-   Default optional metadata values to None by [@&#8203;dstufft](https://togithub.com/dstufft) in [pypa/packaging#734
-   Stop using deprecated/removed keys by [@&#8203;dstufft](https://togithub.com/dstufft) in [pypa/packaging#739
-   Correctly use the ExceptionGroup shim only when needed by [@&#8203;dstufft](https://togithub.com/dstufft) in [pypa/packaging#736
-   Update CHANGELOG entry about `validate` kwarg by [@&#8203;pradyunsg](https://togithub.com/pradyunsg) in [pypa/packaging#731
-   Support --disable-gil builds (PEP 703) in packaging.tags by [@&#8203;colesbury](https://togithub.com/colesbury) in [pypa/packaging#728
-   Skip `test_glibc_version_string_ctypes_raise_oserror` if `ctypes` is unavailable by [@&#8203;kevinchang96](https://togithub.com/kevinchang96) in [pypa/packaging#741
-   Enable CodeQL by [@&#8203;joycebrum](https://togithub.com/joycebrum) in [pypa/packaging#743
-   PEP 703: Rename `Py_NOGIL` to `Py_GIL_DISABLED` by [@&#8203;hugovk](https://togithub.com/hugovk) in [pypa/packaging#747
-   Replace PEP references with PUG links by [@&#8203;jeanas](https://togithub.com/jeanas) in [pypa/packaging#750
-   Remove coverage ignore for non-existent file by [@&#8203;shenanigansd](https://togithub.com/shenanigansd) in [pypa/packaging#752
-   Update URLs by [@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) in [pypa/packaging#764
-   Configure dependabot by [@&#8203;joycebrum](https://togithub.com/joycebrum) in [pypa/packaging#757
-   Hash pin github actions by [@&#8203;joycebrum](https://togithub.com/joycebrum) in [pypa/packaging#758
-   Apply some refurb suggestions by [@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) in [pypa/packaging#763
-   Appply some bugbear suggestions by [@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) in [pypa/packaging#761
-   Apply some ruff suggestions by [@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) in [pypa/packaging#772
-   Add riscv64 as a supported manylinux architecture by [@&#8203;markdryan](https://togithub.com/markdryan) in [pypa/packaging#751

#### New Contributors

-   [@&#8203;colesbury](https://togithub.com/colesbury) made their first contribution in [pypa/packaging#728
-   [@&#8203;kevinchang96](https://togithub.com/kevinchang96) made their first contribution in [pypa/packaging#741
-   [@&#8203;jeanas](https://togithub.com/jeanas) made their first contribution in [pypa/packaging#750
-   [@&#8203;shenanigansd](https://togithub.com/shenanigansd) made their first contribution in [pypa/packaging#752
-   [@&#8203;markdryan](https://togithub.com/markdryan) made their first contribution in [pypa/packaging#751

**Full Changelog**: pypa/packaging@23.2...24.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjI3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
holtskinner pushed a commit to GoogleCloudPlatform/generative-ai that referenced this pull request Apr 24, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [packaging](https://togithub.com/pypa/packaging) | `==23.2` ->
`==24.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/packaging/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/packaging/23.2/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/23.2/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pypa/packaging (packaging)</summary>

### [`v24.0`](https://togithub.com/pypa/packaging/releases/tag/24.0)

[Compare
Source](https://togithub.com/pypa/packaging/compare/23.2...24.0)

#### What's Changed

- Fix specifier matching when the specifier is long and has an epoch by
[@&#8203;SpecLad](https://togithub.com/SpecLad) in
[pypa/packaging#712
- Clarify version split/join usage by
[@&#8203;uranusjr](https://togithub.com/uranusjr) in
[pypa/packaging#725
- Default optional metadata values to None by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#734
- Stop using deprecated/removed keys by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#739
- Correctly use the ExceptionGroup shim only when needed by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#736
- Update CHANGELOG entry about `validate` kwarg by
[@&#8203;pradyunsg](https://togithub.com/pradyunsg) in
[pypa/packaging#731
- Support --disable-gil builds (PEP 703) in packaging.tags by
[@&#8203;colesbury](https://togithub.com/colesbury) in
[pypa/packaging#728
- Skip `test_glibc_version_string_ctypes_raise_oserror` if `ctypes` is
unavailable by [@&#8203;kevinchang96](https://togithub.com/kevinchang96)
in
[pypa/packaging#741
- Enable CodeQL by [@&#8203;joycebrum](https://togithub.com/joycebrum)
in
[pypa/packaging#743
- PEP 703: Rename `Py_NOGIL` to `Py_GIL_DISABLED` by
[@&#8203;hugovk](https://togithub.com/hugovk) in
[pypa/packaging#747
- Replace PEP references with PUG links by
[@&#8203;jeanas](https://togithub.com/jeanas) in
[pypa/packaging#750
- Remove coverage ignore for non-existent file by
[@&#8203;shenanigansd](https://togithub.com/shenanigansd) in
[pypa/packaging#752
- Update URLs by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#764
- Configure dependabot by
[@&#8203;joycebrum](https://togithub.com/joycebrum) in
[pypa/packaging#757
- Hash pin github actions by
[@&#8203;joycebrum](https://togithub.com/joycebrum) in
[pypa/packaging#758
- Apply some refurb suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#763
- Appply some bugbear suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#761
- Apply some ruff suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#772
- Add riscv64 as a supported manylinux architecture by
[@&#8203;markdryan](https://togithub.com/markdryan) in
[pypa/packaging#751

#### New Contributors

- [@&#8203;colesbury](https://togithub.com/colesbury) made their first
contribution in
[pypa/packaging#728
- [@&#8203;kevinchang96](https://togithub.com/kevinchang96) made their
first contribution in
[pypa/packaging#741
- [@&#8203;jeanas](https://togithub.com/jeanas) made their first
contribution in
[pypa/packaging#750
- [@&#8203;shenanigansd](https://togithub.com/shenanigansd) made their
first contribution in
[pypa/packaging#752
- [@&#8203;markdryan](https://togithub.com/markdryan) made their first
contribution in
[pypa/packaging#751

**Full Changelog**:
pypa/packaging@23.2...24.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/GoogleCloudPlatform/generative-ai).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
kartikeygupta24 pushed a commit to nitchandak/generative-ai that referenced this pull request May 3, 2024
)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [packaging](https://togithub.com/pypa/packaging) | `==23.2` ->
`==24.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/packaging/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/packaging/23.2/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/23.2/24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pypa/packaging (packaging)</summary>

### [`v24.0`](https://togithub.com/pypa/packaging/releases/tag/24.0)

[Compare
Source](https://togithub.com/pypa/packaging/compare/23.2...24.0)

#### What's Changed

- Fix specifier matching when the specifier is long and has an epoch by
[@&#8203;SpecLad](https://togithub.com/SpecLad) in
[pypa/packaging#712
- Clarify version split/join usage by
[@&#8203;uranusjr](https://togithub.com/uranusjr) in
[pypa/packaging#725
- Default optional metadata values to None by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#734
- Stop using deprecated/removed keys by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#739
- Correctly use the ExceptionGroup shim only when needed by
[@&#8203;dstufft](https://togithub.com/dstufft) in
[pypa/packaging#736
- Update CHANGELOG entry about `validate` kwarg by
[@&#8203;pradyunsg](https://togithub.com/pradyunsg) in
[pypa/packaging#731
- Support --disable-gil builds (PEP 703) in packaging.tags by
[@&#8203;colesbury](https://togithub.com/colesbury) in
[pypa/packaging#728
- Skip `test_glibc_version_string_ctypes_raise_oserror` if `ctypes` is
unavailable by [@&#8203;kevinchang96](https://togithub.com/kevinchang96)
in
[pypa/packaging#741
- Enable CodeQL by [@&#8203;joycebrum](https://togithub.com/joycebrum)
in
[pypa/packaging#743
- PEP 703: Rename `Py_NOGIL` to `Py_GIL_DISABLED` by
[@&#8203;hugovk](https://togithub.com/hugovk) in
[pypa/packaging#747
- Replace PEP references with PUG links by
[@&#8203;jeanas](https://togithub.com/jeanas) in
[pypa/packaging#750
- Remove coverage ignore for non-existent file by
[@&#8203;shenanigansd](https://togithub.com/shenanigansd) in
[pypa/packaging#752
- Update URLs by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#764
- Configure dependabot by
[@&#8203;joycebrum](https://togithub.com/joycebrum) in
[pypa/packaging#757
- Hash pin github actions by
[@&#8203;joycebrum](https://togithub.com/joycebrum) in
[pypa/packaging#758
- Apply some refurb suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#763
- Appply some bugbear suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#761
- Apply some ruff suggestions by
[@&#8203;DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos)
in
[pypa/packaging#772
- Add riscv64 as a supported manylinux architecture by
[@&#8203;markdryan](https://togithub.com/markdryan) in
[pypa/packaging#751

#### New Contributors

- [@&#8203;colesbury](https://togithub.com/colesbury) made their first
contribution in
[pypa/packaging#728
- [@&#8203;kevinchang96](https://togithub.com/kevinchang96) made their
first contribution in
[pypa/packaging#741
- [@&#8203;jeanas](https://togithub.com/jeanas) made their first
contribution in
[pypa/packaging#750
- [@&#8203;shenanigansd](https://togithub.com/shenanigansd) made their
first contribution in
[pypa/packaging#752
- [@&#8203;markdryan](https://togithub.com/markdryan) made their first
contribution in
[pypa/packaging#751

**Full Changelog**:
pypa/packaging@23.2...24.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/GoogleCloudPlatform/generative-ai).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

different result of '_compare_equal' prefix match with epoch
3 participants