Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Nov 1, 2024

Update fs from 2.4.11 to 2.4.16.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update PyGithub from 1.43.8 to 2.4.0.

Changelog

2.4.0

-------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* The ``github.Commit.Commit`` class provides a ``files`` property that used to return a ``list[github.File.File]``,
which has now been changed to ``PaginatedList[github.File.File]``. This breaks user code that assumes a ``list``:

.. code-block:: python

 files = repo.get_commit("7266e812ed2976ea36a4303edecfe5d75522343f").files
 no_of_files = len(files)

This will raise a ``TypeError: object of type 'PaginatedList' has no len()``, as the returned ``PaginatedList``
does not support the ``len()`` method. Use the ``totalCount`` property instead:

.. code-block:: python

 files = repo.get_commit("7266e812ed2976ea36a4303edecfe5d75522343f").files
 no_of_files = files.totalCount

* Removed support for Python 3.7.

New features
^^^^^^^^^^^^

* Allow custom authentication (2987) (32b826fd)

Improvements
^^^^^^^^^^^^

* Add `has_discussions` to `AuthenticatedUser` and `Repository` classes (3020) (75224167)
* Update more `SecurityAndAnalysis` attributes (3025) (fa168279)
* Implement support for re-running only failed workflow jobs. (2983) (23e87563)
* Add possibility to mark a thread/notification as done (2985) (5ba24379)
* Add "pull_request_review_id" to PullRequestComment object (3000) (6a59cf82)
* Add minimize and unminimize functions for IssueComment class (3005) (09c4f58e)
* Support Organization/Repository custom properties (2968) (c5e6b702)
* Add `dict` type to `add_attribute` script (2977) (2a04f9cc)
* Allow for deleting and restoring branch associated with PR (1784) (4ba1e412)
* Add "archived_at" to Organization object. (2974) (cc766a6f)
* Adds Security & Analysis To Repository (2960) (f22af54d)
* Add added_by and last_used attributes to RepositoryKey (2952) (5dffa64d)
* Add `make_latest` to `GitRelease.update_release` (2888) (60136105)
* Make Commit.files return PaginatedList (2939) (fa885f00)

Bug Fixes
^^^^^^^^^

* Fix GraphQL Queries with Variables (3002) (4324a3d9)

Maintenance
^^^^^^^^^^^

* Remove support for Python 3.7 (2975, 3008) (d0e05072, 6d60b754)
* docs: add missing code-block (2982) (c93e73e2)
* Update README.md (2961) (5d9f90d2)
* CI: Fix test success job (3010) (61d37dce)

2.3.0

------------------------------

New features
^^^^^^^^^^^^

* Support OAuth for enterprise (2780) (e4106e00)
* Support creation of Dependabot Organization and Repository Secrets (2874) (0784f835)

Improvements
^^^^^^^^^^^^

* Create release with optional name and message when generate_release_notes is true (2868) (d65fc30d)
* Add missing attributes to WorkflowJob (2921) (9e092458)
* Add `created` and `check_suite_id` filter for Repository WorkflowRuns (2891) (c788985c)
* Assert requester argument type in Auth (2912) (0b8435fc)

Bug Fixes
^^^^^^^^^

* Revert having allowed values for add_to_collaborators (2905) (b542438e)

Maintenance
^^^^^^^^^^^

* Fix imports in authentication docs (2923) (e3d36535)
* CI: add docformatter to precommit (2614) (96ad19ae)
* Add .swp files to gitignore (2903) (af529abe)
* Fix instructions building docs in CONTRIBUTING.md (2900) (cd8e528d)
* Explicitly name the modules built in pyproject.toml (2894) (4d461734)

2.2.0

--------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* The ``github.Comparison.Comparison`` instance returned by ``Repository.compare`` provides a ``commits``
property that used to return a ``list[github.Commit.Commit]``, which has now been changed
to ``PaginatedList[github.Commit.Commit]``. This breaks user code that assumes a ``list``:

.. code-block:: python

 commits = repo.compare("v0.6", "v0.7").commits
 no_of_commits = len(commits)

This will raise a ``TypeError: object of type 'PaginatedList' has no len()``, as the returned ``PaginatedList``
does not support the ``len()`` method. Use the ``totalCount`` property instead:

.. code-block:: python

 commits = repo.compare("v0.6", "v0.7").commits
 no_of_commits = commits.totalCount


New features
^^^^^^^^^^^^

* Add support to call GraphQL API

Improvements
^^^^^^^^^^^^

* Add parent_team_id, maintainers and notification_setting for creating and updating teams. (2863) (49d07d16)
* Add support for issue reactions summary (2866) (cc4c5269)
* Support for DependabotAlert APIs (2879) (14af7051)
* Derive GraphQL URL from base_url (2880) (d0caa3c3)
* Make ``Repository.compare().commits`` return paginated list (2882) (2d284d1e)
* Add missing branch protection fields (2873) (e47c153b)
* Add ``include_all_branches`` to ``create_repo_from_template`` of ``AuthenticatedUser`` and ``Organization`` (2871) (34c4642e)
* Add and update organisation dependabot secrets (2316) (603896f4)
* Add missing params to ``Organization.create_repo`` (2700) (9c61a2a4)
* Update allowed values for ``Repository`` collaborator permissions (1996) (b5b66da8)
* Support editing PullRequestReview (2851) (b1c4c561)
* Update attributes after calling ``PullRequestReview.dismiss`` (2854) (6f3d714c)
* Add ``request_cve`` on ``RepositoryAdvisories`` (2855) (41b617b7)
* Filter collaborators of a repository by permissions (2792) (702c127a)
* Set pull request to auto merge via GraphQL API (2816) (232df79a)
* Support Environment Variables and Secrets (2848) (7df97398)
* Update workflow.get_runs & pullrequest.add_to_assignees function signature (2799) (26eedbb0)
* Add ``GithubObject.last_modified_datetime`` to have ``last_modified`` as a ``datetime`` (2772) (e7ce8189)
* Add support for global advisories and unify some shared logic with repository advisories (2702) (c8b4fcbe)
* Add internal as valid Repository visibility value (2806) (d4a5a40f)
* Add support for issue comments reactions summary (2813) (67397491)

Bug Fixes
^^^^^^^^^

* Add a bunch of missing urllib.parse.quote calls (1976) (13194be2)
* Fix Variable and Secret URL (2835) (aa763431)

Maintenance
^^^^^^^^^^^

* Update the class name for NetrcAuth in the examples (2860) (2f44b2e8)
* Move build to PEP517 (2800) (c589bf9e)
* Use new type assert functions in ``Repository`` (2798) (2783e671)
* PyTest: Move config to pyproject.toml (2859) (61fb728b)
* codespell: ignore-words-list (2858) (dcf6d8a1)
* Improve fix-headers.py script (2728) (a48c37fa)
* Remove dependency on python-dateutil (2804) (ab131a2f)
* CI: update precommit & apply (2600) (d92cfba2)
* Fix parameter order according to Version 2.1.0 (2786) (dc37d5c1)
* Add missing GitHub classes to docs (2783) (9af9b6e5)
* Fix mypy error with urllib3>=2.0.0a1 by ignoring (2779) (64b1cdea)

2.1.1

-----------------------------------

Bug Fixes
^^^^^^^^^

* Require urllib 1.26.0 or greater (2774) (001c0852)

Maintenance
^^^^^^^^^^^

* Fix pypi-release workflow, allow for manual run (2771) (035c88f1)

2.1.0

-----------------------------------

Important
^^^^^^^^^

**Request throttling**

This release introduces a default throttling mechanism to mitigate secondary rate limit errors and comply with Github's best practices:
https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-secondary-rate-limits

The default throttling of 1 second between writes and 0.25 second between any requests can be configured
for ``github.Github`` and ``github.GithubIntegration``:

.. code-block:: python

 g = github.Github(seconds_between_requests=0.25, seconds_between_writes=1)

Set these parameters to ``None`` to disable throttling and restore earlier behavior.

**Request retry**

This release introduces a default retry mechanism to retry retry-able 403 responses (primary and secondary rate limit errors only) and any 5xx response.

Class ``github.GithubRetry`` implements this behavior, and can be configured via the ``retry`` argument of ``github.Github`` and ``github.GithubIntegration``.
Retry behavior is configured similar to ``urllib3.Retry``: https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html

.. code-block:: python

 g = github.Github(retry=github.GithubRetry())

Set this parameter to ``None`` to disable retry mechanism and restore earlier behaviour.

Breaking Changes
^^^^^^^^^^^^^^^^

**Timestamps**

Any timestamps returned by this library are ``datetime`` with timezone information, usually UTC.
Before this release, timestamps used to be naive ``datetime`` instances without timezone.
Comparing (other than ``==``) these timestamps with naive ``datetime`` instances used to work but will now break.
Add a timezone information to your ``datetime`` instances before comparison:

.. code-block:: python

 if g.get_repo("PyGithub/PyGithub").created_at < datetime(2012, 2, 26, tzinfo=timezone.utc):
     ...

**Netrc authentication**

A Netrc file (e.g. ``~/.netrc``) does not override PyGithub authentication, anymore.
If you require authentication through Netrc, then this is a breaking change.
Use a ``github.Auth.NetrcAuth`` instance to use Netrc credentials:

.. code-block:: python

 >>> auth = Auth.NetrcAuth()
 >>> g = Github(auth=auth)
 >>> g.get_user().login
 'login'

**Repository.create_pull**

Merged overloaded ``create_pull`` methods

.. code-block:: python

 def create_pull(self, issue, base, head)
 def create_pull(self, title, body, base, head, maintainer_can_modify=NotSet, draft=False)

into

.. code-block:: python

 def create_pull(self, base, head, *, title=NotSet, body=NotSet, maintainer_can_modify=NotSet, draft=NotSet, issue=NotSet)

Please update your usage of ``Repository.create_pull`` accordingly.

New features
^^^^^^^^^^^^

* Throttle requests to mitigate RateLimitExceededExceptions (2145) (99155806)
* Retry retryable 403 (rate limit) (2387) (0bb72ca0)
* Close connections after use (2724) (73236e23)

Improvements
^^^^^^^^^^^^

* Make datetime objects timezone-aware (2565) (0177f7c5)
* Make ``Branch.edit_*`` functions return objects (2748) (8dee53a8)
* Add ``license`` attribute to ``Repository`` (2721) (26d353e7)
* Add missing attributes to ``Repository``  (2742) (65cfeb1b)
* Add ``is_alphanumeric`` attribute to ``Autolink`` and ``Repository.create_autolink`` (2630) (b6a28a26)
* Suppress ``requests`` fallback to netrc, provide ``github.Auth.NetrcAuth`` (2739) (ac36f6a9)
* Pass Requester arguments to ``AppInstallationAuth.__integration`` (2695) (8bf542ae)
* Adding feature for enterprise consumed license (2626) (a7bfdf2d)
* Search Workflows by Name (2711) (eadc241e)
* Add ``Secret`` and ``Variable`` classes (2623) (bcca758d)
* Add Autolink API link (2632) (aedfa0b9)
* Add ``required_linear_history`` attribute to ``BranchProtection`` (2643) (7a80fad9)
* Add retry issue to ``GithubException``, don't log it (2611) (de80ff4b)
* Add ``message`` property to ``GithubException`` (2591) (f087cad3)
* Add support for repo and org level actions variables (2580) (91b3f40f)
* Add missing arguments to ``Workflow.get_runs()`` (2346) (766df993)
* Add ``github.Rate.used`` field (2531) (c4c2e527)

Bug Fixes
^^^^^^^^^

* Fix ``Branch.bypass_pull_request_allowances`` failing with "nil is not an object" (2535) (c5542a6a)
* Fix ``required_conversation_resolution`` assertion (2715) (54f22267)
* Fix assertion creating pull request review comment (2641) (2fa568b6)
* Safely coerce ``responseHeaders`` to ``int`` (2697) (adbfce92)
* Fix assertion for ``subject_type`` in creating pull request review comment (2642) (4933459e)
* Use timezone-aware reset datetime in ``GithubRetry.py`` (2610) (950a6949)
* Fix ``Branch.bypass_pull_request_allowances`` failing with "nil is not an object" (2535) (c5542a6a)

Maintenance
^^^^^^^^^^^

* Epic mass-merge ``.pyi`` type stubs back to ``.py`` sources (2636)
* Move to main default branch (2566) (e66c163a)
* Force Unix EOL (2573) (094538e1)
* Close replay test data file silently when test is failing already (2747) (6d871d56)
* CI: Make CI support merge queue (2644) (a91debf1)
* CI: Run CI on release branches (2708) (9a88b6b1)
* CI: remove conflict label workflow (2669) (95d8b83c)
* Fix pip install command in README.md (2731) (2cc1ba2c)
* Update ``add_attribute.py`` to latest conding style (2631) (e735972e)
* CI: Improve ruff DX (2667) (48d2009c)
* CI: Increase wait and retries of labels action (2670) (ff0f31c2)
* Replace ``flake8`` with ``ruff`` (2617) (42c3b47c)
* CI: update labels action name and version (2654) (c5c83eb5)
* CI: label PRs that have conflicts (2622) (1d637e4b)
* Unify requirements files location & source in setup.py (2598) (2edc0f8f)
* Enable mypy ``disallow_untyped_defs`` (2609) (294c0cc9)
* Enable mypy ``check_untyped_defs`` (2607) (8816889a)
* Set line length to 120 characters (2599) (13e178a3)
* CI: Build and check package before release (2593) (3c880e76)
* Use ``typing_extensions`` for ``TypedDict`` (2592) (5fcb0c7d)
* CI: Update action actions/setup-python (2382) (2e5cd31e)
* Add more methods and attributes to Repository.pyi (2581) (72840de4)
* CI: Make pytest color logs (2597) (73241102)
* precommit: move ``flake8`` as last (2595) (11bb6bd7)
* Test on Windows and macOS, don't fail fast (2590) (5c600894)
* Remove symlinks from test data (2588) (8d3b9057)

1.59.1

-----------------------------------

Bug Fixes
^^^^^^^^^

* Safely coerce responseHeaders to int (2697) (adbfce92)

1.59.0

-----------------------------------

Important
^^^^^^^^^

This release introduces new way of authentication. All authentication-related arguments ``github.Github(login_or_token=…, password=…, jwt=…, app_auth=…)``
and ``github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)`` are replaced by a single ``auth=…`` argument.
Module ``github.Auth`` provides classes for all supported ways of authentication: ``Login``, ``Token``, ``AppAuth``, ``AppAuthToken``, ``AppInstallationAuth``, ``AppUserAuth``.
Old arguments are deprecated but continue to work. They are scheduled for removal for version 2.0 release.

This project has decided to move all typing information from ``.pyi`` files into the respective ``.py`` source files.
This will happen gradually over time.

Breaking Changes
^^^^^^^^^^^^^^^^

* The ``position`` argument in ``github.PullRequest.create_review_comment(position=…)`` has been renamed to ``line``.
This breaks user code that calls ``create_review_comment`` with keyword argument ``position``. Call with ``line=…`` instead.
Calling this method with positional arguments is not breaking.
* The ``jwt_expiry``, ``jwt_issued_at`` and ``jwt_algorithm`` arguments in ``github.GithubIntegration()`` have changed their position.
User code calling ``github.GithubIntegration(…)`` with these arguments as positional arguments breaks.
Please use keyword arguments: ``github.GithubIntegration(…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)``.
* The ``since`` argument in ``github.PullRequest.get_review_comments(…)`` has changed position.``
User code calling ``github.PullRequest.get_review_comments(…)`` with this argument as positional argument breaks.
Please use keyword argument: ``github.PullRequest.get_review_comments(since=…)``.

Deprecation
^^^^^^^^^^^

* The use of ``github.Github(login_or_token=…)`` is deprecated, use ``github.Github(auth=github.Auth.Login(…))`` or ``github.Github(auth=github.Auth.Token(…))`` instead.
* The use of ``github.Github(password=…)`` is deprecated, use ``github.Github(auth=github.Auth.Login(…))`` instead.
* The use of ``github.Github(jwt=…)`` is deprecated, use ``github.Github(auth=github.AppAuth(…))`` or ``github.Github(auth=github.AppAuthToken(…))`` instead.
* The use of ``github.Github(app_auth=…)`` is deprecated, use ``github.Github(auth=github.Auth.AppInstallationAuth(…))`` instead.
* The use of ``github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)`` is deprecated, use ``github.GithubIntegration(auth=github.Auth.AppAuth(…))`` instead.
* The use of ``github.GithubIntegration.create_jwt`` is deprecated, use ``github.Github(auth=github.Auth.AppAuth)``, ``github.Auth.AppAuth.token`` or ``github.Auth.AppAuth.create_jwt(expiration)`` instead.
* The use of ``AppAuthentication`` is deprecated, use ``github.Auth.AppInstallationAuth`` instead.
* The use of ``github.Github.get_app()`` without providing argument ``slug`` is deprecated, use ``github.GithubIntegration(auth=github.Auth.AppAuth(…)).get_app()``.

Bug Fixes
^^^^^^^^^

* Test and fix UTC issue with AppInstallationAuth (2561) (ff3b80f8)
* Make Requester.__createException robust against missing message and body (2159) (7be3f763)
* Fix auth issues with `Installation.get_repos` (2547) (64075120)
* Fix broken urls in docstrings (2393) (f82ad61c)
* Raise error on unsupported redirects, log supported redirects (2524) (17cd0b79)
* Fix GithubIntegration that uses expiring jwt (2460) (5011548c)
* Add expiration argument back to GithubIntegration.create_jwt (2439) (822fc05c)
* Add crypto extras to pyjwt, which pulls in cryptogaphy package (2443) (554b2b28)
* Remove RLock from Requester (2446) (45f3d723)
* Move CI to Python 3.11 release and 3.12 dev (2434) (e414c322)
* Pass Requester base URL to integration (2420) (bdceae2f)

Improvements
^^^^^^^^^^^^

* Add Webhook Deliveries (2508) (517ad336)
* Add support for workflow jobs and steps (1951) (804c3107)
* Add support for get_app() with App authentication (2549) (6d4b6d14)
* Allow multiline comments in PullRequest (2540) (6a21761e)
* Implement `AppUserAuth` for Github App user tokens (2546) (f291a368)
* Add support for environments (2223) (0384e2fd)
* Add support for new RepositoryAdvisories API :tada: (2483) (daf62bd4)
* Make `MainClass.get_app` return completed `GithubApp` when slug is given (2543) (84912a67)
* Add authentication classes, move auth logic there (2528) (fc2d0e15)
* Add sort order and direction for getting comments (2544) (a8e7c423)
* Add `name` filter to `Repository.get_artifacts()` (2459) (9f52e948)
* Add `name`, `display_title` and `path` attributes to `WorkflowRun` (2397) (10816389)
* Add new `create_fork` arguments (2493) (b94a83cb)
* add `ref` to Deployment (2489) (e8075c41)
* Add query `check_suite_id` integer to `Workflow.get_runs` (2466) (a4854519)
* Add `generate_release_notes` parameter to `create_git_release` and `create_git_tag_and_release` (2417) (49b3ae16)
* Add example for Pull Request comments to documentation (2390) (c2f12bdc)
* Add allow_auto_merge support to Repository (2477) (8c4b9465)
* Add `artifact_id` argument to `Repository.get_artifact()` (2458) (4fa0a5f3)
* Add missing attributes to Branch (2512) (e296dbdb)
* Add allow_update_branch option to Organization (2465) (bab4180f)
* Add support for Issue.state_reason 2370 (2392) (5aa544a1)
* Add parameters to Repository.get_workflow_runs (2408) (4198dbfb)

Maintenance
^^^^^^^^^^^

* Add type stub for MainClass.get_project_column (2502) (d514222c)
* Sync GithubIntegration __init__ arguments with github.Github (2556) (ea45237d)
* Update MAINTAINERS (2545) (f4e9dcb3)
* Link to stable docs, update introduction in package used by pypi, move auth arg front (2557) (006766f9)
* Merge PaginatedList.pyi back to source (2555) (cb50dec5)
* Merge GithubObject.pyi/Requester.pyi stubs back to source (2463) (b6258f4b)
* [CI] Moving linting into separate workflow (2522) (52fc1077)
* Merging 1.58.x patch release notes into master (2525) (217d4241)
* Merge AppAuthentication.pyi to source (2519) (8e8cfb30)
* Merge GithubException.pyi stubs back to source (2464) (03a2f696)
* Add missing fields from `GithubCredentials.py` to CONTRIBUTING.md (2482) (297317ba)
* Update docstring and typing for allow_forking and allow_update_branch (Repository) (2529) (600217f0)
* Bump actions/checkout from 2 to 3.1.0 (2327) (300c5015)
* RTD: install current project (def5223c)
* Add current dir sys.path as well (9c96faa7)
* Use use_scm_version to get current version from git tag (2429) (3ea91a3a)

1.58.2

-----------------------------------

Bug Fixes
^^^^^^^^^

* Fix GithubIntegration that uses expiring jwt (2460) (5011548c)

1.58.1

-----------------------------------

Bug Fixes
^^^^^^^^^

* Add expiration argument back to GithubIntegration.create_jwt (2439) (822fc05c)
* Add crypto extras to pyjwt, which pulls in cryptogaphy package (2443) (554b2b28)
* Remove RLock from Requester (2446) (45f3d723)
* Move CI to Python 3.11 release and 3.12 dev (2434) (e414c322)
* pass requester base URL to integration (2420) (bdceae2f)
* RTD: install current project (def5223c)
* Add current dir sys.path as well (9c96faa7)
* Use use_scm_version to get current version from git tag (2429) (3ea91a3a)

1.58.0

-----------------------------------

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Add unarchiving support Tsuesun (2391)
* Support full GitHub app authentication dblanchette (1986)
* Continue the PR 1899 Felixoid (2386)
* feat: add allow\_forking to Repository IbrahimAH (2380)
* Add code scanning alerts eric-nieuwland (2227)

1.57

-----------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* Add support for Python 3.11, drop support for Python 3.6 (2332) (1e2f10dc)

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Speed up get requested reviewers and teams for pr (2349) (6725eceb)
* [WorkflowRun] - Add missing attributes (`run_started_at` & `run_attempt`), remove deprecated `unicode` type (2273) (3a6235b5)
* Add support for repository autolink references (2016) (0fadd6be)
* Add retry and pool_size to typing (2151) (784a3efd)
* Fix/types for repo topic team (2341) (db9337a4)
* Add class Artifact (2313) (2319) (437ff845)

1.56

-----------------------------------

Important
^^^^^^^^^

This is the last release that will support Python 3.6.

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Create repo from template (2090) (b50283a7)
* Improve signature of Repository.create_repo (2118) (001970d4)
* Add support for 'visibility' attribute preview for Repositories (1872) (8d1397af)
* Add Repository.rename_branch method (2089) (6452ddfe)
* Add function to delete pending reviews on a pull request (1897) (c8a945bb)
* Cover all code paths in search_commits (2087) (f1faf941)
* Correctly deal when PaginatedList's data is a dict (2084) (93b92cd2)
* Add two_factor_authentication in AuthenticatedUser. (1972) (4f00cbf2)
* Add ProjectCard.edit() to the type stub (2080) (d417e4c4)
* Add method to delete Workflow runs (2078) (b1c8eec5)
* Implement organization.cancel_invitation() (2072) (53fb4988)
* Feat: Add `html_url` property in Team Class. (1983) (6570892a)
* Add support for Python 3.10 (2073) (aa694f8e)
* Add github actions secrets to org (2006) (bc5e5950)
* Correct replay for Organization.create_project() test (2075) (fcc12368)
* Fix install command example (2043) (99e00a28)
* Fix: 1671 Convert Python Bool to API Parameter for Authenticated User Notifications (2001) (1da600a3)
* Do not transform requestHeaders when logging (1965) (1265747e)
* Add type to OrderedDict (1954) (ed7d0fe9)
* Add Commit.get_pulls() to pyi (1958) (b4664705)
* Adding headers in GithubException is a breaking change (1931) (d1644e33)

1.55

-----------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* Remove client_id/client_secret authentication (1888) (901af8c8)
* Adjust to Github API changes regarding emails (1890) (2c77cfad)
- This impacts what AuthenticatedUser.get_emails() returns
* PublicKey.key_id could be int on Github Enterprise (1894) (ad124ef4)
* Export headers in GithubException (1887) (ddd437a7)

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Do not import from unpackaged paths in typing (1926) (27ba7838)
* Implement hash for CompletableGithubObject (1922) (4faff23c)
* Use property decorator to improve typing compatibility (1925) (e4168109)
* Fix :rtype: directive (1927) (54b6a97b)
* Update most URLs to docs.github.com (1896) (babcbcd0)
* Tighten asserts for new Permission tests (1893) (5aab6f5d)
* Adding attributes "maintain" and "triage" to class "Permissions" (1810) (76879613)
* Add default arguments to Workflow method type annotations (1857) (7d6bac9e)
* Re-raise the exception when failing to parse JSON (1892) (916da53b)
* Allow adding attributes at the end of the list (1807) (0245b758)
* Updating links to Github documentation for deploy keys (1850) (c27fb919)
* Update PyJWT Version to 2.0+ (1891) (a68577b7)
* Use right variable in both get_check_runs() (1889) (3003e065)
* fix bad assertions in github.Project.edit (1817) (6bae9e5c)
* Test repr() for PublicKey (1879) (e0acd8f4)
* Add support for deleting repository secrets (1868) (696793de)
* Switch repository secrets to using f-strings (1867) (aa240304)
* Manually fixing paths for codecov.io to cover all project files (1813) (b2232c89)
* Add missing links to project metadata (1789) (64f532ae)
* No longer show username and password examples (1866) (55d98373)
* Adding github actions secrets (1681) (c90c050e)
* fix get_user_issues (1842) (7db1b0c9)
* Switch all string addition to using f-strings (1774) (290b6272)
* Enabling connection pool_size definition (a77d4f48)
* Always define the session adapter (aaec0a0f)

1.54.1

-----------------------------------

* Pin pyjwt version (1797) (31a1c007)
* Add pyupgrade to pre-commit configuration (1783) (e113e37d)
* Fix 1731: Incorrect annotation (82c349ce)
* Drop support for Python 3.5 (1770) (63e4fae9)
* Revert "Pin requests to <2.25 as well (1757)" (1763) (a806b523)
* Fix stubs file for Repository (fab682a5)

1.54

-----------------------------------

Important
^^^^^^^^^

This is the last release that will support Python 3.5.

Breaking Changes
^^^^^^^^^^^^^^^^

The Github.get_installation(integer) method has been removed.
Repository.create_deployment()'s payload parameter is now a dictionary.

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Add support for Check Suites (1764) (6d501b28)
* Add missing preview features of Deployment and Deployment Statuses API (1674) (197e0653)
* Correct typing for Commit.get_comments() (1765) (fcdd9eae)
* Pin requests to <2.25 as well (1757) (d159425f)
* Add Support for Check Runs (1727) (c77c0676)
* Added a method for getting a user by their id (1691) (4cfc9912)
* Fix 1742 - incorrect typehint for `Installation.id` (1743) (546f6495)
* Add WorkflowRun.workflow_id (1737) (78a29a7c)
* Add support for Python 3.9 (1735) (1bb18ab5)
* Added support for the Self-Hosted actions runners API (1684) (24251f4b)
* Fix Branch protection status in the examples (1729) (88800844)
* Filter the DeprecationWarning in Team tests (1728) (23f47539)
* Added get_installations() to Organizations (1695) (b42fb244)
* Fix 1507: Add new Teams: Add or update team repository endpoint (1509) (1c55be51)
* Added support for `Repository.get_workflow_runs` parameters (1682) (c23564dd)
* feat(pullrequest): add the rebaseable attribute (1690) (ee4c7a7e)
* Add support for deleting reactions (1708) (f7d203c0)
* Correct type hint for InputGitTreeElement.sha (08b72b48)
* Ignore new black formatting commit for git blame (1680) (7ec4f155)
* Format with new black (1679) (07e29fe0)
* Add get_timeline() to Issue's type stubs (1663) (6bc9ecc8)

1.53

-----------------------------------

* Test Organization.get_hook() (1660) (2646a98c)
* Add method get_team_membership for user to Team  (1658) (749e8d35)
* Add typing files for OAuth classes (1656) (429fcc73)
* Fix Repository.create_repository_dispatch type signature (1643) (f891bd61)
* PaginatedList's totalCount is 0 if no last page (1641) (69b37b4a)
* Add initial support for Github Apps. (1631) (260558c1)
* Correct ``**kwargs`` typing for ``search_*`` (1636) (165d995d)
* Add delete_branch_on_merge arg to Repository.edit type stub (1639) (15b5ae0c)
* Fix type stub for MainClass.get_user (1637) (8912be64)
* Add type stub for Repository.create_fork (1638) (de386dfb)
* Correct Repository.create_pull typing harder (1635) (5ad091d0)

1.52

-----------------------------------

* upload_asset with data in memory (1601) (a7786393)
* Make Issue.closed_by nullable (1629) (06dae387)
* Add support for workflow dispatch event (1625) (16850ef1)
* Do not check reaction_type before sending (1592) (136a3e80)
* Various Github Action improvement (1610) (416f2d0f)
* more flexible header splitting (1616) (85e71361)
* Create Dependabot config file (1607) (e272f117)
* Add support for deployment statuses (1588) (048c8a1d)
* Adds the 'twitter_username' attribute to NamedUser. (1585) (079f75a7)
* Create WorkflowRun.timing namedtuple from the dict (1587) (1879518e)
* Add missing properties to PullRequest.pyi (1577) (c84fad81)
* Add support for Workflow Runs (1583) (4fb1d23f)
* More precise typing for Repository.create_pull (1581) (4ed7aaf8)
* Update sphinx-rtd-theme requirement from <0.5 to <0.6 (1563) (f9e4feeb)
* More precise typing for MainClass.get_user() (1575) (3668f866)
* Small documentation correction in Repository.py (1565) (f0f6ec83)
* Remove "api_preview" parameter from type stubs and docstrings
(1559) (cc1b884c)
* Upgrade actions/setup-python to v2 (1555) (6f1640d2)
* Clean up tests for GitReleaseAsset (1546) (925764ad)
* Repository.update_file() content also accepts bytes (1543) (9fb8588b)
* Fix Repository.get_issues stub (1540) (b40b75f8)
* Check all arguments of NamedUser.get_repos() (1532) (69bfc325)
* Correct Workflow typing (1533) (f41c046f)
* Remove RateLimit.rate (1529) (7abf6004)
* PullRequestReview is not a completable object (1528) (19fc43ab)
* Test more attributes (1526) (52ec366b)
* Remove pointless setters in GitReleaseAsset (1527) (1dd1cf9c)
* Drop some unimplemented methods in GitRef (1525) (d4b61311)
* Remove unneeded duplicate string checks in Branch (1524) (61b61092)
* Turn on coverage reporting for codecov (1522) (e79b9013)
* Drastically increase coverage by checking repr() (1521) (291c4630)
* Fixed formatting of docstrings for `Repository.create_git_tag_and_release()`
and `StatsPunchCard`. (1520) (ce400bc7)
* Remove Repository.topics (1505) (53d58d2b)
* Small improvements to typing (1517) (7b20b13d)
* Correct Repository.get_workflows() (1518) (8727003f)
* docs(repository): correct releases link (1514) (f7cc534d)
* correct Repository.stargazers_count return type to int (1513) (b5737d41)
* Fix two RST warnings in Webhook.rst (1512) (5a8bc203)
* Filter FutureWarning for 2 test cases (1510) (09a1d9e4)
* Raise a FutureWarning on use of client_{id,secret} (1506) (2475fa66)
* Improve type signature for create_from_raw_data (1503) (c7b5eff0)
* feat(column): move, edit and delete project columns (1497) (a32a8965)
* Add support for Workflows (1496) (a1ed7c0e)
* Add create_repository_dispatch to typing files (1502) (ba9d59c2)
* Add OAuth support for GitHub applications (4b437110)
* Create AccessToken entity (4a6468aa)
* Extend installation attributes (61808da1)

1.51

-----------------------------------

* Type stubs are now packaged with the build (1489) (6eba4506)
* Travis CI is now dropped in favor of Github workflow (1488) (d6e77ba1)
* Get the project column by id (1466) (63855409)

1.50

-----------------------------------

New features
^^^^^^^^^^^^

* PyGithub now supports type checking thanks to (1231) (91433fe9)
* Slack is now the main channel of communication rather than Gitter (6a6e7c26)
* Ability to retrieve public events (1481) (5cf9950b)
* Add and handle the maintainer_can_modify attribute in PullRequest (1465) (e0997b43)
* List matching references (1471) (d3bc6a5c)
* Add create_repository_dispatch (1449) (edcbdfda)
* Add some Organization and Repository attributes. (1468) (3ab97d61)
* Add create project method (801ea385)

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Drop use of shadow-cat for draft PRs (1469) (84bb69ab)
* AuthenticatedUser.get_organization_membership() should be str (1473) (38b34db5)
* Drop documentation for len() of PaginatedList (1470) (70462598)
* Fix param name of projectcard's move function (1451) (bafc4efc)
* Correct typos found with codespell (1467) (83bef0f7)
* Export IncompletableObject in the github namespace (1450) (0ebdbb26)
* Add GitHub Action workflow for checks (1464) (f1401c15)
* Drop unneeded ignore rule for flake8 (1454) (b4ca9177)
* Use pytest to parametrize tests (1438) (d2e9bd69)

1.47

-----------------------------------

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Add support to edit and delete a project (1434) (f11f7395)
* Add method for fetching pull requests associated with a commit (1433) (0c55381b)
* Add "get_repo_permission" to Team class (1416) (219bde53)
* Add list projects support, update tests (1431) (e44d11d5)
* Don't transform completely in PullRequest.*assignees (1428) (b1c35499)
* Add create_project support, add tests (1429) (bf62f752)
* Add draft attribute, update test (bd285248)
* Docstring for Repository.create_git_tag_and_release (1425) (bfeacded)
* Create a tox docs environment (1426) (b30c09aa)
* Add Deployments API (1424) (3d93ee1c)
* Add support for editing project cards (1418) (425280ce)
* Add draft flag parameter, update tests (bd0211eb)
* Switch to using pytest (1423) (c822dd1c)
* Fix GitMembership with a hammer (1420) (f2939eb7)
* Add support to reply to a Pull request comment (1374) (1c82573d)
* PullRequest.update_branch(): allow expected_head_sha to be empty (1412) (806130e9)
* Implement ProjectCard.delete() (1417) (aeb27b78)
* Add pre-commit plugin for black/isort/flake8 (1398) (08b1c474)
* Add tox (1388) (125536fe)
* Open file in text mode in scripts/add_attribute.py (1396) (0396a493)
* Silence most ResourceWarnings (1393) (dd31a706)
* Assert more attributes in Membership (1391) (d6dee016)
* Assert on changed Repository attributes (1390) (6e3ceb19)
* Add reset to the repr for Rate (1389) (0829af81)

1.46

-----------------------------------
Important
^^^^^^^^^

Python 2 support has been removed. If you still require Python 2, use 1.45.

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Add repo edit support for delete_branch_on_merge (1381) (9564cd4d)
* Fix mistake in Repository.create_fork() (1383) (ad040baf)
* Correct two attributes in Invitation (1382) (882fe087)
* Search repo issues by string label (1379) (4ae1a1e5)
* Correct Repository.create_git_tag_and_release() (1362) (ead565ad)
* exposed seats and filled_seats for Github Organization Plan (1360) (06a300ae)
* Repository.create_project() body is optional (1359) (0e09983d)
* Implement move action for ProjectCard (1356) (b11add41)
* Tidy up ProjectCard.get_content() (1355) (dd80a6c0)
* Added nested teams and parent (1348) (eacabb2f)
* Correct parameter for Label.edit (1350) (16e5f989)
* doc: example of Pull Request creation (1344) (d5ad09ae)
* Fix PyPI wheel deployment (1330) (4561930b)

1.45

-----------------------------------
Important
^^^^^^^^^

* This is the last release of PyGithub that will support Python 2.

Breaking Changes
^^^^^^^^^^^^^^^^

* Branch.edit_{user,team}_push_restrictions() have been removed
* The new API is:
- Branch.add_{user,team}_push_restrictions() to add new members
- Branch.replace_{user,team}_push_restrictions() to replace all members
- Branch.remove_{user,team}_push_restrictions() to remove members
* The api_preview parameter to Github() has been removed.

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Allow sha=None for InputGitTreeElement (1327) (60464f65)
* Support github timeline events. (1302) (732fd26a)
* Update link to GitHub Enterprise in README (1324) (e1537f79)
* Cleanup travis config (1322) (8189a538)
* Add support for update branch  (1317) (baddb719)
* Refactor Logging tests (1315) (b0ef1909)
* Fix rtd build (b797cac0)
* Add .git-blame-ignore-revs (573c674b)
* Apply black to whole codebase (1303) (6ceb9e9a)
* Fix class used returning pull request comments (1307) (f8e33620)
* Support for create_fork (1306) (2ad51f35)
* Use Repository.get_contents() in tests (1301) (e40768e0)
* Allow GithubObject.update() to be passed headers (1300) (989b635e)
* Correct URL for assignees on PRs (1296) (3170cafc)
* Use inclusive ordered comparison for 'parameterized' requirement (1281) (fb19d2f2)
* Deprecate Repository.get_dir_contents() (1285) (21e89ff1)
* Apply some polish to manage.sh (1284) (3a723252)

1.44.1

-----------------------------------

* Add Python 3.8 to classifiers list (1280) (fec6034a)
* Expand Topic class and add test coverage (1252) (ac682742)
* Add support for team discussions (1246) (1249) (ec3c8d7b)
* Correct API for NamedUser.get_organization_membership (1277) (077c80ba)
* Correct header check for 2FA required (1274) (6ad592b1)
* Use replay framework for Issue142 test (1271) (4d258d93)
* Sync httpretty version requirement with setup.py (1265) (99d38468)
* Handle unicode strings when recording responses (1253) (1254) (faa1bbd6)
* Add assignee removal/addition support to PRs (1241) (a163ba15)
* Check if the version is empty in manage.sh (1268) (db294837)
* Encode content for {create,update}_file (1267) (bc225f9d)
* Update changes.rst (1263) (d7947d82)

1.44

-----------------------------------

New features
^^^^^^^^^^^^

* This version supports running under Python 3 directly, and the test suite
passes under both 2.7 and recent 3.x's.

Bug Fixes & Improvements
^^^^^^^^^^^^^^^^^^^^^^^^

* Stop ignoring unused imports and remove them (1250) (a0765083)
* Bump httpretty to be a greater or equal to (1262) (27092fb0)
* Add close all issues example (1256) (13e2c7c7)
* Add six to install_requires (1245) (a840a906)
* Implemented user organization membership. Added test case. (1237) (e50420f7)
* Create DEPLOY.md (c9ed82b2)
* Support non-default URLs in GithubIntegration (1229) (e33858a3)
* Cleanup try/except import in PaginatedList (1228) (89c967bb)
* Add an IncompletableObject exception (1227) (f91cbac2)
* Fix redundant int checks (1226) (850da5af)
* Jump from notifications to related PRs/issues. (1168) (020fbebc)
* Code review bodies are optional in some cases. (1169) (b84d9b19)
* Update changes.rst (1223) (2df7269a)
* Do not auto-close issues with high priority tag (ab27ba4d)
* Fix bug in repository create new file example PyGithub1210 (1211) (74cd6856)
* Remove more Python version specific code (1193) (a0f01cf9)
* Drop use of assertEquals (1194) (7bac694a)
* Fix PR review creation. (1184) (e90cdab0)
* Add support to vulnerability alert and automated security fixes APIs (1195) (8abd50e2)
* Delete Legacy submodule (1192) (7ddb657d)
* Remove some uses of atLeastPython3 (1191) (cca8e3a5)
* Run flake8 in Travis (1163) (f93207b4)
* Fix directories for coverage in Travis (1190) (657f87b5)
* Switch to using six (1189) (dc2f2ad8)
* Update Repository.update_file() docstring (1186) (f1ae7200)
* Correct return type of MainClass.get_organizations (1179) (6e79d270)
* Add cryptography to test-requirements.txt (1165) (9b1c1e09)
Links

Update setuptools from 41.2.0 to 75.3.0.

Changelog

75.3.0

=======

Features
--------

- Allowed using `dict` as an ordered type in ``setuptools.dist.check_requirements`` -- by :user:`Avasam` (4575)


Bugfixes
--------

- Ensured methods in ``setuptools.modified`` preferably raise a consistent
``distutils.errors.DistutilsError`` type
(except in the deprecated use case of ``SETUPTOOLS_USE_DISTUTILS=stdlib``)
-- by :user:`Avasam` (4567)
- Fix the ABI tag when building a wheel using the debug build of Python 3.13 on Windows. Previously, the ABI tag was missing the ``"d"`` flag. (4674)
- Fix clashes for ``optional-dependencies`` in ``pyproject.toml`` and
``extra_requires`` in ``setup.cfg/setup.py``.
As per PEP 621, ``optional-dependencies`` have to be honoured and dynamic
behaviour is not allowed. (4696)


Misc
----

- 4560

75.2.0

=======

Features
--------

- Made errors when parsing ``Distribution`` data more explicit about the expected type (``tuple[str, ...] | list[str]``) -- by :user:`Avasam` (4578)


Bugfixes
--------

- Fix a `TypeError` when a ``Distribution``'s old included attribute was a `tuple` -- by :user:`Avasam` (4578)
- Add workaround for ``bdist_wheel --dist-info-dir`` errors
when customisation does not inherit from setuptools. (4684)

75.1.1

=======

Bugfixes
--------

- Re-use pre-existing ``.dist-info`` dir when creating wheels via the build backend APIs (PEP 517) and the ``metadata_directory`` argument is passed -- by :user:`pelson`. (1825)
- Changed ``egg_info`` command to avoid adding an empty ``.egg-info`` directory
while iterating over entry-points.
This avoids triggering integration problems with ``importlib.metadata``/``importlib_metadata``
(reference: pypa/pyproject-hooks206). (4680)

75.1.0

=======

Features
--------

- Deprecated ``bdist_wheel.universal`` configuration. (4617)


Bugfixes
--------

- Removed reference to upload_docs module in entry points. (4650)

75.0.0

=======

Features
--------

- Declare also the dependencies used by distutils (adds jaraco.collections).


Deprecations and Removals
-------------------------

- Removed upload_docs command. (2971)
- Merge with pypa/distutils7283751. Removed the register and upload commands and the config module that backs them (pypa/distutils294). Removed the borland compiler. Replaced vendored dependencies with natural dependencies. Cygwin C compiler now gets compilers from sysconfig (pypa/distutils296). (4649)

74.1.3

=======

Bugfixes
--------

- Fix cross-platform compilation using ``distutils._msvccompiler.MSVCCompiler`` -- by :user:`saschanaz` and :user:`Avasam` (4648)

74.1.2

=======

Bugfixes
--------

- Fixed TypeError in sdist filelist processing by adding support for pathlib Paths for the build_base. (4615)
- Removed degraded and deprecated ``test_integration`` (easy_install) from the test suite. (4632)

74.1.1

=======

Bugfixes
--------

- Fixed TypeError in ``msvc.EnvironmentInfo.return_env`` when no runtime redistributables are installed. (1902)

74.1.0

=======

Features
--------

- Added support for defining ``ext-modules`` via ``pyproject.toml``
(**EXPERIMENTAL**, may change in future releases). (4568)


Bugfixes
--------

- Merge with pypa/distutils3dcdf8567, removing the duplicate vendored copy of packaging. (4622)
- Restored ``setuptools.msvc.Environmentinfo`` as it is used externally. (4625)

74.0.0

=======

Features
--------

- Changed the type of error raised by ``setuptools.command.easy_install.CommandSpec.from_param`` on unsupported argument from `AttributeError` to `TypeError` -- by :user:`Avasam` (4548)
- Added detection of ARM64 variant of MSVC -- by :user:`saschanaz` (4553)
- Made ``setuptools.package_index.Credential`` a `typing.NamedTuple` -- by :user:`Avasam` (4585)
- Reraise error from ``setuptools.command.easy_install.auto_chmod`` instead of nonsensical ``TypeError: 'Exception' object is not subscriptable`` -- by :user:`Avasam` (4593)
- Fully typed all collection attributes in ``pkg_resources`` -- by :user:`Avasam` (4598)
- Automatically exclude ``.tox|.nox|.venv`` directories from ``sdist``. (4603)


Deprecations and Removals
-------------------------

- Removed the monkeypatching of distutils._msvccompiler. Now all compiler logic is consolidated in distutils. (4600)
- Synced with pypa/distutils58fe058e4, including consolidating Visual Studio 2017 support (4600, pypa/distutils289), removal of deprecated legacy MSVC compiler modules (pypa/distutils287), suppressing of errors when the home directory is missing (pypa/distutils278), removal of wininst binaries (pypa/distutils282). (4606)


Misc
----

- 4592

73.0.1

=======

Bugfixes
--------

- Remove `abc.ABCMeta` metaclass from abstract classes. `pypa/setuptools4503 <https://github.com/pypa/setuptools/pull/4503>`_ had an unintended consequence of causing potential ``TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases`` -- by :user:`Avasam` (#4579)

73.0.0

=======

Features
--------

- Mark abstract base classes and methods with `abc.ABC` and `abc.abstractmethod` -- by :user:`Avasam` (4503)
- Changed the order of type checks in ``setuptools.command.easy_install.CommandSpec.from_param`` to support any `collections.abc.Iterable` of `str` param -- by :user:`Avasam` (4505)


Bugfixes
--------

- Prevent an error in ``bdist_wheel`` if ``compression`` is set to a `str` (even if valid) after finalizing options but before running the command. -- by :user:`Avasam` (4383)
- Raises an exception when ``py_limited_api`` is used in a build with
``Py_GIL_DISABLED``. This is currently not supported (python/cpython111506). (4420)
- Synced with pypa/distutils30b7331 including fix for modified check on empty sources (pypa/distutils284).


Deprecations and Removals
-------------------------

- ``setuptools`` is replacing the usages of :pypi:`ordered_set` with simple
instances of ``dict[Hashable, None]``. This is done to remove the extra
dependency and it is possible because since Python 3.7, ``dict`` maintain
insertion order. (4574)


Misc
----

- 4534, 4546, 4554, 4559, 4565

72.2.0

=======

Features
--------

- Merged with pypa/distutilsb7ee725f3 including: Support for Pathlike objects in data files and extensions (pypa/distutils272, pypa/distutils237), native support for C++ compilers (pypa/distuils228) and removed unused get_msvcr() (pypa/distutils274). (4538)

72.1.0

=======

Features
--------

- Restore the tests command and deprecate access to the module. (4519) (4520)

72.0.0

=======

Deprecations and Removals
-------------------------

- The test command has been removed. Users relying on 'setup.py test' will need to migrate to another test runner or pin setuptools before this version. (931)

71.1.0

=======

Features
--------

- Added return types to typed public functions -- by :user:`Avasam`

Marked `pkg_resources` as ``py.typed`` -- by :user:`Avasam` (4409)


Misc
----

- 4492

71.0.4

=======

Bugfixes
--------

- Removed lingering unused code around Distribution._patched_dist. (4489)

71.0.3

=======

Bugfixes
--------

- Reset the backports module when enabling vendored packages. (4476)

71.0.2

=======

Bugfixes
--------

- Include all vendored files in the sdist. (4480)

71.0.1

=======

Bugfixes
--------

- Restored package data that went missing in 71.0. This change also incidentally causes tests to be installed once again. (4475)

71.0.0

=======

Deprecations and Removals
-------------------------

- Now setuptools declares its own dependencies in the ``core`` extra. Dependencies are still vendored for bootstrapping purposes, but setuptools will prefer installed dependencies if present. The ``core`` extra is used for informational purposes and should *not* be declared in package metadata (e.g. ``build-requires``). Downstream packagers can de-vendor by simply removing the ``setuptools/_vendor`` directory. Since Setuptools now prefers installed dependencies, those installing to an environment with old, incompatible dependencies will not work. In that case, either uninstall the incompatible dependencies or upgrade them to satisfy those declared in ``core``. (2825)

70.3.0

=======

Features
--------

- Support for loading distutils from the standard library is now deprecated, including use of SETUPTOOLS_USE_DISTUTILS=stdlib and importing distutils before importing setuptools. (4137)


Bugfixes
--------

- Bugfix for building Cython extension on Windows (pypa/distutils268).

70.2.0

=======

Features
--------

- Updated distutils including significant changes to support Cygwin and mingw compilers. (4444)


Bugfixes
--------

- Fix distribution name normalisation (:pep:`625`) for valid versions that are
not canonical (e.g. ``1.0-2``). (4434)

70.1.1

=======

Misc
----

- 4429

70.1.0

=======

Features
--------

- Adopted the ``bdist_wheel`` command from the ``wheel`` project -- by :user:`agronholm` (1386)
- Improve error message when ``pkg_resources.ZipProvider`` tries to extract resources with a missing Egg -- by :user:`Avasam`

Added variables and parameter type annotations to ``pkg_resources`` to be nearly on par with typeshed.\* -- by :user:`Avasam`
\* Excluding ``TypeVar`` and ``overload``. Return types are currently inferred. (4246)
- Migrated Setuptools' own config to pyproject.toml (4310)


Bugfixes
--------

- Prevent a ``TypeError: 'NoneType' object is not callable`` when ``shutil_rmtree`` is called without an ``onexc`` parameter on Python<=3.11 -- by :user:`Avasam` (4382)
- Replace use of mktemp with can_symlink from the stdlib test suite. (4403)
- Improvement for ``attr:`` directives in configuration to handle
more edge cases related to complex ``package_dir``. (4405)
- Fix accidental implicit string concatenation. (4411)


Misc
----

- 4365, 4422

70.0.0

=======

Features
--------

- Emit a warning when ``[tools.setuptools]`` is present in ``pyproject.toml`` and will be ignored. -- by :user:`SnoopJ` (4150)
- Improved `AttributeError` error message if ``pkg_resources.EntryPoint.require`` is called without extras or distribution
Gracefully "do nothing" when trying to activate a ``pkg_resources.Distribution`` with a `None` location, rather than raising a `TypeError`
-- by :user:`Avasam` (4262)
- Typed the dynamically defined variables from `pkg_resources` -- by :user:`Avasam` (4267)
- Modernized and refactored VCS handling in package_index. (4332)


Bugfixes
--------

- In install command, use super to call the superclass methods. Avoids race conditions when monkeypatching from _distutils_system_mod occurs late. (4136)
- Fix finder template for lenient editable installs of implicit nested namespaces
constructed by using ``package_dir`` to reorganise directory structure. (4278)
- Fix an error with `UnicodeDecodeError` handling in ``pkg_resources`` when trying to read files in UTF-8 with a fallback -- by :user:`Avasam` (4348)


Improved Documentation
----------------------

- Uses RST substitution to put badges in 1 line. (4312)


Deprecations and Removals
-------------------------

- Further adoption of UTF-8 in ``setuptools``.
This change regards mostly files produced and consumed during the build process
(e.g. metadata files, script wrappers, automatically updated config files, etc..)
Although precautions were taken to minimize disruptions, some edge cases might
be subject to backwards incompatibility.

Support for ``"locale"`` encoding is now **deprecated**. (4309)
- Remove ``setuptools.convert_path`` after long deprecation period.
This function was never defined by ``setuptools`` itself, but rather a
side-effect of an import for internal usage. (4322)
- Remove fallback for customisations of ``distutils``' ``build.sub_command`` after long
deprecated period.
Users are advised to import ``build`` directly from ``setuptools.command.build``. (4322)
- Removed ``typing_extensions`` from vendored dependencies -- by :user:`Avasam` (4324)
- Remove deprecated ``setuptools.dep_util``.
The provided alternative is ``setuptools.modified``. (4360)


Misc
----

- 4255, 4280, 4282, 4308, 4348

69.5.1

=======

No significant changes.

69.5.0

=======

Features
--------

- Refresh unpinned vendored dependencies. (4253)
- Updated vendored packaging to version 24.0. (4301)

69.4.2

=======

Bugfixes
--------

- Merged bugfix for pypa/distutils246.

69.4.1

=======

No significant changes.

69.4.0

=======

Features
--------

- Merged with pypa/distutils55982565e, including interoperability improvements for rfc822_escape (pypa/distutils213), dynamic resolution of config_h_filename for Python 3.13 compatibility (pypa/distutils219), added support for the z/OS compiler (pypa/distutils216), modernized compiler options in unixcompiler (pypa/distutils214), fixed accumulating flags bug after compile/link (pypa/distutils207), fixed enconding warnings (pypa/distutils236), and general quality improvements (pypa/distutils234). (4298)

69.3.1

=======

Bugfixes
--------

- Remove attempt to canonicalize the version. It's already canonical enough. (4302)

69.3.0

=======

Features
--------

- Support PEP 625 by canonicalizing package name and version in filenames
per
`the spec <https://packaging.python.org/en/latest/specifications/source-distribution-format/#source-distribution-file-name>`_.
Projects whose names contain uppercase characters, dashes, or periods will
now see their sdist names normalized to match the standard and the format
previously seen in wheels. For example:

- ``zope.interface`` -> ``zope_interface``
- ``CherryPy`` -> ``cherrypy``
- ``foo-bar_baz`` -> ``foo_bar_baz``

Projects are encouraged to adopt this change to align with standards and
other backend build systems. (3593)

69.2.0

=======

Features
--------

- Explicitly use ``encoding="locale"`` for ``.pth`` files whenever possible,
to  reduce ``EncodingWarnings``.
This avoid errors with UTF-8 (see discussion in python/cpython77102). (4265)


Bugfixes
--------

- Clarify some `pkg_resources` methods return `bytes`, not `str`. Also return an empty `bytes` in ``EmptyProvider._get`` -- by :user:`Avasam` (4243)
- Return an empty `list` by default in ``pkg_resources.ResourceManager.cleanup_resources`` -- by :user:`Avasam` (4244)
- Made ``pkg_resoursces.NullProvider``'s ``has_metadata`` and ``metadata_isdir`` methods return actual booleans like all other Providers. -- by :user:`Avasam` (4254)


Misc
----

- 4237, 4238, 4241, 4260, 4261, 4263

69.1.1

=======

Bugfixes
--------

- Fix argument order of ``--config-settings["--build-option"]`` arguments.
This was broken by <https://github.com/pypa/setuptools/pull/4079>`. (#4217)


Misc
----

- 4231

69.1.0

=======

Features
--------

- Updated and removed obsolete Python < 3.8 code and comments. -- by :user:`Avasam` (4096)
- Updated `pkg_resources` to use stdlib `importlib.machinery` instead of ``importlib_machinery`` -- by :user:`Avasam` (4097)


Bugfixes
--------

- In tests, rely on pytest-home for reusable fixture. (4072)
- Explicitely marked as ``Protocol`` and fixed missing ``self`` argument in interfaces ``pkg_resources.IMetadataProvider`` and ``pkg_resources.IResourceProvider`` -- by :user:`Avasam` (4144)
- Restored expectation that egg-link files would be named with dash separators for compatibility with pip prior to version 24. (4167)


Improved Documentation
----------------------

- Updated documentation referencing obsolete Python 3.7 code. -- by :user:`Avasam` (4096)
- Changed ``versionadded`` for "Type information included by default" feature from ``v68.3.0`` to ``v69.0.0`` -- by :user:`Avasam` (4182)
- Described the auto-generated files -- by :user:`VladimirFokow` (4198)
- Updated "Quickstart" to describe the current status of ``setup.cfg`` and ``pyproject.toml`` -- by :user:`VladimirFokow` (4200)

69.0.3

=======

Bugfixes
--------

- Retain valid names with underscores in egg_info.

69.0.2

=======

Bugfixes
--------

- Added missing estimated date for removing ``setuptools.dep_util`` (deprecated in v69.0.0). (4131)

69.0.1

=======

Bugfixes
--------

- Fixed imports of ``setuptools.dep_util.newer_group``.
A deprecation warning is issued instead of a hard failure. (4126)

69.0.0

=======

Features
--------

- Include type information (``py.typed``, ``*.pyi``) by default (3136) -- by :user:`Danie-1`,
**EXPERIMENTAL**. (3136)
- Exported ``distutils.dep_util`` and ``setuptools.dep_util`` through ``setuptools.modified`` -- by :user:`Avasam` (4069)
- Merged with pypa/distutils7a04cbda0fc714.


Bugfixes
--------

- Replaced hardcoded numeric values with :obj:`dis.opmap`,
fixing problem with 3.13.0a1. (4094)


Deprecations and Removals
-------------------------

- Configuring project ``version`` and ``egg_info.tag_*`` in such a way that
results in invalid version strings (according to :pep:`440`) is no longer permitted. (4066)
- Removed deprecated ``egg_base`` option from ``dist_info``.
Note that the ``dist_info`` command is considered internal to the way
``setuptools`` build backend works and not intended for
public usage. (4066)
- The parsing of the deprecated ``metadata.license_file`` and
``metadata.requires`` fields in ``setup.cfg`` is no longer supported.
Users are expected to move to ``metadata.license_files`` and
``options.install_requires`` (respectively). (4066)
- Passing ``config_settings`` to ``setuptools.build_meta`` with
deprecated values for ``--global-option`` is no longer allowed. (4066)
- Removed deprecated ``namespace-packages`` from ``pyproject.toml``.
Users are asked to use
:doc:`implicit namespace packages <PyPUG:guides/packaging-namespace-packages>`
(as defined in :pep:`420`). (4066)
- Added strict enforcement for ``project.dynamic`` in ``pyproject.toml``.
This removes the transitional ability of users configuring certain parameters
via ``setup.py`` without making the necessary changes to ``pyproject.toml``
(as mandated by :pep:`621`). (4066)
- Removed handling of ``--config-settings["--build-option"]`` in ``setuptools.build_meta``
from build-backend API hooks *other than* ``build_wheel``.
This was motivate by `errors caused when passing this option
<https://github.com/pypa/setuptools/issues/2491#issuecomment-1742859314>`_. (4079)

68.2.2

=======

Bugfixes
--------

- Improve backwards compatibility with deprecated CLI practices. (4048)

68.2.1

=======

Bugfixes
--------

- Avoid using caching attributes in ``Distribution.metadata`` for requirements.
This is done for backwards compatibility with customizations that attempt to
modify ``install_requires`` or ``extras_require`` at a late point (still not
recommended). (4043)


Misc
----

- 4045

68.2.0

=======

Features
--------

- Rework how ``setuptools`` internally handles ``dependencies/install_requires``
and ``optional-dependencies/extras_require``. (3903)
- Improve the generated ``PKG-INFO`` files, by adding ``Requires-Dist`` fields.
Previously, these fields would be omitted in favour of a non-standard
``*.egg-info/requires.txt`` file (which is still generated for the time being). (3904)
- Improve atomicity when writing ``PKG-INFO`` files to avoid race
conditions with ``importlib.metadata``. (3904)


Bugfixes
--------

- Fix the name given to the ``*-nspkg.pth`` files in editable installs,
ensuring they are unique per distribution. (4041)
- Workaround some limitations on ``pkg_resources``-style legacy namespaces in
the meta path finder for editable installations. (4041)


Misc
----

- 4023, 4027, 4027

68.1.2

=======

Misc
----

- 4022, 4022

68.1.1

=======

Bugfixes
--------

- Fix editable install finder handling of nested packages, by only handling 1
level of nesting and relying on ``importlib.machinery`` to find the remaining
modules based on the parent package path. (4020)

68.1.0

=======

Features
--------

- Removed code referencing bdist_wininst in install_scripts. (3525)
- Promote ``pyproject.toml``'s ``[tool.setuptools]`` out of beta.
Note that some fields are still considered deprecated and/or obsolete,
and these might be removed in future versions (i.e., there is no guarantee
for long term support and backward compatibility on those fields). (3962)
- Automatically add files listed in ``Extension.depends`` to sdists,
as long as they are contained in the project directory -- by :user:`RuRo` (4000)
- Require Python 3.8 or later.


Bugfixes
--------

- Made imports in editable installs case-sensitive on case-insensitive filesystems -- by :user:`aganders3` (3995)
- Use default encoding to create ``.pth`` files with ``editable_wheel``. (4009)
- Detects (and complain about) ``scripts`` and ``gui-scripts`` set via ``setup.py``
when ``pyproject.toml`` does not include them in ``dynamic``. (4012)


Misc
----

- 3833, 3960, 4001, 4007

68.0.0

=======


Breaking Changes
----------------
* 3948: Removed verification for existing ``depends.txt`` file (deprecated since v0.5a4).
* 3948: Remove autofixing of broken ``.egg-info`` directories containing the ``-``
character in their base name (without suffix).
They should no longer be produced by sufficiently new versions of ``setuptools``
(warning introduced in 2005).
* 3948: Remove deprecated APIs in ``easy_install``: ``get_script_args``,
``get_script_header`` and ``get_writer``.
The direct usage of ``easy_install`` has been deprecated since v58.3.0,
and the warnings regarding these APIs predate that version.
* 3948: Removed ``egg_info.get_pkg_info_revision`` (deprecated since 2015).
* 3948: Removed ``setuptools.dist._get_unpatched`` (deprecated since 2016)
* 3948: Removed support for SVN in ``setuptools.package_index`` (deprecated since 2018).
* 3948: Removed support for invalid ``pyproject.toml`` files.
During the implementation of PEP 621, it was identified that some users were
producing invalid files. As a transitional measure, the validation was relaxed
for a few use cases. The grace period, however, came to an end.

Changes
-------
* 3760: Added symlink support to launcher for installed executables -- by :user:`eugene-sevostianov-sc`
* 3926: Updated vendored ``packaging`` version from 23.0 to 23.1 -- by :user:`MetRonnie`
* 3950: Implemented workaround for old versions of ``vswhere``, which miss the
``-requiresAny`` parameter, such as the ones distributed together with Visual Studio 2017 < 15.6.
* 3952: Changed ``DistutilsMetaFinder`` to skip ``spec_for_pip`` on Python >= 3.12.
* 3952: Removed ``_distutils_hack.remove_shim`` on Python >= 3.12
(since ``distutils`` was removed from the standard library,
``DistutilsMetaFinder`` cannot be disabled on Python >= 3.12).

Misc
----
* 3920: Add a link to deprecation warning in ``pkg_resources`` and improve
``stacklevel`` for better visibility.

67.8.0

=======


Changes
-------
* 3128: In deprecated easy_install, reload and merge the pth file before saving.

Misc
----
* 3915: Adequate tests to the latest changes in ``virtualenv`` for Python 3.12.

67.7.2

=======


Misc
----
* 3902: Fixed wrong URLs used in warnings and logs.

67.7.1

=======


Misc
----
* 3898: Fixes setuptools.dist:invalid_unless_false when value is false don't raise error -- by :user:`jammarher`

67.7.0

=======


Changes
-------
* 3849: Overhaul warning system for better visibility.

Documentation changes

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Dec 1, 2024

Closing this in favor of #68

@pyup-bot pyup-bot closed this Dec 1, 2024
@merlink01 merlink01 deleted the pyup-scheduled-update-2024-11-01 branch December 1, 2024 17:03
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