Re: Dependency untangling riddle

2020-02-13 Thread Marcus Calhoun-Lopez
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

2020-02-13 Thread Ryan Schmidt
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

2020-02-06 Thread Marcus Calhoun-Lopez
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

2020-02-05 Thread Vincent Habchi
> 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

2020-02-05 Thread Michael


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

2020-02-05 Thread Vincent
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

2020-02-05 Thread Mojca Miklavec
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

2020-02-05 Thread Christopher Jones


> 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

2020-02-05 Thread Ryan Schmidt



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

2020-02-05 Thread Christopher Jones


> 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

2020-02-05 Thread Ryan Schmidt



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

2020-02-05 Thread Bill Cole

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

2020-02-05 Thread Christopher Jones
 > 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

2020-02-05 Thread Vincent Habchi
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