How do base commits get released?

George Plymale II georgedp at orbitalimpact.com
Fri Nov 2 02:41:30 UTC 2018


Hi all,

Recently, I was trying to use some features that had been committed to
Macports' base recently. One of them was my own feature which was
accepted in this PR: https://github.com/macports/macports-base/pull/99

However, as I tried to use this feature it simply would not work. At
first, I was scared that I'd stumbled on some sort of hideous heisenbug;
that my code actually wasn't working even though it had already been
accepted and I tested it previously. Upon further investigation, though,
it seems that actually my Macports' base is missing some commits, even
though it's on the latest version 2.5.4.

According to porthier(7), the sources of my base are located under:
/opt/local/var/macports/sources

By following the directory tree, I found the folder I was interested in:
/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/base/src/pextlib1.0

As I looked in this folder, I noticed that many files had timestamps of
2017, including readline.c which is the specific file I was interested
in. I confirmed that this file really was not up-to-date with the master
branch. Here is the file's commit history:
https://github.com/macports/macports-base/commits/master/src/pextlib1.0/readline.c

As you can see, the most recent change since 2017 was the rebranding of
"OS X" to "macOS." My version of readline.c does not even have this
update; the file contains many references to "OS X" and no references to
"macOS." Clearly, some commits are missing from my base tree.

Furthermore, upon examining the commits between 2.5.3 and 2.5.4 it is
apparent that some commits on the master branch are missing:
https://github.com/macports/macports-base/compare/v2.5.3...v2.5.4

So what's going on? I guess this must be part of Macports' release
system and only certain commits are picked for release. I can't think of
any other explanation, at least. Why is this done? How long does it take
(and what are the criteria) before a base commit is actually released? I
don't see any documentation describing the release process. I'm glad at
least to know that my changes were not infected with any heisenbugs, but
after all this investigation I'd like to know what's going on! Consider
my curiosity piqued, I guess :)

Thanks,
- George Plymale II


More information about the macports-dev mailing list