> On Sep 29, 2017, at 6:21 PM, Jordan Rose via swift-dev <swift-dev@swift.org> 
> wrote:
> 
> It's time for MagicKit 6 to come out, and we're going to add a new SpellKind:
> 
> @available(MagicKit 6)
> case summoning
> // [charm, curse, hex, blight, jinx, summoning]
> 
> We ship out a beta to our biggest clients, but realize we forgot a vital 
> feature. Beta 2 comes with another new SpellKind:
> 
> @available(MagicKit 6)
> case banishing
> // [charm, curse, hex, blight, jinx, banishing, summoning]
> 
> And now we're in trouble: anything built against the first beta expects 
> 'summoning' to have tag 5, not 6. Our clients have to recompile everything 
> before they can even try out the new version of the library.

Just to check: How much do we need to care about this? It's a beta, after 
all—clients should expect stuff to break and should rebuild against the new 
versions as they come out.

If the answer is that this is unacceptable, I think we can come up with a 
"private revision" syntax for this:

        @available(MagicKit 6r2)
        case banishing

The "r2" might not even show up in the generated header, but the case ordering 
would take it into account, giving it a lower weight than even the most minor 
part of the version number.

-- 
Brent Royal-Gordon
Architechies

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to