Semi-automating updates

Rainer Müller raimue at macports.org
Sun Mar 25 23:13:57 UTC 2018


On 2018-03-26 00:34, Mojca Miklavec wrote:
> On 26 March 2018 at 00:14, Rainer Müller wrote:
>> On 2018-03-25 06:11, Ryan Schmidt wrote:
>>>
>>> Currently PRs are tested by a separate build infrastructure on Travis. It runs on three systems: Xcode 7.3 on OS X 10.11, Xcode 8.3 on macOS 10.12, and Xcode 9.3beta on macOS 10.13. These builds deliver different results than the Buildbot would. For example, if a port requires pkgconfig, and that dependency has not been declared, the build on the Buildbot will likely fail because pkgconfig is not there; the developer can notice this and correct the error. But on Travis, pkgconfig often gets installed as a dependency earlier in the process, so we won't notice if a port has failed to declare that dependency (until the PR gets merged and then built by the Buildbot).
>>
>> How could this be a difference between buildbot and Travis? Both are
>> using mpbb to build, which deactivates all ports between builds. It
>> should give the same results in any execution environment.
> 
> When you are building port A which depends on a non-distributable
> dependency B and forgets to add a dependency to pkg-config, while B
> correctly declares dependency on pkg-config, then pkg-config will be
> installed on Travis, but (usually) not on the buildbot.

Correct, it will be installed in order to build port B. But that does
not mean it will be *active* for the build of port A.

Each build in mpbb starts from scratch. It deactivates all active ports
after building each port dependency [1] and only activates the required
dependencies at the end again.

Therefore, it should not matter whether port B came from an archive or
was built locally, the result should be the same.

Rainer

[1]
https://github.com/macports/mpbb/blob/387064c27c616757509ec8462b72cfe512b228ad/mpbb-install-dependencies#L144-L147


More information about the macports-dev mailing list