Versioning of Frameworks
David Faure
faure at kde.org
Wed Apr 29 18:34:04 UTC 2015
On Tuesday 28 April 2015 12:17:00 Christian Mollekopf wrote:
> Our dependency tree is now indeed reduced, but if we want to update a
> single library, we are forced to update all libraries, due to the
> version-lock caused by periodic bumping of dependencies.
You say at the end of the mail that you are using (or you plan to use only) 6
frameworks. Having to update 6 frameworks together doesn't seem like a huge
amount of work to me.
OK, 11, when including the PIM modules which AFAIU aim at becoming frameworks.
> Similarly, requirements are bumped as the requirements increase, making it
> entirely possible that some low-level libraries can remain the same while
> others are updated.
This would lead to an awful "version zoo".
KIO 5.7 requires KXMLGui 5.5 and KCoreAddons 5.4, but actually KXMLGui 5.5
requires KCoreAddons 5.5 so overall KCoreAddons 5.5 is required, etc. etc.
Multiply this by 64 frameworks and you have a horrible confusion for everyone
everywhere.
> I think our requirements can be split into two parts:
> * No automatic version-bumping of dependencies: This harms us the most
> because it forces us to update everything when updating something. It's
> not a problem in Tier1 frameworks, but I've seen some doing it (khtml),
> so I hope it's not a policy and we can do it differently in PIM.
Everything under frameworks/ is released together and with the same version
number. This includes any PIM-related frameworks.
On the other hand if you mean PIM-related stuff outside of frameworks/, then
they will have a different release schedule and therefore a different
versioning scheme I assume.
> * A version number that follows changes and not time: As I understand
> version numbers are currently bumped periodically because we anyways
> lack the manpower for release-management, and since changes usually
> happen, the version is just periodically bumped before each release.
> This seems to prevent release-management to happen though, where the
> version number is a vital tool for planning what ends up in what
> version. So my question would be whether we could move certain
> frameworks from that time-boxing model to a feature-boxing model,
> allowing the releases to be somewhat planned.
The whole point of the monthly release cycle is that bugfixes see the light of
day in the coming month, not 6 months later.
So if we cannot release a new version because no new feature happened (is this
what you mean?), it would break this concept. Or if you mean releasing but
with a different version number depending on whether there were only bugfixes
or also features, then I have to disagree for many reasons, including
- the version zoo mentionned above
- the lack of a clear-cut line between bugfixes and features
- the need for a manual decision in 62 frameworks
- the fact that the workflow for frameworks (master always stable and
releasable) does not require a distinction between bugfixes and features, like
the KDE4 workflow required.
> I assume the current versioning is happening so noone has to maintain
> the individual version-numbers
That is one reason, but not the only reason. Making the release dude's life
(i.e. my life) harder is one thing I'll fight against, but the other reason is
that a version zoo also makes things harder for everyone else: packagers,
developers and users.
> Initially I'd like to stop the automatic dependency bumping, the rest
> can IMO wait some more, that's something that can be solved on the PIM
> side, but I need to know if there are policies regarding that, or if
> some frameworks just choose to do that out of laziness (aka lack of
> manpower).
> The release-management I'd try first on kimap, which is not yet a
> framework, and where I'm maintainer, so my question would be whether you
> somehow rely on all frameworks have the same version, and how we could
> fix that.
I'm confused by what you're saying here. If it's not a framework, it's not a
framework, you can release whichever way you want. But once it's a framework,
it will be released like everything else, with automatic version number
increases.
> If it goes well with kimap, I'd then just approach the
> individual maintainers.
There is no point in doing that. They don't release the frameworks.
I do. I release them all.
> * PIM (not yet part of frameworks)
> ** KCalendarCore
> ** KCalendarUtils
> ** KMIME
> ** KIMAP
> ** KContacts
>
> * Current Frameworks
> ** ECM
> ** KCoreAddons
> ** KConfig
> ** KI18n
> ** KDELibs4Support
> ** KCodecs
Please keep in mind that this is only a very small subset of the overall set
of frameworks. So if you think that the version zoo from these 11 would be
manageable, it doesn't mean it would be for the 75 frameworks we'll end up
with (guesstimate from the current 62 plus a bunch of upcoming pim
frameworks).
Look at it another way. Does QtNetwork 5.4 say that it requires QtCore 5.2 or
later ? Does QtSvg 5.4 say that it requires QtGui 5.3 or later ?
No. You install Qt 5.4, you get everything 5.4.
The same happens with frameworks, you install KF 5.9, all the modules are 5.9.
This is not laziness. It's the only way to have something that a human (all
humans) can wrap their head around, to avoid a complex version matrix with 75
frameworks each requiring a different version of the 1-to-20 frameworks they
depend on.
--
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5
More information about the Kde-frameworks-devel
mailing list