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 ReadTheDocs builds #83

Merged
merged 3 commits into from
Dec 5, 2023
Merged

Conversation

kurtmckee
Copy link
Contributor

ReadTheDocs builds have been failing since September because a .readthedocs.yaml file is required (final build failure, config file docs).

This PR introduces the following changes:

  • Add a .readthedocs.yaml file
    This upgrades the ReadTheDocs builds from Sphinx 1.8 to Sphinx 7.2.

  • Add a tox environment that will build the documentation.
    Warnings are escalated to errors, and nitpick mode is enabled.

  • Resolve documentation build problems identified by the newer Sphinx version and nitpick mode.
    Most issues were autodoc class resolution issues. However, autodoc doesn't understand Self.
    autodoc's typehinted function annotations had to be disabled as a result.

  • Add a doc build job in CI.
    This targets the same environment (OS and Python version) that ReadTheDocs is configured to use.

Thanks for your work on pathspec!

Most issues boil down to "bad reference or typo".
Some were rendering differences between Sphinx 7.2
and the ancient Sphinx 1.8 version ReadTheDocs defaults to
when there isn't a `.readthedocs.yaml` file.
@cpburnz
Copy link
Owner

cpburnz commented Dec 5, 2023

Thanks for discovering this issue, and providing a fix for it.

@cpburnz cpburnz merged commit 0447b02 into cpburnz:master Dec 5, 2023
1 of 25 checks passed
@kurtmckee kurtmckee deleted the fix-read-the-docs-builds branch December 5, 2023 02:43
@kurtmckee
Copy link
Contributor Author

You're welcome!

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Dec 11, 2023
0.12.0 (2023-12-09)
-------------------

Major changes:

- Dropped support of EOL Python 3.7. See `Pull #82`_.


API changes:

- Signature of protected method `pathspec.pathspec.PathSpec._match_file()` has been changed from `def _match_file(patterns: Iterable[Pattern], file: str) -> bool` to `def _match_file(patterns: Iterable[Tuple[int, Pattern]], file: str) -> Tuple[Optional[bool], Optional[int]]`.

New features:

- Added `pathspec.pathspec.PathSpec.check_*()` methods. These methods behave similarly to `.match_*()` but return additional information in the `pathspec.util.CheckResult` objects (e.g., `CheckResult.index` indicates the index of the last pattern that matched the file).
- Added `pathspec.pattern.RegexPattern.pattern` attribute which stores the original, uncompiled pattern.

Bug fixes:

- `Issue #81`_: GitIgnoreSpec behaviors differ from git.
- `Pull #83`_: Fix ReadTheDocs builds.

Improvements:

- Mark Python 3.12 as supported. See `Pull #82`_.
- Improve test debugging.
- Improve type hint on *on_error* parameter on `pathspec.pathspec.PathSpec.match_tree_entries()`.
- Improve type hint on *on_error* parameter on `pathspec.util.iter_tree_entries()`.


.. _`Issue #81`: cpburnz/python-pathspec#81
.. _`Pull #82`: cpburnz/python-pathspec#82
.. _`Pull #83`: cpburnz/python-pathspec#83
lengau referenced this pull request in canonical/charmcraft Jan 4, 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 |
|---|---|---|---|---|---|
| [pathspec](https://togithub.com/cpburnz/python-pathspec) | `==0.11.2`
-> `==0.12.1` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pathspec/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pathspec/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pathspec/0.11.2/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pathspec/0.11.2/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>cpburnz/python-pathspec (pathspec)</summary>

###
[`v0.12.1`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0121-2023-12-10)

[Compare
Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.12.0...v0.12.1)

Bug fixes:

- `Issue #&#8203;84`\_: PathSpec.match_file() returns None since 0.12.0.

.. \_`Issue #&#8203;84`:
[https://github.com/cpburnz/python-pathspec/issues/84](https://togithub.com/cpburnz/python-pathspec/issues/84)

###
[`v0.12.0`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0120-2023-12-09)

[Compare
Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.11.2...v0.12.0)

Major changes:

-   Dropped support of EOL Python 3.7. See `Pull #&#8203;82`\_.

API changes:

- Signature of protected method
`pathspec.pathspec.PathSpec._match_file()` (with a leading underscore)
has been changed from `def _match_file(patterns: Iterable[Pattern],
file: str) -> bool` to `def _match_file(patterns: Iterable[Tuple[int,
Pattern]], file: str) -> Tuple[Optional[bool], Optional[int]]`.

New features:

- Added `pathspec.pathspec.PathSpec.check_*()` methods. These methods
behave similarly to `.match_*()` but return additional information in
the `pathspec.util.CheckResult` objects (e.g., `CheckResult.index`
indicates the index of the last pattern that matched the file).
- Added `pathspec.pattern.RegexPattern.pattern` attribute which stores
the original, uncompiled pattern.

Bug fixes:

-   `Issue #&#8203;81`\_: GitIgnoreSpec behaviors differ from git.
-   `Pull #&#8203;83`\_: Fix ReadTheDocs builds.

Improvements:

-   Mark Python 3.12 as supported. See `Pull #&#8203;82`\_.
-   Improve test debugging.
- Improve type hint on *on_error* parameter on
`pathspec.pathspec.PathSpec.match_tree_entries()`.
- Improve type hint on *on_error* parameter on
`pathspec.util.iter_tree_entries()`.

.. \_`Issue #&#8203;81`:
[https://github.com/cpburnz/python-pathspec/issues/81](https://togithub.com/cpburnz/python-pathspec/issues/81)
.. \_`Pull #&#8203;82`:
[https://github.com/cpburnz/python-pathspec/pull/82](https://togithub.com/cpburnz/python-pathspec/pull/82)
.. \_`Pull #&#8203;83`:
[https://github.com/cpburnz/python-pathspec/pull/83](https://togithub.com/cpburnz/python-pathspec/pull/83)

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
shaldengeki referenced this pull request in shaldengeki/py_proto Feb 14, 2024
Bumps [pathspec](https://github.com/cpburnz/python-pathspec) from 0.10.2
to 0.12.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cpburnz/python-pathspec/releases">pathspec's
releases</a>.</em></p>
<blockquote>
<h2>v0.12.1</h2>
<p>Release v0.12.1. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.12.1/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.12.0</h2>
<p>Release v0.12.0. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.12.0/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.11.2</h2>
<p>Release v0.11.2. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.11.2/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.11.1</h2>
<p>Release v0.11.1. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.11.1/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.11.0</h2>
<p>Release v0.11.0. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.11.0/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.10.3</h2>
<p>Release v0.10.3. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.10.3/CHANGES.rst">CHANGES.rst</a>.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst">pathspec's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.1 (2023-12-10)</h2>
<p>Bug fixes:</p>
<ul>
<li><code>Issue
[#84](https://github.com/cpburnz/python-pathspec/issues/84)</code>_:
PathSpec.match_file() returns None since 0.12.0.</li>
</ul>
<p>.. _<code>Issue
[#84](https://github.com/cpburnz/python-pathspec/issues/84)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/issues/84">cpburnz/python-pathspec#84</a></p>
<h2>0.12.0 (2023-12-09)</h2>
<p>Major changes:</p>
<ul>
<li>Dropped support of EOL Python 3.7. See <code>Pull
[#82](https://github.com/cpburnz/python-pathspec/issues/82)</code>_.</li>
</ul>
<p>API changes:</p>
<ul>
<li>Signature of protected method
<code>pathspec.pathspec.PathSpec._match_file()</code> (with a leading
underscore) has been changed from <code>def _match_file(patterns:
Iterable[Pattern], file: str) -&gt; bool</code> to <code>def
_match_file(patterns: Iterable[Tuple[int, Pattern]], file: str) -&gt;
Tuple[Optional[bool], Optional[int]]</code>.</li>
</ul>
<p>New features:</p>
<ul>
<li>Added <code>pathspec.pathspec.PathSpec.check_*()</code> methods.
These methods behave similarly to <code>.match_*()</code> but return
additional information in the <code>pathspec.util.CheckResult</code>
objects (e.g., <code>CheckResult.index</code> indicates the index of the
last pattern that matched the file).</li>
<li>Added <code>pathspec.pattern.RegexPattern.pattern</code> attribute
which stores the original, uncompiled pattern.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><code>Issue
[#81](https://github.com/cpburnz/python-pathspec/issues/81)</code>_:
GitIgnoreSpec behaviors differ from git.</li>
<li><code>Pull
[#83](https://github.com/cpburnz/python-pathspec/issues/83)</code>_: Fix
ReadTheDocs builds.</li>
</ul>
<p>Improvements:</p>
<ul>
<li>Mark Python 3.12 as supported. See <code>Pull
[#82](https://github.com/cpburnz/python-pathspec/issues/82)</code>_.</li>
<li>Improve test debugging.</li>
<li>Improve type hint on <em>on_error</em> parameter on
<code>pathspec.pathspec.PathSpec.match_tree_entries()</code>.</li>
<li>Improve type hint on <em>on_error</em> parameter on
<code>pathspec.util.iter_tree_entries()</code>.</li>
</ul>
<p>.. _<code>Issue
[#81](https://github.com/cpburnz/python-pathspec/issues/81)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/issues/81">cpburnz/python-pathspec#81</a>
.. _<code>Pull
[#82](https://github.com/cpburnz/python-pathspec/issues/82)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/pull/82">cpburnz/python-pathspec#82</a>
.. _<code>Pull
[#83](https://github.com/cpburnz/python-pathspec/issues/83)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/pull/83">cpburnz/python-pathspec#83</a></p>
<h2>0.11.2 (2023-07-28)</h2>
<p>New features:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/6485791e1b5cf2ef4e756ae392fa80f2c5045d4c"><code>6485791</code></a>
Release v0.12.1</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/81368adefcf18b97457958cb50bb04785e63cc6e"><code>81368ad</code></a>
Fix issue <a
href="https://redirect.github.com/cpburnz/python-pathspec/issues/84">#84</a></li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/37e289515fbae7e92077a2438996046e79cae5bf"><code>37e2895</code></a>
Release v0.12.0</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/f6bfc89d56734589c0a6e9737413b849b49705ac"><code>f6bfc89</code></a>
Fix docs build</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/101e6284b77a1a38cf1fff70075cc660d4119e0f"><code>101e628</code></a>
Fix doc build</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/42bee7699ceaac630dd67fbb07a7a015dc53e8d1"><code>42bee76</code></a>
Fix Python 3.8 regression</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/5fda810ef51900b7d46a728d247a7f70cb6543cd"><code>5fda810</code></a>
Fix issue 81</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/5bd2db7bd2125475a3396a4547d0c0eb418b88a2"><code>5bd2db7</code></a>
Improve debugging</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/f092e3248bdc7c80bfdfce20f0a0c660f8caf2e6"><code>f092e32</code></a>
Improve debugging</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/67ddd73f790b77445868e05ee0b9305fc87c6db9"><code>67ddd73</code></a>
DEV</li>
<li>Additional commits viewable in <a
href="https://github.com/cpburnz/python-pathspec/compare/v0.10.2...v0.12.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pathspec&package-manager=pip&previous-version=0.10.2&new-version=0.12.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
gregory-schiano referenced this pull request in gregory-schiano/charmcraft Feb 26, 2024
commit 26e3f02c3be49a92bb1d6ab65f9f0e79f5578d83
Author: Schiano Grégory <114007538+gregory-schiano@users.noreply.github.com>
Date:   Mon Feb 26 18:28:57 2024 +0100

    fix: Pass missing experimental flag when running pack (#1545)

    When running pack the experimental extensions environment variable is
    not passed anymore to the provider environment leading to pack errors if
    using an extensions that requires it

commit ca24c98d55f2e171f9e77e6e3dec7c7a3726778d
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 22 15:18:47 2024 -0500

    test: remove FS side-effects from package tests (#1539)

commit d531c104934933ba145516073f9f20761e24b73f
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 22 14:37:48 2024 -0500

    test: add regression test for manila charm (#1541)

    See: https://github.com/canonical/charmcraft/issues/1488

commit 07a3060e62b351f76fb6ab54ad3718d602160893
Author: Ben Hoyt <ben.hoyt@canonical.com>
Date:   Fri Feb 23 07:49:39 2024 +1300

    fix(templates): use more explicit __init__ param types (#1477)

    This is the style we've been advocating recently, so update the charm
    templates to this. It's more explicit and type-safe (and we can't change
    the signature of `CharmBase.__init__` without breaking things anyway, so
    `*args` is no safer), and allows the use of `framework` directly in the
    observe calls.

commit 97fa92297397a8751cda2515bb8858207e44e428
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 22 12:33:48 2024 -0500

    refactor: remove old "init" command implementation (#1520)

    This is no longer necessary after the craft-application transition

commit 17669e12109a303ff494c911b991429a20ab278b
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 22 11:29:48 2024 -0500

    tests(spread): don't use microk8s for dependencies tests (#1522)

    Requires: #1521

commit 5e3b927c04e6f46817b37c0ab02143de9a7aa4de
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 22 10:33:05 2024 -0500

    chore: replace most lifecycle commands with upstream ones (#1538)

    Work towards #1532

    After this we still need to extend the pack command from upstream.

commit f3f82031f001eea97798b092256bc35abb67a94a
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 22 09:22:56 2024 -0500

    fix: template integration tests (#1540)

    see: #1468

commit fdf24383dcd69febe3daa1473b77a37c0a3444c4
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Feb 21 20:30:33 2024 -0500

    ci: always discard spread runners (#1519)

    A direct copy of:
    https://github.com/snapcore/snapcraft/blob/main/.github/workflows/spread.yml#L117

commit 016615729e6b4634e5db2560819307225740d404
Author: deusebio <edeusebio85@gmail.com>
Date:   Wed Feb 21 08:58:13 2024 -0800

    feat: add linter checks for naming conventions (#1487)

    This PR provides extra checks for compliance of configuration options,
    action names and action parameters with respect to use hyphens instead
    of snake case when composite/compound keys are used.

    The checks follows [this
    guideline](https://juju.is/docs/sdk/styleguide#heading--naming).

    In general, we raise warning, although I believe that charms should
    provide strong consistency on the naming scheme adopted within the
    charm. So if one uses mixed contentions (some keys have hyphens and
    others have snake case), I would believe it is fair to error out. This
    could be by passed by using `--force`, but that would produce a strong
    nudge on charmers to NOT mix the two conventions.

commit f80f2cd4cfeb1fc1c7fa05fefc1315cef216ff2a
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Feb 20 17:22:35 2024 -0500

    chore(deps): update dependency cryptography to v42.0.2 (#1529)

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

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [cryptography](https://togithub.com/pyca/cryptography)
    ([changelog](https://cryptography.io/en/latest/changelog/)) | `==42.0.1`
    -> `==42.0.2` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/cryptography/42.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/cryptography/42.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/cryptography/42.0.1/42.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/cryptography/42.0.1/42.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |

    Issue summary: Processing a maliciously formatted PKCS12 file may lead
    OpenSSL
    to crash leading to a potential Denial of Service attack

    Impact summary: Applications loading files in the PKCS12 format from
    untrusted
    sources might terminate abruptly.

    A file in PKCS12 format can contain certificates and keys and may come
    from an
    untrusted source. The PKCS12 specification allows certain fields to be
    NULL, but
    OpenSSL does not correctly check for this case. This can lead to a NULL
    pointer
    dereference that results in OpenSSL crashing. If an application
    processes PKCS12
    files from an untrusted source using the OpenSSL APIs then that
    application will
    be vulnerable to this issue.

    OpenSSL APIs that are vulnerable to this are: PKCS12_parse(),
    PKCS12_unpack_p7data(), PKCS12_unpack_p7encdata(),
    PKCS12_unpack_authsafes()
    and PKCS12_newpass().

    We have also fixed a similar issue in SMIME_write_PKCS7(). However since
    this
    function is related to writing data we do not consider it security
    significant.

    The FIPS modules in 3.2, 3.1 and 3.0 are not affected by this issue.

    ---

    <details>
    <summary>pyca/cryptography (cryptography)</summary>
    [`v42.0.2`](https://togithub.com/pyca/cryptography/compare/42.0.1...42.0.2)

    [Compare
    Source](https://togithub.com/pyca/cryptography/compare/42.0.1...42.0.2)

    </details>

    ---

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

    🚦 **Automerge**: Enabled.

    ♻ **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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 75722ace3bfdb43071f7ba3ca6446d621e876667
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Sun Feb 18 18:50:00 2024 -0500

    ci: group dev dependencies in renovate (#1523)

commit 6374ef9e1b6d6f88d7a048e63bb91b633b44c09b
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Feb 16 12:03:36 2024 -0500

    build: enable pyright (#1525)

commit ccdd6015356ac50fa5b0dabb3e729c62b2a59b9a
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Feb 16 11:08:33 2024 -0500

    ci: reduce spread 18.04 runners and increase 22.04 runners (#1526)

    Doing this because we barely test anything on 18.04 anymore, but 22.04
    has many tests.

commit 33854f04512f23be1ebbbc8eeae853ac79b27c27
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 15 18:55:48 2024 -0500

    build: update ruff settings (#1517)

commit 9988b7dbf359a9d9e89f4b40a988e898e94f4182
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 15 18:00:20 2024 -0500

    fix(package): don't write a metadata.yaml if it already exists. (#1524)

commit 9c98b3995d9500d967288de840fbb0bd4ca2a56c
Author: Sergio Schvezov <sergio.schvezov@canonical.com>
Date:   Thu Feb 15 18:58:51 2024 -0300

    ci(spread): limit github runners to spread-installed label (#1510)

    Fixes #1463

    Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
    Co-authored-by: Callahan <callahan.kovacs@canonical.com>
    Co-authored-by: Alex Lowe <alex.lowe@canonical.com>

commit d41216ca65f96b33164b27a0b42e5793a4dcb0d1
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 15 13:46:52 2024 -0500

    tests(spread): fix multipass provider for 22.04 (#1521)

commit 477762453f6194f6b5066925dd821b4a553b1cc4
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Feb 13 19:44:26 2024 -0500

    chore(deps): update dependency hypothesis to v6.98.3 (#1516)

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

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [hypothesis](https://hypothesis.works)
    ([source](https://togithub.com/HypothesisWorks/hypothesis/tree/HEAD/hypothesis-python),
    [changelog](https://togithub.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/docs/changes.rst))
    | `==6.97.1` -> `==6.98.3` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/hypothesis/6.98.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/hypothesis/6.98.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/hypothesis/6.97.1/6.98.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/hypothesis/6.97.1/6.98.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit c3ae865e2d1ec5837eb5d6c74b50213a2a9023fa
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Feb 13 10:57:00 2024 -0500

    refactor: remove non craft-application analyze command (#1419)

commit bdb435d2214f7af7264466281c2ac686aa4c020c
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Fri Feb 9 19:44:33 2024 +0000

    chore(deps): update internal packages

commit c3e6253cf0402eaae6720ad67f96f6103a17cf9c
Author: Sergio Schvezov <sergio.schvezov@canonical.com>
Date:   Fri Feb 9 16:44:03 2024 -0300

    ci: use GH/JIRA integration bot (#1515)

    Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

commit 418e8ff72f9b38f477f7cadd2a76c9476bb0b395
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 8 21:28:03 2024 -0500

    test: make init tox test more informative (#1507)

    This PR was created to find the source of #1508, but it will be useful
    for other failures too.

commit c1b004fdd4686f3e04d74e3e7d166f42469753cb
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 8 19:59:53 2024 -0500

    test: rename fake extensions (#1506)

    Classes that aren't used for test organisation shouldn't start with
    `Test`. Pytest 8 breaks if they do.

commit addb160e639e930f9bdadede847c8f361b00a0d2
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 8 18:13:31 2024 -0500

    ci: update macos runners (#1511)

    Following the GitHub runner roadmap:
    https://github.com/actions/runner-images/issues/9255

    fixes #1508

commit 560436f06b2f5de93f7dbf36bdcf5328706cb1a9
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Feb 6 20:44:38 2024 -0500

    docs: make badges only use what's actually on main (#1505)

    Currently PRs to main are included in those badges, meaning that if
    tests fail on those PRs it shows failing.

commit 49be52f34da2c74fb6d3165d4c0c6fdd150a11c9
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Feb 6 09:35:16 2024 -0500

    test: ignore failing init test on macos 11 (#1509)

    This is a temporary workraound for #1508, to allow CI to pass while
    we're figuring it out.

    (snap build failures are due to launchpad's current outage)

commit 40044dc7f9d5779d4530ccec89d7b3b05c5a36e3
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Thu Feb 1 15:00:08 2024 -0500

    chore(deps): update github actions (major) (#1452)

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

    This PR contains the following updates:

    | Package | Type | Update | Change |
    |---|---|---|---|
    | [actions/setup-python](https://togithub.com/actions/setup-python) |
    action | major | `v4` -> `v5` |
    | [github/codeql-action](https://togithub.com/github/codeql-action) |
    action | major | `v2` -> `v3` |

    ---

    <details>
    <summary>actions/setup-python (actions/setup-python)</summary>

    [Compare
    Source](https://togithub.com/actions/setup-python/compare/v4...v5)

    </details>

    <details>
    <summary>github/codeql-action (github/codeql-action)</summary>

    [Compare
    Source](https://togithub.com/github/codeql-action/compare/v2...v3)

    </details>

    ---

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

    🚦 **Automerge**: Enabled.

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

    👻 **Immortal**: This PR will be recreated if closed unmerged. Get
    [config help](https://togithub.com/renovatebot/renovate/discussions) if
    that's undesired.

    ---

    - [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTUzLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit b0d83244ba80d03cb24c005301c9e36620ad7dcd
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Feb 1 11:10:03 2024 -0500

    ci(deps): don't let Renovate update Windows (#1501)

commit c545a05f38d1f5f75762a073589bcf64d754970e
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 31 17:30:31 2024 -0500

    build(deps): update dependencies (#1493)

commit ae4ee446049207599912070c8f46ee40d5cf8a0d
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 31 15:30:06 2024 -0500

    test(spread): disable centos spread test (#1503)

commit 0fc289f449137ab78e5ea5c4b61b09c28298faa8
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 31 09:30:31 2024 -0500

    test(spread): replace lunar test with mantic (#1500)

commit 15273c6b7148652ea490cbaa2726ebd1e50cff34
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Jan 30 18:39:59 2024 -0500

    style(autoformat): update black to 2024 (#1491)

    Changes to .py are entirely done by black

commit 903bd600cc76f8f326f4682ec608379c4f68abfa
Merge: b6e26ca f1275a5
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Jan 30 17:18:31 2024 -0500

    chore: merge hotfix/2.5 to main

commit f1275a5df95937dcf7855133501247940dfec533
Merge: bed3656 b6e26ca
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Jan 30 14:06:50 2024 -0500

    Merge branch 'main' into hotfix-merge/2.5.5

commit bed36566b1f69d5fecd6abee6d6e2b2f5106de53
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Jan 30 11:04:15 2024 -0500

    style: ruff autoformat

commit 42793716d22c81907b2894d2eb90ed63265d0074
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Jan 30 11:01:33 2024 -0500

    test(spread): disable almalinux tests

    See: https://github.com/canonical/charmcraft/issues/1496

commit b6e26ca80fe8a95adbfe64da811480ab909670bf
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Jan 22 01:13:44 2024 +0000

    chore(deps): update bugfixes

commit f1650e767bb5e8793e9afe391789b6e226af6143
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Jan 19 10:05:38 2024 -0600

    fix(builder): don't rely on part names (#1485)

    Fixes #1439

commit ea3a500da029c58a8a9dfc7f4e8cb1f7c6601d6b
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 17 09:57:23 2024 -0600

    fix(linters): ensure CheckResult text isn't None (#1483)

commit 8a8ec393d1c8e4768f18c81a7bbf87b2e0272ee6
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 17 09:56:29 2024 -0600

    fix(spread): run tox in lifecycle spread test (#1484)

    Fixes #1471

commit 3676ea8dab2a7a99e49c0962ac1b18401196159e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Jan 16 14:44:26 2024 -0500

    chore(deps): update dependency types-setuptools to v69 (#1451)

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

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [types-setuptools](https://togithub.com/python/typeshed)
    ([changelog](https://togithub.com/typeshed-internal/stub_uploader/blob/main/data/changelogs/setuptools.md))
    | `==68.2.0.0` -> `==69.0.0.20240106` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/types-setuptools/69.0.0.20240106?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/types-setuptools/69.0.0.20240106?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/types-setuptools/68.2.0.0/69.0.0.20240106?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/types-setuptools/68.2.0.0/69.0.0.20240106?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTIxLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 67f314a1f26d95846fadb7f8dda7ffd0823f7784
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Jan 16 11:01:19 2024 -0600

    fix(templates): put example config sections on all templates (#1476)

commit c7c724f5c4c49b26725550acead26d43cee0ad2e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Wed Jan 10 18:55:21 2024 -0500

    chore(deps): update dependency platformdirs to v4 (#1450)

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

    This PR contains the following updates:

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

    ---

    <details>
    <summary>platformdirs/platformdirs (platformdirs)</summary>
    [`v4.1.0`](https://togithub.com/platformdirs/platformdirs/releases/tag/4.1.0)

    [Compare
    Source](https://togithub.com/platformdirs/platformdirs/compare/4.0.0...4.1.0)

    <!-- Release notes generated using configuration in .github/release.yml
    at main -->

    - Update changelog for 4.0.0 by
    [@&#8203;rafalkrupinski](https://togithub.com/rafalkrupinski) in
    [https://github.com/platformdirs/platformdirs/pull/242](https://togithub.com/platformdirs/platformdirs/pull/242)
    - docs: fix Linux user_log_dir example in README by
    [@&#8203;dbohdan](https://togithub.com/dbohdan) in
    [https://github.com/platformdirs/platformdirs/pull/245](https://togithub.com/platformdirs/platformdirs/pull/245)
    - Drop support for EOL Python 3.7 by
    [@&#8203;hugovk](https://togithub.com/hugovk) in
    [https://github.com/platformdirs/platformdirs/pull/246](https://togithub.com/platformdirs/platformdirs/pull/246)

    - [@&#8203;rafalkrupinski](https://togithub.com/rafalkrupinski) made
    their first contribution in
    [https://github.com/platformdirs/platformdirs/pull/242](https://togithub.com/platformdirs/platformdirs/pull/242)
    - [@&#8203;dbohdan](https://togithub.com/dbohdan) made their first
    contribution in
    [https://github.com/platformdirs/platformdirs/pull/245](https://togithub.com/platformdirs/platformdirs/pull/245)

    **Full Changelog**:
    https://github.com/platformdirs/platformdirs/compare/4.0.0...4.1.0
    [`v4.0.0`](https://togithub.com/platformdirs/platformdirs/blob/HEAD/CHANGES.rst#platformdirs-400-2023-11-10)

    [Compare
    Source](https://togithub.com/platformdirs/platformdirs/compare/3.11.0...4.0.0)

    - UNIX: revert site_cache_dir to use `/var/cache` instead of `/var/tmp`

    </details>

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 67aa3de5d1598cb455e77a740239649423eebe0a
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 10 17:25:30 2024 -0500

    feat(store): set-resource-architectures command (#1470)

    Adds a command to set the architectures of an existing resource
    revision.

    ---------

    Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

commit 866f6740d39470f78a413868f8e1e338bf38eb82
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Mon Jan 8 10:40:27 2024 -0500

    ci(deps): update upload-artifact action (#1466)

    This update has a breaking change that each workflow needs separate
    jobs.

    See: https://github.com/actions/upload-artifact#breaking-changes

commit dc6853eecb6880640580bce2e4eca110a09a3761
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Jan 5 17:41:06 2024 -0500

    ci(deps): use latest starbase for renovate (#1467)

commit f88283ed6fd10034ea937b59fecfd174fbee9c04
Author: Sheng Yu <sheng.yu@canonical.com>
Date:   Fri Jan 5 11:04:07 2024 -0500

    chore(deps): update dependency craft-application to 1.2.1 (#1465)

commit 566103b81ecaf546efe352f1cf15d190cb8efdf3
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Jan 4 20:07:57 2024 -0500

    feat: multi-architecture resource uploads (#1462)

    This implements the client side of uploading architecture-dependent
    resources to Charmhub.

    It follows the spec in ST104:
    https://docs.google.com/document/d/178mR7suCbC12Ou0W-XnwTs7JKXnGCCh_5Rd2Axh1_d8/edit

commit 5dcad2afaa5b77350221db1a0d18a65c85dc68d1
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Jan 4 15:18:25 2024 -0500

    feat: basic store service (#1459)

    This creates a craft-application style `StoreService` for running store
    commands.

    The service is mostly written to be application agnostic so we could
    later upstream it if we want, but the default values are the ones that
    are convenient for Charmcraft.

    ---------

    Co-authored-by: Callahan <callahan.kovacs@canonical.com>

commit 30303b21d4a2d5c983ce6dd15fe1599e86b6ba36
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Thu Jan 4 00:05:32 2024 -0500

    chore(deps): update dependency pathspec to v0.12.1 (#1445)

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

    This PR contains the following updates:

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

    ---

    <details>
    <summary>cpburnz/python-pathspec (pathspec)</summary>
    [`v0.12.1`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0121-2023-12-10)

    [Compare
    Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.12.0...v0.12.1)

    Bug fixes:

    - `Issue #&#8203;84`\_: PathSpec.match_file() returns None since 0.12.0.

    .. \_`Issue #&#8203;84`:
    [https://github.com/cpburnz/python-pathspec/issues/84](https://togithub.com/cpburnz/python-pathspec/issues/84)
    [`v0.12.0`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0120-2023-12-09)

    [Compare
    Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.11.2...v0.12.0)

    Major changes:

    -   Dropped support of EOL Python 3.7. See `Pull #&#8203;82`\_.

    API changes:

    - Signature of protected method
    `pathspec.pathspec.PathSpec._match_file()` (with a leading underscore)
    has been changed from `def _match_file(patterns: Iterable[Pattern],
    file: str) -> bool` to `def _match_file(patterns: Iterable[Tuple[int,
    Pattern]], file: str) -> Tuple[Optional[bool], Optional[int]]`.

    New features:

    - Added `pathspec.pathspec.PathSpec.check_*()` methods. These methods
    behave similarly to `.match_*()` but return additional information in
    the `pathspec.util.CheckResult` objects (e.g., `CheckResult.index`
    indicates the index of the last pattern that matched the file).
    - Added `pathspec.pattern.RegexPattern.pattern` attribute which stores
    the original, uncompiled pattern.

    Bug fixes:

    -   `Issue #&#8203;81`\_: GitIgnoreSpec behaviors differ from git.
    -   `Pull #&#8203;83`\_: Fix ReadTheDocs builds.

    Improvements:

    -   Mark Python 3.12 as supported. See `Pull #&#8203;82`\_.
    -   Improve test debugging.
    - Improve type hint on *on_error* parameter on
    `pathspec.pathspec.PathSpec.match_tree_entries()`.
    - Improve type hint on *on_error* parameter on
    `pathspec.util.iter_tree_entries()`.

    .. \_`Issue #&#8203;81`:
    [https://github.com/cpburnz/python-pathspec/issues/81](https://togithub.com/cpburnz/python-pathspec/issues/81)
    .. \_`Pull #&#8203;82`:
    [https://github.com/cpburnz/python-pathspec/pull/82](https://togithub.com/cpburnz/python-pathspec/pull/82)
    .. \_`Pull #&#8203;83`:
    [https://github.com/cpburnz/python-pathspec/pull/83](https://togithub.com/cpburnz/python-pathspec/pull/83)

    </details>

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit f41e333d4de35602c3d408c8d02edf331c9f5ab2
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 3 18:23:11 2024 -0500

    build: replace setup.py with pyproject.toml (#1455)

commit fd5bd6baad862630c7979ab0f209461ca1840f85
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 3 16:21:21 2024 -0500

    fix(tests): make store spread tests less flaky (#1460)

    Fixes #1429

commit 3c9e29b0fbeecd90aa8548b287b42ac3e3e65fb2
Merge: 2567c66 330bfa2
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 3 14:42:08 2024 -0500

    chore: merge 2.5.3 to main (#1436)

commit 330bfa2639cd1fab03ab90d3dfac42c44820fb3a
Merge: fcba7b7 2567c66
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Jan 3 13:23:30 2024 -0500

    Merge branch 'main' into hotfix-merge/2.5

commit 2567c661d0ba99fad742ff1e73cbcf6431addbd9
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Wed Jan 3 11:39:54 2024 -0500

    chore(deps): update dependency black to v23.12.1 (#1443)

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

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [black](https://togithub.com/psf/black)
    ([changelog](https://togithub.com/psf/black/blob/main/CHANGES.md)) |
    `==23.11.0` -> `==23.12.1` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/black/23.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/black/23.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/black/23.11.0/23.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/23.11.0/23.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |

    ---

    <details>
    <summary>psf/black (black)</summary>
    [`v23.12.1`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#23121)

    [Compare
    Source](https://togithub.com/psf/black/compare/23.12.0...23.12.1)

    - Fixed a bug that included dependencies from the `d` extra by default
    ([#&#8203;4108](https://togithub.com/psf/black/issues/4108))
    [`v23.12.0`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#23120)

    [Compare
    Source](https://togithub.com/psf/black/compare/23.11.0...23.12.0)

    It's almost 2024, which means it's time for a new edition of *Black*'s
    stable style!
    Together with this release, we'll put out an alpha release 24.1a1
    showcasing the draft
    2024 stable style, which we'll finalize in the January release. Please
    try it out and
    [share your feedback](https://togithub.com/psf/black/issues/4042).

    This release (23.12.0) will still produce the 2023 style. Most but not
    all of the
    changes in `--preview` mode will be in the 2024 stable style.

    - Fix bug where `# fmt: off` automatically dedents when used with the
    `--line-ranges`
    option, even when it is not within the specified line range.
    ([#&#8203;4084](https://togithub.com/psf/black/issues/4084))
    - Fix feature detection for parenthesized context managers
    ([#&#8203;4104](https://togithub.com/psf/black/issues/4104))

    - Prefer more equal signs before a break when splitting chained
    assignments ([#&#8203;4010](https://togithub.com/psf/black/issues/4010))
    - Standalone form feed characters at the module level are no longer
    removed ([#&#8203;4021](https://togithub.com/psf/black/issues/4021))
    - Additional cases of immediately nested tuples, lists, and dictionaries
    are now
    indented less
    ([#&#8203;4012](https://togithub.com/psf/black/issues/4012))
    - Allow empty lines at the beginning of all blocks, except immediately
    before a
    docstring ([#&#8203;4060](https://togithub.com/psf/black/issues/4060))
    - Fix crash in preview mode when using a short `--line-length`
    ([#&#8203;4086](https://togithub.com/psf/black/issues/4086))
    - Keep suites consisting of only an ellipsis on their own lines if they
    are not
    functions or class definitions
    ([#&#8203;4066](https://togithub.com/psf/black/issues/4066))
    ([#&#8203;4103](https://togithub.com/psf/black/issues/4103))

    - `--line-ranges` now skips *Black*'s internal stability check in
    `--safe` mode. This
    avoids a crash on rare inputs that have many unformatted same-content
    lines. ([#&#8203;4034](https://togithub.com/psf/black/issues/4034))

    - Upgrade to mypy 1.7.1
    ([#&#8203;4049](https://togithub.com/psf/black/issues/4049))
    ([#&#8203;4069](https://togithub.com/psf/black/issues/4069))
    - Faster compiled wheels are now available for CPython 3.12
    ([#&#8203;4070](https://togithub.com/psf/black/issues/4070))

    - Enable 3.12 CI
    ([#&#8203;4035](https://togithub.com/psf/black/issues/4035))
    - Build docker images in parallel
    ([#&#8203;4054](https://togithub.com/psf/black/issues/4054))
    - Build docker images with 3.12
    ([#&#8203;4055](https://togithub.com/psf/black/issues/4055))

    </details>

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit ae2698674558dddbe2bcdf2cfc8428815e109a6d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Jan 2 17:02:59 2024 -0500

    chore(deps): update dependency typing_extensions to v4.9.0 (#1446)

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

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [typing_extensions](https://togithub.com/python/typing_extensions)
    ([changelog](https://togithub.com/python/typing_extensions/blob/main/CHANGELOG.md))
    | `==4.8.0` -> `==4.9.0` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/typing_extensions/4.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/typing_extensions/4.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/typing_extensions/4.8.0/4.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/typing_extensions/4.8.0/4.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |

    ---

    <details>
    <summary>python/typing_extensions (typing_extensions)</summary>
    [`v4.9.0`](https://togithub.com/python/typing_extensions/blob/HEAD/CHANGELOG.md#Release-490-December-9-2023)

    [Compare
    Source](https://togithub.com/python/typing_extensions/compare/4.8.0...4.9.0)

    This feature release adds `typing_extensions.ReadOnly`, as specified
    by PEP 705, and makes various other improvements, especially to
    `@typing_extensions.deprecated()`.

    There are no changes since 4.9.0rc1.

    </details>

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 7eb035354fbb4669e800cbc2d56077dca12a49a8
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Jan 2 15:58:35 2024 -0500

    chore(deps): update dependency mypy to v1.8.0 (#1444)

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

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [mypy](https://www.mypy-lang.org/)
    ([source](https://togithub.com/python/mypy),
    [changelog](https://mypy-lang.blogspot.com/)) | `==1.6.1` -> `==1.8.0` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/mypy/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mypy/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mypy/1.6.1/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mypy/1.6.1/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |

    ---

    <details>
    <summary>python/mypy (mypy)</summary>

    [Compare
    Source](https://togithub.com/python/mypy/compare/v1.7.1...v1.8.0)

    [Compare
    Source](https://togithub.com/python/mypy/compare/v1.7.0...v1.7.1)

    [Compare
    Source](https://togithub.com/python/mypy/compare/v1.6.1...v1.7.0)

    </details>

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 8b4fc34dded42d0e69725afcad7cfe5d42875163
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Jan 2 12:25:23 2024 -0500

    chore(deps): update dependency virtualenv to v20.25.0 (#1447)

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

    This PR contains the following updates:

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

    ---

    <details>
    <summary>pypa/virtualenv (virtualenv)</summary>
    [`v20.25.0`](https://togithub.com/pypa/virtualenv/releases/tag/20.25.0)

    [Compare
    Source](https://togithub.com/pypa/virtualenv/compare/20.24.7...20.25.0)

    <!-- Release notes generated using configuration in .github/release.yml
    at 20.25.0 -->

    - release 20.24.6 by
    [@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
    [https://github.com/pypa/virtualenv/pull/2657](https://togithub.com/pypa/virtualenv/pull/2657)
    - Allow platformdirs v4 by [@&#8203;alex](https://togithub.com/alex) in
    [https://github.com/pypa/virtualenv/pull/2664](https://togithub.com/pypa/virtualenv/pull/2664)
    - Bump wheels package by
    [@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
    [https://github.com/pypa/virtualenv/pull/2665](https://togithub.com/pypa/virtualenv/pull/2665)
    - Bump setuptools and wheels by
    [@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
    [https://github.com/pypa/virtualenv/pull/2669](https://togithub.com/pypa/virtualenv/pull/2669)
    - Run CI tests on Python 3.13, fix tests by
    [@&#8203;hroncok](https://togithub.com/hroncok) in
    [https://github.com/pypa/virtualenv/pull/2673](https://togithub.com/pypa/virtualenv/pull/2673)

    **Full Changelog**:
    https://github.com/pypa/virtualenv/compare/20.24.6...20.25.0
    [`v20.24.7`](https://togithub.com/pypa/virtualenv/releases/tag/20.24.7)

    [Compare
    Source](https://togithub.com/pypa/virtualenv/compare/20.24.6...20.24.7)

    <!-- Release notes generated using configuration in .github/release.yml
    at 20.24.7 -->

    - release 20.24.6 by
    [@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
    [https://github.com/pypa/virtualenv/pull/2657](https://togithub.com/pypa/virtualenv/pull/2657)
    - Allow platformdirs v4 by [@&#8203;alex](https://togithub.com/alex) in
    [https://github.com/pypa/virtualenv/pull/2664](https://togithub.com/pypa/virtualenv/pull/2664)
    - Bump wheels package by
    [@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
    [https://github.com/pypa/virtualenv/pull/2665](https://togithub.com/pypa/virtualenv/pull/2665)

    **Full Changelog**:
    https://github.com/pypa/virtualenv/compare/20.24.6...20.24.7

    </details>

    ---

    📅 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 78ed8378e054ee6bcc75eb2bc13bc6cc4c576c20
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Dec 19 23:02:27 2023 +0000

    chore(deps): update dependency craft-parts to v1.26.1

commit 76807c112f57767f83c4445ed58be777452656df
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Dec 19 18:02:09 2023 -0500

    ci(deps): tell renovate to ignore pydantic (#1441)

commit 952f070e6eb05966bf6eee59b9bfe41991f0ed27
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Dec 15 18:12:21 2023 -0500

    build: update craft-application (#1454)

commit a79c13b16d8ef16a2f0495a708bb6d81470da342
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Fri Dec 15 17:02:15 2023 -0500

    chore(deps): update dependency importlib-metadata to v7 (#1449)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 8b291de3cb899c764a27e051857519d0e0d7b138
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Dec 13 15:19:09 2023 -0500

    build: use tox for tests (#1423)

    Co-authored-by: Sergio Schvezov <sergio.schvezov@canonical.com>

commit fe263387ab6230a611dd82d680240126002d9758
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Dec 12 19:50:18 2023 -0500

    fix(charm_builder): bump minimum pip version to 23 (#1437)

    fixes #1374

    Pip 22 doesn't use the prebuilt wheel cache when using
    `--no-binary=[list of packages]`, but does when using
    `--no-binary=:all:`. As such, using strict dependencies won't use the
    cache with pip 22

    Has potential regressions, so I'm going to run a large spread on this:
    https://github.com/canonical/charmcraft/actions/runs/7184537100

    EDIT: Large spread failures are unrelated and are fixed in
    https://github.com/canonical/charmcraft/pull/1438. This should be
    cherry-picked to the 2.5 branch.

commit fcba7b7010410d46f0231acd22b347ed1914236c
Merge: c1d3ad21 60999b9
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Dec 12 11:19:31 2023 -0500

    Merge branch 'main' into hotfix-merge/2.5

commit 60999b9ac5aebe2b9efc97c0e1b0bb842c0a3a14
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Mon Dec 11 16:04:02 2023 -0500

    refactor: make JujuConfig declarative (#1426)

commit 2d43204452b281f1c9d638ac505cb94fa12c1f71
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 21:08:45 2023 -0500

    tests(spread): make dependencies restore resilient to failures (#1427)

commit 2a93c7a237735c4e134323e1043632c9cc5f8977
Merge: a1fdd6b dbef93a
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 16:02:45 2023 -0500

    chore: release 2.5.2

commit dbef93a764523989ba82dfa30577a6ddf49e5f11
Merge: 8c6f9b3 a1fdd6b
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 13:59:33 2023 -0500

    Merge branch 'main' into hotfix-2.5.2-to-main

commit c1d3ad21a95a0d814254545c66d2887db5f833fb
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 13:53:27 2023 -0500

    fix: make JujuConfig validation accept empty options (#1424)

    fixes #1398

commit a1fdd6bb5ad5d639330917bb7b96e2082a4bbc4b
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 12:59:30 2023 -0500

    fix: expand-extensions overview (#1417)

commit dec4d61b496bcea862173937c51e8f79743d9ff7
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 12:45:27 2023 -0500

    fix: expand-extensions overview (#1416)

    This PR targets the hotfix branch to cover the legacy command.

    Fixes #1411

commit 88c709255ae25809c885d379deaced8cc5b0cf4f
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 11:57:30 2023 -0500

    chore: use the latest renovate config from starbase (#1418)

commit e1d735423574a07bc620ec5eb41b4e31ac061579
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 11:25:43 2023 -0500

    build: rename weekly spread test (#1413)

commit a9575037fd43fd08e82f9885bfa86ac2775d3f7b
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Dec 7 10:56:27 2023 -0500

    chore(deps): use craft-providers 1.19.3 (#1414)

    Updating to fix cache directories when deleted.

commit 647a605c9964237bdc665144c238a2fedbb83389
Author: Teodora Mihoc <teodora.mihoc@canonical.com>
Date:   Thu Dec 7 17:48:05 2023 +0200

    docs: update the README to simplify and better align with docs (#1341)

    [JUJU-4554]
    Co-authored-by: Sergio Schvezov <sergio.schvezov@canonical.com>

commit 4f9aa82b5e36335301d8bb81b74e46e8c7ae5762
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Wed Dec 6 15:12:31 2023 -0500

    build: enable yamllint (#1421)

commit 1fb421ed9adf91b4def685206cf3e5ace7f23c29
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Dec 5 11:43:03 2023 -0500

    chore: add badges to readme (#1410)

commit 28740466ce95e7097ef14c8813a8dd85bc84ffa8
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Dec 4 18:36:18 2023 -0500

    chore(deps): update internal packages (#1392)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 3ba803d1005664ef250e7fe44aaa221d15503d81
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Mon Dec 4 11:31:08 2023 -0500

    feat: craft-application rebase (#1399)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>
    Co-authored-by: Callahan <callahan.kovacs@canonical.com>
    Co-authored-by: Sheng Yu <sheng.yu@canonical.com>
    Co-authored-by: Jon Seager <jon.seager@canonical.com>
    Co-authored-by: Jack Shaw <jack.shaw@canonical.com>

commit da4772e74e10928939046c4eb180621ba15420c5
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Dec 4 10:31:31 2023 -0500

    chore(deps): update dependency black to v23.11.0 (#1393)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 81d862b66577732855f1d7573ae5bf707966c9d4
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Dec 1 13:14:14 2023 -0500

    feat: enable riscv64 support (#1406)

commit 8c6f9b30a4d9dabb898ade2e84ec9954fe46fa28
Author: Claudio Matsuoka <claudio.matsuoka@canonical.com>
Date:   Fri Dec 1 14:20:54 2023 -0300

    fix: ignore empty requirements lines (#1407)

    Fixes #1261

    Co-authored-by: Alex Lowe <alex.lowe@canonical.com>

commit a968adfa1342a3f65f5f95c8b1437e82a11a67b7
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Thu Nov 30 13:20:23 2023 -0500

    build: set grade based on version number (#1402)

    Fixes #1401

commit 70066d497d276ee98670f0500a3fa0f8e93a4f93
Author: Sergio Schvezov <sergio.schvezov@canonical.com>
Date:   Thu Nov 30 15:19:33 2023 -0300

    build(deps): bump craft-store to 2.5.0 (#1388)

    Allows headless systems to fallback to a file based keyring backend.

    ---
    Fixes #719

    Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

commit d8a889db57c0e6053a08d4d0444c18062e7616e4
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Wed Nov 29 00:06:45 2023 +0000

    chore(deps): update dependency cryptography to v41.0.6 [security]

commit b3ab8f397e785b2b429bb13b77709e99f7f3b7fb
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Nov 28 14:31:49 2023 -0500

    chore(deps): freeze types-requests for urllib3 compatibility. (#1394)

    See:
    https://github.com/python/typeshed/blob/011f24794d334ecbd6bda104a8e57399bd6bcad8/stubs/requests/METADATA.toml

commit 4fae04dc0830482cc7c1cd17b21c5b12974a2856
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Nov 28 12:31:15 2023 -0500

    build: use ruff snap (#1387)

commit 23bf3900827e002fc749516ca16db49f1276043c
Author: Jack Shaw <jack.shaw@canonical.com>
Date:   Thu Nov 23 16:33:52 2023 +0000

    feat: deprecate 'series' in metadata.yaml & patch linter (#1376)

    Patch the metadata linter to fail if the 'series' key is present. For a
    long time charmcraft has generated a manifest.yaml on pack which has
    been used instead series in metadata.

    Juju ignores 'series' in metadata for any packed charm (i.e. a charm
    with a manifest.yaml)

    There is an effort to remove the notion of a series from Juju entirely,
    substituting it for bases. As such, Juju is roadmapped to deprecate
    support for charms without manifest.yaml files in 3.4, removing support
    entirely in 4.0 (i.e. showing an error).

    Showing a linter error in `charmcraft analyze` will be a convenient way
    to begin communicating this

    As a flyby fix, remove whitespace from the end of line in the templates

    ```
    $ juju download kafka
    Fetching charm "kafka" revision 123 using "stable" channel and base "amd64/ubuntu/22.04"
    Install the "kafka" charm with:
        juju deploy ./kafka_r123.charm

    $ charmcraft analyze ./kafka_r123.charm
    Attributes:
    - language: python (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--language)
    - framework: operator (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--framework)
    Lint Errors:
    - metadata: The metadata.yaml file contains deprecated attribute: series. (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--metadata)
    Lint OK:
    - juju-actions: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--juju-actions)
    - juju-config: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--juju-config)
    - entrypoint: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--entrypoint)

    $ unzip kafka.charm
    $ rm kafka.charm
    (edit metadata.yaml to remove series key)
    $ cat metdata.yaml

    description: |
      Kafka is an event streaming platform. This charm deploys and operates Kafka.
    display-name: Kafka
    issues: https://github.com/canonical/kafka-operator/issues/new
    docs: https://discourse.charmhub.io/t/charmed-kafka-documentation/10288
    maintainers:
      - Marc Oppenheimer <marc.oppenheimer@canonical.com>
    name: kafka
    source: https://github.com/canonical/kafka-operator
    summary: The Charmed Kafka Operator

    peers:
      cluster:
        interface: cluster
      restart:
        interface: rolling_op

    requires:
      zookeeper:
        interface: zookeeper
      certificates:
        interface: tls-certificates
        limit: 1
        optional: true
      trusted-ca:
        interface: tls-certificates
        optional: true
      trusted-certificate:
        interface: tls-certificates
        optional: true

    provides:
      kafka-client:
        interface: kafka_client
      cos-agent:
        interface: cos_agent

    storage:
      data:
        type: filesystem
        description: Directories where the log data is stored
        minimum-size: 10G
        location: /var/snap/charmed-kafka/common/var/lib/kafka
        multiple:
          range: 1-

    $ zip -r kafka_r123.charm .
    $ charmcraft analyze kafka_r123.charm
    Attributes:
    - language: python (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--language)
    - framework: operator (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--framework)
    Lint OK:
    - juju-actions: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--juju-actions)
    - juju-config: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--juju-config)
    - metadata: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--metadata)
    - entrypoint: no issues found (https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--entrypoint)
    ```

    https://juju.is/docs/sdk/charmcraft-analyzers-and-linters#heading--metadata
    will require updating with the new linter check

commit 90f2362270a4e9b722d008ec8b723c8fa77ed4a0
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Tue Nov 21 16:12:04 2023 -0500

    test: use MATCH in spread tests (#1382)

    We've got a few places where we use grep directly in a way that doesn't
    guarantee test failure when it should.

commit 9ce67974869a452ee09ad8f2b37eb6d036d76496
Merge: 485a756 2e7e023
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Mon Nov 20 11:34:01 2023 -0500

    release: merge 2.5.1 candidate to main

commit 2e7e023a403e4d248b477aa0b5be52948e9e5e3f
Merge: f5558b8 485a756
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Nov 17 15:04:07 2023 -0500

    Merge branch 'main' into release/2.5.1

commit f5558b8f39faf96332be63b7bd06af5a7728cb1d
Author: Alex Lowe <alex.lowe@canonical.com>
Date:   Fri Nov 17 09:59:38 2023 -0500

    fix: make snap build on all architectures. (#1377)

    fixes #1369

    Multi-platform build:
    https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca

    - [x]
    [armhf](https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca/+build/2296258)
    - [x]
    [arm64](https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca/+build/2296257)
    - [x]
    [ppc64el](https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca/+build/2296256)
    ([buildlog](https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca/+build/2296256/+files/buildlog_snap_ubuntu_jammy_ppc64el_snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca_BUILDING.txt.gz))
    - [x]
    [s390x](https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca/+build/2296255)
    ([buildlog](https://launchpad.net/~lengau/+snap/snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca/+build/2296255/+files/buildlog_snap_ubuntu_jammy_s390x_snapcraft-charmcraft-084dfcb7321972fd248f5d75baf555ca_BUILDING.txt.gz))

commit 485a756c4c17577fe1a2eb951b7e78238492d20a
Author: Jon Seager <jon.seager@canonical.com>
Date:   Fri Nov 17 14:48:23 2023 +0000

    build: replace `black` with `ruff format` in charmcraft templates (#1378)

    As the title suggests! :)

    Driveby to bump the default `ops` version to `2.8`
shaldengeki referenced this pull request in shaldengeki/monorepo Feb 26, 2024
Bumps [pathspec](https://github.com/cpburnz/python-pathspec) from 0.10.2
to 0.12.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cpburnz/python-pathspec/releases">pathspec's
releases</a>.</em></p>
<blockquote>
<h2>v0.12.1</h2>
<p>Release v0.12.1. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.12.1/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.12.0</h2>
<p>Release v0.12.0. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.12.0/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.11.2</h2>
<p>Release v0.11.2. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.11.2/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.11.1</h2>
<p>Release v0.11.1. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.11.1/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.11.0</h2>
<p>Release v0.11.0. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.11.0/CHANGES.rst">CHANGES.rst</a>.</p>
<h2>v0.10.3</h2>
<p>Release v0.10.3. See <a
href="https://github.com/cpburnz/python-pathspec/blob/v0.10.3/CHANGES.rst">CHANGES.rst</a>.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst">pathspec's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.1 (2023-12-10)</h2>
<p>Bug fixes:</p>
<ul>
<li><code>Issue
[#84](https://github.com/cpburnz/python-pathspec/issues/84)</code>_:
PathSpec.match_file() returns None since 0.12.0.</li>
</ul>
<p>.. _<code>Issue
[#84](https://github.com/cpburnz/python-pathspec/issues/84)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/issues/84">cpburnz/python-pathspec#84</a></p>
<h2>0.12.0 (2023-12-09)</h2>
<p>Major changes:</p>
<ul>
<li>Dropped support of EOL Python 3.7. See <code>Pull
[#82](https://github.com/cpburnz/python-pathspec/issues/82)</code>_.</li>
</ul>
<p>API changes:</p>
<ul>
<li>Signature of protected method
<code>pathspec.pathspec.PathSpec._match_file()</code> (with a leading
underscore) has been changed from <code>def _match_file(patterns:
Iterable[Pattern], file: str) -&gt; bool</code> to <code>def
_match_file(patterns: Iterable[Tuple[int, Pattern]], file: str) -&gt;
Tuple[Optional[bool], Optional[int]]</code>.</li>
</ul>
<p>New features:</p>
<ul>
<li>Added <code>pathspec.pathspec.PathSpec.check_*()</code> methods.
These methods behave similarly to <code>.match_*()</code> but return
additional information in the <code>pathspec.util.CheckResult</code>
objects (e.g., <code>CheckResult.index</code> indicates the index of the
last pattern that matched the file).</li>
<li>Added <code>pathspec.pattern.RegexPattern.pattern</code> attribute
which stores the original, uncompiled pattern.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><code>Issue
[#81](https://github.com/cpburnz/python-pathspec/issues/81)</code>_:
GitIgnoreSpec behaviors differ from git.</li>
<li><code>Pull
[#83](https://github.com/cpburnz/python-pathspec/issues/83)</code>_: Fix
ReadTheDocs builds.</li>
</ul>
<p>Improvements:</p>
<ul>
<li>Mark Python 3.12 as supported. See <code>Pull
[#82](https://github.com/cpburnz/python-pathspec/issues/82)</code>_.</li>
<li>Improve test debugging.</li>
<li>Improve type hint on <em>on_error</em> parameter on
<code>pathspec.pathspec.PathSpec.match_tree_entries()</code>.</li>
<li>Improve type hint on <em>on_error</em> parameter on
<code>pathspec.util.iter_tree_entries()</code>.</li>
</ul>
<p>.. _<code>Issue
[#81](https://github.com/cpburnz/python-pathspec/issues/81)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/issues/81">cpburnz/python-pathspec#81</a>
.. _<code>Pull
[#82](https://github.com/cpburnz/python-pathspec/issues/82)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/pull/82">cpburnz/python-pathspec#82</a>
.. _<code>Pull
[#83](https://github.com/cpburnz/python-pathspec/issues/83)</code>: <a
href="https://redirect.github.com/cpburnz/python-pathspec/pull/83">cpburnz/python-pathspec#83</a></p>
<h2>0.11.2 (2023-07-28)</h2>
<p>New features:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/6485791e1b5cf2ef4e756ae392fa80f2c5045d4c"><code>6485791</code></a>
Release v0.12.1</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/81368adefcf18b97457958cb50bb04785e63cc6e"><code>81368ad</code></a>
Fix issue <a
href="https://redirect.github.com/cpburnz/python-pathspec/issues/84">#84</a></li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/37e289515fbae7e92077a2438996046e79cae5bf"><code>37e2895</code></a>
Release v0.12.0</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/f6bfc89d56734589c0a6e9737413b849b49705ac"><code>f6bfc89</code></a>
Fix docs build</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/101e6284b77a1a38cf1fff70075cc660d4119e0f"><code>101e628</code></a>
Fix doc build</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/42bee7699ceaac630dd67fbb07a7a015dc53e8d1"><code>42bee76</code></a>
Fix Python 3.8 regression</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/5fda810ef51900b7d46a728d247a7f70cb6543cd"><code>5fda810</code></a>
Fix issue 81</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/5bd2db7bd2125475a3396a4547d0c0eb418b88a2"><code>5bd2db7</code></a>
Improve debugging</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/f092e3248bdc7c80bfdfce20f0a0c660f8caf2e6"><code>f092e32</code></a>
Improve debugging</li>
<li><a
href="https://github.com/cpburnz/python-pathspec/commit/67ddd73f790b77445868e05ee0b9305fc87c6db9"><code>67ddd73</code></a>
DEV</li>
<li>Additional commits viewable in <a
href="https://github.com/cpburnz/python-pathspec/compare/v0.10.2...v0.12.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pathspec&package-manager=pip&previous-version=0.10.2&new-version=0.12.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ramonpetgrave64 referenced this pull request in slsa-framework/slsa-github-generator May 16, 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 |
|---|---|---|---|---|---|
| [pathspec](https://togithub.com/cpburnz/python-pathspec) | `==0.11.1`
-> `==0.12.1` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pathspec/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pathspec/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pathspec/0.11.1/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pathspec/0.11.1/0.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>cpburnz/python-pathspec (pathspec)</summary>

###
[`v0.12.1`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0121-2023-12-10)

[Compare
Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.12.0...v0.12.1)

Bug fixes:

- `Issue #&#8203;84`\_: PathSpec.match_file() returns None since 0.12.0.

.. \_`Issue #&#8203;84`:
[https://github.com/cpburnz/python-pathspec/issues/84](https://togithub.com/cpburnz/python-pathspec/issues/84)

###
[`v0.12.0`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0120-2023-12-09)

[Compare
Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.11.2...v0.12.0)

Major changes:

-   Dropped support of EOL Python 3.7. See `Pull #&#8203;82`\_.

API changes:

- Signature of protected method
`pathspec.pathspec.PathSpec._match_file()` (with a leading underscore)
has been changed from `def _match_file(patterns: Iterable[Pattern],
file: str) -> bool` to `def _match_file(patterns: Iterable[Tuple[int,
Pattern]], file: str) -> Tuple[Optional[bool], Optional[int]]`.

New features:

- Added `pathspec.pathspec.PathSpec.check_*()` methods. These methods
behave similarly to `.match_*()` but return additional information in
the `pathspec.util.CheckResult` objects (e.g., `CheckResult.index`
indicates the index of the last pattern that matched the file).
- Added `pathspec.pattern.RegexPattern.pattern` attribute which stores
the original, uncompiled pattern.

Bug fixes:

-   `Issue #&#8203;81`\_: GitIgnoreSpec behaviors differ from git.
-   `Pull #&#8203;83`\_: Fix ReadTheDocs builds.

Improvements:

-   Mark Python 3.12 as supported. See `Pull #&#8203;82`\_.
-   Improve test debugging.
- Improve type hint on *on_error* parameter on
`pathspec.pathspec.PathSpec.match_tree_entries()`.
- Improve type hint on *on_error* parameter on
`pathspec.util.iter_tree_entries()`.

.. \_`Issue #&#8203;81`:
[https://github.com/cpburnz/python-pathspec/issues/81](https://togithub.com/cpburnz/python-pathspec/issues/81)
.. \_`Pull #&#8203;82`:
[https://github.com/cpburnz/python-pathspec/pull/82](https://togithub.com/cpburnz/python-pathspec/pull/82)
.. \_`Pull #&#8203;83`:
[https://github.com/cpburnz/python-pathspec/pull/83](https://togithub.com/cpburnz/python-pathspec/pull/83)

###
[`v0.11.2`](https://togithub.com/cpburnz/python-pathspec/blob/HEAD/CHANGES.rst#0112-2023-07-28)

[Compare
Source](https://togithub.com/cpburnz/python-pathspec/compare/v0.11.1...v0.11.2)

New features:

- `Issue #&#8203;80`\_: match_files with negated path spec.
`pathspec.PathSpec.match_*()` now have a `negate` parameter to make
using *.gitignore* logic easier and more efficient.

Bug fixes:

- `Pull #&#8203;76`\_: Add edge case: patterns that end with an escaped
space
- `Issue #&#8203;77`*/`Pull #&#8203;78`*: Negate with caret symbol as
with the exclamation mark.

.. \_`Pull #&#8203;76`:
[https://github.com/cpburnz/python-pathspec/pull/76](https://togithub.com/cpburnz/python-pathspec/pull/76)
.. \_`Issue #&#8203;77`:
[https://github.com/cpburnz/python-pathspec/issues/77](https://togithub.com/cpburnz/python-pathspec/issues/77)
.. \_`Pull #&#8203;78`:
[https://github.com/cpburnz/python-pathspec/pull/78](https://togithub.com/cpburnz/python-pathspec/pull/78)/
.. \_`Issue #&#8203;80`:
[https://github.com/cpburnz/python-pathspec/issues/80](https://togithub.com/cpburnz/python-pathspec/issues/80)

</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 [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slsa-framework/slsa-github-generator).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjMuNSIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Signed-off-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: Ramon Petgrave <32398091+ramonpetgrave64@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants