{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/project-system/issues/2833","repository_url":"https://api.github.com/repos/dotnet/project-system","labels_url":"https://api.github.com/repos/dotnet/project-system/issues/2833/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/project-system/issues/2833/comments","events_url":"https://api.github.com/repos/dotnet/project-system/issues/2833/events","html_url":"https://github.com/dotnet/project-system/issues/2833","id":258155467,"number":2833,"title":"Design errors prevent other project system from using this Managed project system","user":{"login":"RobertvanderHulst","id":14240939,"avatar_url":"https://avatars0.githubusercontent.com/u/14240939?v=4","gravatar_id":"","url":"https://api.github.com/users/RobertvanderHulst","html_url":"https://github.com/RobertvanderHulst","followers_url":"https://api.github.com/users/RobertvanderHulst/followers","following_url":"https://api.github.com/users/RobertvanderHulst/following{/other_user}","gists_url":"https://api.github.com/users/RobertvanderHulst/gists{/gist_id}","starred_url":"https://api.github.com/users/RobertvanderHulst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobertvanderHulst/subscriptions","organizations_url":"https://api.github.com/users/RobertvanderHulst/orgs","repos_url":"https://api.github.com/users/RobertvanderHulst/repos","events_url":"https://api.github.com/users/RobertvanderHulst/events{/privacy}","received_events_url":"https://api.github.com/users/RobertvanderHulst/received_events","type":"User","site_admin":false},"labels":[{"id":382413130,"url":"https://api.github.com/repos/dotnet/project-system/labels/Discussion/Question","name":"Discussion/Question","color":"0e8a16","default":false},{"id":375512667,"url":"https://api.github.com/repos/dotnet/project-system/labels/Feature%20Request","name":"Feature Request","color":"e52727","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dotnet/project-system/milestones/20","html_url":"https://github.com/dotnet/project-system/milestone/20","labels_url":"https://api.github.com/repos/dotnet/project-system/milestones/20/labels","id":3110121,"number":20,"title":"15.8","description":"","creator":{"login":"davkean","id":1103906,"avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"open_issues":105,"closed_issues":37,"state":"open","created_at":"2018-02-13T03:39:57Z","updated_at":"2018-05-24T05:01:51Z","due_on":null,"closed_at":null},"comments":13,"created_at":"2017-09-15T20:28:19Z","updated_at":"2018-05-24T12:30:20Z","closed_at":"2018-05-24T05:01:51Z","author_association":"NONE","body":"I have attempted to create a new project system, as a sibling for the C#, VB and F# project system (the same thing the managed c++ or Python team need to do when they want to use CPS).\r\nMy experience is that the current design of the project system is locked to the 3 mentioned systems and other systems cannot use the managed project system code for the following reason:\r\n\r\n- Several key types are marked as \"internal\"\r\n- The C#, VB and F# system can access these types because they are listed in \"InternalsVisibleTo\"\r\n- Other project systems are not listed and can't access these types\r\n- Furthermore on various places the C#, VB and F# languages are explicitly listed as capabilities. That means that other systems must either pretend to be C#, VB or F#. Otherwise it will not work\r\n\r\nI tried an alternative approach: recompile the managed project system as well and include my own project system in the list of assemblies that can access the internals. That works, but then I will have an assembly with the same name and same (but modified) types as the assembly used by the C# project system and that will most certainly create problems when our project system is running side by side with C#.\r\nRenaming the managed project system assembly is not an option, because it uses other assemblies (for example a languageservice assembly) with the same design flaw: its internals are exposed to the Managed project system. So renaming the DLL will make the internals of that assembly unacessible.\r\n\r\nThe only solution that I can think of is to keep the name of the managed project system DLL and rename all the namespaces in it, so they don't conflict with the namespaces that the C# project system uses. \r\nBut that would mean that we have to touch each and every source file to fix a design error.\r\n\r\nI am really surprised that you have decided to use InternalsVisibleTo and that you not simply make the types that you needed in the C# or VB system public. \r\nI hope it is not too late to correct this.\r\n\r\nRobert"},"comment":{"url":"https://api.github.com/repos/dotnet/project-system/issues/comments/391696373","html_url":"https://github.com/dotnet/project-system/issues/2833#issuecomment-391696373","issue_url":"https://api.github.com/repos/dotnet/project-system/issues/2833","id":391696373,"user":{"login":"davkean","id":1103906,"avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"created_at":"2018-05-24T12:30:20Z","updated_at":"2018-05-24T12:30:20Z","author_association":"MEMBER","body":"We provide components that opt into C#/VB/F# \"behavior\" that you can opt into via the `.NET` capability and the other capabilities. Please try that first, and then we can discuss the APIs. I believe you are missing context, and hence we're talking past each other.\r\n\r\n"}}
{"actor":{"display_login":"davkean"}}