Nicely put. I like the way you are directing the project.

On 6/7/2011 9:20 AM, Martin Paljak wrote:
> 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

-- 

  Douglas E. Engert  <deeng...@anl.gov>
  Argonne National Laboratory
  9700 South Cass Avenue
  Argonne, Illinois  60439
  (630) 252-5444
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to