State of the Core Libraries Committee Update

This post is a follow up to the original State of the CLC post here: State of the Core Libraries Committee


Hello All!

I’m happy to report that the CLC members that were able to respond to the call for restructure met today at 4pm UTC-5 on Jitsi to discuss options for how we might improve the state of affairs. The following people attended:

  • Chessai (Dan Cartwright)
  • Emily Pillmore
  • Cale Gibbard
  • Edward Kmett (not CLC anymore, but helpful)
  • Davean Scies (not CLC, but invested)
  • George Wilson

We all agreed that the CLC was not functioning as a committee currently, and litigated why that occurred. In light of this discussion, we’ve come out with a plan for change. This post will summarize that plan.

A Venue Change

We have decided to migrate all future CLC discussion from the Libraries mailing list to Github, at a dedicated repository: https://github.com/haskell/core-libraries-proposals. In this repository, we will be able to better manage medium to large-sized proposals (e.g. Data.List monomorphization, Abstract Filepath Proposal). Issues may be raised for RFC’s, and proposed implementations may be raised as PR’s. The big wins here are the ability to label issues and their associated pull requests according to their acceptance state, and to let the backlog of issues be searchable by proposal state, author, commentors, etc.

Small contributions, such as a single function, a refactor, or documentation, should be submitted directly to base as a MR, and the issue should be debated there on the MR.

Scaling back Responsibilities

Over time, the CLC has accumulated responsibilities that have caused its members to be spread too thinly over its domain. In general, the CLC is asked to do the following:

  1. Maintain base and the other core libraries
  2. Own base and the other core libraries
  3. Appoint maintainers for core libraries including unappointments as needed
  4. Helping to decide core library APIs
  5. Adopting new libraries
  6. Update the Haskell Library report concerning base.
  7. Run elections for new CLC members as members rotate out or step down, or are asked to leave.

These responsibilities included, but were not limited to, monitoring the Libraries list and debating proposals/initiatives, and managing their backlogs. We would like to pare down the number of responsibilities to the following:

  1. Maintain base.
  2. Own base and other core libraries. Ownership here means “repository owner”, which may involve seeking resources and maintainers from time to time if the active maintainers have stepped down or are otherwise not able to own the project themselves. Think of the CLC as the “project’s last resort” if it requires stewardship.
  3. Appoint or rotate core libraries members as needed.

Further, the number of CLC members will be reduced to 6 members (previously, 9) in light of these responsibilities.

Rotating Members

The CLC elections are held as members’ terms expire. However, as we’ve seen from the past 5 years, CLC members often become unresponsive after a period due to burnout/life events/other reasons that foist the burden on the rest of the members of the CLC. We would like to introduce a process that allows members of the CLC to go on temporary leave if they expect they will become unavailable for a period of time. Discussed was a maximum cap of 3 months. If the 3 months is exceeded, it will trigger an election for that seat. However, we have not nailed this down in finer detail, and this is open for debate.

Adding a Secretarial Role

We would like to add a role for “CLC Secretary”. This role will serve as a project manager and CLC issue wrangler for the CLC, helping to prioritize tickets, organize the repo, and generally organize CLC members when needed or appropriate in order to move things along. Hopefully this, in combination with the better priority ticketing system that we have in Github, will result in a more productive CLC.

Conclusion

There’s lots to discuss here, and this is a basic outline for features we would like to see moving forward. @chessai will be raising the first PR against the core-libraries-proposals repo to kickstart the documentation process, and we expect to have the process fully documented by mid-September, ready to kickoff a new round of elections to fill the gaps in the new CLC.

Thanks for sticking with us, and I hope this is positive news for you all.

20 Likes

How CLC secretary role is different from CLC chair, who is responsible for making sure that things keep moving, and to ensure that a conclusion is reached on any issues raised?

CLC chair being responsible for making sure that things keep moving doesn’t mean the CLC chair should be the one doing all the heavy communication work, especially when dealing with community requests, mailing lists, poking people etc.

CLC secretary is, IMO, a supportive role without any particular decision-making power. That also allows a wider selection of community members to be eligible.

3 Likes