Closed MadsTorgersen closed 7 years ago
I just wanted to say thank you. It's a pleasure to be able to follow these on GitHub, but more so the handling of strong community feedback was just extremely well done here.
I'm currently using the VBLang repo (on github) to suggest features for vb.net, and even submitted a proposal. So the split is working for me. I'd be happy with continue to use GitHub, or Discourse. Mailing list is off the card for me, as email is too distracting ooh shiny
Also having discussion mixed in with work items seems to create noise for both. That can be mitigated through labeling, but only if someone sits at the front gate diligently labeling all incoming. The mail notification system is getting better but is still bewildering, and search is lacking.
Some projects have separate repos for language design discussion/proposals. Rust and Haskell are examples:
@hishamhm: Yes, we actually discussed two repos, but I forgot to include it above. Thanks for reminding me.
Two repos does the trick, but then we're back to separate sites. poorer cross-linking etc. Ideally I just want a "Discussion" tab next to "Issues" and "Pull Requests" in GitHub! (@Haacked, are you listening in?)
On balance, the LDM preference is to stick with one site, but it's definitely something we'd love to hear arguments on.
For people who just want a bird's eye view I wonder how much effort would be needed to script scanning the Issues based on tags and periodically update a page on the Wiki which can be linked from the Wiki. Could construct something like a series of kanban boards broken down by potential language revision (e.g 7.1, 8.0, future). Either way, some quick roadmap that doesn't require the user to rely on navigating the search features for themselves.
Thank you for responding to the criticism.
I agree with your preference for Github first (not the Roslyn repo anymore) and discourse second.
I hope Github will eventually add some sort of separation of issues so that general discussion and formal proposal could be separated by users themselves rather than relying on admins to label things appropriately. Perhaps allowing users to apply certain tags by themselves would be enough.
Looking forward to continuing to stay informed and discuss the future of .NET.
While overall I agree that GitHub is the better choice here, I think it's worth pointing out that Discourse has better tools for maintaining discussions. For example, when a discussion gets unwieldy, moderators can move the related posts to a separate topic. So users wouldn't have to know when to start a new discussion, moderators could do it for them.
While overall I agree that GitHub is the better choice here, I think it's worth pointing out that Discourse has better tools for maintaining discussions. For example, when a discussion gets unwieldy, moderators can move the related posts to a separate topic. So users wouldn't have to know when to start a new discussion, moderators could do it for them.
@Haacked... open source maintainers worldwide would love this. Just sayin.
Ideally I just want a "Discussion" tab next to "Issues" and "Pull Requests" in GitHub! (@Haacked, are you listening in?)
The very thought puts tears in my eyes! :smile:
Why is there poorer cross-linking with separate repos? From my experience working with several related repos, GitHub is actually very good at handling cross-links. You can even close a bug in one repo by a commit in another repo (just use the full URL to the bug after "Fix" - it even prettifies the link in the description, so you see something like "Foo/Bar#123").
To be fair, I don't think there's going to be a lot of fixing bugs in other repos from this one. :smile:
I'm torn. Discourse seems like the better medium specifically for discussions, however there is something to be said about having the discussion and the proposals in one place.
I think that just by moving the language design discussion out of the roslyn repo will have a massive impact on the ability to track issues. For people who prefer to track discussions by email it immediately lets them filter and organize the notification emails accordingly. I almost feel bad for the VB.NET discussion as I foresee at least an order of magnitude less traffic there, although many of the proposals would likely apply to both languages, at least conceptually. Is it really necessary to separate the two?
As for improvements to Github, non-exhaustive and in no particular order:
It's good to see the mailing list flip-flop. I thought I'd mention a decision made by the Swift team today - they're moving to Discourse, from mailing lists
There has been a tremendous amount of participation on this thread, with some extremely thoughtful analysis of how the mailing list serves the community and the tradeoffs of moving to a forum, like Discourse.
I've been thinking about the points made on this thread as well as looking at the experimental Discourse setup that Nate Cook provided. While there are tradeoffs with moving swift-evolution to Discourse, I think the benefits outweigh the negatives.
After discussing this with the Core Team, the decision is to move swift-evolution and swift-users to Discourse. I will also bring it up for discussion on the -dev mailing lists to do the same there, so that we all are using consistent infrastructure.
No rollout plan has been established yet. People are busy, and there are a variety of logistics to figure out. My intent is to engage with a handful of people across the community on helping with the transition, including making sure we configure Discourse properly so we have the best experience for those who want to continue to use email. We also want to import the history of the mailing list as well so that we do not lose valuable conversation. As a rollout plan gets figured out it will get communicated.
I realize that many people aren't following this thread anymore, so I'll send out a separate email just so people don't miss the decision. Thank you all to EVERYONE who participated in this thread and expressed an opinion.
Ted
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170206/031655.html https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170206/031657.html
Either a separate repo or a Discourse forum will work for me. Thank you for listening to the (not always kind) pleas of the external community.
Great to see you responding to the community feedback! While Discourse is arguably the better discussion forum, I think it still makes sense to just have the discussion here, on GitHub. That way, the proposals and discussions can easily link to each other. Having the language design/discussions be separate from the Roslyn project would greatly help in removing the clutter, so perhaps issues will not be as hard to find and track on GitHub as one might expect based on the current situation.
The best option I think would be to have two GitHub projects:
(Not) coincidentally, this is what F# already does, with one project for language discussions (https://github.com/fsharp/fslang-suggestions) and a separate one for the language design (https://github.com/fsharp/fslang-design). This setup has worked very well for F# and is something I think worth considering.
Thank you so much for listening. ❤️
I don't really have much to say but for me GitHub is the way to go and with time, I'm sure the GitHub team will make it even better.
GitHub is the right starting point, again, at least in my opinion. :)
p.s. @MadsTorgersen, @gafter, @DustinCampbell, @CyrusNajmabadi I have one question though and I brought it up before, sometimes, I post IDE suggestions here (Roslyn repo) can I still do it?
I agree with the GitHub choice. It also helps to ensure there is a push for improvement on their side. :)
@MadsTorgersen, @gafter, @DustinCampbell, @CyrusNajmabadi will you migrate existing language design issues yourselves, or do you prefer that we open new issues for features we are interested in?
I've tried Discourse before a few months back and found it confusing and unpolished but I'd be willing to give another try and would prefer it over mailing lists. I think the most straight forward solution would be to stick to GitHub issues.
@MadsTorgersen,
Firstly, like others, I wish to thank you for listening to us and our sometimes (mainly in my case, I suspect) antagonistic views on the mailing list decision, and for acting on that feedback.
Secondly, given the two points:
What's the best way for us all to petition Github for better tools? Would you like us to individually contact them? Is it something you would prefer to take on yourself? Is there a way we could collectively "sign" a request to be sent to them? Or do you have something else in mind?
I wonder if Discourse could be made to crosslink to and from GitHub. GitHub would have to open an API for this and Discourse would need an extension written.
@jnm2,
Are you volunteering to write that extension? 😈
@eyalsk:
p.s. @MadsTorgersen, @gafter, @DustinCampbell, @CyrusNajmabadi I have one question though and I brought it up before, sometimes, I post IDE suggestions here (Roslyn repo) can I still do it?
Yes! This change is only to move C# and VB language design to a repo separate from Roslyn. The C#/VB compilers and IDEs will still live in the Roslyn repo. Nothing changes about that.
Thank you @MadsTorgersen !
Discourse is the way to go.
The only real downside is the increased difficulty of crosslinking issues, but i don't think that is a dealbreaker at all. GitHub issues are designed for bug tracking and code review, not suggestions and ideas. These issues with hundreds of comments spanning many months are hell to follow on here.
The move to put formal proposals in csharplang and vblang is also great. You should probably disable issues on there and only accept pull requests that have to under go review to make sure they are fully fleshed out.
I don't like Discourse but here is an example of a mid-size community around a GitHub repo:
http://community.monogame.net https://github.com/MonoGame/MonoGame
+1 for keeping the Roslyn repo and the new language design repos in GitHub.
👍 for using GitHub (A much welcome wise decision! Seeing mailing list was eventually in the balance I was 😱 ) and pushing for GitHub improvements regarding issues/discussions management!
GitHub or Discourse please.
@xoofx My only concern about pushing GitHub for better discussion management is the timeline. How long should we wait for github to handle this problem for us?
@AlgorithmsAreCool can't really tell about the timeline... but I don't think there is any real blocker that would make GitHub issues completely unusable... it is not ideal, but far better than other ecosystems not genuinely connected/integrated to the GitHub PR/issues workflow
Though, as @hishamhm suggested, I like also the idea of a separate rfc repo like rust/rfcs. In this repo, you have nothing else than a bunch of RFC documents rust/rfcs) and related PR and issues. When there is a PR there, it is just about design (e.g it doesn't trigger a rebuild of the rust/rustc repo for example). It is easier to track changes related to RFC, make diff between commits...etc.
my vote (in order of preference): 4 3 2 1
I'd probably agree that GitHub issue tracker is not optimized for general discussions, hence the name. That was one of the reasons that led us to mailing lists in the first place.
On the other hand, I really liked the idea of a "Discussion" tab in GitHub as it would resolve all of our issues!
Waiting to hear from @Haacked on that. With that possibility, I think it'd be better to stick with GitHub.
@MadsTorgersen - Thank you, thank you, thank you!
My vote is GitHub, GitHub, GitHub, GitHub, and lastly, Discourse.
I have one question though and I brought it up before, sometimes, I post IDE suggestions here (Roslyn repo) can I still do it?
Yup. The Roslyn repo will still be where the IDE is developed. Suggestions/PRs always welcome :)
My vote is GitHub, GitHub, GitHub, GitHub, and lastly, Discourse.
That's my vote as well @TonyValenti :smile:
GitHub should consider directly integrating Discourse.
One issue with GitHub issues is mobile. It lose some features (such as formatting toolbar, preview, and reactions) compared with desktop. Markdown is allowed but is a bit more involved, requiring backticks (for code) which are often tucked a couple of levels deep in mobile keyboards.
Both lack some features from each other, in that case GitHub seems like a safe bet since we are already here.
@Haacked was on the Microsoft campus today on other business, and we had an opportunity to pass on our feedback. 😀
While he is not directly in charge of this, he asked me to gather up the proposals here and send them to him. To start with, I think @HaloFour's list of suggestions above is fantastic, and I'll also pass on @bondsbw's suggestion to integrate Discourse directly into GitHub.
Anything else?
Not mailing list, not rosyln. Though github or discourse.
However, if github add (yet more) two more repos? Something in the vien of csharplanglabs and vblanglabs?
And maintain the separation of discussion of ideas and work on towards fully designed specs; that I think you were looking to achieve (as else the same swamping may happen to the design repos making is harder to identify issues with on going work vs new ideas and features)
Of all things that I like about Discourse among other things @HaloFour mentioned,
Having read through the various options, I have to say it's hard not to support Github as the place for this.
The proximity to the source itself is the killer: being able to hit a discussion, potentially contribute and then see it linked to a checkin is enough to nullify the deficiencies in Github itself as a place for discussion.
So the proposal as made gets my vote.
I think some people are too used to doing this stuff on Github: "if all you have is a hammer, every problem looks like a nail", etc... I think using a proper discussion tool for the job is the right way to go; Discourse
Thanks for listening to the community feedback. I'm very glad the mailing list decision has been changed.
I agree with continuing to use Github, though I share the concern that there certainly is still a lot of room for improvement in the functionality. Still, it seems the best of a bunch of imperfect options.
Large, complex and mass popular projects deserve for their own specific sites. Only such sites can provide great experience for users and owners. Create such site (for example dotnetlangs.org) and move there everything except code. Github is wrong place for lang development (except compiler code), as it is lacking advanced features and result is mess. I don't know why you want stuck here more than is needed. In fact, it was artificial merge, as almost none proposal, discussion or posting bugs, reference single file of compiler code. I perceived such situation as temporary, until you create more sophisticated solution. Clearly, staying here, splitting repo for two languages and resorting on mailing lists as remedy for Github shortcomings, is directly opposite to what should be done.
I think either Discourse or Github would be fine, and both are preferable to email. But I'm a little unclear on why Discourse being a separate site is considered a significant downside.
At the risk of stating the obvious: Instead of linking from the homepage of the repo to a list of the issues tagged as "discussion", you could just link to the Discourse forum. We could keep Discourse open in one browser tab while exploring GitHub issues in the other tabs, and just copy the URL of an issue into Discourse when we want to link to it in the discussion.
Is there some extra functionality you get by keeping them in the same place, or is it just that people don't want to have to copy links between the two sites?
I am all for Github. But just for your information, .net foundation does already have a Discourse forum- http://forums.dotnetfoundation.org/
@jonstodle
I think some people are too used to doing this stuff on Github: "if all you have is a hammer, every problem looks like a nail", etc...
To me it looks like GitHub is a toolbox and currently it's missing few tools, nonetheless, a good toolbox to start with.
@eyalsk I'm fear of stretching this analogy too far: why wait for Github to include the tool, when it's already available. And we're not even if or when that'll happen.
@vbcodec
Github is wrong place for lang development (except compiler code), as it is lacking advanced features and result is mess.
I think you're exaggerating, many projects handling their discussions at GitHub and it works for them and it kinda works for us too here so please define mess.
I don't know why you want stuck here more than is needed. In fact, it was artificial merge, as almost none proposal, discussion or posting bugs, reference single file of compiler code.
I'll cite the GitHub team "Issues can act as more than just a place to report software bugs."
I perceived such situation as temporary, until you create more sophisticated solution. Clearly, staying here, splitting repo for two languages and resorting on mailing lists as remedy for Github shortcomings, is directly opposite to what should be done.
The reason they split the repo has nothing to do with GitHub shortcomings, they do it anyway because they want to have more control over proposals and a repo for each language make sense as both are completely orthogonal, in fact they are also orthogonal to Roslyn and separating them is the right thing to do.
@jonstodle
@eyalsk I'm fear of stretching this analogy too far: why wait for Github to include the tool, when it's already available. And we're not even if or when that'll happen.
I wouldn't mind using either but I fear that the moment we will move to Discourse the opposite will happen, meaning, we will miss features from GitHub.
Proposals have their own development cycle, they are versioned too like any other content and so if discussing source code in issues make sense I fail to see why discussing another kind of content doesn't make sense and if it works for many other projects then why this is special?
Now, I understand that GitHub is missing few features, I really hope they will add them soon but I still think it's great, maybe it's just my bias. :)
Proposal: Move C# and VB language design discussions to their new GitHub repos
We recently moved C# and VB design efforts to new csharplang and vblang repos, and attempted to move discussion onto mailing lists.
A couple of aspects of this did not go over well:
Once again, apologies for both, and thank you very much for lots of constructive feedback!
This is an attempt to address these by proposing a different discussion venue (2), and asking the community for input on it before enacting it (1).
Balancing time for feedback with the need to fix the current broken state, I would like to act on this proposal and any ensuing suggestions and ideas on Friday Feb 10. If there is significant discord or objections, I'll wait longer to have it resolved, but absent showstoppers I';; put this into effect on Friday.
Please respond on this issue with approval, constructive disapproval and suggested improvements by Friday Feb 10!
Options
The LDT met today to discuss which avenue to take. The options on the table seem to be:
1. Mailman
I think a lot of us had a bad experience specifically with Mailman: clear text passwords, fickle threading and "reply all" behavior, unwieldy archive interface and more. Some of that could probably be remedied through configuration, or waiting for Mailman 3.1 to come out, etc. But it's not a great starting point. Also, see #2.
2. Other mailing list solution
The quality of a mailing list experience depends a lot on the email client people use. Based on the feedback it has become clear to us that a lot of people aren't nearly as email driven, and don't have access to good hierarchical threading, etc.
Also, mailing lists don't offer Markdown support, topics and individual replies aren't easily linkable etc.
3. Discourse
Some of us took Discourse for a ride, and it seems to be quite a good experience. They support Markdown, have a decent mailing list mode for those that prefer that, and have threaded discussions with great quoting functionality (though seemingly not hierarchically laid out, so you can't ignore side threads you don't care about). Also, they seem to track where you got to in a discussion, so you don't have to "find your place" again when you come back in again.
4. GitHub issues
GitHub issues are really a mismatch for free form discussion: flat discussions without threading and a lack of ability to track where you got to both make it bewildering to try to keep up - or come back to - active discussions.
Also having discussion mixed in with work items seems to create noise for both. That can be mitigated through labeling, but only if someone sits at the front gate diligently labeling all incoming. The mail notification system is getting better but is still bewildering, and search is lacking.
On the other hand, issues let you have your discussion right inside the project repo, have easy cross linking with pull requests, support exactly the same Markdown as source files, etc.
Proposal
The Language Design Team recognize the upsides and downsides of all these approaches. With one or two notable detractors, who shall not be named, we are ready to rule out mailing lists as our discussion venue: they have proved to unwieldy and exclude too many people. We think that, on its own, Discourse is probably the best discussion forum experience, and it's a great open source initiative that deserves to flourish.
However, the close integration of GitHub issues with the rest of the project repo wins out for us.
We will keep pushing GitHub to improve the discussion experience. @Haacked's comments are at least somewhat promising. But we can't bank on that, and have to find a way to live with GitHub as it is today.
Separation of concerns
One thing is to clearly separate "work items" from "proposals". We want to be able to have a clean view of:
We propose to use labels to clearly distinguish these two. The LDT will take it upon ourselves to slap the right label on all incoming. We will put query links on the top level README so it's easy for a newcomer (or anyone) to just see discussion or just see debt.
We will close work items when the work item is done. A discussion is rarely "done" - at least there's often no single triggering event where it's obvious that the discussion is over. Instead they often peter out, and sometimes are even revived. For this reason, we won't normally close discussion issues. Instead, if you want to see what's moving, sort by recent activity.
Discussion threading
We can't really do much here, except state a few recommendations to site users to keep the discussions more navigable:
Exercise strong preference for starting a new issue rather than respond to an existing one when
Just linking back to the original topic will establish the connection both ways, as it shows up in the original topic when you do.
The risk of this is higher fragmentation, which can lead to the same discussion repeating itself on multiple issues. But the reward is that threads are more on-topic and "slosh around" less, for the benefit of the reader.
Do you really need to say this?
Is it adding value that you put your words out there, or can you make the discussion more approachable by just expressing (dis)approval via thumbs-up/down to another message?
Call to action
Again: let us know by Friday Feb 10 if you have concerns or suggestions for improvement over this approach.
Once we move over, please engage in the new repos, and help us encourage good behavior and an approachable site that is welcoming and navigable to old timers and newcomers alike.
Thanks!
Mads