ugexe / zef

Raku Module Management
Artistic License 2.0
206 stars 44 forks source link

Error in dependency resolution #554

Closed patrickbkr closed 3 months ago

patrickbkr commented 4 months ago
patrickb@app-moarvm-tuidebugger [0]$ zef install 'Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>'
===> Searching for: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Searching for missing dependencies: Terminal::Capabilities:ver<0.0.3+>:auth<zef:japhb>, Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>, Terminal::Print:ver<0.976+>:auth<zef:terminal-printers>, Text::MiscUtils:ver<0.0.9+>:auth<zef:japhb>
===> Searching for missing dependencies: Term::termios:ver<0.2>, Terminal::ANSIParser:ver<0.0.3+>:auth<zef:japhb>, Terminal::ANSIColor, OO::Monitors, File::Which
===> Searching for missing dependencies: LibraryMake
===> Searching for missing dependencies: Shell::Command
===> Searching for missing dependencies: File::Find
===> Building: Term::termios:ver<0.2.7>:auth<zef:krunen>
[Term::termios] Could not find Distribution::Builder::MakeFromJSON in:
[Term::termios]     /home/patrickb/.raku
[Term::termios]     /home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
[Term::termios]     /home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/vendor
[Term::termios]     /home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/core
[Term::termios]     CompUnit::Repository::AbsolutePath<2202794438848>
[Term::termios]     CompUnit::Repository::NQP<2202782931760>
[Term::termios]     CompUnit::Repository::Perl5<2202782931800>
[Term::termios]   in block <unit> at -e line 1
===> Building [FAIL]: Term::termios:ver<0.2.7>:auth<zef:krunen>
Aborting due to build failure: Term::termios:ver<0.2.7>:auth<zef:krunen> (use --force-build to override)

patrickb@app-moarvm-tuidebugger [1]$ zef --version
0.21.4

patrickb@app-moarvm-tuidebugger [2]$ zef depends 'Term::termios:ver<0.2.7>:auth<zef:krunen>'
Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
System::Query:ver<0.1.6>:auth<zef:tony-o>
JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
rakudo:ver<2024.03>:auth<Yet Another Society>

patrickb@app-moarvm-tuidebugger [0]$ zef install 'Term::termios:ver<0.2.7>:auth<zef:krunen>'
===> Searching for: Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Searching for missing dependencies: Distribution::Builder::MakeFromJSON
===> Searching for missing dependencies: System::Query
===> Searching for missing dependencies: JSON::Fast
===> Building: Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Building [OK] for Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Staging JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
===> Staging [OK] for JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
===> Staging System::Query:ver<0.1.6>:auth<zef:tony-o>
===> Staging [OK] for System::Query:ver<0.1.6>:auth<zef:tony-o>
===> Staging Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
===> Staging [OK] for Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
===> Staging Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Staging [OK] for Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Testing: JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
===> Testing [OK] for JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
===> Testing: System::Query:ver<0.1.6>:auth<zef:tony-o>
===> Testing [OK] for System::Query:ver<0.1.6>:auth<zef:tony-o>
===> Testing: Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
===> Testing [OK] for Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
===> Testing: Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Testing [OK] for Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Installing: JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
===> Installing: System::Query:ver<0.1.6>:auth<zef:tony-o>
===> Installing: Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
===> Installing: Term::termios:ver<0.2.7>:auth<zef:krunen>

Context

Zef fails to install the Distribution::Builder::MakeFromJSON dependency of Term::termios:ver<0.2.7> when installing it in a dependency chain. I note that in the dep chain Term::termios:ver<0.2> shows up, but zef later tries to install Term::termios:ver<0.2.7>. I also note, that installation succeeds when installing Term::termios:ver<0.2.7> directly.

Your Environment

patrickb@app-moarvm-tuidebugger [0]$ raku -v
Welcome to Rakudo™ v2024.03.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2024.03.
patrickb@app-moarvm-tuidebugger [0]$ zef list --installed
===> Found via inst#/home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/core
rakudo:ver<2024.03>:auth<Yet Another Society>
===> Found via inst#/home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>
JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>
System::Query:ver<0.1.6>:auth<zef:tony-o>
Term::termios:ver<0.2.7>:auth<zef:krunen>
zef:ver<0.21.4>:auth<github:ugexe>:api<0>
ugexe commented 4 months ago

Raku considers 0.2 to be the same as 0.2.*, and hence zef gives you the highest version raku matches against 0.2 (which in this case is 0.2.7). It might make sense to change Raku behavior here (since one can explicitly opt-in to this behavior by adding .*), but I think I've looked at doing so before and didn't find a satisfactory lowish effort solution. I think the original intention of that behavior was to automatically use patch level updates, as well as matching how use v6 would match use v6.a, use v6.b, use v6.c, etc.

$ raku -e 'say Version.new("0.2").ACCEPTS(Version.new("0.2.7"))'
True

$ raku -e 'say Version.new("0.2.*").ACCEPTS(Version.new("0.2.7"))'
True

$ raku -e 'say Version.new("0.2.0").ACCEPTS(Version.new("0.2.7"))'
False

Even if a workaround were to be implemented in zef we'd still be left with use Term::termios:ver<0.2> loading Term::termios:ver<0.2.7> if it was installed previously or in the future for some unrelated reason. So any fix would probably be more appropriate in rakudo itself.

ugexe commented 4 months ago

Regarding Term::termios not installing as a dependency - it looks like something about the staging workflow may have messed up passing the includes e.g. -I /path/to/termios-download to the build process specifically for dependencies

ugexe commented 4 months ago

Hmmm, maybe I'm wrong about something. When I run the command you provided it fetches 0.2 (so maybe I already implemented the aforementioned workaround in zef) and gets past staging. However, since it fetches 0.2 it seems like it does not need to fetch Distribution::Builder::MakeFromJSON. Could you show your output with --debug to give some more insight?

$ raku -I. bin/zef install 'Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>' --debug --/test --dry
===> Searching for: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Found: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: Terminal::Capabilities, Terminal::LineEditor, Terminal::Print, Text::MiscUtils
===> Searching for missing dependencies: Terminal::Capabilities:ver<0.0.3+>:auth<zef:japhb>, Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>, Terminal::Print:ver<0.976+>:auth<zef:terminal-printers>, Text::MiscUtils:ver<0.0.9+>:auth<zef:japhb>
===> Found dependencies: Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>, Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb>, Terminal::Print:ver<0.976>:auth<zef:terminal-printers>, Text::MiscUtils:ver<0.0.9>:auth<zef:japhb> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: Term::termios, Terminal::ANSIParser, Terminal::Capabilities, Text::MiscUtils, OO::Monitors, Terminal::ANSIColor, File::Which
===> Searching for missing dependencies: Term::termios:ver<0.2>, Terminal::ANSIParser:ver<0.0.3+>:auth<zef:japhb>, OO::Monitors, Terminal::ANSIColor, File::Which
===> Found dependencies: OO::Monitors:ver<1.1.1>:auth<cpan:JNTHN>, Term::termios:ver<0.2>, File::Which:ver<1.0.4> [via Zef::Repository::Ecosystems<rea>]
===> Found dependencies: Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat>, Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: LibraryMake
===> Searching for missing dependencies: LibraryMake
===> Found dependencies: LibraryMake:ver<1.0.5>:auth<zef:jjmerelo> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: Shell::Command, File::Which
===> Searching for missing dependencies: Shell::Command
===> Found dependencies: Shell::Command:ver<1.1>:auth<zef:raku-community-modules> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: File::Which, File::Find
===> Searching for missing dependencies: File::Find
===> Found dependencies: File::Find:ver<0.2.1>:auth<zef:raku-community-modules> [via Zef::Repository::Ecosystems<fez>]
===> Fetching: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Fetching: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>
[Terminal::Widgets] Fetching https://360.zef.pm/T/ER/TERMINAL_WIDGETS/b136288725f8c260137cf4a4f1ed024b3c66a1b9.tar.gz with plugin: Zef::Service::Shell::curl
[Terminal::LineEditor] Fetching https://360.zef.pm/T/ER/TERMINAL_LINEEDITOR/fdc687120c011f0be74f83dc4b5d7c2ee5399c47.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching: Terminal::Capabilities:ver<0.0.3+>:auth<zef:japhb>
===> Fetching: Terminal::Print:ver<0.976+>:auth<zef:terminal-printers>
===> Fetching: Text::MiscUtils:ver<0.0.9+>:auth<zef:japhb>
[Terminal::Capabilities] Fetching https://360.zef.pm/T/ER/TERMINAL_CAPABILITIES/2333312db6364b1761f170c26ff81cf6d0f3f1ba.tar.gz with plugin: Zef::Service::Shell::curl
[Terminal::Print] Fetching https://360.zef.pm/T/ER/TERMINAL_PRINT/cc858faaa0c1955484175497ebd1ddaad57864bc.tar.gz with plugin: Zef::Service::Shell::curl
[Text::MiscUtils] Fetching https://360.zef.pm/T/EX/TEXT_MISCUTILS/b3f8e6eb0b42ae35e574c3275def6d0849cca0c7.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: Terminal::Print:ver<0.976>:auth<zef:terminal-printers> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744455.25318.6341.37074785106/cc858faaa0c1955484175497ebd1ddaad57864bc.tar.gz
===> Fetching [OK]: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744454.25318.9374.078720072508/b136288725f8c260137cf4a4f1ed024b3c66a1b9.tar.gz
===> Fetching: OO::Monitors
[OO::Monitors] Fetching https://raw.githubusercontent.com/raku/REA/main/archive/O/OO%3A%3AMonitors/OO%3A%3AMonitors%3Aver%3C1.1.1%3E%3Aauth%3Ccpan%3AJNTHN%3E.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: OO::Monitors:ver<1.1.1>:auth<cpan:JNTHN> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744455.25318.788.8463911412791/OO%3A%3AMonitors%3Aver%3C1.1.1%3E%3Aauth%3Ccpan%3AJNTHN%3E.tar.gz
===> Fetching [OK]: Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744454.25318.4551.501368839011/fdc687120c011f0be74f83dc4b5d7c2ee5399c47.tar.gz
===> Fetching: Term::termios:ver<0.2>
===> Fetching [OK]: Text::MiscUtils:ver<0.0.9>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744455.25318.1926.1100727551616/b3f8e6eb0b42ae35e574c3275def6d0849cca0c7.tar.gz
[Term::termios] Fetching https://raw.githubusercontent.com/raku/REA/main/archive/T/Term%3A%3Atermios/Term%3A%3Atermios%3Aver%3C0.2%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744455.25318.7272.017414678204/2333312db6364b1761f170c26ff81cf6d0f3f1ba.tar.gz
===> Fetching: Terminal::ANSIColor
===> Fetching: Terminal::ANSIParser:ver<0.0.3+>:auth<zef:japhb>
===> Fetching: File::Which
[Terminal::ANSIParser] Fetching https://360.zef.pm/T/ER/TERMINAL_ANSIPARSER/929dd7df0eaedfd61975eba6b58bf37c3ccfd2f9.tar.gz with plugin: Zef::Service::Shell::curl
[Terminal::ANSIColor] Fetching https://360.zef.pm/T/ER/TERMINAL_ANSICOLOR/687697f93d36df28d99841af8121e28f032f87eb.tar.gz with plugin: Zef::Service::Shell::curl
[File::Which] Fetching https://raw.githubusercontent.com/raku/REA/main/archive/F/File%3A%3AWhich/File%3A%3AWhich%3Aver%3C1.0.4%3E%3Aauth%3Cgithub%3Aazawawi%3E.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching: LibraryMake
[LibraryMake] Fetching https://360.zef.pm/L/IB/LIBRARYMAKE/93cd3f600c57c8dab2f898a0d000d6e20ec307f0.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: Term::termios:ver<0.2> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.9583.550958756992/Term%3A%3Atermios%3Aver%3C0.2%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz
===> Fetching: Shell::Command
[Shell::Command] Fetching https://360.zef.pm/S/HE/SHELL_COMMAND/a757802b1e828eadb469c53c18451fdb3dc1a54e.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: File::Which:ver<1.0.4> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.482.32919570512234/File%3A%3AWhich%3Aver%3C1.0.4%3E%3Aauth%3Cgithub%3Aazawawi%3E.tar.gz
===> Fetching [OK]: Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.1522.7700374366516/929dd7df0eaedfd61975eba6b58bf37c3ccfd2f9.tar.gz
===> Fetching [OK]: Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.6934.495028259094/687697f93d36df28d99841af8121e28f032f87eb.tar.gz
===> Fetching: File::Find
[File::Find] Fetching https://360.zef.pm/F/IL/FILE_FIND/708ed0de18e401c9e9660e88b733129dd5e3607b.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: LibraryMake:ver<1.0.5>:auth<zef:jjmerelo> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.6843.836500285223/93cd3f600c57c8dab2f898a0d000d6e20ec307f0.tar.gz
===> Fetching [OK]: Shell::Command:ver<1.1>:auth<zef:raku-community-modules> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.7989.228641719957/a757802b1e828eadb469c53c18451fdb3dc1a54e.tar.gz
===> Fetching [OK]: File::Find:ver<0.2.1>:auth<zef:raku-community-modules> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/1711744456.25318.555.0481923519601/708ed0de18e401c9e9660e88b733129dd5e3607b.tar.gz
===> Extracting: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
[Terminal::Widgets] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/b136288725f8c260137cf4a4f1ed024b3c66a1b9.tar.gz
===> Extracting: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>
[Terminal::LineEditor] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/fdc687120c011f0be74f83dc4b5d7c2ee5399c47.tar.gz
===> Extracting: Terminal::Capabilities:ver<0.0.3+>:auth<zef:japhb>
[Terminal::Capabilities] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::Capabilities:ver<0.0.3+>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/2333312db6364b1761f170c26ff81cf6d0f3f1ba.tar.gz
===> Extracting: Terminal::Print:ver<0.976+>:auth<zef:terminal-printers>
[Terminal::Print] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::Print:ver<0.976+>:auth<zef:terminal-printers> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/cc858faaa0c1955484175497ebd1ddaad57864bc.tar.gz
===> Extracting: Text::MiscUtils:ver<0.0.9+>:auth<zef:japhb>
[Text::MiscUtils] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Text::MiscUtils:ver<0.0.9+>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/b3f8e6eb0b42ae35e574c3275def6d0849cca0c7.tar.gz
===> Extracting: OO::Monitors
[OO::Monitors] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: OO::Monitors to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/OO%3A%3AMonitors%3Aver%3C1.1.1%3E%3Aauth%3Ccpan%3AJNTHN%3E.tar.gz
===> Extracting: Term::termios:ver<0.2>
[Term::termios] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Term::termios:ver<0.2> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/Term%3A%3Atermios%3Aver%3C0.2%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz
===> Extracting: Terminal::ANSIColor
[Terminal::ANSIColor] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::ANSIColor to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/687697f93d36df28d99841af8121e28f032f87eb.tar.gz
===> Extracting: Terminal::ANSIParser:ver<0.0.3+>:auth<zef:japhb>
[Terminal::ANSIParser] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::ANSIParser:ver<0.0.3+>:auth<zef:japhb> to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/929dd7df0eaedfd61975eba6b58bf37c3ccfd2f9.tar.gz
===> Extracting: File::Which
[File::Which] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: File::Which to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/File%3A%3AWhich%3Aver%3C1.0.4%3E%3Aauth%3Cgithub%3Aazawawi%3E.tar.gz
===> Extracting: LibraryMake
[LibraryMake] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: LibraryMake to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/93cd3f600c57c8dab2f898a0d000d6e20ec307f0.tar.gz
===> Extracting: Shell::Command
[Shell::Command] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Shell::Command to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/a757802b1e828eadb469c53c18451fdb3dc1a54e.tar.gz
===> Extracting: File::Find
[File::Find] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: File::Find to /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T//.zef/1711744446.25318/708ed0de18e401c9e9660e88b733129dd5e3607b.tar.gz
===> Filtering: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Filtering [OK] for Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Filtering: Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> Filtering [OK] for Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> Filtering: Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb>
===> Filtering [OK] for Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb>
===> Filtering: Terminal::Print:ver<0.976>:auth<zef:terminal-printers>
===> Filtering [OK] for Terminal::Print:ver<0.976>:auth<zef:terminal-printers>
===> Filtering: Text::MiscUtils:ver<0.0.9>:auth<zef:japhb>
===> Filtering [OK] for Text::MiscUtils:ver<0.0.9>:auth<zef:japhb>
===> Filtering: OO::Monitors:ver<1.1.1>
===> Filtering [OK] for OO::Monitors:ver<1.1.1>
===> Filtering: Term::termios:ver<0.2>
===> Filtering [OK] for Term::termios:ver<0.2>
===> Filtering: Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat>
===> Filtering [OK] for Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat>
===> Filtering: Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb>
===> Filtering [OK] for Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb>
===> Filtering: File::Which:ver<1.0.4>
===> Filtering [OK] for File::Which:ver<1.0.4>
===> Filtering: LibraryMake:ver<1.0.5>:auth<zef:jjmerelo>
===> Filtering [OK] for LibraryMake:ver<1.0.5>:auth<zef:jjmerelo>
===> Filtering: Shell::Command:ver<1.1>:auth<zef:raku-community-modules>
===> Filtering [OK] for Shell::Command:ver<1.1>:auth<zef:raku-community-modules>
===> Filtering: File::Find:ver<0.2.1>:auth<zef:raku-community-modules>
===> Filtering [OK] for File::Find:ver<0.2.1>:auth<zef:raku-community-modules>
===> # SKIP: No need to build Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb>
===> # SKIP: No need to build File::Which:ver<1.0.4>
===> # SKIP: No need to build File::Find:ver<0.2.1>:auth<zef:raku-community-modules>
===> # SKIP: No need to build Shell::Command:ver<1.1>:auth<zef:raku-community-modules>
===> # SKIP: No need to build LibraryMake:ver<1.0.5>:auth<zef:jjmerelo>
===> Building: Term::termios:ver<0.2>
[Term::termios] Building with plugin: Zef::Service::Shell::LegacyBuild
[Term::termios] Command: /Users/nlogan/.rakubrew/versions/moar-2024.03/install/bin/rakudo -I/var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/93cd3f600c57c8dab2f898a0d000d6e20ec307f0.tar.gz/dist -I/var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/a757802b1e828eadb469c53c18451fdb3dc1a54e.tar.gz/Shell-Command-1.1 -I/var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/File%3A%3AWhich%3Aver%3C1.0.4%3E%3Aauth%3Cgithub%3Aazawawi%3E.tar.gz/raku-file-which-master -I/var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/708ed0de18e401c9e9660e88b733129dd5e3607b.tar.gz/File-Find-0.2.1 -e require '/var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/Term%3A%3Atermios%3Aver%3C0.2%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz/term-termios-master/Build.pm'; ::('Build').new.build('/var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/Term%3A%3Atermios%3Aver%3C0.2%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz/term-termios-master') ?? exit(0) !! exit(1);
[Term::termios] clang -shared  -fno-omit-frame-pointer -fno-optimize-sibling-calls -Werror=vla -O3 -DNDEBUG -Wno-logical-op-parentheses -D_DARWIN_USE_64_BIT_INODE=1  -gdwarf-4 -DMVM_HEAPSNAPSHOT_FORMAT=2 -D_GNU_SOURCE myhelper.c -o /var/folders/cw/bq4j08yx3wq5b3dvz_s4ygb80000gn/T/.zef/1711744446.25318/Term%3A%3Atermios%3Aver%3C0.2%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz/term-termios-master/resources/libraries/libmyhelper.dylib
===> Building [OK] for Term::termios:ver<0.2>
===> # SKIP: No need to build Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb>
===> # SKIP: No need to build Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat>
===> # SKIP: No need to build Text::MiscUtils:ver<0.0.9>:auth<zef:japhb>
===> # SKIP: No need to build Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> # SKIP: No need to build OO::Monitors:ver<1.1.1>
===> # SKIP: No need to build Terminal::Print:ver<0.976>:auth<zef:terminal-printers>
===> # SKIP: No need to build Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Staging Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb>
===> Staging [OK] for Terminal::Capabilities:ver<0.0.3>:auth<zef:japhb>
===> Staging File::Which:ver<1.0.4>
===> Staging [OK] for File::Which:ver<1.0.4>
===> Staging File::Find:ver<0.2.1>:auth<zef:raku-community-modules>
===> Staging [OK] for File::Find:ver<0.2.1>:auth<zef:raku-community-modules>
===> Staging Shell::Command:ver<1.1>:auth<zef:raku-community-modules>
===> Staging [OK] for Shell::Command:ver<1.1>:auth<zef:raku-community-modules>
===> Staging LibraryMake:ver<1.0.5>:auth<zef:jjmerelo>
===> Staging [OK] for LibraryMake:ver<1.0.5>:auth<zef:jjmerelo>
===> Staging Term::termios:ver<0.2>
Saw 1 occurrence of deprecated code.
================================================================================
Method Str (from Distribution::Resource) seen at:
  /Users/nlogan/.rakubrew/versions/moar-2024.03/install/share/perl6/site/sources/1C9686E46F44C640441E04320CF3C7A0C3F63FF4 (Term::termios), line 145
Please use %?RESOURCES<key> directly instead.
--------------------------------------------------------------------------------
Please contact the author to have these occurrences of deprecated code
adapted, so that this message will disappear!
===> Staging [OK] for Term::termios:ver<0.2>
===> Staging Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb>
===> Staging [OK] for Terminal::ANSIParser:ver<0.0.3>:auth<zef:japhb>
===> Staging Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat>
===> Staging [OK] for Terminal::ANSIColor:ver<0.10>:auth<zef:lizmat>
===> Staging Text::MiscUtils:ver<0.0.9>:auth<zef:japhb>
===> Staging [OK] for Text::MiscUtils:ver<0.0.9>:auth<zef:japhb>
===> Staging Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> Staging [OK] for Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> Staging OO::Monitors:ver<1.1.1>
===> Staging [OK] for OO::Monitors:ver<1.1.1>
===> Staging Terminal::Print:ver<0.976>:auth<zef:terminal-printers>
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "xterm-kitty"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
tput: unknown terminal "rxvt-unicode-256color"
===> Staging [OK] for Terminal::Print:ver<0.976>:auth<zef:terminal-printers>
===> Staging Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Staging [OK] for Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
patrickbkr commented 3 months ago

First uninstalling the respective modules to allow a reinstall:

patrickb@~ [0]$ zef uninstall Terminal::Widgets
===> Uninstalled from inst#/home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
patrickb@~ [0]$ zef uninstall Term::termios
===> Uninstalled from inst#/home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
Term::termios:ver<0.2.7>:auth<zef:krunen>
patrickb@~ [0]$ zef uninstall Terminal::LineEditor
===> Uninstalled from inst#/home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
patrickb@~ [1]$ zef uninstall Distribution::Builder::MakeFromJSON
===> Uninstalled from inst#/home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
Distribution::Builder::MakeFromJSON:ver<0.6>:auth<github:niner>

Now trying it again with --debug:

patrickb@~ [1]$ zef install 'Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>' --dry --debug
===> Searching for: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Found: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: Terminal::Capabilities, Terminal::LineEditor, Terminal::Print, Text::MiscUtils
===> Searching for missing dependencies: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>
===> Found dependencies: Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb> [via Zef::Repository::Ecosystems<fez>]
===> Dependencies: Term::termios, Terminal::ANSIParser, Terminal::Capabilities, Text::MiscUtils
===> Searching for missing dependencies: Term::termios:ver<0.2>
===> Found dependencies: Term::termios [via Zef::Repository::Ecosystems<p6c>]
===> Dependencies: LibraryMake
===> Fetching: Term::termios:ver<0.2>
===> Fetching: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Fetching: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>
[Terminal::Widgets] Fetching https://360.zef.pm/T/ER/TERMINAL_WIDGETS/b136288725f8c260137cf4a4f1ed024b3c66a1b9.tar.gz with plugin: Zef::Service::Shell::curl
[Term::termios] Fetching git://github.com/krunen/term-termios.git with plugin: Zef::Service::Shell::git
[Terminal::LineEditor] Fetching https://360.zef.pm/T/ER/TERMINAL_LINEEDITOR/fdc687120c011f0be74f83dc4b5d7c2ee5399c47.tar.gz with plugin: Zef::Service::Shell::curl
===> Fetching [OK]: Term::termios to /home/patrickb/.zef/tmp/1712089986.5921.9085.059229409111/term-termios.git
===> Fetching [OK]: Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb> to /home/patrickb/.zef/tmp/1712089986.5921.5711.848810918034/fdc687120c011f0be74f83dc4b5d7c2ee5399c47.tar.gz
===> Fetching [OK]: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb> to /home/patrickb/.zef/tmp/1712089986.5921.3737.260355283354/b136288725f8c260137cf4a4f1ed024b3c66a1b9.tar.gz
===> Extracting: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
[Terminal::Widgets] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb> to /home/patrickb/.zef/tmp/b136288725f8c260137cf4a4f1ed024b3c66a1b9.tar.gz
===> Extracting: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb>
[Terminal::LineEditor] Extracting with plugin: Zef::Service::Shell::tar
===> Extraction [OK]: Terminal::LineEditor:ver<0.0.16+>:auth<zef:japhb> to /home/patrickb/.zef/tmp/fdc687120c011f0be74f83dc4b5d7c2ee5399c47.tar.gz
===> Extracting: Term::termios:ver<0.2>
[Term::termios] Extracting with plugin: Zef::Service::Shell::git
===> Extraction [OK]: Term::termios:ver<0.2> to /home/patrickb/.zef/tmp/term-termios.git
===> Filtering: Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Filtering [OK] for Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Filtering: Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> Filtering [OK] for Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> Filtering: Term::termios:ver<0.2.7>:auth<zef:krunen>
===> Filtering [OK] for Term::termios:ver<0.2.7>:auth<zef:krunen>
===> # SKIP: No need to build Terminal::LineEditor:ver<0.0.16>:auth<zef:japhb>
===> # SKIP: No need to build Terminal::Widgets:ver<0.1.4>:auth<zef:japhb>
===> Building: Term::termios:ver<0.2.7>:auth<zef:krunen>
[Term::termios] Building with plugin: Zef::Service::Shell::DistributionBuilder
[Term::termios] Command: /home/patrickb/.rakubrew/versions/moar-2024.03/bin/rakudo -e exit((require ::(q|Distribution::Builder::MakeFromJSON|)).new(:meta(Distribution::Path.new("/tmp/zef-distribution-builder/2024-04-02/1712089988-5921-7".IO).meta.hash)).build(q|/home/patrickb/.zef/tmp/term-termios.git/10fb0ce140df6368d3ad20758337693c55208854|)??0!!1)
[Term::termios] Could not find Distribution::Builder::MakeFromJSON in:
[Term::termios]     /home/patrickb/.raku
[Term::termios]     /home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/site
[Term::termios]     /home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/vendor
[Term::termios]     /home/patrickb/.rakubrew/versions/moar-2024.03/share/perl6/core
[Term::termios]     CompUnit::Repository::AbsolutePath<3230298976448>
[Term::termios]     CompUnit::Repository::NQP<3230286748464>
[Term::termios]     CompUnit::Repository::Perl5<3230286748504>
[Term::termios]   in block <unit> at -e line 1
===> Building [FAIL]: Term::termios:ver<0.2.7>:auth<zef:krunen>
Aborting due to build failure: Term::termios:ver<0.2.7>:auth<zef:krunen> (use --force-build to override)

Another finding: I can't reproduce this issue on a different computer. So it's something specific to how things are on this machine.

patrickb@term-termios.git [0]$ zef search Term::termios
===> Found 20 results
-------------------------------------------------------------------------------------------------------------------
ID|From                            |Package                                     |Description                       
-------------------------------------------------------------------------------------------------------------------
0 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.1>:auth<zef:krunen>   |termios routines for Raku         
1 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.2>:auth<zef:krunen>   |termios routines for Raku         
2 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.3>:auth<zef:krunen>   |termios routines for Raku         
3 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.4>:auth<zef:krunen>   |termios routines for Raku         
4 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.5>:auth<zef:krunen>   |termios routines for Raku         
5 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.6>:auth<zef:krunen>   |termios routines for Raku         
6 |Zef::Repository::Ecosystems<fez>|Term::termios:ver<0.2.7>:auth<zef:krunen>   |termios routines for Raku         
7 |Zef::Repository::Ecosystems<p6c>|Term::termios                               |termios routines for Rakudo Perl 6
8 |Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.7>:auth<zef:krunen>   |termios routines for Raku         
9 |Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.6>:auth<zef:krunen>   |termios routines for Raku         
10|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.5>:auth<zef:krunen>   |termios routines for Raku         
11|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.4>:auth<zef:krunen>   |termios routines for Raku         
12|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.3>:auth<github:krunen>|termios routines for Raku         
13|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.3>:auth<zef:krunen>   |termios routines for Raku         
14|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.2>:auth<zef:krunen>   |termios routines for Raku         
15|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2.1>:auth<zef:krunen>   |termios routines for Raku         
16|Zef::Repository::Ecosystems<rea>|Term::termios:ver<0.2>                      |termios routines for Rakudo Perl 6
17|Zef::Repository::Ecosystems<rea>|Term::termios                               |termios routines for Rakudo Perl 6
18|Zef::Repository::LocalCache     |Term::termios                               |termios routines for Rakudo Perl 6
19|Zef::Repository::LocalCache     |Term::termios:ver<0.2.7>:auth<zef:krunen>   |termios routines for Raku         
-------------------------------------------------------------------------------------------------------------------

Looking at the REA Term::termios:ver<0.2> - that contains the right source code for 0.2 Looging at the REA Term::termios:ver<*>:auth<github:krunen> - that's likely code for 0.2-ish. Looking at p6c - that doesn't have Term::termios anymore.

Maybe I'm once again victim of P6Cs lack of support for versions and stale caching?

ugexe commented 3 months ago

If I run zef install Term::termios --debug --/fez --/rea --/cpan --/cached --p6c (which basically enables p6c and then makes it the only available ecosystem) I can reproduce your original output.

Looking at p6c - that doesn't have Term::termios anymore.

As far as zef is concerned https://github.com/ugexe/Perl6-ecosystems is the authority for the p6c ecosystem (see: config), not e.g. rakuland or REA. The aforementioned Perl6-ecosystems repo is no longer updated, and thus no longer syncs changes reflected in https://github.com/Raku/ecosystem/blob/main/META.list Similarly REA contains the distribution as it was scraped from p6c with https://github.com/Raku/REA/blob/main/archive/T/Term%3A%3Atermios/Term%3A%3Atermios%3Aver%3C*%3E%3Aauth%3Cgithub%3Akrunen%3E.tar.gz

What I'm still not sure of is how you ended up either 1) getting the p6c version from REA (since REA contains a higher verison for the same auth, and there is no way to request version * explicitly) or 2) why your zef has p6c enabled by default (as evident by your zef search Term::termios showing a p6c result). As far as 2 is concerned you might want to run zef --help and see if the configuration file it shows points to a non-default config (for example something generated by https://raku.land/zef:lizmat/Zef::Configuration). Another clue that point 2 is correct is that even if p6c was enabled, zefs current configuration makes it an extremely low priority and as such just enabling p6c shouldn't be enough.

ugexe commented 3 months ago

You can see the output of the current config with zef --help 2>&1 | grep CONFIGURATION | awk '{print $2}' | xargs cat, which you can compare against https://github.com/ugexe/zef/blob/main/resources/config.json

patrickbkr commented 3 months ago

My config lists the following repos:

  1. fez
  2. cpan
  3. p6c
  4. rea

All of them are enabled. The rest looks pretty similar. Interestingly enough, it says ConfigurationVersion instead of ConfigVersion. That's a very strong indication that my config was written by Zef::Configuration. A quick look at the code shows that the order of the repos matches what Zef::Configuration generates by default.

Searching my bash-history actually does surface a single call to zef-configure enable rea. So I guess the blame is on me.

I'll create a report over on Zef::Configuration that the default config doesn't match zefs.

Thanks for supporting my issue hunt!