Skip to content

RFC: project maintainership #28

@jmitchell

Description

@jmitchell

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:

  1. I published it while I was learning Rust, and the only application I had in
    mind was constructing frequency distributions.

  2. 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 the HashMultiSet and the proposed BTreeMultiSet (BTreeMultiset + iter specializations #27)
    abstractions don't add much utility.

  3. The semantics of multisets aside from tabulating frequencies are more nuanced
    than other std collections, 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

  1. Who should assume ownership of the repository and crate?
  2. 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:

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions