fpml versioning an awg discusion document. versioning in fpml to date based on major.minor numbering...

13
FpML Versioning An AWG Discusion Document

Upload: samuel-hensley

Post on 27-Mar-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

FpML Versioning

An AWG Discusion Document

Page 2: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Versioning in FpML To Date

• Based on major.minor numbering– Major increments to indicate a breaking change

– Minor increments with each non-breaking change

• Numbering rules have not be rigorously implemented– 4.1 EQD model incompatible with 4.0

– 4.3 CD model ‘technically’ incompatible with 4.2

Page 3: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Technical vs. Marketing Numbering

• Standards committee prefers to minimise major number changes– Makes it ‘seem’ that difference between all

releases are minor– Must read the release notes to discover the

details of the changes

• Goes against FpML rules of operation

Page 4: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Why Change?

• To implement document backwards compatibility– Compatible schemas must share a common namespace

• Most FpML releases are ‘structurally’ backwards compatible BUT documents must be altered before processing– Change would eliminate need for document alterations

– Can reduce the maintain required to update implementations

Page 5: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Build Numbers

• Can be considered as an additional part of the version number– e.g. Major.Minor.Build

• Useful to implementers using working drafts

• No changes to build numbers are considered

Page 6: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Options

Page 7: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Option 1: Continue Ad-hoc Numbering

• Continue with current system for 5 and later• Pros:

– More control over version numbering

• Cons:– Not possible to implement backwards

compatibility– Versions give no indication of technical

difference since last release

Page 8: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Option 2: Rigorous Two Part Numbering

• Implement version rigorously to FpML operating rules– Current FpML 4.3 should be 6.1!

• Pros:– Version numbers reflect technical difference and ease of

implementation– Allows backwards compatibility through namespace URI

containing only major number

• Cons:– Major version numbers would increment more frequently

Page 9: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Option 3: Two Versions

• Each schema given two identifiers– A marketing name used in publications

• e.g. FpML 5-A

– A technical major.minor number in the schema

• Pros:– Marketing identifier changes less frequently than technical version

• Cons:– Not easy to determine compatibility from marketing name– Not easy to map between marketing and technical numbering– Namespace based on marketing name would not support

backwards compatibility

Page 10: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Option 4: Three Part Version Number

• Version number becomes– Architecture.Major.Minor (e.g 5.0.0, 5.0.1, 5.1.0)

• Schema namespace URI predictably derived from version number– Architecture.Major (e.g. 5.0, 5.1)

• Pros:– Leading digit remains consistent across many releases

– Supports document backwards compatibility

• Cons:– Architecture number out of synchronisation with documentation

• Come up with a better name?

– Changes version attribute

– Version is not a number may affect some implementations

Page 11: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Observations

• Implementers need to see how similar or different releases are– Current scheme ‘disguises’ the amount of

change

• Backwards compatibility can only be done if version numbers are technically defined– Breaking changes MUST change the URI

Page 12: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Other Thoughts

• Should we have a standard root element attribute that defines schema status?– status=“wd” or “tr” or “rec”

Page 13: FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor

Recommendation

• What?