Installing ports from HEAD

Mojca Miklavec mojca at macports.org
Mon Mar 5 11:04:39 UTC 2018


On 5 March 2018 at 11:39, Ryan Schmidt wrote:
> On Mar 5, 2018, at 04:34, db wrote:
>>
>> I know, but I don't see how HEAD is pragmatically that much different from the devel ports that use a hash+date instead.
>
> "HEAD" is not a specific version. It will vary as developers make new commits. A user installing a port that fetches from "HEAD" will receive different software depending on when they install it, without the version of the port reflecting that. We don't want that; we want reproducible builds.
>
> hash+date is specific, predictable, repeatable. The portfile developer tests a specific hash+date, and when satisfied, commits it to make it available to MacPorts users. And when they do, users are notified that an update is available via "port outdated". That all doesn't happen if you set a port to download from "HEAD".

If we really wanted to, we could certainly:

(1.a) use livecheck-like behaviour to check whether a new commit is
available, so the user would then run something in the spirit of
    port outdated --checkheads
to also check online

(1.b) run such checks at the time of portindex generation (no doubt
portindex would become super slow)

(2) record the git checksum / svn revision at the time of installation

(3) write a big fat warning whenever a port gets installed from HEAD;
repeat the same warning in each log file whenever any dependency would
come from HEAD, so that it immediately becomes clear the user could
have something messed up when filing a ticket

(4) make sure not to install and dependent port from binary archive

(5) provide a command to rebuild all ports that depend on a certain
(or any) port from HEAD; this might be needed after updates

(6) provide a way to back out (that would be much easier to do than
getting rid of +universal ports for example)

(7) write a policy of what we are supposed to do when users submit
reports that the HEAD variant should be fixed - to what extent
developers are supposed to be following


I admit that I do find added value in being able to install certain
ports from HEAD as long as the user using that feature knows exactly
what he/she is doing. I also understand the zillion potential problems
associated with letting users do that. So in this case I'm on neither
side.

Mojca


More information about the macports-users mailing list