Hello,
On Jun 6, 2011, at 17:46 , Douglas E. Engert wrote:
> On 6/6/2011 8:52 AM, Martin Paljak wrote:
>> This is a generic messup by me, but I'm not entirely sure it was *not* 
>> intentional, read below.
> 
> I agree, it is what OpenSC has been doing since I got involved,
> basically take what was in the trunk and produce a release.

Uncertainty with releases has caused issues in OpenSC before. Some tries with 
branch based development in SVN have not been IMHO very successful except maybe 
for the given developer himself, mostly because merging back and forth and 
tracking changes is a pain with SVN and distributing/building branches for 
testing purposes has been a pain (especially on/for Windows or OS X, which all 
developers don't have at hand). Thus concentrating on trunk has seemed a 
logical step, as "this is anyway the place where everybody else work as well". 

While the community of OpenSC is not that huge then keeping focus on "trunk" 
will remain a priority, but spreading the focus a *little* would do good. By 
using some technical tools to help fix the shortcomings, namely Git for helping 
with the branching/merging and code mangling and Jenkins with automatic builds 
for a bunch of "meaningful branches" in addition to trunk/master. And work to 
make maintaining the feature branches in a stage that ease merging back and 
forth, which will *require* some internal re-arrangements to better structure 
the code. Carrot and whip case, maybe.


> What I am trying to point out is that OpenSC has become the
> defacto open source smartcard provider and we need to
> treat it as such. Its more then a just package for smartcard
> hackers to try and add their own card for their personal use.

Nice way of saying it, I believe this is a sign that a) smart cards in fact 
*are* becoming a commodity and b) OpenSC has a meaningful position in the 
ecosystem (even if not perfect by nature). Which also means everyone should try 
hard to make it even better.

> As such we need to have better testing on what gets released.
> This is especially true, as no one developer has all the cards
> that are supported, and thus testing relies on all of us
> to test our part before a release.

I still hope for automated test script running against a set of cards to report 
a personalize+user or plain use cycle on a nightly basis or so. But it will 
come when the time is right.
And grouping of thing to be released through branches (which are way more 
functional in Git than in SVN) is another way of achieving this. As said 
before: "more granular releases and better visibility".


>> The "branch" based development in OpenSC has not turned out to be very 
>> successful. Even if development is easy, delivering it for testing is 
>> cumbersome and tracking merges in SVN not only requires adequate 
>> (documented) processes, it even requires special software (think: 
>> svnmerge.py) to be effective. Also, even though smart cards related software 
>> is often very inert and for example even buggy cards need to be supported 
>> for several years (until certificates expire or new cards are issued or 
>> similar), it is a client-side software that should ideally be distributed 
>> like Google Chrome - with transparent continuous updates, if all succeeding 
>> versions are mostly functionally equivalent with previous versions.
>> 
>> Thus I personally actually like the "linear" development/release cycle which 
>> ideally with SVN with the ever-increasing "revision number".  But the 
>> "trunk" centric development with release branches is IMHO not very 
>> effective. I'd prefer more granular merges with Git instead.
>> 
> 
> That is fine too. It requires developers to hold off on new features while
> a release is being prepared. The group of developers is small enough
> that this could be done.

What I meant with "linear" development (actually linear releases) was that IMO 
it is not optimal to create and maintain several *parallel* minor/major 
versions with several build/fix revisions, where the logical step to fix an 
issue would be installing the next release, that should contain any necessary 
fixes AND any additional features. The interfaces OpenSC caters to (PKCS#11, 
CryptoAPI, CDSA/tokend) should be quite stable, thus no need to maintain 
longstanding branches (think: php? vs Apache x.y)

Work on easily testable features (meaning deliverable testable binaries 
containing any new features) should not in any way be hindered by release 
processes.

Best,
Martin
-- 
@MartinPaljak.net
+3725156495

_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to