{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/arcade/issues/629","repository_url":"https://api.github.com/repos/dotnet/arcade","labels_url":"https://api.github.com/repos/dotnet/arcade/issues/629/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/arcade/issues/629/comments","events_url":"https://api.github.com/repos/dotnet/arcade/issues/629/events","html_url":"https://github.com/dotnet/arcade/issues/629","id":358117645,"node_id":"MDU6SXNzdWUzNTgxMTc2NDU=","number":629,"title":"[Darc] Darc should be buildable from source","user":{"login":"dagood","id":12819531,"node_id":"MDQ6VXNlcjEyODE5NTMx","avatar_url":"https://avatars3.githubusercontent.com/u/12819531?v=4","gravatar_id":"","url":"https://api.github.com/users/dagood","html_url":"https://github.com/dagood","followers_url":"https://api.github.com/users/dagood/followers","following_url":"https://api.github.com/users/dagood/following{/other_user}","gists_url":"https://api.github.com/users/dagood/gists{/gist_id}","starred_url":"https://api.github.com/users/dagood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dagood/subscriptions","organizations_url":"https://api.github.com/users/dagood/orgs","repos_url":"https://api.github.com/users/dagood/repos","events_url":"https://api.github.com/users/dagood/events{/privacy}","received_events_url":"https://api.github.com/users/dagood/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-09-07T15:41:18Z","updated_at":"2018-12-06T20:48:20Z","closed_at":null,"author_association":"MEMBER","body":"I noticed issues about using Octokit https://github.com/dotnet/arcade/issues/581 and VSTS C# libs https://github.com/dotnet/arcade/issues/582 in Darc. This sounds like a great idea, but I want to make sure it's implemented in a way that leaves Darc able to build from source.\r\n\r\nIf Octokit and VSTS APIs can build from source, ok, but it would be preferable not to build them at all. The builds take time, and the capabilities won't be used in source-build.\r\n\r\n/cc @alexperovich @jcagme \r\n\r\n---\r\n\r\nI haven't looked into every one, but these are unknowns when it comes to source-build:\r\n\r\n* Microsoft.AspNet.WebApi.Client\r\n* Microsoft.Azure.KeyVault\r\n* Microsoft.Azure.Services.AppAuthentication\r\n* [Microsoft.IdentityModel.Clients.ActiveDirectory](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/tree/dev/adal/src/Microsoft.IdentityModel.Clients.ActiveDirectory)\r\n* Microsoft.Rest.ClientRuntime\r\n* Microsoft.Rest.ClientRuntime.Azure\r\n* Microsoft.TeamFoundation.DistributedTask.Common.Contracts\r\n* Microsoft.TeamFoundationServer.Client\r\n* Microsoft.VisualStudio.Services.Client\r\n* Microsoft.VisualStudio.Setup.Configuration.Interop\r\n* [Newtonsoft.Json.Bson](https://github.com/JamesNK/Newtonsoft.Json.Bson)\r\n* [Octokit](https://github.com/octokit/octokit.net)\r\n* [YamlDotNet.Signed](https://github.com/aaubry/YamlDotNet)\r\n\r\nAn easy way I see to do this is to split code that needs to use these dependencies into separate csproj's, condition the dependency, and condition some small part of the code to link in (or not) web client capability. (`Microsoft.DotNet.Maestro.Client` is an example of something that's already split off!) The property `ExcludeFromSourceBuild` is used to skip a project during source-build.\r\n\r\nI can imagine something fancier being done, where there's a real extensibility point on Darc. The user could choose to download some extra packages (or something) to enable web client capabilities."},"comment":{"url":"https://api.github.com/repos/dotnet/arcade/issues/comments/445024360","html_url":"https://github.com/dotnet/arcade/issues/629#issuecomment-445024360","issue_url":"https://api.github.com/repos/dotnet/arcade/issues/629","id":445024360,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTAyNDM2MA==","user":{"login":"markwilkie","id":6334885,"node_id":"MDQ6VXNlcjYzMzQ4ODU=","avatar_url":"https://avatars2.githubusercontent.com/u/6334885?v=4","gravatar_id":"","url":"https://api.github.com/users/markwilkie","html_url":"https://github.com/markwilkie","followers_url":"https://api.github.com/users/markwilkie/followers","following_url":"https://api.github.com/users/markwilkie/following{/other_user}","gists_url":"https://api.github.com/users/markwilkie/gists{/gist_id}","starred_url":"https://api.github.com/users/markwilkie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markwilkie/subscriptions","organizations_url":"https://api.github.com/users/markwilkie/orgs","repos_url":"https://api.github.com/users/markwilkie/repos","events_url":"https://api.github.com/users/markwilkie/events{/privacy}","received_events_url":"https://api.github.com/users/markwilkie/received_events","type":"User","site_admin":false},"created_at":"2018-12-06T20:48:20Z","updated_at":"2018-12-06T20:48:20Z","author_association":"MEMBER","body":"@mmitche - what's needed for Preview II?  "}}
{"actor":{"display_login":"markwilkie"}}