Přemek @ abilo.net

Vítej, návštěvníku známý či náhodný. Tenhle web si tvoří Přemek Brada pro čirou radost a chuť občas přenést část obsahu vlastní hlavy na web. Kratší myšlenky jako glosy a poznámky, delší jako občasné články, něco česky, něco anglicky . Možná by vás mohly zajímat také moje fotky.

Welcome visitor, whether returning or randomly landing. This web, created by Premek Brada just for the sheer joy and desire to ocassionally pour parts of his head content onto the web, has a GaP(Notes and comments) blog and a few longer articles, mostly in Czech (author’s native language). Feel free to browse some of my photos as well.

new 1177 days ago / edit Jan 1, 01:33 / link

Nejčerstvější ... | The latest ...

Články | Articles

    Za účinnou kampaň · May 3, 23:54    /    Integrating 3-rd party software with local modifications, using Subversion · Feb 27, 02:28    /    Jak vypadá podvodný email (phishing) · Feb 26, 08:38    /    >>> všechny | all

Glosy a poznámky | GaP Notes and Comments

    OSGi Semantic Versioning: Getting There · May 24, 15:09    /    OpenOffice 3.1 Compatibility: Still a Way to Go · Sep 28, 20:26    /    Dvakrát o txp · Aug 24, 16:18    /    No two Scrums are the same · Aug 18, 17:52    /    Moje sada Eclipse pluginů · Jun 5, 13:49    /    Why the "Subversion sucks" meme sucks · Jan 27, 14:36    /    V područí maloměšťáků · Dec 21, 23:39    /    >>> Celý blog | The whole blog

Textpattern musings

    Czech localization of "txpimage" TinyMCE plugin · Mar 20, 22:29    /    Plugin idea: file download with license · Jun 2, 15:51    /    OpenCms wishlist and missing pieces · Feb 27, 16:28    /    pfb_articles plugin: assortment of article-related handling tags · Nov 2, 22:28    /    Mod for section and article title in messy URLs · Nov 2, 09:05    /    My Textpattern wishlist · Nov 1, 17:06    /    Another update to another viewcounting plugin · Jul 27, 13:12    /    >>> all of them


OSGi Semantic Versioning: Getting There

The recent OSGi Alliance Semantic Versioning whitepaper goes an important step towards really useful versioning.

In my PhD thesis on Specification-Based Component Substitutability and Revision Identification some 7 years ago I noted that component version data should have a well-defined meaning (semantics) so that automated agents can use it in their reasoning about components. The OSGi Alliance whitepaper gets a good way towards this goal.

After having worked in the area for some years, I nevertheless feel that it may not achieve its full effects. Here are two reasons why.

1. API vs Implementation

The paper is very clear about the distinction between API and implementation, and emphasizes that it is a crucial point. Shouldn’t it then be somehow enforced on the package level, e.g. by mandating that API package can only contain interfaces (classes will be ignored)? See Hargrave+Krien’s best practices talk for the discussion. Without similar rules, API versioning policies will be hard to enforce.

2. Status and Strength

Which takes me to the most important point: what is the relationship of this whitepaper and the official spec, what is its “legal status”? Suggestion? Recommended best practice? Proposed required policy? The 4.2 spec still says “Version ranges encode the assumptions about compatibility. This specification does not define any compatibility policy; the policy decision is left to the importer that specifies a version range.”

If the rules set forth in the whitepaper become part of the standard, then it would make more sense to me. Or, if there was a mechanism on the standard level providing indication that these rules are being observed by the given bundle (Bundle-VersioningProfile: semantic-versioning-1.0 declaration?) that the framework could depend on.

In the place of Conclusion

Meanwhile, our CoSi experimental component framework tries to embed and enforce most of these rules on the core framework level.

new May 24, 15:09 / edit Jan 1, 01:33 / link