{"action":"created","issue":{"url":"https://api.github.com/repos/serilog/serilog/issues/593","labels_url":"https://api.github.com/repos/serilog/serilog/issues/593/labels{/name}","comments_url":"https://api.github.com/repos/serilog/serilog/issues/593/comments","events_url":"https://api.github.com/repos/serilog/serilog/issues/593/events","html_url":"https://github.com/serilog/serilog/issues/593","id":117465369,"number":593,"title":"Package factoring","user":{"login":"nblumhardt","id":342712,"avatar_url":"https://avatars.githubusercontent.com/u/342712?v=3","gravatar_id":"","url":"https://api.github.com/users/nblumhardt","html_url":"https://github.com/nblumhardt","followers_url":"https://api.github.com/users/nblumhardt/followers","following_url":"https://api.github.com/users/nblumhardt/following{/other_user}","gists_url":"https://api.github.com/users/nblumhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/nblumhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nblumhardt/subscriptions","organizations_url":"https://api.github.com/users/nblumhardt/orgs","repos_url":"https://api.github.com/users/nblumhardt/repos","events_url":"https://api.github.com/users/nblumhardt/events{/privacy}","received_events_url":"https://api.github.com/users/nblumhardt/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/serilog/serilog/labels/v2","name":"v2","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-11-17T22:23:30Z","updated_at":"2015-11-19T17:16:43Z","closed_at":null,"body":"The \"new .NET\" has switched to much finer-grained packages as the norm. _Serilog.nupkg_ is currently the \"kitchen sink\"; since v2 is breaking now is the time to consider a finer-grained factoring.\r\n\r\n* _Serilog.Abstractions_: `ILogger`, `Log`, `LogContext`, `LogEvent`, `LogEventLevel`, the various property/value classes; everything potentially used by client application code\r\n* _Serilog_: `LoggerConfiguration`, the pipeline; depends on _Serilog.Abstractions_\r\n* Sink packages for: file, rolling file, console, colored console, trace, observable, periodic-batching\r\n* Enricher packages: environment, ...\r\n* Packages for AppSettings and so-on\r\n\r\nThe advantage of doing this is reducing churn (no need to version core assemblies as sinks evolve, etc.) and prevention of bloat, especially dependency bloat as will be the case with v2 as it stands currently.\r\n\r\nThere's a lot of work represented in this, but better to have the discussion while there's an opportunity to make the change."},"comment":{"url":"https://api.github.com/repos/serilog/serilog/issues/comments/158124751","html_url":"https://github.com/serilog/serilog/issues/593#issuecomment-158124751","issue_url":"https://api.github.com/repos/serilog/serilog/issues/593","id":158124751,"user":{"login":"khellang","id":582487,"avatar_url":"https://avatars.githubusercontent.com/u/582487?v=3","gravatar_id":"","url":"https://api.github.com/users/khellang","html_url":"https://github.com/khellang","followers_url":"https://api.github.com/users/khellang/followers","following_url":"https://api.github.com/users/khellang/following{/other_user}","gists_url":"https://api.github.com/users/khellang/gists{/gist_id}","starred_url":"https://api.github.com/users/khellang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/khellang/subscriptions","organizations_url":"https://api.github.com/users/khellang/orgs","repos_url":"https://api.github.com/users/khellang/repos","events_url":"https://api.github.com/users/khellang/events{/privacy}","received_events_url":"https://api.github.com/users/khellang/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T17:16:42Z","updated_at":"2015-11-19T17:16:42Z","body":"I'd move the types listed below in Serilog.Abstractions and flip things so enrichers, configuration and sink packages depend on that instead.\r\n\r\n- `ILogEventSink`\r\n- `PeriodicBatchingSink`\r\n- `ILoggerSettings`\r\n- `ILogEventEnricher`\r\n- `ILogEventPropertyFactory`\r\n- `LogEventProperty`\r\n- `LogEventPropertyValue`\r\n\r\nI might've forgotten some..."}}