The poppler dependents that need rebuilding are the ones that link with the low-level core library, libpoppler whose version is almost always (but not always) incremented on updates. Most ports use the higher level libraries whose version remains relatively stable over time. But with new ports coming
and going all the time, the ports needing a rebuild vary from time to time. My suggested procedure
is to install all dependents of poppler using the old version and then see what rev-upgrade reports
after upgrading to the new version. This will also show up any ports that will no longer build due to API changes (relatively frequent with the low-level library).
As with any openmaintainer upgrade, if you don't know enough about a port to understand the consequences of updating it, then you probably should leave it to the maintainer.
Please can you put a comment then in the port file explaining the above. Openmaintainer allows members to make 'minor' version bumps to ports, and in my view 0.75 -> 0.76 is a minor version number change. Now, if poppler devs do things like change their API on such version changes, then indeed this is not a minor change. However, just looking at the portfile there is no indication of this.
I am not trying to be argumentative here, and I apologies for the problems the update caused. I am just saying for the vast majority of ports a version update like the one here is perfectly fine and causes no issues. poppler , it seems, is different to most so a comment in the portfile to that affect would be a good idea. I do occasionally scan all the ports I have installed to see if there is any minor version updates I can do under openmaintainer, so I cannot absolutely guarantee without such a comment in the portfile I won't forget this discussion in the future and do this again at some point...
Basically any port update would theoretically need to be accompanied by testing and potentially revbumping all the dependencies. Just because the port doesn't have that explicitly mentioned in the Portfile doesn't mean that this shouldn't be done. Admittedly plenty of developers don't do this. I certainly never tried to build all of the 1000+ ports when perl bugfix version changes (I'm mentioning this extreme just because it's the most obvious one of my ports with lots of dependencies; the upstream policy is strictly not to break perl, so I'm usually confident that it's safe).
Changing the first significant number in version certainly doesn't count as "minor version bump" to me. I'm also pretty sure that upgrading root6 from 6.0 to 6.16 (which is just a few minor version bumps ahead) is not really painless, in particular not if you want to deal with older systems. Qt "minor" version bumps are also problematic enough that they always necessarily break anything but the latest two OS versions.
I agree that our definition of openmaintainer policy is confusing, but it was written back in times when subversion was used, and now with pull request I do find one reason less for committing openmaintainer ports directly. It is potentially problematic if developers do "minor version upgrades" without even opening a pull request and give the developer at least a short chance to hit the merge button or provide a reason for not merging the code.
poppler is widely known as a super problematic piece of software, for anyone who follows at least a tiny bit. I'm not aware of any single update that would not break a great deal of ports. TeX Live will get rid of it in the near future, as it's so painful to work with and maintain software, in particular when you want to support old systems.
@dbevans: I believe it would make perfect sense to remove the openmaintainer policy from poppler.
Unrelated but since we're having a discussion anyway: In my initial testing / log verification (OSX 10.14 and 10.6), Poppler no longer requires the self-conflict for building. It builds cleanly, and the log shows that all headers and libraries are ordered correctly: internal-to-build first then external-to-build. I'll keep testing / verifying on other OSX as I do updates, and if they check out too then I'll do a PR to remove that code chunk from the Portfile.
Basically any port update would theoretically need to be accompanied by testing and potentially revbumping all the dependencies. Just because the port doesn't have that explicitly mentioned in the Portfile doesn't mean that this shouldn't be done. Admittedly plenty of developers don't do this. I certainly never tried to build all of the 1000+ ports when perl bugfix version changes (I'm mentioning this extreme just because it's the most obvious one of my ports with lots of dependencies; the upstream policy is strictly not to break perl, so I'm usually confident that it's safe).
I would agree in an ideal work every single port update would be tested against all possible dependants it might have. In the real world its not at all possible for a user to do this themselves ( if we wanted this, it would have to be something down automatically during a PR).
Also, we have to accept we have a limited number of contributors updating ports. If we place far too stringent requirements on what needs to be done for even a 'trivial' update what will happen in practise is no one will make updates any more. We don't want this, so for me the current situation where ports can be updated quickly under openmaintainer is best. even if occasionally mistakes like here happen.
Changing the first significant number in version certainly doesn't count as "minor version bump" to me. I'm also pretty sure that upgrading root6 from 6.0 to 6.16 (which is just a few minor version bumps ahead) is not really painless, in particular not if you want to deal with older systems. Qt "minor" version bumps are also problematic enough that they always necessarily break anything but the latest two OS versions.
This is completely subjective. To me, if a package changes its API then that is not something I would expect in a X.N to X.(N+1) update. I would expect that to be a (X+1).0 update. Clearly though, popper devs work under a different policy here..
I agree that our definition of openmaintainer policy is confusing, but it was written back in times when subversion was used, and now with pull request I do find one reason less for committing openmaintainer ports directly. It is potentially problematic if developers do "minor version upgrades" without even opening a pull request and give the developer at least a short chance to hit the merge button or provide a reason for not merging the code.
I don't disagree, and I fact raised on the mailing list an idea that all updated should be done this way. This was totally shot down, as people wanted to be free to commit directly. I am therefore just following what is the community agreed policy here....
poppler is widely known as a super problematic piece of software, for anyone who follows at least a tiny bit. I'm not aware of any single update that would not break a great deal of ports. TeX Live will get rid of it in the near future, as it's so painful to work with and maintain software, in particular when you want to support old systems.
In this case then, a comment to that affect would be useful in the Portfiles itself.
@dbevans: I believe it would make perfect sense to remove the openmaintainer policy from poppler.
This comment has been minimized.
in the past, most of the
popplerupdates also included revbumps of at least some ports that depend on it - is that not needed this time?This comment has been minimized.
It would be useful if this info was in the port file, to let people like myself who occasionally do causal openmaintainer updates know this....
I did not see any issues though, at least none of the ports have installed have complained yet....
This comment has been minimized.
The poppler dependents that need rebuilding are the ones that link with the low-level core library, libpoppler whose version is almost always (but not always) incremented on updates. Most ports use the higher level libraries whose version remains relatively stable over time. But with new ports coming
and going all the time, the ports needing a rebuild vary from time to time. My suggested procedure
is to install all dependents of poppler using the old version and then see what rev-upgrade reports
after upgrading to the new version. This will also show up any ports that will no longer build due to API changes (relatively frequent with the low-level library).
As with any openmaintainer upgrade, if you don't know enough about a port to understand the consequences of updating it, then you probably should leave it to the maintainer.
This comment has been minimized.
Ports that built with poppler 0.75.0 that now, at a minimum, need rebuilding with poppler 0.76.0 are
I'm rebuilding them now to see if there are any other issues that need to be addressed.
This comment has been minimized.
All of these are broken with 0.76.0. Will see what the issues are tomorrow.. Next time lets do a PR and work out the issues before merging.
This comment has been minimized.
Please can you put a comment then in the port file explaining the above. Openmaintainer allows members to make 'minor' version bumps to ports, and in my view 0.75 -> 0.76 is a minor version number change. Now, if poppler devs do things like change their API on such version changes, then indeed this is not a minor change. However, just looking at the portfile there is no indication of this.
I am not trying to be argumentative here, and I apologies for the problems the update caused. I am just saying for the vast majority of ports a version update like the one here is perfectly fine and causes no issues. poppler , it seems, is different to most so a comment in the portfile to that affect would be a good idea. I do occasionally scan all the ports I have installed to see if there is any minor version updates I can do under openmaintainer, so I cannot absolutely guarantee without such a comment in the portfile I won't forget this discussion in the future and do this again at some point...
This comment has been minimized.
@cjones051073:
Portfiledoesn't mean that this shouldn't be done. Admittedly plenty of developers don't do this. I certainly never tried to build all of the 1000+ ports when perl bugfix version changes (I'm mentioning this extreme just because it's the most obvious one of my ports with lots of dependencies; the upstream policy is strictly not to break perl, so I'm usually confident that it's safe).@dbevans: I believe it would make perfect sense to remove the openmaintainer policy from poppler.
This comment has been minimized.
Unrelated but since we're having a discussion anyway: In my initial testing / log verification (OSX 10.14 and 10.6), Poppler no longer requires the self-conflict for building. It builds cleanly, and the log shows that all headers and libraries are ordered correctly: internal-to-build first then external-to-build. I'll keep testing / verifying on other OSX as I do updates, and if they check out too then I'll do a PR to remove that code chunk from the Portfile.
This comment has been minimized.
I would agree in an ideal work every single port update would be tested against all possible dependants it might have. In the real world its not at all possible for a user to do this themselves ( if we wanted this, it would have to be something down automatically during a PR).
Also, we have to accept we have a limited number of contributors updating ports. If we place far too stringent requirements on what needs to be done for even a 'trivial' update what will happen in practise is no one will make updates any more. We don't want this, so for me the current situation where ports can be updated quickly under openmaintainer is best. even if occasionally mistakes like here happen.
This is completely subjective. To me, if a package changes its API then that is not something I would expect in a X.N to X.(N+1) update. I would expect that to be a (X+1).0 update. Clearly though, popper devs work under a different policy here..
I don't disagree, and I fact raised on the mailing list an idea that all updated should be done this way. This was totally shot down, as people wanted to be free to commit directly. I am therefore just following what is the community agreed policy here....
In this case then, a comment to that affect would be useful in the Portfiles itself.
that might also make sense.