{"action":"created","issue":{"url":"https://api.github.com/repos/beetbox/beets/issues/1966","repository_url":"https://api.github.com/repos/beetbox/beets","labels_url":"https://api.github.com/repos/beetbox/beets/issues/1966/labels{/name}","comments_url":"https://api.github.com/repos/beetbox/beets/issues/1966/comments","events_url":"https://api.github.com/repos/beetbox/beets/issues/1966/events","html_url":"https://github.com/beetbox/beets/pull/1966","id":151525777,"number":1966,"title":"Modularise beets","user":{"login":"jackwilsdon","id":1843197,"avatar_url":"https://avatars.githubusercontent.com/u/1843197?v=3","gravatar_id":"","url":"https://api.github.com/users/jackwilsdon","html_url":"https://github.com/jackwilsdon","followers_url":"https://api.github.com/users/jackwilsdon/followers","following_url":"https://api.github.com/users/jackwilsdon/following{/other_user}","gists_url":"https://api.github.com/users/jackwilsdon/gists{/gist_id}","starred_url":"https://api.github.com/users/jackwilsdon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jackwilsdon/subscriptions","organizations_url":"https://api.github.com/users/jackwilsdon/orgs","repos_url":"https://api.github.com/users/jackwilsdon/repos","events_url":"https://api.github.com/users/jackwilsdon/events{/privacy}","received_events_url":"https://api.github.com/users/jackwilsdon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":21,"created_at":"2016-04-28T00:58:29Z","updated_at":"2016-06-14T16:43:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/beetbox/beets/pulls/1966","html_url":"https://github.com/beetbox/beets/pull/1966","diff_url":"https://github.com/beetbox/beets/pull/1966.diff","patch_url":"https://github.com/beetbox/beets/pull/1966.patch"},"body":"This is a work-in-progress PR and should not be merged.\r\n\r\nThe goal of this PR is to modularise beets in such a way that the larger parts of beets can be re-used by external applications, as well as to reduce duplication (e.g. [`confit.py`][beets confit] and [`sampsyo/confit`][sampsyo confit]).\r\n\r\n### Current Progress\r\n\r\n - [x] Use Confit from the `confuse` library (added in fb547a162dfe313ca0794c58d1da1d935e72fbaa, improved in 9568a1d8fc9762a53aacdf5d18caf822a8aeef5b)\r\n   - [ ] Stabilise the Confit API (Semi-unrelated)\r\n     - [ ] Start a changelog for Confit (Semi-unrelated) \r\n - [ ] Separate MediaFile ([`mediafile.py`][mediafile]) into it's own library (and repository belonging to [`beetbox`][beetbox])\r\n - [ ] Separate dbcore ([`dbcore`][dbcore]) into it's own library (and repository belonging to [`beetbox`][beetbox])\r\n\r\nThis PR was inspired by @sampsyo's comment [here][inspiring comment]:\r\n\r\n> The only reasons we haven't taken it as a dependency are the logistics: there's some friction for OS packagers to catalog a new dependency, and we'd need to stabilize the Confit API. The latter entails starting a Changelog, and because the Confit name is taken on PyPI, changing the module name to confuse.\r\n\r\n> It's definitely a worthwhile endeavor! It will just take a little more effort than deleting the file. Perhaps we should do the same thing for Confit, MediaFile, and dbcore simultaneously?\r\n\r\nI created the [`modularise`][modularise branch] branch so that anyone can contribute to this PR by creating another PR for the [`modularise`][modularise branch] branch.\r\n\r\n[beets confit]: https://github.com/beetbox/beets/blob/91c8a30e55b38b507a763c3750a7dea94c5c1147/beets/util/confit.py\r\n[sampsyo confit]: https://github.com/sampsyo/confit/blob/7f5ab69e825060c38e9558ff623ed0669cb7c3ce/confit.py\r\n[mediafile]: https://github.com/beetbox/beets/blob/91c8a30e55b38b507a763c3750a7dea94c5c1147/beets/mediafile.py\r\n[beetbox]: https://github.com/beetbox\r\n[dbcore]: https://github.com/beetbox/beets/tree/91c8a30e55b38b507a763c3750a7dea94c5c1147/beets/dbcore\r\n[inspiring comment]: https://github.com/beetbox/beets/pull/1961#issuecomment-215266618\r\n[modularise branch]: https://github.com/beetbox/beets/tree/modularise"},"comment":{"url":"https://api.github.com/repos/beetbox/beets/issues/comments/225941960","html_url":"https://github.com/beetbox/beets/pull/1966#issuecomment-225941960","issue_url":"https://api.github.com/repos/beetbox/beets/issues/1966","id":225941960,"user":{"login":"sampsyo","id":188033,"avatar_url":"https://avatars.githubusercontent.com/u/188033?v=3","gravatar_id":"","url":"https://api.github.com/users/sampsyo","html_url":"https://github.com/sampsyo","followers_url":"https://api.github.com/users/sampsyo/followers","following_url":"https://api.github.com/users/sampsyo/following{/other_user}","gists_url":"https://api.github.com/users/sampsyo/gists{/gist_id}","starred_url":"https://api.github.com/users/sampsyo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sampsyo/subscriptions","organizations_url":"https://api.github.com/users/sampsyo/orgs","repos_url":"https://api.github.com/users/sampsyo/repos","events_url":"https://api.github.com/users/sampsyo/events{/privacy}","received_events_url":"https://api.github.com/users/sampsyo/received_events","type":"User","site_admin":false},"created_at":"2016-06-14T16:43:14Z","updated_at":"2016-06-14T16:43:14Z","body":"Nice! Great success!\r\n\r\n- On that first thing: Yes, good point. That was temporary and we should remove it now that we require a later Mutagen.\r\n- The other two are indeed the same category: they're fields we invented, rather than being based on other software. I think we should actually keep these—they're not exactly obscure, and I could imagine other tools using them. The only niggling detail is the `beets/` namespace prefix we used for ASF/WMA. But I think even that's acceptable—there needed to be *some* prefix! We might have used `mediafile/` or something else if we were doing it now, but this is a small price to pay for backwards-compatibility."}}
{"actor":{"display_login":"sampsyo"}}