- From: ak.miller at auckland.ac.nz (Andrew Miller)
- Subject: [cellml-discussion] Survey on opinions for the backwards compatibility levels for future CellML Specs
- Date: Wed, 09 Jan 2008 15:44:48 +1300
James Lawson wrote:
>
Andrew Miller wrote:
>
> Hi all,
>
>
>
Hi, thanks for providing a nice intro to this issue Andrew.
>
> There have recently been some discussions of changes which would
>
> drastically break forwards or backwards compatibility of CellML (for
>
> example, changing the way that connections work).
>
>
>
> I think that it is important that we come to some consensus on what
>
> the policy for inter-version compatibility in CellML should be quite
>
> soon, because this drastically affects decisions that need to be made
>
> in CellML specification development.
>
>
>
> It doesn't really make sense to be inconsistent with respect to
>
> version compatibility - it would be quite unfortunate if we worked
>
> hard to keep compatibility for one part of CellML, and then broke it
>
> in another major part such as by changing the way connections work,
>
> and so I think we need a policy on this.
>
>
>
I certainly agree with you that we need to keep policy consistent.
>
However the possibility that immediately came to mind is that we could
>
group versions of the specification with respect to interversion
>
compatibility. If we have major decisions to make regarding the
>
continuing integrity of the language that might break compatibility, I
>
think we must reserve the right to do this, giving careful
>
consideration of the impact to the community of course. For example,
>
if we were to break compatibility of 1.0 and 1.1 with 1.2, but have
>
1.3 and 1.4 compatible with 1.2, this would reduce development
>
workload compared with a policy of not requiring version compatibility
>
between successive versions at all. Perhaps this is an approach we
>
might want to take between, say CellML 1.X and CellML 2.X - that is,
>
we reserve major changes that will break compatibility for major
>
versioning events.
One thing which I didn't state as clearly as I probably should have is
that I am proposing that we decide on a policy for how we deal with the
next version of CellML. By policy, I mean a uniting concept which
applies to all issues in the development of the next version of the
specification, as opposed to something which would apply across
specification versions. I am not suggesting that we need to set a policy
in stone for all future versions - it is likely that decisions like this
will be reviewed by the community when we are working on post-1.2
versions of CellML if there need to do so.
Best regards,
Andrew
>
> I have come up with a number of different potential policy statements
>
> on when backwards compatibility should be broken and when it should
>
> be kept. It might help us to reach consensus if members of the CellML
>
> community could rank the policies in order of preference (1 is the
>
> most preferable policy, 2 the next most, and so on), and suggest any
>
> good policies that may be missing.
>
>
>
> Option A)
>
> Future versions of CellML should aim to solely express the intention
>
> of previous versions better and more clearly. They should aim to keep
>
> full compatibility with an implementation of the specification
>
> according to the rules of the specification as they were interpreted
>
> by implementors.
>
>
>
> Option B)
>
> Future versions of CellML should try to be mostly compatible with
>
> existing implementations of previous versions of CellML. They may
>
> remove functionality that does not have an established base of
>
> software which correctly implements that functionality. They may also
>
> add in new functionality, if that new functionality significantly
>
> increases the expressiveness of the language. However, in normal
>
> circumstances, compatibility should be maintained, so that when a
>
> model not using new features is saved in the new version's most
>
> preferred format, it can still be correctly loaded into software only
>
> supporting the old version. Likewise, a model not using any removed
>
> features should be able to be loaded in software supporting only the
>
> new version of the specification.
>
>
>
> Option C)
>
> Future versions of CellML should make any changes which make it
>
> conceptually cleaner, even if there is a less clean compromise
>
> available that would have lesser compatibility implications. Software
>
> will need to explicitly support more than one version as a completely
>
> separate format.
>
>
>
> My preferred choice is Option B. Despite being apparently at opposite
>
> ends of the spectrum, Option A and Option C are, in my opinion,
>
> fairly similar, because if we adopted Option A, larger changes would
>
> appear in a new specification called something other than CellML.
>
> Although there could be advantages of coming up with a more
>
> meaningful name than CellML, I think that this would also set us back
>
> in terms of community awareness of the specification, and so I think
>
> that Option C is marginally better than Option A (i.e. my personal
>
> order of preference is currently B:1, C:2, A:3).
>
>
>
I would have to concur - out of those three possibilities, B would be
>
preferable.
>
>
Kind regards,
>
James
>
> I look forward to any feedback on this you may have.
>
>
>
> Best regards,
>
> Andrew
>
>
>
> _______________________________________________
>
> cellml-discussion mailing list
>
> cellml-discussion at cellml.org
>
> http://www.cellml.org/mailman/listinfo/cellml-discussion
>
>
>
>
_______________________________________________
>
cellml-discussion mailing list
>
cellml-discussion at cellml.org
>
http://www.cellml.org/mailman/listinfo/cellml-discussion
>
Archive powered by MHonArc 2.6.18.