Versioning of Frameworks
Gregor Mi
codestruct at posteo.org
Wed Apr 29 20:05:53 UTC 2015
Hi,
I would like to add that there are other much bigger frameworks which have a lot more
resources at hand and also have one single version under which all of the many submodules
are released:
Java (Java 6, Java 7, Java 8, ...) https://en.wikipedia.org/wiki/Java_version_history
.NET (3.0, 3.5, 4.0, 4.5, ...) https://en.wikipedia.org/wiki/.NET_Framework
An application based on one of these frameworks needs to reference only one version. Each
framework is released together and it is installed as one package.
Gregor
On 29/04/15 20:34, David Faure wrote:
> 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.
>
More information about the Kde-frameworks-devel
mailing list