Is there a release schedule for Swift Algorithms? I went to use partitioned(by:) today, which was merged 15 months ago, but I found that it's still not part of an official release.
Should there be some sort of periodic release schedule for the package?
for what its worth, i am also waiting on tagged releases for swift-atomics, and there are several packages (swift-markdown, swift-syntax come to mind) that don’t even bother with releases, so they are effectively unusable in SPM-distributed libraries.
i am beginning to think this is an intractable problem and the better solution is to change the SPM to enable depending on packages by commit hash, because this problem is far more widespread than just swift-algorithms.
Thanks, @bjhomer! I had lost track of the fact that we had merged API that hadn't landed in a release. I'll work on getting that out the door soon.
It probably depends on the package — this was certainly an oversight, but other packages (for example, swift-argument-parser and swift-collections) have had releases as appropriate for their progress.
packages that declare such dependencies cannot themselves be used as dependencies in another project.
it is a quite pernicious problem across the ecosystem, because it is impossible to validate this in a CI pipeline; currently the only way to test that a package is usable by consumers is to actually publish a release to the whole world, which defeats the purpose of CI.
as a result many library authors do not realize (or do not care) that their packages are unusable as dependencies. i tend to view this as a poor design choice on the part of SPM, because in my view it is not reasonable to expect package authors to assume responsibility for something that is inherently impossible to validate in CI.
We just released a new version of async-algorithm 0.1.0. Since the last release we changed quite a few things. We would love to get more feedback on the APIs before we release a 1.0.0 of the package.
There are two more proposal that we want to run through with the community as well:
The updated buffer proposal
The interspersed proposal
After having run both of them through review, @Philippe_Hausler and I are going to take another look at the package and make sure it is ready for 1.0.0.
At first read removeDuplicates() seems like a in-place method. I think it should be named duplicatesRemoved to be aligned with chunked, compacted and interspersed.
I hate to resurrect an old thread just to pile on, but: same! I wanted partitioned(by:) and was very surprised to see it's not only not in the tagged 1.0.0 that the README suggests using, but that there hasn't been a release since 2021?! If this weren't an "official" project I'd think it was dead.
Thanks for the continued drumbeat, y'all! The 1.1 release is nearly there — you can see the remaining bits in the related milestone here: Swift Algorithms 1.1 Milestone · GitHub