-
Notifications
You must be signed in to change notification settings - Fork 11
Description
While discussing versioning strategy, @mashedcode recently pointed out many
things remain undecided about this crate and asked for my thoughts. First, thank
you all for being patient.
For several reasons I intend to officially step down as maintainer/owner:
-
I published it while I was learning Rust, and the only application I had in
mind was constructing frequency distributions. -
Now that I'm more comfortable with Rust I prefer directly using
HashMap,
BTreeMap, and sometimes arrays for frequency distributions. For this
particular use case theHashMultiSetand the proposedBTreeMultiSet(BTreeMultiset + iter specializations #27)
abstractions don't add much utility. -
The semantics of multisets aside from tabulating frequencies are more nuanced
than otherstdcollections, e.g. there are multiple interpretations of union
and intersection (see Implement union, intersection, union_counts, and intersection_counts #22). I am not so familiar with the most practical use
cases for each, and feel others who are can better judge what API design is
least likely to violate the principle of least
astonishment.
Open questions
- Who should assume ownership of the repository and crate?
- How shall I hand things off to the new maintainer(s)?
For those who don't know @mashedcode has had a commit-bit for about a year two
years and has helpfully contributed to discussions. They have not been granted
ownership status on crates.io.
@mashedcode, if you are interested in continuing to play a role do let us know.
From what I've seen I think you'd make a great (co-)maintainer, but don't take
that as pressure to sign up.
Likewise, several have taken an interest in improving and extending
the crate. Pinging you all in order of PR appearance:
- @BartMassey
- @alexmocatta
- @HarrisonMc555
- @Ten0
Let's try to settle (1) before moving on to (2). The versioning discussion may
overlap some with (2), but I'd like to leave room for the new maintainer(s) to
address that. I'll let this rest for a week to see if a new maintainership team
assembles. Thanks, all.
EDIT: I was curious about Cargo's versioning policy because I expect it
will be relevant. According to the book:
While SemVer says there is no compatibility before 1.0.0, Cargo considers
0.x.y to be compatible with 0.x.z, where y ≥ z and x > 0.