On Jan 30, 2022, at 02:24, Andrew Janke wrote:
> Hi, MacPorts developers,
>
> Long-time Homebrew user and recent MacPorts convert here.
Welcome! I'm interested in your impressions of MacPorts as a Homebrew user and
if you have any suggestions for changes we can make to make your MacPorts
experience more enjoyable.
> Minor usability issue with the `port` program, I think: I suspect that a
> common operation for regular MacPorts users to do is "upgrade all my stuff to
> the latest version".
>
> I tried doing this with `port selfupdate`; `port upgrade`, and got this error
> message:
>
> [~] $ sudo port selfupdate
> ---> Updating MacPorts base sources using rsync
> MacPorts base version 2.7.1 installed,
> MacPorts base version 2.7.1 downloaded.
> ---> Updating the ports tree
> ---> MacPorts base is already the latest version
>
> The ports tree has been updated. To upgrade your installed ports, you should
> run
> port upgrade outdated
> [~] $ sudo port upgrade
> Can't map the URL 'file://.' to a port description file ("Could not find
> Portfile in /Users/janke").
> Please verify that the directory and portfile syntax are correct.
> To use the current port, you must be in a port's directory.
> [~] $
>
> I'm a dev with 25 years of coding and sysadmin experience, and I don't know
> what to do with that error message. I dunno what a regular user is supposed
> to do with that. (Yes, I saw the "To upgrade your installed ports" output
> from the selfupdate command, but still.)
>
> Maybe the error message here could be modified to include a "maybe you meant
> `port upgrade outdated`" message or something like that? Where's the
> 'file://'" coming from, anyway? Does `port upgrade` operate on some port
> definition found in the current working directory by default? I did not
> provide a URL as an input to the `port upgrade` command, so it's a little
> unexpected that I got an error complaining about a URL here.
All MacPorts commands operate on a Portfile in the current directory if you
don't specify what ports to operate on. The error message when there isn't
actually a Portfile in the current directory perhaps isn't the best, though
"Could not find Portfile in /Users/janke" isn't too unclear, is it?
There's no reason to suspect that a user who doesn't specify a port meant to
specify the pseudoport "outdated". I think it might not necessarily even be
known at the time that the list of specified ports is processed which command
that set of ports will be handed to.