{"action":"created","issue":{"url":"https://api.github.com/repos/prometheus/common/issues/58","repository_url":"https://api.github.com/repos/prometheus/common","labels_url":"https://api.github.com/repos/prometheus/common/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/prometheus/common/issues/58/comments","events_url":"https://api.github.com/repos/prometheus/common/issues/58/events","html_url":"https://github.com/prometheus/common/issues/58","id":176197462,"number":58,"title":"Circular dependency with client_golang","user":{"login":"TheTincho","id":5602605,"avatar_url":"https://avatars.githubusercontent.com/u/5602605?v=3","gravatar_id":"","url":"https://api.github.com/users/TheTincho","html_url":"https://github.com/TheTincho","followers_url":"https://api.github.com/users/TheTincho/followers","following_url":"https://api.github.com/users/TheTincho/following{/other_user}","gists_url":"https://api.github.com/users/TheTincho/gists{/gist_id}","starred_url":"https://api.github.com/users/TheTincho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheTincho/subscriptions","organizations_url":"https://api.github.com/users/TheTincho/orgs","repos_url":"https://api.github.com/users/TheTincho/repos","events_url":"https://api.github.com/users/TheTincho/events{/privacy}","received_events_url":"https://api.github.com/users/TheTincho/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-09-10T19:19:07Z","updated_at":"2016-09-26T10:43:19Z","closed_at":null,"body":"Hey,\r\n\r\nI just got reported (I had not noticed), that there is a circular dependency between common and client_golang, which is pretty problematic for transitions, backports, etc.\r\n\r\nIn the file `version/info.go`, the client library is imported to create metrics with version information. Is there any sane way to break this cycle? Otherwise, I guess I should just merge the packages; they can't be used independently anyway."},"comment":{"url":"https://api.github.com/repos/prometheus/common/issues/comments/249537263","html_url":"https://github.com/prometheus/common/issues/58#issuecomment-249537263","issue_url":"https://api.github.com/repos/prometheus/common/issues/58","id":249537263,"user":{"login":"beorn7","id":5609886,"avatar_url":"https://avatars.githubusercontent.com/u/5609886?v=3","gravatar_id":"","url":"https://api.github.com/users/beorn7","html_url":"https://github.com/beorn7","followers_url":"https://api.github.com/users/beorn7/followers","following_url":"https://api.github.com/users/beorn7/following{/other_user}","gists_url":"https://api.github.com/users/beorn7/gists{/gist_id}","starred_url":"https://api.github.com/users/beorn7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/beorn7/subscriptions","organizations_url":"https://api.github.com/users/beorn7/orgs","repos_url":"https://api.github.com/users/beorn7/repos","events_url":"https://api.github.com/users/beorn7/events{/privacy}","received_events_url":"https://api.github.com/users/beorn7/received_events","type":"User","site_admin":false},"created_at":"2016-09-26T10:43:19Z","updated_at":"2016-09-26T10:43:19Z","body":"`common` is a bag of commonly used packages. Previously, some of it\nwas part of `client_golang`, which was back then an even bigger bag\nwith a misleading name on top. (Now it is essentially two packages,\nthe exposition library and the API client.)\n\nAvoiding circular dependencies on the repository level will be hard.\n\nIn terms of deb packaging, I'd suggest to either do the more detailed\napproach and mirror the Go packages in `common` (and perhaps partially\n`client_golang`), i.e. let Go enforce that there will be no circular\ndependencies. Or you become coarser and put `client_golang` and\n`common` all into one deb package.\n"}}
{"actor":{"display_login":"beorn7"}}