-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Conversation
This reverts commit 124754f.
@karelz @danmosemsft PTLA |
/cc @stephentoub [My bad for making the original edit (?) I thought it was based on consensus reached in some email which I can't find now] If I understand right your motivation for corelib issues in CoreCLR is
My concerns as you know are --
I don't feel super strongly though so I defer to the majority! One option - leave as is (this edit is fine) and revisit in 2 or 3 months. |
I agree that some issues are hard, take time to trace down to the root cause, bouncing between teams and repos along the way. A lot of issues are simple and having the issue in the repo where the relevant code lives is the most straightforward rule.
We have started actively managing issues in corefx just recently. The same needs to happen in coreclr too. I do not see why coreclr issues should get less attention.
Move them to the right repo. It is not unusual to see ASP.NET or .NET Core tooling issues opened in corefx, and vice versa. They get moved to the right repo too.
Does managed means implementation language? A good chunk of core runtime parts are implemented in managed code in CoreCLR. CoreRT pushes it even further - everything except JIT and GC is implemeted in managed code. For example, dotnet/corert#2359 is likely bug in managed code (https://github.com/dotnet/corert/blob/master/src/Runtime.Base/src/System/Runtime/ExceptionHandling.cs). It would not make sense for it to live in corefx. I do not think sorting issues based on implementation language makes sense. I think that the problem is that we do have some coupling between the repos structure and the organizations structure, but the mapping is not 1:1. karelz and danmosemsft teams tend to work in corefx, but not exclusively. gkhanna team tends to work in coreclr, but not exclusively. We are kind of wishing to have logical uber bug database for everything in .NET Core to get the different filters and global view that we are used to from TFS. We do not have it and trying to creatively workaround it. |
Fair enough. I do think we will be moving issues from CoreFX quite often but perhaps we don't need to be super strict/responsive about that. I am not aware of a tool that allows you to see the familar Github list of issues aggregated from multiple repoes. It would be great to discover one. If you have Zenhub installed you can see them in board form eg this shows all System.Runtime issues from CoreCLR and CoreFX. If we have such a tool, we would likely need consistent labels. Presumably most issues in corelib would map to System.Runtime and maybe that's okay. |
Github itself does allow searching issues across more than one repo, but it is not in the nice list format either. |
FYI: |
@jkotas I have a related question. Are there any, or many, types in corelib whose implementations could reasonably be moved up into corefx? That would reduce the amount of separated code, and help CoreRT also. What determines whether something must be in corelib itself -- obviously where something is partially implemented in the runtime like String and Array, what else? /cc @weshaggard |
Transitive closure of dependencies. For example, other things in runtime and corelib need file I/O -> file I/O should be in corelib too. Pretty much everything that can be reasonably moved from corelib to corefx has been moved already. The few remaining large chunks that I think may be good candidates for move are:
Otherwise, there may be a few types that we may be able to move, but nothing substantial. In the past, we have done unnatural acts to move things from corelib to corefx (e.g. for file I/O), but I do not think they were improvement. They required duplicating the implementation, or setting up complex callbacks. Number of them fired back as part of NS 2.0 work and had to be undone. No point in going there again. I agree we need a more effective scheme for sharing code between coreclr and corert, I believe that this scheme needs to be based on source code sharing e.g. via git submodules, not binary sharing. If we go with git submodules, corefx repo is not a good vehicle for it because of it is big and getting even bigger. |
Note that this does block the refactoring to make coreclr and corert implementations same or similar. #8507 or #8720 (comment) are good recent examples. |
* Revert "Update IssuesFeedbackEngagement.md" This reverts commit dotnet/coreclr@124754f. * Update wording Commit migrated from dotnet/coreclr@0c7347a
Revert recent edit that recommended to track all issues in managed code in CoreFX repo