-
Notifications
You must be signed in to change notification settings - Fork 790
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
PR pileup #881
Comments
Agreed, having to keep a PR open and working for months is frustrating! |
👍 some pr are ready, these should go in or closed. But the close reason should not be "there is no time for merge/testing", that's deadly for community. If a pr it's a good feature/bugfix, it's reviewed, should go in, in master branch. Having only a master branch, it's better because everyone try the same branch. Who try coreclr branch? we are only delaying issues to next merge. And i need to build multiple times to test the compiler.
|
@enricosada, I agree. I just thought I would throw out some options for the sake of argument. You have fulfilled my hopes. 💃 Also, I think a stabilization branch is a good move. |
@panesofglass I get what you're saying. If you have specific work you are doing which is affected by PR backlog please let us know? @enricosada is an active contributor to the repo and makes some important points. Equally, it's very important that we don't put pressure on repo owners to merge anything that might risk regressions or be destabilizing - or at least to fully evaluate the cost/benefits. I do feel that some "please merge" pressure was part of what led us to do inadequate code reviews on an optimization PR for Visual Studio 2015 update 1, which led to a regression. I don't want to see further regressions like that, and I'd prefer a PR pile up (ultimately resolved by the contributors) than regressions. If necessary, PRs can stay open for as long as needed until we're 100% comfortable with merging them. |
@dsyme that's a fair point. Is there a strategy that can be put in place to alleviate the effort to keep PRs up to date though? A PR staying alive for months means that typically the contributor has to ensure that it keeps up to date with the latest master lest it be disregarded later on for being too old (something we have seen happen before). I'm not saying the team should be accepting PRs willy nilly or feeling pressure from the community - that's not the right option either - but is there some way to meet in the middle? |
@isaacabraham I understand what you're saying. If the repo owners deem a PR is unsuitable for an update release, then it will necessarily be delayed until the branch is ready for the next major revision. (There should probably be a process where PRs can be brought up-to-date by people apart from the submitter, though GitHub doesn't make that particularly easy since the PR has to be resubmitted). One way we can get PRs in is to open "next major version" branches. However branch management takes significant time and can itself be error prone and a cause of fragmentation in the repo - again making it harder to contribute. Until a "next major revision" branch is open, it is better to keep the PR open and incrementally update it. This may be likely to happen with any major language work, or major optimizations. It's in the nature of the beast. I do think splitting the repos into IDE tooling and Compiler would be helpful. I'm less concerned about splitting out FSharp.Core though that could also be done. I don't like seeing any PRs closed because they are "too old" unless they truly bring no value and should be closed anyway, or have truly diverged to the point that they can't be rescued. If you see examples of this please from the past please link to them. We all want F# to both progress, evolve and yet be stable and reliable. There are many, many ways to contribute to core F# engineering and tooling outside this specific repo (e.g. in the many IDE tooling projects). But generating excitement via a high rate of PRs is not a goal in and of itself - only where it achieves other goals. |
Perhaps one thing could be for a "quick review" up front by someone in the team and at least provisionally give a go-ahead in principle for acceptance of a PR. In this way, if a PR is unsuitable because e.g. feature not needed / implementation or whatever - it can be closed off quickly. On the other hand, ones with value can then be grouped into a bucket for review - and a process can be put in place to deal with them (somehow). This is somewhat akin to how you deal with UV feature requests - a quick review to identify ones of value in principle, and then a more detailed review later on. Not saying that that is a perfect solution, but maybe a start? |
Regarding the "too old" comment - I thought that some of the work on unit tests was held off for a long time in the run up to F#4 and then eventually rejected as out of date => risk of merge too high. I might be completely wrong here though. |
@isaacabraham I think that may eventually have been merged. But if not I suspect the repo owner may have been more worried about churn, scale of change and so on. Please send a link if possible. The same could well happen with any piece of work. My experience making contributions to different projects over the years is that the larger the piece of work the longer it takes to be integrated, the harder it is to find a suitable place to integrate it, and the more at risk it is of eventually being bumped. |
I think that happens already. |
Thanks for your reply, @dsyme. I don't have any recent contributions waiting. I submitted a PR a long time ago for the web project templates when the fsharp source was on Codeplex. I was told someone would move them over and that a lot of work was required on the MS side and that I would be unable to help much more. I've never seen those merged or even brought over into this repo. I know templates are wanted, but I have no motivation to do anything more given what I know about the template contribution process (in that it doesn't appear to exist). I raised this issue b/c 1) I was made aware of the large number of outstanding PRs and 2) I have seen some frustration and heard comments indicating that future contributions were going to be forfeited. That's a really sad plight for an OSS project, and I hoped to identify some way to help move things along. Another option I did not yet propose would be someone maintaining a community fork that would assimilate community contributions into a single, ever-growing PR for the owners of this repo to review and merge. This option puts the onus of verifying contributions on the community first, thereby hopefully cutting the time required by the owners of this repo. At present, this would represent both a massive effort and a massive PR, which I agree would be very difficult to merge. The bright side is that once this is done, the community could provide a single stream of community contributions for review by this repository. I suggested fsharp/fsharp above b/c that would at least provide a more direct line to releasing testable alphas on NuGet. However, since it is not a fork of this repo, moving contributions back becomes more difficult (unless something has changed). |
Also, fixing the testing situation could help address the problem of regressions by allowing us to add more tests more easily (if it's not already fixed, that is). |
@dsyme nobody is asking for bad quality pr, or fast track merge, but i think 3 weeks is enough time for multiple reviews and feedback. If after three weeks a pr is not ready, should be dropped. I think more people should contribute to review, that's a really important part. Everytime i wrote better code (bug, cleanup, perf) in my prs with review feedback from you @dsyme, @KevinRansom and community. If a pr is too big that can be split in multiple smaller pr, easier to review, and let some time pass between each. I understand everything can break (i wrote a regression for binary compatibility with f# 4 last time, so i understand), but having a more fluid release process and beta, can help a lot. There were some occasion with single line diff pr, to fix compilation, with more than > 1 week before merge. But that doesnt mean we should lower the bar for quality, the opposite, more review and smaller commit. I am happy ms maintains this repo, but it should be easier to contribute. It's a lot easier with roslyn or dotnetcli ( my experience at least ). |
👍, @enricosada. We can always leverage the power of |
That is incorrect, so you can ignore it. |
@dsyme I meant the potential contributors stated they were considering no longer submitting or working on contributions. Apologies for the unclear wording. |
@panesofglass OK, thanks. I think the best way to help is to do more code review, and to help keep PRs up-to-date. Also bring over your previous submissions from CodePlex please! |
It's not clear that I can help you out with this. The bulk of the commits are Don's.and so he is the most inconvenienced by this, and it doesn't seem to have slowed him down any. There are a couple from Enrico, which are in the nice to have rather than commited feature, etc. What feature are you working on @panesofglass that requires one or more of these PR's and which PR does your feature need? Kevin |
One thing that makes it difficult for me is I work on OSX, to to make prime commits that will be accepted and I have to PR here. But ... I have to work in fsharp/fsharp to use and test my patch, cherry pick to FCS to test tool integration, then port to visualfsharp to make the PR so that the whole lot can be back merged into FCS and fsharp/fsharp so that it can be publicly consumed. That's quite painful!!
|
@7sharp9 being able to develop on OSX and Linux is definitely a goal, and we are tiptoing towards that. However right now it is not yet doable. But it will eventually. |
@KevinRansom, I'm not working on anything related to this repo currently. I had hoped to help out with some things previously but was unable to build any branch for quite some time. Only today did I discover that master builds on my VM. I'm not sure of the state of the web templates PRs. I assume they are out-of-date (targeting VS2013) and lost somewhere on CodePlex. |
@panesofglass Your PR to codeplex is here. Please bring it across, rebase, and submit to github? If you could, that would be great, thanks: |
How? can we create an issue with problems and roadmap about osx/linux? I am pretty sure exists already.
just ask, make a possible roadmap and ask community to help |
Just being able to build visualfsharp from osx would be a great start. I still need to run |
👍 about that, with a simple travisci. @7sharp9 can you open an issue? |
I've been through the PRs and only 6 remain that are not Work In Progress (WIP) https://github.com/Microsoft/visualfsharp/pulls. I'll close this discussion thread since things are in fairly good state. |
Thanks for your work on this, @dsyme. |
The vast majority of the work was done by @KevinRansom. Please take the time to give feedback to Microsoft management as requested in #877 :) |
Thank you for your work here, @KevinRansom! |
The list of pull requests seems quite long, with several PRs numbering in the thousands of lines changed. Can someone work on getting these worked into various branches or closed with at least a "Thanks for your contribution, but now's not the right time" response? I am aware a lot of energy is going into the core CLR support, and the community agrees that is very important. However, I fear this repo is in danger of dissuading OSS contributions due to perceived futility. It is no fun trying to keep a PR up-to-date with a moving target, and it is no fun trying to merge stale PRs.
Several possible directions for moving forward, most mentioned elsewhere:
Projects get a lot of excitement by managing their contributions well. Rust does this well. @forki is regularly praised on Twitter for his amazing success with PRs and issues. Please make visualfsharp a success, as well.
NOTE: I wasn't entirely sure where to post this, so I'm going with an issue here.
The text was updated successfully, but these errors were encountered: