Skip to content

Commit

Permalink
Remove tweedledum from macOS arm64 immediately (#8849)
Browse files Browse the repository at this point in the history
In gh-8818 we prevented macOS arm64 from attempting to use tweedledum
1.1.1 as no arm64 wheels are supplied for that version.  In fact, the
"arm64" and "universal2" wheels supplied for 1.1.0 are actually
mislabelled x86_64 wheels as well, and so there is no working binary
version of tweedledum for arm64, and the sdist build process works only
rarely for most people.

Since the work of gh-8738 makes `tweedledum` _effectively_ optional for
`import qiskit` with immediate effect, and the only way to have a
working installation on M1 mac is essentially to have already manually
built `tweedledum` from source, the effects of immediately removing the
requirement from arm64 macs only should be very slight at worst, and a
good quality of life improvement for normal M1 users.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
  • Loading branch information
jakelishman and mergify[bot] authored Oct 7, 2022
1 parent 90b158c commit b5a3747
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
17 changes: 12 additions & 5 deletions releasenotes/notes/begin-tweedledum-removal-25bb68fc72804f00.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
---
upgrade:
- |
Starting in the following release of Qiskit Terra, 0.23, the ``tweedledum``
package will become an optional dependency, instead of a requirement. This
is currently used by some classical phase-oracle functions. If your
application or library needs this functionality, you may want to prepare by
adding ``tweedledum`` to your package's dependencies immediately.
For most architectures starting in the following release of Qiskit Terra,
0.23, the ``tweedledum`` package will become an optional dependency, instead
of a requirement. This is currently used by some classical phase-oracle
functions. If your application or library needs this functionality, you may
want to prepare by adding ``tweedledum`` to your package's dependencies
immediately.
``tweedledum`` is no longer a requirement on macOS arm64 (M1) with immediate
effect in Qiskit Terra 0.22. This is because the provided wheels for this
platform are broken, and building from the sdist is not reliable for most
ppeople. If you manually install a working version of ``tweedledum``, all
the dependent functionality will continue to work.
deprecations:
- |
Importing the names ``Int1``, ``Int2``, ``classical_function`` and
Expand Down
6 changes: 2 additions & 4 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ symengine>=0.9 ; platform_machine == 'x86_64' or platform_machine == 'aarch64' o
shared-memory38;python_version<'3.8'
typing-extensions; python_version < '3.8'

# To be removed as a requirement in Terra 0.23.
# To be removed as a requirement in Terra 0.23. Tweedledum's wheels are
# hopelessly broken on M1 mac, so we skip the waiting period for that.
tweedledum>=1.1,<2.0; platform_machine != 'arm64' or sys_platform != 'darwin'
# 1.1.1 has no wheel on M1 mac, which frequently causes problems for people.
# Better just to forbid that in those cases.
tweedledum>=1.1,<2.0,!=1.1.1; platform_machine == 'arm64' and sys_platform == 'darwin'

# Hack around stevedore being broken by importlib_metadata 5.0; we need to pin
# the requirements rather than the constraints if we need to cut a release
Expand Down

0 comments on commit b5a3747

Please sign in to comment.