Hi everyone,
Thank you to everyone for the great feedback we've had so far on Swift Async Algorithms! Now that you've all had a few days to check out what is in the repo to get us started, I'd like to talk about our roadmap for the project.
For the initial announcement, we've created a 0.0.1 tag. This tag builds with the released version of the Swift 5.6 compiler, but it can't include the full set of API we'd like for a 1.0 source stable release.
First, many functions require the under-development version of the compiler with Clock, Instant, Duration. The main branch has those functions at this time.
Second, we'd like to have an opportunity to review all of the proposed public API of the package with the community. The team has spent quite a bit of time working on the naming, shape, and functionality so far - but there's always room for improvement. Our 1.0 release must have an API that we're happy to support in the long term.
With that in mind, the high level plan is to focus on working towards a 1.0 release of the package, aligned approximately with the release of the Swift compiler. That way, when the Swift concurrency library support for Clock
is available, this package will be available right alongside it.
In order to get there, we will focus on the following areas in the near term:
-
Reviews of currently proposed API in the package, here on the forums. We're hoping to do these in a relatively lightweight fashion.
-
Narrow scoping of additional algorithms. This isn't a value judgement on if new APIs are useful or not. We just need to make sure we have a rock solid foundation for additive changes in post 1.0 releases.
-
Expanding test coverage, especially in response to bug reports from early adopters. Oh, and finding some early adopters.
The guides section of the repository is intended to be our starting point for reviews about each algorithm. We'll probably tackle a few of these per week by making a post about one of the guides and focusing discussion in individual threads.
If you're looking for a way to help, here are some areas that we could really use it:
-
Download the package, especially if you're comfortable using main and the nightly Swift compiler, and try to use these functions in real scenarios.
-
Additional unit tests, primarily corner cases or completing coverage.
-
We could also use some help setting up and running our API reviews. This is a bit more of a project management challenge than a technical one, but it's just as important!
I'm really looking forward to continuing the work with this package with the community. Thanks again!