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

[BUG] setuptools 58.5 breaks installation of docutils==0.10.0 #2849

Closed
1 task done
anntzer opened this issue Nov 4, 2021 · 11 comments · Fixed by #2855
Closed
1 task done

[BUG] setuptools 58.5 breaks installation of docutils==0.10.0 #2849

anntzer opened this issue Nov 4, 2021 · 11 comments · Fixed by #2855
Labels
bug Needs Triage Issues that need to be evaluated for severity and status.

Comments

@anntzer
Copy link

anntzer commented Nov 4, 2021

setuptools version

58.5.{0,1}

Python version

3.9

OS

Arch Linux

Additional environment information

No response

Description

Installing docutils==0.10 in a clean venv with setuptools 58.5.{0,1} fails with an internal(?) AttributeError.

Expected behavior

Successful installation.

How to Reproduce

python -mvenv /tmp/testenv && source /tmp/testenv/bin/activate &&
  pip install -U pip setuptools wheel && pip install docutils==0.10

(To repro the issue, you may need to pip cache purge first if you happen to already have a wheel for docutils==0.10 in your pip cache.)

Output

  ERROR: Command errored out with exit status 1:
   command: /tmp/testenv/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-r8b4xqgi/docutils_459783958fce4136b27e3bc6ec961dba/setup.py'"'"'; __file__='"'"'/tmp/pip-install-r8b4xqgi/docutils_459783958fce4136b27e3bc6ec961dba/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-_qz_txff
       cwd: /tmp/pip-install-r8b4xqgi/docutils_459783958fce4136b27e3bc6ec961dba/
  Complete output (35 lines):
  running egg_info
  creating /tmp/pip-pip-egg-info-_qz_txff/docutils.egg-info
  writing /tmp/pip-pip-egg-info-_qz_txff/docutils.egg-info/PKG-INFO
  writing dependency_links to /tmp/pip-pip-egg-info-_qz_txff/docutils.egg-info/dependency_links.txt
  writing top-level names to /tmp/pip-pip-egg-info-_qz_txff/docutils.egg-info/top_level.txt
  writing manifest file '/tmp/pip-pip-egg-info-_qz_txff/docutils.egg-info/SOURCES.txt'
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-r8b4xqgi/docutils_459783958fce4136b27e3bc6ec961dba/setup.py", line 221, in <module>
      do_setup()
    File "/tmp/pip-install-r8b4xqgi/docutils_459783958fce4136b27e3bc6ec961dba/setup.py", line 98, in do_setup
      dist = setup(**kwargs)
    File "/usr/lib/python3.9/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/lib/python3.9/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/tmp/testenv/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 299, in run
      self.find_sources()
    File "/tmp/testenv/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 306, in find_sources
      mm.run()
    File "/tmp/testenv/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 541, in run
      self.add_defaults()
    File "/tmp/testenv/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 578, in add_defaults
      sdist.add_defaults(self)
    File "/usr/lib/python3.9/distutils/command/sdist.py", line 226, in add_defaults
      self._add_defaults_python()
    File "/tmp/testenv/lib/python3.9/site-packages/setuptools/command/sdist.py", line 113, in _add_defaults_python
      self._add_data_files(self._safe_data_files(build_py))
    File "/tmp/testenv/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 621, in _safe_data_files
      return build_py.get_data_files_without_manifest()
    File "/usr/lib/python3.9/distutils/cmd.py", line 103, in __getattr__
      raise AttributeError(attr)
  AttributeError: get_data_files_without_manifest
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/66/40/2b11ec2ec96d527ef933332a5847cc90860fd8bbee46da2cc468794ea25b/docutils-0.10.tar.gz#sha256=370624e61b6773da2f2fb17cc2a4eaea4bb596c3585d13f75ff193c1c738603e (from https://pypi.org/simple/docutils/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement docutils==0.10 (from versions: 0.3, 0.3.5, 0.3.7, 0.3.9, 0.4, 0.5, 0.6, 0.7, 0.8, 0.8.1, 0.9, 0.9.1, 0.10, 0.11, 0.12, 0.13.1, 0.14rc1, 0.14rc2, 0.14, 0.15, 0.15.1.post1, 0.15.2, 0.16b0.dev0, 0.16rc1, 0.16, 0.17b1, 0.17, 0.17.1b1.dev0, 0.17.1, 0.18b1, 0.18)
ERROR: No matching distribution found for docutils==0.10

Code of Conduct

  • I agree to follow the PSF Code of Conduct
@anntzer anntzer added bug Needs Triage Issues that need to be evaluated for severity and status. labels Nov 4, 2021
@jerryz1982
Copy link

breaks pycrypto too

@jiasli
Copy link

jiasli commented Nov 4, 2021

Breaks python setup.py bdist_wheel -d build in our pipeline:

Full call stack
2021-11-04T03:23:41.8710919Z Traceback (most recent call last):
2021-11-04T03:23:41.8711856Z   File "/home/vsts/work/1/s/src/azure-cli/setup.py", line 160, in <module>
2021-11-04T03:23:41.8712337Z     setup(
2021-11-04T03:23:41.8713101Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/__init__.py", line 159, in setup
2021-11-04T03:23:41.8713849Z     return distutils.core.setup(**attrs)
2021-11-04T03:23:41.8714381Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/core.py", line 148, in setup
2021-11-04T03:23:42.0792338Z     dist.run_commands()
2021-11-04T03:23:42.0793141Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/dist.py", line 966, in run_commands
2021-11-04T03:23:42.1846501Z     self.run_command(cmd)
2021-11-04T03:23:42.1847638Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/dist.py", line 985, in run_command
2021-11-04T03:23:42.1848465Z     cmd_obj.run()
2021-11-04T03:23:42.1849964Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 335, in run
2021-11-04T03:23:42.1850889Z     self.run_command('install')
2021-11-04T03:23:42.1851397Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/cmd.py", line 313, in run_command
2021-11-04T03:23:42.2316182Z     self.distribution.run_command(command)
2021-11-04T03:23:42.2317514Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/dist.py", line 985, in run_command
2021-11-04T03:23:42.2320510Z     cmd_obj.run()
2021-11-04T03:23:42.2321832Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/install.py", line 68, in run
2021-11-04T03:23:42.2322583Z     return orig.install.run(self)
2021-11-04T03:23:42.2323717Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/command/install.py", line 558, in run
2021-11-04T03:23:42.2335935Z     self.run_command(cmd_name)
2021-11-04T03:23:42.2336648Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/cmd.py", line 313, in run_command
2021-11-04T03:23:42.2337157Z     self.distribution.run_command(command)
2021-11-04T03:23:42.2337636Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/dist.py", line 985, in run_command
2021-11-04T03:23:42.2338089Z     cmd_obj.run()
2021-11-04T03:23:42.2349505Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/install_egg_info.py", line 34, in run
2021-11-04T03:23:42.2350417Z     self.run_command('egg_info')
2021-11-04T03:23:42.2350922Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/cmd.py", line 313, in run_command
2021-11-04T03:23:42.2351403Z     self.distribution.run_command(command)
2021-11-04T03:23:42.2351893Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/dist.py", line 985, in run_command
2021-11-04T03:23:42.2357369Z     cmd_obj.run()
2021-11-04T03:23:42.2358817Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 299, in run
2021-11-04T03:23:42.2359947Z     self.find_sources()
2021-11-04T03:23:42.2361214Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 306, in find_sources
2021-11-04T03:23:42.2362230Z     mm.run()
2021-11-04T03:23:42.2363085Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 541, in run
2021-11-04T03:23:42.2364084Z     self.add_defaults()
2021-11-04T03:23:42.2364807Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 578, in add_defaults
2021-11-04T03:23:42.2365253Z     sdist.add_defaults(self)
2021-11-04T03:23:42.2365673Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/command/sdist.py", line 226, in add_defaults
2021-11-04T03:23:42.2366081Z     self._add_defaults_python()
2021-11-04T03:23:42.2366796Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/sdist.py", line 113, in _add_defaults_python
2021-11-04T03:23:42.2367678Z     self._add_data_files(self._safe_data_files(build_py))
2021-11-04T03:23:42.2368540Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 621, in _safe_data_files
2021-11-04T03:23:42.2369747Z     return build_py.get_data_files_without_manifest()
2021-11-04T03:23:42.2370277Z   File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/distutils/cmd.py", line 103, in __getattr__
2021-11-04T03:23:42.2370751Z     raise AttributeError(attr)
2021-11-04T03:23:42.2374899Z AttributeError: get_data_files_without_manifest

get_data_files_without_manifest was added by #2844

@abravalheri
Copy link
Contributor

abravalheri commented Nov 4, 2021

This seems to be related to the replacement of 8a0e63a with b6ce536.

Those entry-points should point to the setuptools version of the commands, but for some reason, the original distutils commands are being used instead.


Building the project with build seems to work fine, though:

$ virtualenv venv-docutils
$ source venv-docutils/bin/activate
$ pip cache purge
$ svn checkout https://svn.code.sf.net/p/docutils/code/trunk/docutils docutils-code
$ cd docutils-code
$ pip install build
$ python -m build

@nshgraph
Copy link

nshgraph commented Nov 4, 2021

This appears to be a breaking change introduced in 2e66eb7 when custom commands are used as it forces the new function get_data_files_without_manifest to be present.

@jjerphan
Copy link

jjerphan commented Nov 4, 2021

This appears to be a breaking change introduced in 2e66eb7 when custom commands are used as it forces the new function get_data_files_without_manifest to be present.

I confirm that pip installing using 1812f8d works but using 2e66eb7 fails (tested on scikit-learn).

jjerphan added a commit to jjerphan/scikit-learn that referenced this issue Nov 4, 2021
jjerphan added a commit to jjerphan/scikit-learn that referenced this issue Nov 4, 2021
@Alphare
Copy link

Alphare commented Nov 4, 2021

Also breaks install for Mercurial: https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/260776#L53

rgommers pushed a commit to scipy/scipy that referenced this issue Nov 4, 2021
…14974)

* BUG: freeze setuptools build deps to workaround pypa/setuptools#2849

* freeze version in the pyproject.toml
* same for CI jobs, where we do pip install -U setuptools

* Make a separate step to install setuptools in azure-pipelines.yml

For some reason (probably, due to some pip bug), the pip deps resolver
substitute setuptools>=58.5 (indirect deps in the matplotlib) even if
we have a strict requirement for setuptools (e.g. ==58.4.0).
skirpichev added a commit to skirpichev/diofant that referenced this issue Nov 4, 2021
@abravalheri
Copy link
Contributor

abravalheri commented Nov 4, 2021

I think we have 2 separated problems here:

  1. If packages define their own build_py inheriting from distutils instead of setuptools, and don't define a get_data_files_without_manifest, there will be a problem.

  2. Installing sdist packages with pip might result in error, since the distutils version of build_py is being used instead of the setuptools version.
    This can be reproduced with docutils==0.10.0.
    Interestingly, pypa/build isolated environments don't seem to have the same problem.
    This second issue seems more difficult to track down.


Correction, this is indeed a single problem, as pointed out by @nshgraph

docutils==0.10.0 defines a custom version of copy_build_py_2to3 that inherits from distutils.command.build_py.build_py_2to3.

The latest version of docutils do not have this requirement. @anntzer are you unable to update the version of docutils?

skirpichev added a commit to skirpichev/diofant that referenced this issue Nov 4, 2021
akladiev added a commit to akladiev/openvino that referenced this issue Nov 4, 2021
Due to pypa/setuptools#2849 introduced with the latest setutools
@anntzer
Copy link
Author

anntzer commented Nov 4, 2021

I certainly can, this was just a version I had pinned in CI to test an "oldest-supported-version-of-dependency" for another package. I guess the other commenters here may want a more robust solution, though...

@abravalheri
Copy link
Contributor

abravalheri commented Nov 4, 2021

I certainly can, this was just a version I had pinned in CI to test an "oldest-supported-version-of-dependency" for another package. I guess the other commenters here may want a more robust solution, though...

Yes, I understand that.

I am having a look to try to identify what can be done:

  • Some packages listed here use build_py_2to3 (e.g. docutils, pycrypto)
  • Others define a custom build_py inheriting directly from distutils (e.g. pycryptodome)
  • There is a third case that I am still trying to find a connection. This is the case of packages that redefine build_ext, sdist or custom builds but not build_py.

@jaraco maybe the easiest approach is to restore 8a0e63a?

Unless supporting commands that inherit directly from distutils is outside of the scope of setuptools, which in that case would require adding a "breaking change" notice to the change log.

@jaraco
Copy link
Member

jaraco commented Nov 4, 2021

I'll review this tonight and get out a fix or yank the release. Thanks for your patience through this unintentional disruption.

tf-gerrit-replicator pushed a commit to tungstenfabric/tf-test that referenced this issue Nov 4, 2021
bug is pypa/setuptools#2849

Change-Id: I5eac3ff865bf1b40b433a2d0fc6c3413a7605598
nbren12 pushed a commit to ai2cm/fv3net that referenced this issue Nov 4, 2021
Fixes an unpinned dependency on setuptools in installing vcm. The version used when pip installing vcm is specified in pyproject.toml, and previous unpinned nature allowed upstream failures such as [this](pypa/setuptools#2849) to break the installation.

Requirement changes:
- setuptools pinned in external/vcm/pyoroject.toml to version already pinned in conda environment
LarsMichelsen pushed a commit to Checkmk/checkmk that referenced this issue Nov 5, 2021
tf-gerrit-replicator pushed a commit to tungstenfabric/tf-test that referenced this issue Nov 5, 2021
bug is pypa/setuptools#2849

Change-Id: I5eac3ff865bf1b40b433a2d0fc6c3413a7605598
(cherry picked from commit 678db29)
abravalheri added a commit to abravalheri/setuptools that referenced this issue Nov 8, 2021
The selection of packages used in the integration test is arbitrary, and
can be changed.

The main criteria used was the time to build, and the number of
"non-Python" dependencies. The only exception was numpy, due to its
significance to the ecosystem.
abravalheri added a commit to abravalheri/setuptools that referenced this issue Nov 13, 2021
The selection of packages used in the integration test is arbitrary, and
can be changed.

The main criteria used was the time to build, and the number of
"non-Python" dependencies. The only exception was numpy, due to its
significance to the ecosystem.
abravalheri added a commit to abravalheri/setuptools that referenced this issue Dec 21, 2021
The selection of packages used in the integration test is arbitrary, and
can be changed.

The main criteria used was the time to build, and the number of
"non-Python" dependencies. The only exception was numpy, due to its
significance to the ecosystem.
clrpackages pushed a commit to clearlinux-pkgs/scipy that referenced this issue Feb 7, 2022
@endolith (4):
      DOC: Improve Lomb-Scargle example (#15134)
      Use constrained_layout in Lomb-Scargle example
      Add Chirp Z-transform, zoom FFT (#4607)
      DOC: Improve Chirp Z-transform documentation (#15147)

Adrian Price-Whelan (1):
      fix typos in bspline docs and comments

Albert Steppi (4):
      TST: Add testing for hyp2f1 for complex values in anticipation of move to Cython. (#14287)
      MAINT: Begin translation of hyp2f1 for complex numbers into Cython (#14454)
      MAINT: Translation of hyp2f1 for complex numbers into Cython, part 2 (#14692)
      BUG: Fix hyp2f1 to return correct values in regions near exp(±iπ/3). (#14706)

Andreas Esders-Kopecky (1):
      DOC: fix extent orientation in CWT example (#14924)

Andrew Annex (1):
      fixes typo in equation for Poisson cumulative distribution function (#15138)

Andrew Knyazev (2):
      BUG: Avoid lobpcg failure when iterations can't continue  (#14790)
      BUG: Update lobpcg.py to validate the accuracy and issue warnings (#14868)

Andrew Nelson (39):
      MAINT: cleanup of some line_search code
      BUG: diffev maxfun can be reached partway through population
      MAINT: mods to bounds handling + tests
      TST: add func_and_grad test
      TST: more tests and cleanup
      MAINT: copy discrete dist dict
      MAINT: address gh6019, disp for minimize_scalar
      BUG: fixed by lint
      TST: seed a stats test
      TST: bump test tol for equal_bounds
      MAINT: make a copy of users constraints
      Lint
      Lint
      TST: bump rtol for equal_bounds
      TST: test_equal_bounds relax tol
      DOC: fix indentation in _minimize
      MAINT: gh11258 respect rel_step
      MAINT: automated step selection
      ENH: move tnc to cython
      PEP8
      MAINT: _tnc_module.pyx remove redundant import
      MAINT: _tnc_module.pyx use np.float64
      MAINT: rename moduleTNC + review changes
      MAINT: Newton-cg accepts FD_METHODS
      DOC: improve docstring for hess
      TST: remove incorrect hess test
      Lint
      LINT
      TST: improve hess finite-diff tests
      DOC: table for method specific hess options
      DOC: fix rst
      DOC: rst table fiddling
      PEP8
      MAINT: add notes on maxfun
      DOC: adding rst suggestion
      DOC: make callback doc clearer
      MAINT: ScalarFunction remember best_x
      TST: ScalarFunction._best_f
      BUG: minimize should work with a scalar closes #15228 (#15229)

Anirudh Dagar (26):
      MAINT: Update uarray vendor lib
      MAINT: Fix uarray version in scipy
      MAINT: Add patch
      MAINT: Add sources and depends to setup.py
      MAINT: Move the compare version to 0.8
      MAINT: Minor doc formatting fix
      MAINT: Fix assert
      MAINT: Fix assert lower bound
      ENH: Set fft backend with try_last=True (#14359)
      ENH: Add args argument for callable in quad_vec
      STY: Fix lint
      ENH: Make args keyword only
      BUG: Make args keyword work with multiprocessing
      TST: Add tests for args kwarg in quad_vec
      MAINT: rename ndimage modules and make private
      MAINT: Move _FunctionWrapper to scipy._lib._util
      TST: Parametrize test_quad_vec_pool_args
      DOC: versionadded 1.8.0 _quad_vec.py
      MAINT: Expose ndimage modules publicly for BC after actual renaming
      CI: Add lint_diff docs & option to run only on specified files/dirs (#14507)
      DEP: Deprecate private but non-underscored ndimage.<module> namespace (#14474)
      MAINT: Remove `np.rollaxis` usage with `np.moveaxis` and `.T` (#14820)
      MAINT: Increase tolerances in tests to avoid Nightly CPython3.10 test failures (#14841)
      DOC: Add instructions to run refguide_check test
      DOC: Fix Documentation rendering --refguide-check (#15014)
      MAINT: Fix use-after-free in Py_FindObjects (#15013)

Anton Akhmerov (2):
      fix toarray/todense docstring (#14499)
      MAINT: switch to using spmatrix.toarray instead of .todense (#14496)

Antony Lee (2):
      ENH: make epsilon optional in optimize.approx_fprime.
      MAINT: Make solve_ivp slightly more strict wrt. t_span. (#14763)

Arthur Volant (12):
      DEV: Add boost hypergeom dist
      DEV: Update scipy hypergeom dist with boost's one
      Add hypergeom to boost/include/info
      Update boschloo exact test
      DEV: replace += by np.logical_or
      TST: Remove xfail_on_32bit
      Add xFail for evey tests. Going to be corrected in an other PR
      DOC: Fix PEP-8
      DEV: Correct wrong indentation
      DEV: Update Boschloo Exact test (#14178)
      ENH: Add threaded Van Der Corput (#14564)
      DOC: remove `conda develop` from quickerstart dev doc page (#14839)

Atsushi Sakai (21):
      BUG: optimize: fix max function call validation for `minimize` with Powell (#13921)
      BUG: optimize: fix max function call validation for minimize with Nelder-Mead
      BUG: optimize: fix line length violation
      BUG: optimize: fix the lint CI error.
      BUG: optimize: change wrap function name to descriptive
      BUG: optimize: update exception handling based on review.
      BUG: optimize: move iteration increment position for backward compatibility
      BUG: optimize: add a test to check iteration number of nelder-mead optimization
      BUG: optimize: fix undefined behaviour if the initial simplex evaluation doesn't run to completion.
      BUG: optimize: fix iteration check test condition based on review.
      DOC: optimize: fix unclear solver docs for minimize_scalar
      DOC: optimize: add an empty line to fix CI fails.
      BUG: optimize: add missing attributes of `OptimizeResult` for each method of `minimize_scalar`. (#14884)
      BUG: optimize: add a missing attribute of OptimizeResult and add a test for it.
      BUG: optimize: add tests suites for global optimization solvers.
      ENH: optimize: add optional parameters of adaptive step size adjustment in `bashinhopping`.
      ENH: optimize: improve docs
      ENH: optimize: improve signiture
      ENH: optimize: change arguments name, update doc, add input validation, and test it.
      DOC: optimize: add notes for max function evaluation constraint violation.
      DOC: linalg: Fix a small condition doc error (#15027)

Bas van Beek (23):
      ENH: Add annotations for `scipy.spatial.cKDTree`
      MAINT: Remove `ignore_missing_imports` from `scipy.spatial.ckdtree`
      DOC: Clarified two comments
      MAINT: Remove statements that are only relevant during runtime
      ENH: Mark the `_Qhull` class as final
      ENH: Add annotations for previously missing attributes
      MAINT: Fix the signature of `_Qhull.__init__`
      ENH: Add missing and update incomplete misc annotations
      BUG: Fixed an issue wherein `SphericalVoronoi` could raise for certain array-likes
      TST: Add a `SphericalVoronoi` test for a non-sequence-based array-like
      TYP: Silence a mypy error (false positive)
      MAINT: Annotate two missing `ConvexHull` attributes
      ENH: Annotate the array dtypes of `scipy.spatial.qhull`
      ENH: Enable numpy's mypy plugin
      MAINT: Enable mypy errors for the qhull tests
      ENH: Annotate the array dtypes of `scipy.spatial.distance`
      ENH: Annotate the array dtypes of `scipy.spatial.ckdtree`
      MAINT: Let `weights` accept 2-tuples of `None`
      MAINT: Enable mypy errors for `scipy.spatial.tests.test_kdtree`
      BUG: Fixed an issue wherein `geometric_slerp` would return an incorrect shape/type for degenerate inputs
      REV: Return the same shape for degenerate inputs as to prior to this PR
      MAINT: Remove outdated `from __future__` imports
      ENH: Add annotations for `scipy.spatial.geometric_slerp`

Ben Thompson (1):
      BUG: Numerical stability for large N BarycentricInterpolator.

Bharath Saiguhan (1):
      DOC: fix documentation for scipy.optimize.brenth

Boaz Mohar (1):
      ENH: make QhullError public (#15003)

Brian McFee (1):
      BUG:signal: matching window dtype to input (#14737)

CJ Carey (2):
      BUG: sparse: fix a DIA.tocsc bug
      Update linux build instructions to mention C++

Castedo Ellerman (1):
      docstring fix for default of n param of pade

Christian Lorentzen (1):
      TST cleanup in lsqr and lsmr

Christoph Baumgarten (6):
      DOC: add examples/ update mstats doc of pearsonr in scipy.stats (#14183)
      DOC: clarify parameters of norminvgauss in scipy.stats (#14592)
      ENH: add NaiveRatioUniforms from UNU.RAN to scipy.stats (#14717)
      MAINT: simplify UNU.RAN api in stats (#15035)
      MAINT: remove NaiveRatioUniforms from scipy.stats
      ENH: improve ARGUS rv generation in scipy.stats (#11954)

Cong Ma (2):
      ENH: Carlson symmetric elliptic integrals.
      BUG, DOC, MAINT, TST: Carlson symmetric elliptic integrals

Dani El-Ayyass (2):
      [WIP] DOC: missing default and casing in minimum_spanning_tree (#14749)
      DOC: fix matrix representation in scipy.sparse.csgraph (#14748)

David Cottrell (1):
      Fix off by one error in doc string.

Dennis Collaris (1):
      DOC: add missing "regularized" to `gammainccinv` documentation (#15007)

Dhruv Vats (1):
      MAINT: fix tiny typo in signal/spectral.py

Diana Sukhoverkhova (1):
      ENH: scipy.interpolate.BSpline from_power_basis (#14554)

Dima Pasechnik (3):
      replace GNU extension DFLOAT with standard, fix array dimensions
      replace obsolete intrinsics DC<foo> with <foo>, remove goto into if/else
      BUG: correct the test loop in test_arpack.eval_evec (#14798)

Donnie Erb (1):
      ENH: Speed up knot interval lookup for BSpline.design_matrix

Egor Zemlyanoy (2):
      ENH: scipy.interpolate b-splines (design_matrix) (#14344)
      Set min length of the knot array for BSpline.design_matrix (#14572)

Eric Larson (4):
      DOC: Correct spacing (#15005)
      CI: Work around Sphinx bug [skip azp] [skip actions]
      ENH: Make `get_matfile_version` and other `io.matlab` objects public (#15004)
      CI: Unpin Sphinx [skip azp] [skip actions]

Eric Schanet (1):
      DOC: add example usage of options param in scipy.optimize.linprog (#14628)

Evan W Jones (1):
      DOC: interpokate : Update interp1d docs (#14821)

Evelyn Fitzgerald (1):
      DOC: stats: clarify meaning of rvalue in stats.linregress (#14458)

Evgeni Burovski (4):
      BUG: fix refguide-check namedtuple handling (#14283)
      ENH: numpy masked_arrays in refguide-check
      MAINT: interpolate: move the `sparse` dependency from cython to python (#15123)
      MAINT: interpolate: csr_matrix -> csr_array

Frederic Renner (1):
      DOC: add note on padding to `stats.binned_statistic_2d` docs (#14723)

Gagandeep Singh (25):
      fixed deprecated API calls
      MAINT: Replaced direct field access in `PyArrayObject*` with wrapper functions (#14268)
      corrected NumPy API usage
      removed redefinition of trace1
      ENH: Using random directional derivative to check grad (#14312)
      ENH: Dinic's algorithm for maximum_flow (#14358)
      MAINT: csgraph: change Dinic algorithm to iterative implementation (#14422)
      ENH: Fixed intercept computation in theilslopes (#14380)
      Removing unused subroutines in ``scipy/linalg/src/id_dist/src/prini.f`` (#14595)
      MAINT: ignore scipy/signal/bspline_util.c (#14610)
      MAINT: interpolate: Fix inconsistencies between np.interp and scipy interp1d (#14601)
      Bumped tolerances to pass special.tests on Apple Silicon
      ENH: Added ``kulczynski1`` to ``scipy.spatial.distance`` (#14588)
      MAINT: update .gitignore for generated files that were moved
      MAINT: Rename ``interpolate`` modules and make them private
      MAINT: interpolate: Use renamed files and added deprecation warnings
      MAINT: Rename ``spatial`` module and make them private
      MAINT: spatial: Use renamed files and added deprecation warnings
      MAINT: Rename sparse module and make them private
      MAINT: sparse: Use renamed files and added deprecation warnings
      MAINT: Rename optimize module and make them private
      MAINT: optimize: Use renamed files and deprecation warnings
      ENH:Added support for even window length
      TST:Added test for even window length
      STY:Applied linting corrections

Gang Zhao (11):
      ENH: sparse.linalg: Use faster sqrt from math and be consistent with both lsqr.py and lsmr.py
      ENH: sparse.linalg: Normalize type descriptions
      ENH: Complement `trace` method of sparse matrices like `csr_matrix/csc_matrix/coo_matrix` (#14331)
      ENH: sparse.linalg: Add TFQMR algorithm for non-Hermitian sparse linear systems (#14160)
      ENH: sparse.linalg: The solution is zero when R.H.S. is zero (#14532)
      TST: sparse.linalg: Add test case with 2-D Poisson equations
      ENH: sparse.linalg: Add an useful nonzero initial guess option (#14727)
      TST:sparse.linalg: Use the more convenient "assert_normclose" in "test_minres.py" (#14743)
      ENH: sparse.linalg: Fixed the issue that the initial guess "x0" is changed by "lsmr" (#15020)
      DOC: sparse.linalg: Fixed incorrect comments when the initial guess is non-zero
      DOC: sparse.linalg: Fixed the docstrings in the sparse matrix inverse function (#15126)

Georgii Bocharov (1):
      MAINT: make fit method of rv_continuous pickleable (#14350)

Gregory R. Lee (1):
      BUG: Fix behavior of binary morphology with output=input when iterations=1 (#14377)

H. Vetinari (12):
      add break_cycles for mmapped file in test_netcdf
      parametrize test_wavfile.test_write_roundtrip
      add break_cycles for mmapped file in test_wavfile
      linelength lint
      skip failing test for win+32bit
      skip failing test for aarch
      MAINT: remove deprecated wminkowski
      TST: remove obsolete deprecation warnings for wminkowski
      bump to gcc 6 (6.3 is compiler version for manylinux_2_24)
      ENH: allow p>0 for minkowski-distance
      TST: switch some tests to relative rather than absolute tolerance
      properly typeset norms (review ilayn)

Haoyin Xu (4):
      DOC: optimize hess and consistency
      DOC: fix length
      DOC: optimize sentence structure
      MAINT: correct template link

Harsh Mishra (2):
      ENH: Updated Issue templates to use GitHub Issue Forms (#14493)
      ENH: Refactor GitHub Issue form templates (#14669)

Hood Chatham (2):
      BLD Respect the --skip-build flag in setup.py
      BUG: Fix PyUFunc for wasm targets

Ian Hunt-Isaak (1):
      Clarify ndimage.center_of_mass docstring

Ilhan Polat (23):
      MAINT:TST:linalg modernize the test assertions
      DOC:special: Fix broken links to jburkardt (#14772)
      MAINT: Allow F401 and F403 for * imports and unused imports
      PEP8: Allow F401 and F403 in __init__ files
      CI: fix the flake8 rubric
      CI: Add stdlib to LD_LIBRARY_PATH (#14831)
      ENH: Add get_array_bandwidth function
      ENH:linalg: add issymmetric() public function
      ENH:linalg: add ishermitian() public function
      MAINT:linalg: add issym/her to init and fix docs
      TST:linalg: Adjust inexact extended precision types
      DOC:linalg: Add missing ellipsis for examples
      ENH:linalg: Speed-up for get_array_bandwidth
      ENH:linalg: Add atol/rtol to issym/isher
      TST:linalg: atol/rtol tests of issym/isher
      DOC:linalg: fix example for ishermitian
      ENH:linalg: Typing stubs for cython array funcs
      ENH:linalg: Add .pyi files to the setup.py
      DOC:linalg: intersphinx links for np.NaN and spacing
      DOC:linalg: Clarify driver defaults in eigh
      MAINT:linalg: Rename func to bandwidth
      MAINT:sparse: expm() fix redundant imports
      MAINT:BLD: Open file in text mode for tempita

Isuru Fernando (5):
      Use /usr/bin/linux32 so that sysconfig.get_platform() is correct
      Skip some interpolative decomposition tests
      Fix lint
      Set _ISOC99_SOURCE=1 for gcc<4.8.5
      BUG: scipy.stats._unuran: send only strings to include_dirs (#14633)

Itrimel (1):
      BUG: Fix Nelder-Mead logic when using a non-1D x0 and adapative

J. Hariharan (1):
      DOC: Fix Wikipedia bootstrap link (#14634)

Jake VanderPlas (1):
      BUG: avoid mutating inputs in multivariate distributions

Jan-Hendrik Müller (1):
      DOC: 3D example for gaussian_filter (#15037)

Jarrod Millman (2):
      DOC: Update links for new site (#14960)
      BLD: update setup.py for Python 3.10 (#15236)

Jebby993 (1):
      DOC: interpolate: Fix the docstring example of "lagrange" (#14413)

Jeffrey Kelling (2):
      Fix runtest.py overriding $PYTHONPATH: prepend instead
      Fix runtest.py: use env.get('PYTHONPATH', '')

John Speed Meyers (1):
      Fix typo in mannwhitneyu docstring

Jonathan Helgert (1):
      BUG: `highs-ds` returns memoryviews instead of np.arrays for the dual values (#15341)

Judah Rand (3):
      BUG: Speed up sparse compressed indexing with very many rows (#14323)
      Refactor `test_id` test
      MAINT: Update `openblas_support.py` to support Apple Silicon (#14316)

Justin Charlong (1):
      FIX: Check for None before calling str methods

Kadatatlu Kishore (1):
      DOC: inverse missing in idstn, idctn (#14479)

Kai Striega (9):
      ENH: Add DiscreteGuideTable wrapper (#14828)
      TST: Review ``_assert_within_tol`` positional arguments
      STY: Fix whitespace around operators
      TST: Review test tolerances
      TST: Remove ``_asert_within_tol`` helper function
      TST: Use atol for ``test_pdist_cosine_iris_*`` tests
      TST: Remove `_assert_within_tol` from merge commit
      TST: Fix verbose_ argument
      TST: Revert to `atol` test_pdist_jensenshannon_iris

Kevin Richard Green (1):
      MAINT: fix type-narrowing addition in sparse.construct.bmat (#14626)

Leo C. Stein (1):
      DOC, TST: Carlson's, Legendre's elliptic integrals

Livio F (1):
      BUG: sparse.linalg: fix overflow in `spsolve` due to 32-bit int usage

Lorenzo (2):
      DOC: added reference and example in jacobi docstring (#14513)
      DOC: added chebyt and chebyu docstring examples (#14539)

Lorenzo Maffioli (2):
      DOC: added examples in spherical Bessel docstrings (#14578)
      DOC: added reference and examples in (gen)laguerre docstring in scipy.special (#14561)

Lv101Magikarp (1):
      MAINT: interpolate: remove unused variable (#14237)

Malik Idrees Hasan Khan (1):
      Fixed typos.

Mark E Fuller (1):
      Add missing SI prefix for yocto (1e-24, https://physics.nist.gov/cuu/Units/prefixes.html)

Marvin Albert (1):
      Fix typo in doc overview: "pandas" to "SciPy"

Masayuki Takagi (1):
      Make 0th power of a sparse array/matrix return the identity with the same dtype (#15225)

Matt Haberland (97):
      BUG: optimize: begin to fix issues with lb==ub
      MAINT: optimize: refactor for clarity
      TST: optimize: add tests for minimize bug 12502 lb==ub
      BUG: optimize: remove vars for which lb==ub in constraints, callback, etc.
      ENH: stats: vectorize pearsonr, ranksums, ansari
      ENH: stats: vectorize epp_singleton_2samp and brunner_munzel
      STY: stats: add PEP8 whitespace back after previous commits removed it
      ENH: stats: add nan_policy to several hypothesis tests
      MAINT: stats: fix typo in vectorize_hypotest_wrapper
      ENH: stats: add decorator for 1 sample function nan_policy/vectorization
      TST: stats: generalize test_hypotest_vectorization for n samples
      TST: stats: modify shapiro/jarque_bera tests that expected nd arrays to be raveled
      MAINT: stats: ensure back-compat of funcs that default to axis=None behavior
      MAINT: stats: refactor from itertools.product to np.ndindex
      MAINT: stats: return scalar instead of 0d array
      ENH: stats: generalize _vectorize_hypotest_factory to n-samples
      ENH: stats: take shortcut if all samples ndim <= 1; vectorize / add nan_policy to levene
      ENH: stats: allow decorator to handle hypotests w/ paired samples
      ENH: stats: apply decorator to more hypothesis tests
      Update scipy/stats/tests/test_hypotests.py
      MAINT: stats: add debug _no_deco private option
      MAINT: stats: magnitude of Yates' correction <= abs(observed-expected) statistic
      DOC: stats: remote 'Methods' section from multivariate class documentation so Sphinx adds it?
      DOC: stats: remove explicit Methods section from BinomTest docstring
      MAINT: stats: remove unused 'type: ignore' comment
      MAINT: sparse.linalg: move svds into its own file
      DOC: sparse.linalg: add method-specific documentation to svds
      DOC: sparse.linalg: get scipyoptdoc working with `solver` parameter
      DOC: sparse.linalg: svds: update solver-specific documentation
      TST: sparse.linalg: move SVDS tests to their own file
      STY: sparse.linalg: blank line at end of file
      DOC: sparse.linalg: svds: add more detailed example
      MAINT: stats: fix merge mistakes
      MAINT: stats: disorganized work, but added some TODOs
      MAINT: stats: simplified vectorized hypotest result packing/unpacking
      TST: stats: rewrite vectorized nan_policy test
      TST: stats: more work on vectorized/nan_policy tests
      MAINT: stats: vectorized hypotests return nan for too few samples
      TST: stats: test nan_policy of hypothesis tests for 1d input
      MAINT: stats: look for positional nan_policy arg
      MAINT: stats: fix empty array behavior for ndim 2+
      TST: stats: skip test for old NumPy
      DOC: sparse.linalg: respond to reviewer comments and other adjustments
      DOC: sparse.linalg: add whitespace for Sphinx, silence mypy
      MAINT: stats: rewrite without np.broadcast_shapes for NumPy < 1.20
      MAINT: stats: move _broadcast_shapes to stats; fix bugs
      MAINT: stats: remove last instance of np.broadcast_shapes, I hope!
      TST: stats: add independent check of whether arrays are broadcastable
      TST: stats: avoid test failures due to old NumPy
      ENH: stats: demonstrate _vectorize_hypotest_factory support for summary statistics
      TST: stats: automatically update documentation of wrapped functions
      ENH: _lib: add numpydoc/docscrape as _docscrape
      Update scipy/stats/_multivariate.py
      TST: stats: add test for pickleability after wrapping hypotest
      DOC: stats: add documentation for hypotest vectorization wrapper
      DOC: stats: adjust documentation of vectorized hypotest wrapper
      MAINT: stats: avoid issues with kwds/args duplication
      DOC: stats: use introspection to determine whether axis/nan_policy are already arguments
      MAINT: stats: fix unification of keyword/positional arguments
      TST: stats: make test for error message a little less specific
      MAINT: stats: silence mypy complaints (#14440)
      MAINT: optimize: convert None bounds to +/- np.inf
      MAINT: optimize: more work on removing fixed variables
      MAINT: optimize: fix mistakes from merge
      TST: optimize: expand tests for minimize with equal upper/lower bounds
      STY: optimize: PEP8 in test_optimize.py
      MAINT: optimize: make minimize accept constraints=None
      MAINT: optimize: respond to comments in gh-13096
      MAINT: optimize: refactor test_equal_bounds setup -> less messy
      TST: optimize: finish combining equal bounds tests; xfail on 32-bit
      STY: optimize: satisfy mypy and PEP8 complaints
      ENH: stats: kendalltau: add alternative parameter (#14209)
      ENH: stats: somersd: add alternative parameter (#14213)
      TST: stats: expand tests, but mark some as slow
      STY: stats: untouched code is generating lint errors
      STY: stats: fix PEP8 issues that CI just noticed, apparently
      ENH: stats: add nan_policy to mannwhitneyu
      ENH: stats: add `nan_policy` and `axis` to wilcoxon
      ENH: stats: add `axis` and `nan_policy` to kstest
      MAINT: stats: remove vectorization of kstest... weird signature
      MAINT: stats: un-vectorize many hypotests for initial PR; revert test changes
      MAINT: stats: remove test cases for un-vectorized hypotests
      MAINT: stats: refactor vectorize_hypotests -> axis_nan_policy
      MAINT: stats: move broadcasting functions to more appropriate file
      Apply suggestions from code review
      TST: stats: add axis=None tests
      MAINT: stats: tweaks to make CI happy, correct doc rendering, improve tests
      STY: stats: fix PEP8 and mypy compaints
      MAINT: stats: fix truncnorm stats with array shapes (#13581)
      DOC: optimize: fix sporadic linprog doctest failure
      DOC: update detailed roadmap
      MAINT: stats: bootstrap: fix error when bootstrap distribution is degenerate (#14351)
      ENH: stats: add general permutation hypothesis test (#13899)
      TST: sparse.linalg: store only propack test matrices; generate reference results
      Apply suggestions from code review
      Update scipy/sparse/linalg/tests/test_propack.py
      MAINT: stats: mode: fix negative axis issue with np.moveaxis instead of custom code (#15421)

Matthias Bussonnier (2):
      DOC: Don't put space after directive name.
      DOC: use numpydoc format for C function in `_superlumodule.c` (#15034)

Matti Picus (1):
      BUG: avoid large cython global variable in function

Mike Taves (2):
      MAINT: refactor "for ... in range(len(" statements (#14660)
      MAINT: replace IOError alias with OSError or other appropriate type

Namami Shanker (2):
      DOC: Remove link to alpha in scipy.stats.dirichlet (#14200)
      BUG: Update chi_gen to use scipy.special.gammaln (#15107)

Nathaniel Jones (1):
      Fix inconsistency in documentation (#14734)

Nicholas McKibben (6):
      FIX: raise RuntimeWarning when Boost evaluation_error is encountered (#14618)
      ENH: add PROPACK wrapper for improved sparse SVD (#14433)
      FIX: raise Python OverflowError exception on Boost.Math error (#14833)
      CI: bump gcc from 4.8 to 5
      ENH: update PROPACK submodule commit hash
      FIX: PROPACK MKL compatibility (#15249)

Nick Papior (3):
      DOC: added Fermi-Dirac distribution by name
      MAINT: streamlined kwargs for minimizer in dual_annealing (#13392)
      BUG: ensured vendored pep440 is imported

Nickolai Belakovski (1):
      DOC: Clarify documenation on atol/rtol (#14506)

Nico Schlömer (23):
      prevent implicit np.array -> scalar conversion
      better f(x) handling in slsqp()
      nelder-mead: some return value handling
      avoid implicit array conversion in _trustregion_constr/report.py
      flat[0] -> item()
      comment typos
      Update scipy/linalg/tests/test_basic.py
      test_basic: allclose(int(x[0]), y) -> allclose(x, [y])
      report: more robust float conversion
      move scalar check to function wrapper
      move scalar check into ScalarFunction
      separate function wrapper for hessian
      remove workaround in print_iteration
      less code modification
      move newline
      remove redundant workaround for slsqp()
      remove newline
      dual_annealing: get scalar from visit_fn()
      optimize: change error text
      optimiztion: short-circuit value check
      MAINT: more scalar array conversion fixes for optimize (#14274)
      fix two more float conversion issues
      Fix for complex Fresnel (#14920)

Nitish Gupta (1):
      DOC: fix maximum_flow trivial example matrix (#14741)

Pamphile Roy (33):
      MAINT: set same tolerance between LSMR and LSQR
      DOC: remove numpy import
      MAINT: commit count if no tag
      DOC/CI: pin sphinx to <4.1.0 to avoid logo going missing (#14397)
      DOC/CI: pin sphinx to !=4.1.0
      MAINT: uniformize tol descriptions between lsmr/lsqr and set to 1e-6.
      DOC: badge with version of the doc in the navbar (#14132)
      ENH: scipy.stats.qmc: centered-discrepancy optimization of a Latin hypercube
      CI: Revert "CI: make sure Azure job step fails when building a SciPy wheel fails" (#14538)
      ENH: stats: add orthogonal Latin Hypercube Sampling to QMC (#14546)
      DOC: add citation file.
      DOC: clarify SciPy compatibility with Python and NumPy.
      MAINT: remove support for Python 3.7 hence NumPy 1.16
      MAINT: update leftover Python and NumPy version from pyproject.toml. (#14663)
      MAINT: github labeler on file paths.
      CI: fix any behaviour
      MAINT: remove unnecessary seeding and update `check_random_state` (#14666)
      CI: remove labeler sync.
      MAINT: LinAlgError from public numpy.linalg
      MAINT: disable include/source coverage warning. (#14803)
      MAINT: fix mypy in qmc. (#14811)
      DOC: fix indentation level in list
      DOC: fix itermize [skip azp] [skip actions]
      MAINT: integrate.lsoda gitignore.
      DOC: update logo and add favicon.
      TST: bump zipfian tolerances (#14964)
      TST: mark test_gh12999 as slow
      MAINT: filter deprecation warning for distutils
      MAINT: py3.10 in more jobs and bump some 3.8 to 3.9 (#14832)
      DOC: mitigate newton optimization not converging.
      BUG: out of bounds indexing in stats.qmc.update_discrepancy.
      DOC: fix symlink to `logistic.sf` in `stats.logistic` (#15119)
      MAINT: fix broken link and remove CI badges

Pantelis Antonoudiou (2):
      DOC: adding example to decimate function (#14947)
      update 'Wn' definition in butter

ParticularMiner (1):
      ENH: faster h/vstack for CSR/CSC matrices … (#14825)

Peter Bell (22):
      BUG: medfilt can access beyond the end of an array
      BUG: KDTree balanced_tree is unbalanced for degenerate data
      TST: Make query doctest result unambiguous
      FIX: Enfore KDTree nodes use strict less-than
      DOC: Use raw string literals
      BUG: Refcount leak in distance_pybind
      TST: Add test that reference counts are not leaked
      CI: Lint checks failures are reporting success
      STY: Fix pycodestyle violations
      MAINT: Fix pyflakes lint failures
      CI: Update pyflakes
      CI: Set all the things
      STY: Fix stricter lint-diff failures
      CI: set -x writes to stderr which triggers CI to fail
      CI: Lint with flake8 instead of pyflakes + pycodestyle
      STY: Fix or silence lint failures
      STY: Only need one noqa comment
      MAINT: Improve cdist alignment error message (#14888)
      BUG: Fix alignment errors due to relaxed stride checking (#14893)
      DOC: Add warning to dct documentation about norm='ortho' (#15041)
      ENH: Add orthogonalize argument to DCT/DST
      STY: PEP8 fixes

Peter Mahler Larsen (5):
      MAINT: move LSAP maximization handling into solver code
      split combined input validation tests up
      MAINT: move input validation into lsap_module (#14295)
      ENH: Rotation.concatenate (#14524)
      ENH: __setitem__ method for Rotation class (#14547)

Quentin Barthélemy (2):
      add gzscore and complete tests, after rebase
      remove duplicate

Ralf Gommers (65):
      BLD: update pyproject.toml - add macOS M1, drop py36
      MAINT: fix missing LowLevelCallable in `dir(scipy)`
      BLD: fix warning for missing dependency, and dev version number
      MAINT: fix maybe-uninitialized warnings in lbfgbf.f
      REL: stop shipping generated Cython sources in sdist
      BLD: fix `cython_optimize` build config
      BLD: some clean ups `optimize/_highs/setup.py`
      DOC: fix stats.pearsonr example that was failing in CI
      BLD: optimize: fix some warnings in moduleTNC and minpack.h
      BLD: fix include order and build warnings for `optimize/_trlib`
      CI: pin mypy to 0.902 and fix one CI failure
      DEV: remove scikit-umfpack from environment.yml
      MAINT: remove the last deprecated `PyEval_*` usages
      MAINT: fix the last build warning in `optimize/_trlib/`
      BLD: fix build warnings for `stats/biasedurn`
      MAINT: silence warning in odepackmodule.c
      BLD: fix some "unused variable" warnings for special/cephes/
      BLD: fix "unreachable code" warnings for `cython_special`
      MAINT: add an extra check to ensure `tcrit` is not NULL
      TST: fix `sparse.linalg.spsolve` test with singular input
      CI: remove printing of skipped and xfailed tests from Azure test logs
      DEP: deprecate private but non-underscored `signal.spline` namespace
      TST: add minimal tests for signal.cspline2d/qspline2d
      TST: modify flaky test for constrained minimization.
      MAINT: bump scipy-mathjax
      CI: make sure Azure job step fails when building a SciPy wheel fails (#14492)
      REL: fix doc upload path, remove "not yet released" line for 1.7.0 (#14272)
      CI: fix Azure job which uses pre-release wheels + Python 3.7
      BLD: fix confusing "import pip" failure that should be caught (#14665)
      BLD: add `zip_safe=False` to the `setup()` call.
      BLD: fix include order, Python.h before standard headers
      BUG: fix issue in lsqr.py introduced in a recent commit (#14686)
      MAINT: some tweaks to includes for `_cosine.c`
      MAINT: remove `_cosine.h` changes again.
      BLD: bump Pythran version to 0.9.12
      BENCH: shorten svds benchmark that is timing out in CI (#14708)
      BLD: change section name in site.cfg.example from ALL to DEFAULT
      TST: suppress jinja2 deprecation warning
      CI: remove `pre_release_deps_source_dist` job from Azure CI config
      TST: add a seed to the pickling test of RBFInterpolator
      STY: fix PEP 8 issue in integrate/lsoda.py that trips up CI
      TST: silence test failures on macOS for `beta.ppf` overflow (#14938)
      CI: remove automated labeling of PRs via GitHub action (#14967)
      DOC: MAINT: update doc build machinery for optimize private API changes
      BLD: update pyproject.toml for Python 3.10
      MAINT: restore access to deprecated private namespaces
      TST: remove fragile test which checks if g77 is linked
      DOC: fixes to optimize.brenth docstring
      MAINT: restore some `io.matlab` private attribute access
      STY: fix linter complaints
      MAINT: update `stats.iqr` for deprecated `np.percentile` keyword (#15078)
      ENH: TST: add a threadpoolctl hook to limit OpenBLAS parallelism
      CI: DOC: add optional dependency on threadpoolctl
      MAINT: update .gitignore for two new generated files
      BLD: update pyproject.toml for s390x issue
      BLD: update minimum Pythran version to 0.10.0 for SciPy 1.8.0
      MAINT: rename `moduleTNC` extension back to `_moduleTNC`
      TST: slightly bump test tolerance for a new lobpcg test
      TST: update `sparse.linalg` tests for failures due to tolerances (#15301)
      MAINT: filter RuntimeWarnings in stats functions
      MAINT: improve test which checks usage of filterwarnings/simplefilter
      CI: pin numpy to 1.21.5 for the doc build on CircleCI
      CI: pin numpy to 1.21.5 in the Azure refguide check job (#15335)
      CI: fix Azure Windows and 32-bit Linux jobs (#15268)
      MAINT: remove non-default settings (except `shallow`) in `.gitmodules`

Ravin Kumar (1):
      DOC: Rename PyMC3 to PyMC (#14815)

Renal-Of-Loon (1):
      DOC: Correct docs for Hausdorff distance (#14892)

Reshama Shaikh (2):
      clarify mac pytest; add blank line
      BUG: MultivariateNormalQMC with specific QMCEngine remove unneeded checks for d == 1 (#14944)

Rory Yorke (2):
      BUG: correct frequency checks in signal.iirdesign and .iirfilter (#15092)
      ENH: support creation of analog SOS outputs (#15085)

Ross Barnowski (21):
      DOC: Update diags param descr in spdiags fn.
      DOC: capitalize descr to match docstring style.
      DOC: disambiguate asterisk binop in minres.
      MAINT: use matmul binop in minres.
      DOC: Disambiguate matmul binop in docstring+comments.
      DOC: disambiguate matmul binop in comment.
      DOC: disambiguate docstring/comments with matmul binop.
      DOC: disambiguate docstring using matmul binop.
      DOC: use matmul binop in docstrings and comments.
      DOC: matmul operator in docstrings.
      MAINT: use matmul binop in lgmres tests.
      MAINT: use matmul operator in gcrotmk tests.
      MAINT: matmul instances in iterative tests.
      DOC: update matmul in comment.
      MAINT: Update matmul operator in lsqr tests.
      DOC: explicit matmul binop in docstrings.
      DOC: Update doc examples with matmul binop.
      MAINT: use matmul binop in dsolve tests.
      DOC: Update matmul binop in lu docs.
      DOC: Add missing params to minres docstring.
      DOC: Update broken link to SuperLU library. (#15067)

Samuel Wallan (1):
      ENH: add tukey_hsd to scipy.stats (#13002)

Sara Fridovich-Keil (1):
      replacing assert_ with assert

Sebastian Wallkötter (3):
      DOC: version added to degrees in Rotation.from_rotvec (#14460)
      DOC: Make code block an item list in power_divergence (#14297)
      DOC: update OptimizeResult notes (#14693)

Sergey B Kirpichev (1):
      BUG: freeze setuptools build deps to workaround pypa/setuptools#2849 (#14974)

Smit Lunagariya (20):
      STY: remove trailing white spaces
      MAINT: Removing deprecated NumPy C API from `interpolate` (#14378)
      BUG: Check for NULL pointer in `memmove`  (#14367)
      MAINT: Removed deprecated NumPy C api from `sparse` (#14387)
      MAINT: Use numpy_nodepr_api
      MAINT: Avoid uninitialized warning
      MAINT: Avoid uninitialized warning
      STY: Remove white spaces
      MAINT: Avoid uninitialized warning
      STY: Remove white spaces
      MAINT: Fix `-Wmaybe-uninitialized` warnings
      STY: Remove white spaces
      MAINT: Add diff(`-Wmaybe-uninitialized` fixes)
      MAINT: Fix `-Wmissing-braces` warning
      MAINT: Initialize tmp = 0
      MAINT: Using Tempita file for bspline (signal) (#14477)
      MAINT: Increase tolerances in PROPACK tests to avoid test failures (#14787)
      MAINT: Include `stats.contingency` in public API (#15100)
      MAINT: Add missing imports in deprecated modules (#15105)
      MAINT: Install `sparse.linalg._eigen` tests and fix test failures (#15120)

Smit-create (47):
      STY: Remove white spaces
      MAINT: Fix `-Wunused-result` of `fgets`
      MAINT: Fix `-Wunused-result` for `fscanf` and `sscanf`
      STY: Remove white spaces
      MAINT: Fix `-Wunused-result` for `fscanf` and `sscanf`
      MAINT: Fix `-Wunused-result` for `scanf`
      MAINT: Add a check for NULL pointer(dummy)
      MAINT: Fix `-Wmaybe-uninitialized` warnings
      MAINT: Add check for non zero read count from input
      MAINT: Remove white spaces
      MAINT: Add `check_read` function to `util.c`
      BUG: Use 'fun' instead of 'score'
      BUG: Fix TypeError
      MAINT: Rename odr modules and make private
      MAINT: odr: use renamed files and add deprecation warnings
      MAINT: Rename linalg modules and make private
      MAINT: linalg: use renamed files and add deprecation warnings
      MAINT: Rename `special` modules and make private
      MAINT: special: use renamed files and add deprecation warnings
      MAINT: Rename stats modules and make them private
      MAINT: stats: use renamed files and add deprecation warnings
      MAINT: Rename `constants` modules and make them private
      MAINT: constants: use renamed files and add deprecation warnings
      MAINT: Rename fftpack modules and make them  private
      MAINT: fftpack: use renamed modules and add deprecation warnings
      MAINT: Rename `stats.biasedurn` and make it private
      MAINT: stats: use renamed `_biasedurn` and add deprecation warning
      MAINT: Rename `integrate` modules and make them private
      MAINT: integrate: Use renamed files and add deprecation warnings
      MAINT: Rename `misc` modules and make them private
      MAINT: misc: use renamed files and add deprecation warnings
      MAINT: Rename `io` modules and make them private
      MAINT: io: use renamed modules and add deprecation warnings
      MAINT: Rename `signal` modules and make them private
      MAINT: signal: Use renamed files and add deprecation warnings
      CI: Remove pyparsing pin
      MAINT: Rename `sparse.linalg` modules and make them private
      MAINT: `sparse.linalg`: Use renamed files and add deprecation warnings
      MAINT: Fixes for public API
      MAINT: Add test for public API
      MAINT: Use `_backend` to make it private and fix failing tests
      MAINT: Fix access of private modules that should work presently
      MAINT: Revert `_matlab` to `matlab`
      MAINT: Rename `io.matlab` modules and make them private
      MAINT: `io.matlab`: Use renamed modules and add deprecation warnings
      MAINT: import from source files
      MAINT: add `_moduleTNC` to gitignore

Stefan van der Walt (18):
      Use https protocol for git in CircleCI
      Add an array API to scipy.sparse
      Raise NotImplementedError on 1D slicing
      Fix summation dimensions
      Linting cleanups
      Add documentation for sparse arrays
      Make linter happy
      Make optimized build happy
      Add note to documentation about array interface
      Add array tests for scipy.sparse.linalg
      Remove _array keywords on eye/spdiags constructors
      Rename dispatcher
      Fix 2D array slicing
      Remove unnecessary brackets
      Use cast of eye(M) instead of generating dia_array from scratch
      Remove unused imports
      Add reminder to restore faster indexing code path
      Add rmul for sparse arrays

Stephen Becker (1):
      Fix documentation bugs in `lstsq`

Sundar R (1):
      BUG: Fix root bracketing logic in Brent's method (issue #13737) (#14007)

Søren Fuglede Jørgensen (2):
      BUG/ENH: rework maximum flow preprocessing (#14392)
      DOC: use conda-forge in Ubuntu quickstart (#14658)

Teddy Ort (2):
      ENH: optimize min max and median scipy.stats.binned_statistic
      ENH: optimize std in scipy.stats.binned_statistic (#14629)

Thomas Duvernay (2):
      BUG: Avoid failure when ts is empty
      TST: Add a test to ensure solve_ivp behaves properly when no solutions are computed.

Thomas Nowotny (1):
      Create cdfbin.f

Thomas Viehmann (1):
      BUG/ENH: more stable recursion for 2-sample ks test exact p-values (#14432)

Tiger Du (1):
      Update _nnls.py

Tim Leslie (1):
      Fix the link to details of the strongly connected components algorithm

Tirth Patel (26):
      ENH: stats: add `alternative` to masked normality tests (#13960)
      BUG: stats: fix shape handing in multivariate_t.rvs
      ENH: stats: add `alternative` to masked version of T-Tests (#13958)
      BUG: stats: fix discrete `.isf` to work at boundaries when `loc != 0` (#14242)
      MAINT: _lib: add __dealloc__ to MessageStream
      MAINT: _lib: replace __del__ with __dealloc__
      change __init__ to __cinit__
      ENH: stats: Integrate library UNU.RAN in `scipy.stats` [GSoC 2021] (#14215)
      DEV: initialize all submodules in Gitpod Dockerfile (#14603)
      DOC: stats: add UNU.RAN references in the tutorial (#14644)
      BUG: fix moments method to support arrays and list (#12197)
      DOC: clarify docs to explain behavior of newton on arrays (#12146)
      ENH: stats.unuran: add Polynomial interpolation based numerical inversion (#14619)
      DOC: stats: fix random number generation subsection in stats docs
      MAINT: stats: shift `NumericalInverseHermite` to UNU.RAN (#14703)
      BUG: stats: fix broadcasting behavior of argsreduce (#14955)
      MAINT: update gitignore to ignore private directories
      MAINT: stats: separate UNU.RAN functionality to its own submodule (#15083)
      ENH: stats.sampling: add SROU method
      BUG: stats.sampling: set PDF area after setting domain
      DOC: stats: address review comments
      DOC: stats: add an example demonstrating fast setup of SimpleRatioUniforms
      DOC: stats: fix a header in `stats.sampling` tutorial
      BUG: special: fix `stdtr` and `stdtrit` for infinite df (#15253)
      BUG: stats._unuran: fix invalid attribute lookups
      BUG: stats._unuran: fix remaining attribute lookup errors

Trever Hines (1):
      ENH: Cythonize van der corput (#14449)

Tyler Reddy (38):
      REL: set version to 1.8.0.dev0
      TST, BUG: fix rbf matrix value
      CI, MAINT: restrictions on pre-release CI (#14166)
      TST, MAINT: hausdorff test cleanups
      MAINT: download-wheels missing import
      DOC: forward port 1.7.0 relnotes
      MAINT: PR 14173 revisions
      BUG: geometric_slerp t ndim guard
      MAINT: forward port 1.7.1 relnotes
      CI, MAINT: pin Cython for azure pre-rel
      CI: pin pyparsing for doc build
      MAINT: forward port 1.7.2 relnotes
      MAINT: forward port 1.7.3 relnotes.
      ENH: rebased version of gh-14279 (#15157)
      DOC: 1.8.0 relnotes update (#15161)
      DOC: sparse array description adjustment
      MAINT: version bounds before 1.8.0rc1
      REL: set version to 1.8.0rc1
      REL: set 1.8.0rc2 unreleased.
      DOC: relnotes update
      DOC: 1.8.0 relnotes update
      REL: set 1.8.0rc2 released
      REL: 1.8.0rc3 unreleased.
      MAINT: use PEP440 vs. distutils
      BUG: fix Hausdorff int overflow
      DOC: 1.8.0 relnotes update.
      DOC: update 1.8.0 relnotes.
      MAINT: circleci maint target
      MAINT: release branch PROPACK switch (default off) (#15432)
      REL: 1.8.0rc3 release
      REL: set 1.8.0rc4 unreleased.
      DOC: 1.8.0 relnotes update.
      MAINT: PR 15479 revisions
      DOC: update 1.8.0 relnotes.
      REL: 1.8.0rc4 released.
      REL: 1.8.0 unreleased.
      DOC: update 1.8.0 relnotes.
      REL: 1.8.0 release commit.

Vlad (1):
      MAINT: Change special.orthogonal.orthopoly1d type hints to ArrayLike (#14049)

Walter Simson (1):
      Fix repeated word in _mannwhitneyu.py example (#14571)

Warren Weckesser (23):
      TST: signal: Bump tolerances for a test of Gustafsson's method in filtfilt.
      TST: stats: Loosen tolerance in some binomtest tests. (#14175)
      MAINT: stats: Update ppcc_plot and ppcc_max docstring.
      DOC: stats: Update ppcc_plot and ppcc_max docstrings.
      DOC: interpolate: rbf has kwargs too.
      CI: azure: Fix handling of 'skip azp'.
      CI: azure: Fix handling of 'skip azp'.
      DOC: In the CI docs, add a blank line to the example commit message.
      MAINT: interpolate: Declare type for a Cython indexing variable.
      MAINT: special: Updates for _cosine.c.
      ENH: special: Add the ufunc log_expit
      ENH: stats: Use special.log_expit in logistic.logcdf and .logsf
      MAINT: special: Add cxx flags hook for cxx ufuncs.
      MAINT: Create c++ wrapper of sf_error.c
      DOC: special: And 'Examples' to multigammaln docstring
      DOC: special: Add 'Examples' to roots_legendre
      MAINT: Remove some unused imports.
      BUG: Add missing import of 'errno' to runtests.py
      ENH: stats: Updates to `variation`. (#11754)
      BUG: stats: Fix numerical issues of recipinvgauss
      MAINT: Replace use of `pytest.warns(None)` with `warnings.catch_warnings`.
      BUG: The pytest decorator for conditional skipping is 'skipif'
      BUG: sparse.linalg: Fix deprecation warnings.

Xingyu Liu (10):
      BENCH: add benchmark for energy_distance and wasserstein_distance (#14163)
      ENH: use Pythran to speedup somersd and _tau_b (#14308)
      BENCH: add benchmark for somersd
      MAINT: add _hypotests_pythran.cpp into gitignore
      BENCH: add more benchmarks for inferential statistics tests (#14228)
      TST: add tests for Pythran somersd
      BUG: remove __init__ to avoid error:cannot collect test class TestSomersD because it has a __init__ constructor
      add test_all_dtypes and test_views
      add test_strided and test_keywords
      MAINT: use one dict to store arguments

Yair M (1):
      TYP, DOC: static typing of entropy (#14685)

Yikun Jiang (1):
      Sync platform_python_implementation (master)

adamadanandy (2):
      Fix typo of 7-point gauss rule (#14808)
      Bug fix: dqc25f.f

akeemlh (1):
      BUG: Ensure that stats.linregress and mstats.linregress properly handle input of data with identical x values (#14757)

alegresor (1):
      DOC: stats: fix multivariate_t docs pdf eqn (#14635)

berberto (1):
      Fixed doc for gaussian_kde (kde.factor description)

cruyffturn (1):
      typo copmlex

da-woods (1):
      Added missing np.import_array() (#14813)

guiweber (1):
      BUG: Fix group delay singularity check (#13419)

h-vetinari (1):
      DOC: update toolchain.rst (#15045)

ich (1):
      Use list comprehension instead of lambda function

lezcano (1):
      Correct some svd ussages

majiang (1):
      Improve error message for index dimension

millivolt9 (1):
      MAINT: add invalid='ignore' to np.errstate block in PchipInterpolator

naelsondouglas (1):
      STY: pavement.py: don't use `type` as variable name

nullptr (1):
      BUG: stats: Fix a crash in stats.skew (#14865)

serge-sans-paille (3):
      Extra pythran annotation for i686 support
      Simplify PythranBuildExt usage
      Pythranized version of _matfuncs_sqrtm

siddhantwahal (1):
      BUG: stats: use `axis` in `scipy.stats.tmean` (#12143)

刘星雨 (14):
      MAINT: Modify to use new random API in benchmarks/interpolate.py
      MAINT: Modify to use new random API in benchmarks/linalg.py
      MAINT: Modify to use new random API in benchmarks/signal_filtering.py
      MAINT: Modify to use new random API in benchmarks/signal.py
      MAINT: Modify to use new random API in benchmarks/sparse_csgraph_djisktra.py
      MAINT: Modify to use new random API in benchmarks/sparse_csgraph_matching.py
      MAINT: Modify to use new random API in benchmarks/sparse_linalg_expm.py
      MAINT: Modify to use new random API in benchmarks/sparse_linalg_onenormest.py
      MAINT: Modify to use new random API in benchmarks/sparse_linalg_solve.py
      MAINT: Modify to use new random API in benchmarks/sparse.py
      MAINT: Modify to use new random API in benchmarks/spatial.py
      MAINT: Modify to use new random API in benchmarks/stats.py
      BUG: fix wrong _bin_numbers result when the value is slightly smaller than the rightmost bin
      TST: Add test for gh-14332

赵丰 (Zhao Feng) (1):
      Update radau.py
shnizzedy added a commit to shnizzedy/C-PAC that referenced this issue Feb 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Needs Triage Issues that need to be evaluated for severity and status.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants