Giter Site home page Giter Site logo

Comments (8)

slashmo avatar slashmo commented on June 22, 2024

Thanks for opening the issue, @weissi! 👍 I hit this breaking change in "OpenTelemetry Swift", but am updating now to account for Sendable.

That's fine by SemVer (because this package is version 0.x) but probably still an issue.

Agreed, I think it's okay to break while were in the pre-SemVer stage to move more quickly.

from swift-distributed-tracing-baggage.

weissi avatar weissi commented on June 22, 2024

Agreed, I think it's okay to break while were in the pre-SemVer stage to move more quickly.

Sure, it's okay by the rules but breakage between 0.2.1 and 0.2.2 is still not acceptable I think. Usually, people depend on 0.x packages with upToNextMinor because breaking API usually goes into a new minor version. So I think what should happen is:

  • release a 0.2.3 which reverts this change
  • release a 0.3.0 which brings back the breaking change

from swift-distributed-tracing-baggage.

slashmo avatar slashmo commented on June 22, 2024
  • release a 0.2.3 which reverts this change
  • release a 0.3.0 which brings back the breaking change

Ah, I thought it was a minor bump. In that case, I agree with your plan to move the change to a 0.3.0. @ktoso Since you originally made the release, are you okay these steps?

from swift-distributed-tracing-baggage.

ktoso avatar ktoso commented on June 22, 2024

No reason to panic. We don't need to release a revert. Let's calmly think this through first

from swift-distributed-tracing-baggage.

ktoso avatar ktoso commented on June 22, 2024

Heh ok I read the reasoning now, ok sure we can do that. Tho that's strictly stronger guarantees than semver ever does 😉

happy with the proposed plan. I will think more how this would have had to be handled in a stable package so we can document it

from swift-distributed-tracing-baggage.

ktoso avatar ktoso commented on June 22, 2024

Doing the reverts now and I'll talk with concurrency folks how such change could be possible if a module were stable -- I guess this honestly means that users would use it with "@preconcurrency" and by itself is not a breaking change then 🤔

from swift-distributed-tracing-baggage.

ktoso avatar ktoso commented on June 22, 2024

Tho to be honest the actual solution is @preconcurrency import but that didn't land yet (well it did, but not in a release), so we need this dance for now.

Hope that works @weissi

from swift-distributed-tracing-baggage.

weissi avatar weissi commented on June 22, 2024

Tho to be honest the actual solution is @preconcurrency import but that didn't land yet (well it did, but not in a release), so we need this dance for now.

If users have to do anything, then it’s a breaking change.
This needs to fixed another way. Users compiling with -swift-version 5 (Usually automatically derived from // swift-tools-version: <5.5) obviously shouldn’t get a new requirement because they clearly predate Concurrency.

Not sure how that’s best expressed in the source language that this should only be Sendable if the client is using a Swift language version that’s new enough.

from swift-distributed-tracing-baggage.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.