Re: Dependency untangling riddle
I have opened a pull request to update the default version to 3.8 in the Python PG [1]. I will also start updating my ports to 3.8 where possible. -Marcus [1] https://github.com/macports/macports-ports/pull/6383 > On Feb 13, 2020, at 8:30 PM, Ryan Schmidt wrote: > > Then the question is: why is that the default in the python portgroup? > > >> On Feb 6, 2020, at 09:25, Marcus Calhoun-Lopez wrote: >> >> Speaking only for myself, I have set the default Python to 3.7 in some of my >> ports even with 3.8 available because 3.7 is still the default in the python >> PortGroup [1]. >> My own rule has been: use the same version as the.PortGroup. >> >> [1] >> https://github.com/macports/macports-ports/blob/cc950d4f42c4bc65d8152b2465394cfef8a654b4/_resources/port1.0/group/python-1.0.tcl#L73 >> >>> On Feb 5, 2020, at 11:35 AM, Ryan Schmidt wrote: >>> >>> Yes that is part of the problem but I have also seen plenty of commits >>> since python38 became stable in which python37 was still preferred and I >>> don't know why people are doing that. >> >
Re: Dependency untangling riddle
Then the question is: why is that the default in the python portgroup? > On Feb 6, 2020, at 09:25, Marcus Calhoun-Lopez wrote: > > Speaking only for myself, I have set the default Python to 3.7 in some of my > ports even with 3.8 available because 3.7 is still the default in the python > PortGroup [1]. > My own rule has been: use the same version as the.PortGroup. > > [1] > https://github.com/macports/macports-ports/blob/cc950d4f42c4bc65d8152b2465394cfef8a654b4/_resources/port1.0/group/python-1.0.tcl#L73 > >> On Feb 5, 2020, at 11:35 AM, Ryan Schmidt wrote: >> >> Yes that is part of the problem but I have also seen plenty of commits since >> python38 became stable in which python37 was still preferred and I don't >> know why people are doing that. >
Re: Dependency untangling riddle
Speaking only for myself, I have set the default Python to 3.7 in some of my ports even with 3.8 available because 3.7 is still the default in the python PortGroup [1]. My own rule has been: use the same version as the.PortGroup. [1] https://github.com/macports/macports-ports/blob/cc950d4f42c4bc65d8152b2465394cfef8a654b4/_resources/port1.0/group/python-1.0.tcl#L73 > On Feb 5, 2020, at 11:35 AM, Ryan Schmidt wrote: > > Yes that is part of the problem but I have also seen plenty of commits since > python38 became stable in which python37 was still preferred and I don't know > why people are doing that.
Re: Dependency untangling riddle
> Is there a concept of "python-stable" versus "python-newest" like there is > the -devel versions? I don’t think so? In my case, it turns out there were three “problematic” ports: gobject-introspection, fonttools and libpsl. All have python 3.7 hardcoded into their Portfile, so it’s not possible to use any other python version. They ought to be updated to allow for variant use. py-brotli I upgraded to use python 3.8, I’m going to commit the wart. Cheers, Vincent
Re: Dependency untangling riddle
On 2020-02-05, at 11:31 AM, Vincent wrote: > > In my case, I delay the bump somewhat because I know most of my ports depend > not only on the language itself, but also on various py-xxx librairies, the > update of which often comes pretty late after the new Python version has been > released. > > Cheers and apologies again, > Vincent Is there a concept of "python-stable" versus "python-newest" like there is the -devel versions?
Re: Dependency untangling riddle
Hi, First off, I’d like to apologise for not knowing about rdeps. As I said before, I’ve been part of the project and working on Portfiles for quite a bunch of years, but I’m still unable to master some of the basic commands :( I’m not a great committer. > I suspect in most cases those committing the changes simply don’t think about > updating the version. In my case, I delay the bump somewhat because I know most of my ports depend not only on the language itself, but also on various py-xxx librairies, the update of which often comes pretty late after the new Python version has been released. Cheers and apologies again, Vincent
Re: Dependency untangling riddle
On Wed, 5 Feb 2020 at 19:19, Ryan Schmidt wrote: > On Feb 5, 2020, at 11:48, Vincent Habchi wrote: > > > So basically I have a long list of dependents to install, one (or more) of > > which itself/themselves depend(s) on python 3.7, at least in its/their > > default version(s). Since I don’t want to have python3.7 installed > > alongside python3.8, how can I find out (easily) which port(s) in the list > > is/are requiring python37? > > Just let MacPorts install what it wants to and the port should work. It is > normal for ports to have dependencies on things that you don't otherwise wish > to use yourself. That is ok. > > For some reason many port maintainers are selecting python37 when they need a > python3. I wish they would use the latest stable version, python38, instead. In probably all the cases the use of python37 rather than 38 is a sole consequence of: (A) nobody bothering to change that to 37 in that particular port (I'm pretty sure some of my own ports still depend on python 3.7, but there's no "dear macports, please tell me which ports I need to update" command) (B) or maybe someone trying to change it, but eventually figuring out that not all py38-* dependencies are available, and not being proactive enough to try to change the full chain. Last time I tried to upgrade buildbot to 3.8 it probably took me two hours to fix all dependencies which were still missing support for 3.8, and once I did it, both master and worker on my machines became broken (and it took me quite some time to figure out the reason) because the launch file hardcodes python version, and one needs to manually fix it and restart the service (as well as properly stop the old one, which is not always straightforward). Not that any single module care about whether it's running python 3.7 or 3.8, it's just that historic reasons / too many ports have their own consequences. That said, feel welcome to submit pull requests to update individual ports. Mojca
Re: Dependency untangling riddle
> On 5 Feb 2020, at 6:35 pm, Ryan Schmidt wrote: > > > > On Feb 5, 2020, at 12:34, Christopher Jones wrote: > >> On 5 Feb 2020, at 6:19 pm, Ryan Schmidt wrote: >> >>> On Feb 5, 2020, at 11:48, Vincent Habchi wrote: >>> this time, I have another interesting quandary. When I try to install LyX, I get this message: — Air > sudo port install LyX +python38 ---> Computing dependencies for LyX The following dependencies will be installed: […] py37-beaker py37-mako py37-markdown py37-markupsafe py37-setuptools python37 […] Continue? [Y/n]: — So basically I have a long list of dependents to install, one (or more) of which itself/themselves depend(s) on python 3.7, at least in its/their default version(s). Since I don’t want to have python3.7 installed alongside python3.8, how can I find out (easily) which port(s) in the list is/are requiring python37? >>> >>> Just let MacPorts install what it wants to and the port should work. It is >>> normal for ports to have dependencies on things that you don't otherwise >>> wish to use yourself. That is ok. >>> >>> For some reason many port maintainers are selecting python37 when they need >>> a python3. I wish they would use the latest stable version, python38, >>> instead. >> >> The problem of course is a number of ports probably have not been touched >> since when python37 *was* the latest stable version. The issue really is we >> don’t have a good way to dump all ports in one going when our definition of >> the ‘latest stable' version is bumped ... > > Yes that is part of the problem but I have also seen plenty of commits since > python38 became stable in which python37 was still preferred and I don't know > why people are doing that. I suspect in most cases those committing the changes simply don’t think about updating the version. smime.p7s Description: S/MIME cryptographic signature
Re: Dependency untangling riddle
On Feb 5, 2020, at 12:34, Christopher Jones wrote: > On 5 Feb 2020, at 6:19 pm, Ryan Schmidt wrote: > >> On Feb 5, 2020, at 11:48, Vincent Habchi wrote: >> >>> this time, I have another interesting quandary. When I try to install LyX, >>> I get this message: >>> >>> — >>> Air > sudo port install LyX +python38 >>> ---> Computing dependencies for LyX >>> The following dependencies will be installed: >>> […] >>> py37-beaker >>> py37-mako >>> py37-markdown >>> py37-markupsafe >>> py37-setuptools >>> python37 >>> […] >>> Continue? [Y/n]: >>> — >>> >>> So basically I have a long list of dependents to install, one (or more) of >>> which itself/themselves depend(s) on python 3.7, at least in its/their >>> default version(s). Since I don’t want to have python3.7 installed >>> alongside python3.8, how can I find out (easily) which port(s) in the list >>> is/are requiring python37? >> >> Just let MacPorts install what it wants to and the port should work. It is >> normal for ports to have dependencies on things that you don't otherwise >> wish to use yourself. That is ok. >> >> For some reason many port maintainers are selecting python37 when they need >> a python3. I wish they would use the latest stable version, python38, >> instead. > > The problem of course is a number of ports probably have not been touched > since when python37 *was* the latest stable version. The issue really is we > don’t have a good way to dump all ports in one going when our definition of > the ‘latest stable' version is bumped ... Yes that is part of the problem but I have also seen plenty of commits since python38 became stable in which python37 was still preferred and I don't know why people are doing that.
Re: Dependency untangling riddle
> On 5 Feb 2020, at 6:19 pm, Ryan Schmidt wrote: > > > > On Feb 5, 2020, at 11:48, Vincent Habchi wrote: > >> this time, I have another interesting quandary. When I try to install LyX, I >> get this message: >> >> — >> Air > sudo port install LyX +python38 >> ---> Computing dependencies for LyX >> The following dependencies will be installed: >> […] >> py37-beaker >> py37-mako >> py37-markdown >> py37-markupsafe >> py37-setuptools >> python37 >> […] >> Continue? [Y/n]: >> — >> >> So basically I have a long list of dependents to install, one (or more) of >> which itself/themselves depend(s) on python 3.7, at least in its/their >> default version(s). Since I don’t want to have python3.7 installed alongside >> python3.8, how can I find out (easily) which port(s) in the list is/are >> requiring python37? > > Just let MacPorts install what it wants to and the port should work. It is > normal for ports to have dependencies on things that you don't otherwise wish > to use yourself. That is ok. > > For some reason many port maintainers are selecting python37 when they need a > python3. I wish they would use the latest stable version, python38, instead. The problem of course is a number of ports probably have not been touched since when python37 *was* the latest stable version. The issue really is we don’t have a good way to dump all ports in one going when our definition of the ‘latest stable' version is bumped ... smime.p7s Description: S/MIME cryptographic signature
Re: Dependency untangling riddle
On Feb 5, 2020, at 11:48, Vincent Habchi wrote: > this time, I have another interesting quandary. When I try to install LyX, I > get this message: > > — > Air > sudo port install LyX +python38 > ---> Computing dependencies for LyX > The following dependencies will be installed: > […] > py37-beaker > py37-mako > py37-markdown > py37-markupsafe > py37-setuptools > python37 > […] > Continue? [Y/n]: > — > > So basically I have a long list of dependents to install, one (or more) of > which itself/themselves depend(s) on python 3.7, at least in its/their > default version(s). Since I don’t want to have python3.7 installed alongside > python3.8, how can I find out (easily) which port(s) in the list is/are > requiring python37? Just let MacPorts install what it wants to and the port should work. It is normal for ports to have dependencies on things that you don't otherwise wish to use yourself. That is ok. For some reason many port maintainers are selecting python37 when they need a python3. I wish they would use the latest stable version, python38, instead.
Re: Dependency untangling riddle
On 5 Feb 2020, at 12:48, Vincent Habchi wrote: Hi again, this time, I have another interesting quandary. When I try to install LyX, I get this message: — Air > sudo port install LyX +python38 ---> Computing dependencies for LyX The following dependencies will be installed: […] py37-beaker py37-mako py37-markdown py37-markupsafe py37-setuptools python37 […] Continue? [Y/n]: — So basically I have a long list of dependents to install, one (or more) of which itself/themselves depend(s) on python 3.7, at least in its/their default version(s). Since I don’t want to have python3.7 installed alongside python3.8, how can I find out (easily) which port(s) in the list is/are requiring python37? Get a full dependency tree: port rdeps LyX +python38 It looks to me like it comes in via both the LLVM/Clang build toolchain and ImageMagick. -- Bill Cole b...@scconsult.com or billc...@apache.org (AKA @grumpybozo and many *@billmail.scconsult.com addresses) Not Currently Available For Hire
Re: Dependency untangling riddle
> port rdeps LyX The following ports are dependencies of LyX @2.3.3_1+python27+qt5: xz libiconv gperf gettext ncurses bison bison-runtime m4 gawk cctools libunwind-headers llvm-9.0 cmake libcxx curl pkgconfig libidn2 autoconf automake libtool xattr unzip libunistring perl5 perl5.28 db48 gdbm readline texinfo help2man p5.28-locale-gettext libpsl python37 bzip2 expat libedit libffi openssl zlib sqlite3 python_select python3_select glib2 libxml2 icu pcre curl-ca-bundle libarchive lzo2 lz4 zstd libuv xar llvm_select python27 python2_select enchant texlive texlive-basic texlive-common texlive-bin fontconfig freetype libpng ossp-uuid libzzip cairo libpixman xrender xorg-libX11 xorg-xtrans xorg-xorgproto xorg-util-macros xorg-libXdmcp xorg-libXau xorg-libxcb xorg-xcb-proto xorg-libpthread-stubs xorg-libXext xorg-xcb-util graphite2 fonttools py37-setuptools py37-brotli harfbuzz harfbuzz-icu libpaper gmp mpfr potrace xorg-libXp xpm xorg-libXt xorg-libsm xorg-libice xorg-libXaw groff ghostscript jbig2dec jpeg libidn tiff lcms2 psutils netpbm jasper jbigkit libnetpbm xorg-libXmu xorg-libXi xorg-libXfixes texlive-bin-extra latexmk texlive-latex detex latexdiff p5.28-algorithm-diff pdfjam texlive-latex-recommended pgf dvipng gd2 webp giflib t1lib dvisvgm asciidoc docbook-xml-4.5 xmlcatmgr fop libxslt brotli woff2 texlive-context texlive-metapost texlive-xetex texlive-plain-generic texlive-fonts-recommended texlive-math-science texlive-fontutils lcdf-typetools ps2eps t1utils texlive-lang-czechslovak texlive-lang-english texlive-lang-european texlive-lang-french texlive-lang-german texlive-lang-italian texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-luatex ImageMagick djvulibre librsvg rust cargo cargo-bootstrap libssh2 pango fribidi gobject-introspection autoconf-archive py37-mako py37-beaker py37-markupsafe py37-pytest py37-setuptools_scm py37-py py37-packaging py37-attrs py37-hypothesis py37-sortedcontainers py37-six py37-zopeinterface py37-parsing py37-more-itertools py37-atomicwrites py37-pluggy py37-importlib-metadata py37-zipp py37-toml py37-wcwidth pytest_select py37-markdown Xft2 libcroco gdk-pixbuf2 shared-mime-info intltool gnome-common p5.28-getopt-long p5.28-pathtools p5.28-scalar-list-utils p5.28-xml-parser p5.28-libwww-perl p5.28-test-fatal p5.28-try-tiny p5.28-capture-tiny p5.28-sub-name p5.28-devel-checkbin p5.28-extutils-makemaker p5.28-cpan-meta-requirements p5.28-extutils-manifest p5.28-test-leaktrace p5.28-test-needs p5.28-test-requiresinternet p5.28-data-dump p5.28-encode-locale p5.28-file-listing p5.28-http-date p5.28
Dependency untangling riddle
Hi again, this time, I have another interesting quandary. When I try to install LyX, I get this message: — Air > sudo port install LyX +python38 ---> Computing dependencies for LyX The following dependencies will be installed: […] py37-beaker py37-mako py37-markdown py37-markupsafe py37-setuptools python37 […] Continue? [Y/n]: — So basically I have a long list of dependents to install, one (or more) of which itself/themselves depend(s) on python 3.7, at least in its/their default version(s). Since I don’t want to have python3.7 installed alongside python3.8, how can I find out (easily) which port(s) in the list is/are requiring python37? Thanks, Vincent