-
Notifications
You must be signed in to change notification settings - Fork 718
First draft of the cabal-proposals process #11006
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
A discussion issue for this topic: #11007 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should mention the process in and reference it from the README.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some remarks to the proposals.
Mainly, clarify what dev meeting is for: not the main forum for proposal discussion. Consensus should be reached before the two weeks, and cabal dev meeting should then take note consensus is there.
Since the draft references Does “no one feels confident in making that change without a clearer mandate or process” apply there? It seems to me there are a lot of obstacles (Agda, Hackage builder, GHCJS, nix) which where mentioned in the ticket, and — understandably, given they are all non-trivial — silence after that. |
I think the question that should be asked is, how would one go about reaching a consensus about this issue?
The proposals process is about being able to mediate these concerns in a structured manner so if anyone wishes to gain a consensus then they have a means to achieve that. |
I updated with review commends and updated README.md. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still believe the v1-legacy-commands example is less than factual, but I can live with it.
@ulysses4ever @Mikolaj Is there anywhere to advertise this more broadly? Or other people who you would like to get feedback on this structure from? |
@mpickering: I think we mentioned discourse, though I'm not 100% sure it's so widely interesting, though maybe as a pattern to follow in other Haskell projects? From the release checklist, the cabal-devel mailing list seems on spot and maybe Matrix (#haskell-tooling and #haskell-language-server). |
@mpickering: I think we mentioned discourse, though I'm not 100% sure it's so widely interesting, though maybe as a pattern to follow in other Haskell projects? From the release checklist, the cabal-devel mailing list seems on spot and maybe Matrix (#haskell-tooling and #haskell-language-server). Edit: and maybe mention it on our main Matrix channel again. |
@andreasabel , @andreabedini and @grayjay could be interested. |
I'd post it on Discourse anyway. |
FWIW I think Cabal has a lot of stakeholders (pretty much the entire Haskell community, in one way or another) so promoting awareness of this widely is a good idea. |
Thanks @ulysses4ever for offering to do that. Could you post a link here when you have made the topic? |
The proposal seems fine to me. One small bit I would add is that if a go/no-go for a proposal will be decided in a particular meeting, it would be good to advertise it somewhere beforehand. Otherwise we run the risk of stakeholders not attending the meeting, the meetings have been very thin lately, which is surprising given the amount of stakeholders of Cabal. I also think that Element probably does not have a wide enough reach, and maybe posting something on Discourse prior to the meetings would be better, I don't know. There is a side problem that was mentioned above, which is that Cabal has many stakeholders, possibly we don't even know about all of them, and it is unclear what are their requirements for Cabal. To add to the list above "Agda, Hackage builder, GHCJS, nix" there is also Stack, perhaps Bazel or Buck? I have wondered for a long time if we could somehow aggregate the requirements for features in these stakeholders, such as if no-one is using a particular feature, we could remove it from cabal. Honestly I have no idea of what parts of Cabal are used in the wild. For example you mention removing the v1 commands, but perhaps those are used by for example Nix? I don't know. |
There was an idea one time to post our meeting notes on discourse, maybe in a single running thread. Now that we have the Agenda (thank you again to all who contributed to establishing that and who extend and edit the agenda during the meetings), which becomes meeting notes after a meeting, this should be rather cheap to maintain. I this way the decisions will be published as well. Maybe we'd also outline or underline them. |
https://discourse.haskell.org/t/12393 also, I think it's a good idea to share info about the meetings / agenda on Discourse. But it's offtopic here perhaps... |
Let me drop a few notes, just reflecting on the experience of running CLC proposal process for several years, but please do feel free to ignore. You do you and have a right to set up processes as you like them.
|
I want to highlight the importance of point 1 and 2 by @Bodigrim: I'm GMT+8 and join European time meetings only in exceptional circumstances. Meetings with North America require me to stay up until midnight or later. So if you want people from Asia and NA to participate, you're in a tough spot. Synchronous meetings are a great way to handle management stuff (prioritization, call for help, etc.), but are a rather poor mechanism for decision making processes in an open source community. It truly makes some of us feel that cabal prefers to operate "behind closed doors", even if that's likely not the intention. |
@hasufell @Bodigrim I think you are raising an important point about the meeting but there are a few points to consider.
@Bodigrim Yes, two weeks may certainly be too short, something which can be amended easily in future. It is something important to consider certainly. |
So "the (future) meeting" doesn't actually make any decisions, but only *assesses if consensus is reached on the discussion on GitHub? How that would help Cabal developers to feel empowered to make decisions?
Do I understand right. Currently decisions are made in the meeting. This change suggests that consensus is to be achieved in GitHub discussion and in the future the meeting is a "rubber stamp"? |
I think currently design decisions are mostly made in issues and (prototype) PRs. Or, as it happens, a decision is not arrived at in the PR nor anywhere else, but the PR is the main point of contact in case somebody has a new idea how to reach consensus (BTW, that's always both consensus about design and about who is going to implement it; just one of these is usually a waste of somebody's or everybody's time). The meeting is another point of contact. |
One thing that occurred to me is that we're not currently using GitHub Discussions, so they would be available as a distinct discussion area for proposals. |
My understanding is that the proposed process largely codifies the existing practice (or an idealized version of it). That's a reasonable improvement over status quo, giving potential contributors a better picture of what to expect. Some comments here voice concerns that the existing practice is fundamentally wanting (which to be honest is something I can subscribe to), but I don't think they can be resolved within the available budget. I think it's better for Cabal team to codify a process they have bandwidth and capacity for rather than to be forced into a schema they lack resources to execute. |
Thanks for your very reasonable and considered comment @Bodigrim. I can understand that you and others would prefer some tweaks to the process but it is appreciated that you can see that it's a scheme which would be appropriate for this situation. |
At the latest cabal developers meeting it was decided to move forwards with this process and to see how it goes. Therefore I'll merge this PR and we can reassess how well things are working after there have been a few proposals. |
The cabal developers are interested to adopt a proposal process, the details are found in the `proposals.md` file. The process is designed to make developers feel empowered to make decisions. * It is light-weight, a PR is opened and discussed on a repo with a fixed discussion period. * It is developer-led, final decisions are made by developers at the Cabal developers meeting. * It is flexible, there is no formal voting procedure, decisions are made by rough consensus. Overall, we hope that this will allow developers to move the cabal project forward.
e24778e
to
ba93d5a
Compare
The cabal developers are interested to adopt a proposal process, the details are found in the
proposals.md
file. I am proposing this change but the process has been shaped alongside other cabal developers, it is something I want to work on together with people through this PR.The process is designed to make developers feel empowered to make decisions.
Overall, we hope that this will allow developers to move the cabal project forward.
cc @Mikolaj @ulysses4ever @geekosaur @ffaf1 as the attendees of the meeting last night who expressed an opinion about this.
Rendered link: https://github.com/haskell/cabal/blob/950adfddd2541a355a4cd52ef42b7ece435d8513/proposals.md