Scala Governance?

Hello,

How is Scala governed? Is the SIP committee the highest authority? How are its members appointed?

Thanks!

2 Likes

I too would be interested to learn. Is there a reference anywhere showing the governance structure and processes?

1 Like

The SIP review process is explained here.

It seems the Process Lead is a very powerful person who leads the process and appoints the SIP committee.

That raises the question who appoints the Process Lead? Perhaps Scala Center leadership?

That’s incorrect, see Fix the sentence that says how SIP committee members are elected. by sjrd · Pull Request #1320 · scala/docs.scala-lang · GitHub

2 Likes

Hi,

Sorry for the long delay in answering this topic.

For Scala as a language, and therefore changes to its specification, the highest authority is indeed the SIP committee. There is quite a lot of documentation on how it works at Redirecting…, as was mentioned earlier in this thread.

A week ago, when I was about to answer this thread, I noticed there was a glaring mistake on that page about how the SIP committee members are selected (it said the Process Lead appointed them, which effectively gave an almost-all-powerful role to the Process Lead). In fact the Process Lead has virtually no power on the evolution of the language; it is an organizational role. The page was since fixed:

New members are elected by existing members of the SIP Committee, based on their expertise and involvement in the community.

That’s it for the language itself and its spec. The SIP Committee does not govern any other aspect of Scala as an organization. For that, you may want to look at Community | The Scala Programming Language.

For other core components of Scala, such as the scalac compiler, the standard library, the dotty compiler, the scala-lang.org website, the Scala.js dialect, etc., there is no formal process like the SIP Committee. Instead, their repositories are handled very much like many other open source projects, with maintainers and contributors discussing issues and pull requests, and maintainers making the final call on whether to merge them or not and appointing new maintainers.

Hope that helps. I’m happy to answer any clarification questions. Also don’t hesitate to send PRs to the descriptions of the processes if you find something that is out of date.

6 Likes

Within two weeks after your submission of the pre-SIP to the mailing list, the Process Lead will intervene and advise you whether your idea can be submitted as a SIP or needs more work.

Looks like this not works now:

  1. Thread [PRE-SIP: limiting value discards: - #18 by rssh ] was submitted more than two weeks ago. Nobody intervened

  2. Reference to ‘mail list’ in text. As I know, mail list now is not active and this forum is a replacement.

1 Like

Right. This needs to be revisited. In my opinion whether or not something can be submitted as a SIP is not a call to be made by any single person. If you want to submit a SIP, nothing really prevents you from doing so. The purpose of the Pre-SIP threads is more to give the author an idea of whether or not it is worth investing time in submitting a SIP. And, again IMO, this is better judged by whether the Pre-SIP receives some kind of broad support, or catches the eye of a SIP committee member as something they would see themselves champion.

2 Likes

Looking at the SIP list at https://docs.scala-lang.org/sips/all.html, it’s difficult to reconcile the functioning of the SIP process and the description of the SIP process.

IMO it would be good to align the description with the actual process.

2 Likes