Skip to content
This repository was archived by the owner on Aug 31, 2025. It is now read-only.

More packaging friendly #2564

@blackteahamburger

Description

@blackteahamburger

mu/setup.py

Lines 23 to 83 in 563cb86

install_requires = [
#
# The core 'install_requires' should only be things
# which are needed for the main editor to function.
#
"PyQt5-sip<=12.13.0"
+ ';"arm" not in platform_machine and "aarch" not in platform_machine',
"PyQt5==5.13.2"
+ ';"arm" not in platform_machine and "aarch" not in platform_machine',
"QScintilla==2.11.3"
+ ';"arm" not in platform_machine and "aarch" not in platform_machine',
"PyQtChart==5.13.1"
+ ';"arm" not in platform_machine and "aarch" not in platform_machine',
# FIXME: Needed for qtconsole, this is the latest wheel in armv7l for
# Python 3.7 (Buster), otherwise it tries to build from source and fails.
"pyzmq<=26.0.3",
# FIXME: jupyter-client added for Py3.5 compatibility, to be dropped after
# Mu v1.1 release. So, qtconsole < 5 and jupyter-client < 6.2 (issue #1444)
"jupyter-client>=4.1,<6.2",
# FIXME: ipykernel max added for macOS 10.13 compatibility, min taken from
# qtconsole 4.7.7. Full line can be removed after Mu v1.1 release.
# Dependency mirrored for user venv in mu/wheels/__init__.py
"ipykernel>=4.1,<6",
# FIXME: ipykernel<6 depends on ipython_genutils, but it isn't explicitly
# declared as a dependency. It also depends on traitlets, which
# incidentally brought ipython_genutils, but in v5.1 it was dropped, so as
# a workaround we need to manually specify it here.
"ipython_genutils>=0.2.0",
"qtconsole==4.7.7",
#
# adafruit-board-toolkit is used to find serial ports and help identify
# CircuitPython boards in the CircuitPython mode.
"adafruit-board-toolkit~=1.1",
"pyserial~=3.5",
"nudatus>=0.0.3",
# `flake8` is actually a testing/packaging dependency that, among other
# packages, brings in `pycodestyle` and `pyflakes` which are runtime
# dependencies. For the sake of "locality", it is being declared here,
# though. Regarding these packages' versions, please refer to:
# http://flake8.pycqa.org/en/latest/faq.html#why-does-flake8-use-ranges-for-its-dependencies
"flake8 >= 3.8.3",
# Clamp click max version to workaround incompatibility with black<22.1.0
"click<=8.0.4",
"black>=19.10b0,<22.1.0;python_version>'3.5'",
"platformdirs>=2.0.0,<3.0.0",
"semver>=2.8.0",
# virtualenv vendors pip, we need at least pip v19.3 to install some
# rust based dependencies. virtualenv >=v20 is required for the --symlinks
# flag needed by AppImage, and it packs pip v20.0.2.
"virtualenv>=20.0.0",
#
# Needed for packaging
#
"wheel",
# Needed to deploy from web mode
"requests>=2.0.0",
#
# Needed to resolve an issue with paths in the user virtual environment
#
"pywin32; sys_platform=='win32'",
]

It specifies a number of '=='/"<=" version number restrictions, which is rather unfriendly to packaging in Linux since the old versions are dropped quickly. Can priority be given to compatibility with new versions rather than backward compatibility (though necessary)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions