You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
you have 2 packages php8.3-ampq and php8.2-ampq both at version 2.1.2 at epoch 0. They both provide php-amqp=${{package.full-version}}
A change is made to php8.2-ampq, and the epoch bumped.
Now, if something tries to install the virtual php-ampq, they'll get the php8.2 version rather than the 8.3 version.
We were lucky and avoided that problem in python because of the multi-versioning. You cannot currently bump py3.12-foo without bumping py3.13-foo (they are both built by py3-foo).
So I think that:
virtual provides are only for humans. They should never be allowed to be used by image builds.
We should not provide versions on virtual provides, but rather rely on provider-priority. (php-igbinary-config is fine, but php-igbinary-config-${{package.version}} is not). This decision is primarily made for consistency with py3-*). I do not have a reason why one option should be strongly preferred over the other, so I'm choosing consistency.
In order to accomplish this, we have to
drop the version on php-* virtual provides
bump and build and withdraw all older versions php-* . This is required so that users would not continue to get the older version as version provider-priority is only consulted when version is equal.
The text was updated successfully, but these errors were encountered:
great. so, after writing the above, i realize that a provider-priority of '83' for php 8.3 and then 84 for php 8.4 falls apart when we have a 9.0 and 8.10 (as 8.10 then gets 810 and 9.0 gets 90).
2 options to address taht
use version on the virtual-provides instead (php-igbinary-config=8.3 for php8.3-igbinary-config)
use provider-priority with more thoughtful versions (Major*100+minor). This would currently require a 'var' to define rather than var-transform, as I do not think I can do math in the regex.
php packages currently have virtual provides with a full package version.
This causes issue when multiple php versions exist as discussed some #32398.
The biggest problem here is:
php-amqp=${{package.full-version}}
Now, if something tries to install the virtual
php-ampq
, they'll get the php8.2 version rather than the 8.3 version.We were lucky and avoided that problem in python because of the multi-versioning. You cannot currently bump py3.12-foo without bumping py3.13-foo (they are both built by py3-foo).
So I think that:
In order to accomplish this, we have to
The text was updated successfully, but these errors were encountered: