{"action":"created","issue":{"url":"https://api.github.com/repos/conda-forge/conda-forge.github.io/issues/25","repository_url":"https://api.github.com/repos/conda-forge/conda-forge.github.io","labels_url":"https://api.github.com/repos/conda-forge/conda-forge.github.io/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/conda-forge/conda-forge.github.io/issues/25/comments","events_url":"https://api.github.com/repos/conda-forge/conda-forge.github.io/issues/25/events","html_url":"https://github.com/conda-forge/conda-forge.github.io/issues/25","id":132845235,"number":25,"title":"Policy: One recipe per repo or multiple recipes per repo?","user":{"login":"JanSchulz","id":890156,"avatar_url":"https://avatars.githubusercontent.com/u/890156?v=3","gravatar_id":"","url":"https://api.github.com/users/JanSchulz","html_url":"https://github.com/JanSchulz","followers_url":"https://api.github.com/users/JanSchulz/followers","following_url":"https://api.github.com/users/JanSchulz/following{/other_user}","gists_url":"https://api.github.com/users/JanSchulz/gists{/gist_id}","starred_url":"https://api.github.com/users/JanSchulz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JanSchulz/subscriptions","organizations_url":"https://api.github.com/users/JanSchulz/orgs","repos_url":"https://api.github.com/users/JanSchulz/repos","events_url":"https://api.github.com/users/JanSchulz/events{/privacy}","received_events_url":"https://api.github.com/users/JanSchulz/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2016-02-10T23:09:44Z","updated_at":"2016-02-18T16:00:50Z","closed_at":"2016-02-18T16:00:50Z","body":"[This is mainly pulled from: https://github.com/conda-forge/conda-smithy/pull/51#issuecomment-181910644 and the following discussion.]\r\n\r\n## Single recipe per repo\r\n\r\n**Pro**\r\n* tooling for the builds (conda-smithy and the CI scripts) scales, as it is only one recipe in each repo and build attempt\r\n* fine grained permissions per recipe (=repo)\r\n* no broken builds due to unrelated packages\r\n* build status per package\r\n\r\n**Con**:\r\n* needs tooling to setup (how does an outsider without rights in the conda-forge org setup a new recipe?)\r\n* multi packages changes need to be coordinated\r\n* high cost of learning all the setup steps for new contributors\r\n* high complexity of the setup scripts (e.g. setting up a new recipe needs changes in the conda-forge org which are managed by conda-smithy)\r\n* one ends up with hundreds of github repos -> finding the right repo for the package can be error prone for the user \r\n* higher cost when the CI scripts need updating (or a new python version comes out) -> all repos need to update\r\n* High monitoring cost for maintainers, as they have to look into a lot of repos for PRs/Issues instead of just one\r\n\r\n## Both\r\n* needs tooling to build a website which lists all packages\r\n* on the local file system: confusing, either because of hundreds of checked out git repos or because of hundreds of recipe-subdirs \r\n\r\n## Multiple recipes per repo\r\n\r\n**Pro**\r\n* Multiple packages changes work out of the box (`conda buildall` handles the build order)\r\n* Changes by contributors can be reviewed by maintainers in one place\r\n* Only one repo to handle: updates of CI scripts, on the github dir\r\n* easier for new contributors: simple add a PR for the new recipe in a subdir\r\n* needs less tooling, as the usual github UI can be used (add new committer with push access to a repo) -> also more similar to the rest of the github workflow\r\n\r\n**~**\r\n* can be done with hand crafted CI scripts (=without conda smithy). This gives more flexibility but also means that it's a manual workstyle from that point on...\r\n\r\n**Con**\r\n* Not sure how many recipes per repo can be handled by CI code and `conda buildall`. As long as each PR submits one recipe (and all earlier recipes are built) it's probably fine, but what happens on the release of python 3.6...?\r\n* unrelated changes can break the builds for all recipes in the channel\r\n* build badges only for the whole repo, not individual recipes\r\n* Only broad permissions: committer with push access for all recipes and normal contributor who can submit PRs [this could be managed by splitting into multiple repos by themes, but this will give some of the disadvantages from a single recipe per repo policy]\r\n\r\n[I will add pro and cons as they become available in the comments]"},"comment":{"url":"https://api.github.com/repos/conda-forge/conda-forge.github.io/issues/comments/185790712","html_url":"https://github.com/conda-forge/conda-forge.github.io/issues/25#issuecomment-185790712","issue_url":"https://api.github.com/repos/conda-forge/conda-forge.github.io/issues/25","id":185790712,"user":{"login":"pelson","id":810663,"avatar_url":"https://avatars.githubusercontent.com/u/810663?v=3","gravatar_id":"","url":"https://api.github.com/users/pelson","html_url":"https://github.com/pelson","followers_url":"https://api.github.com/users/pelson/followers","following_url":"https://api.github.com/users/pelson/following{/other_user}","gists_url":"https://api.github.com/users/pelson/gists{/gist_id}","starred_url":"https://api.github.com/users/pelson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pelson/subscriptions","organizations_url":"https://api.github.com/users/pelson/orgs","repos_url":"https://api.github.com/users/pelson/repos","events_url":"https://api.github.com/users/pelson/events{/privacy}","received_events_url":"https://api.github.com/users/pelson/received_events","type":"User","site_admin":false},"created_at":"2016-02-18T16:00:50Z","updated_at":"2016-02-18T16:00:50Z","body":"> I only see this\r\n\r\nTry clicking the down arrow next the the words \"report and issue with\"."}}