{"action":"created","issue":{"url":"https://api.github.com/repos/bemusic/bemuse/issues/486","repository_url":"https://api.github.com/repos/bemusic/bemuse","labels_url":"https://api.github.com/repos/bemusic/bemuse/issues/486/labels{/name}","comments_url":"https://api.github.com/repos/bemusic/bemuse/issues/486/comments","events_url":"https://api.github.com/repos/bemusic/bemuse/issues/486/events","html_url":"https://github.com/bemusic/bemuse/pull/486","id":324104277,"number":486,"title":"MONOREPO 🐙 bms-js, bemuse-notechart, indexer, bemuse-tools, bmson","user":{"login":"dtinth","id":193136,"avatar_url":"https://avatars3.githubusercontent.com/u/193136?v=4","gravatar_id":"","url":"https://api.github.com/users/dtinth","html_url":"https://github.com/dtinth","followers_url":"https://api.github.com/users/dtinth/followers","following_url":"https://api.github.com/users/dtinth/following{/other_user}","gists_url":"https://api.github.com/users/dtinth/gists{/gist_id}","starred_url":"https://api.github.com/users/dtinth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dtinth/subscriptions","organizations_url":"https://api.github.com/users/dtinth/orgs","repos_url":"https://api.github.com/users/dtinth/repos","events_url":"https://api.github.com/users/dtinth/events{/privacy}","received_events_url":"https://api.github.com/users/dtinth/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-17T16:49:46Z","updated_at":"2018-05-18T05:47:31Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/bemusic/bemuse/pulls/486","html_url":"https://github.com/bemusic/bemuse/pull/486","diff_url":"https://github.com/bemusic/bemuse/pull/486.diff","patch_url":"https://github.com/bemusic/bemuse/pull/486.patch"},"body":"This PR moves the following repositories into Bemuse’s main repo, along with its histories:\r\n\r\n- bemusic/bms-js\r\n- bemusic/bemuse-notechart\r\n- bemusic/bemuse-indexer\r\n- bemusic/bemuse-tools\r\n- bemusic/bmson\r\n\r\n---\r\n\r\n- [x] Move the repos.\r\n- [x] Set up Lerna.\r\n- [x] Unify the build system (use TypeScript compiler when run `npm prepare`).\r\n  - [x] bms\r\n  - [x] bmson\r\n  - [x] bemuse-notechart\r\n  - [x] bemuse-indexer\r\n  - [x] bemuse-tools\r\n- [x] Ensure test command (`yarn test`) works\r\n  - [x] bms\r\n  - [x] bmson\r\n  - [x] bemuse-notechart\r\n  - [x] bemuse-indexer\r\n  - [x] bemuse-tools\r\n- [x] Convert ES5/CommonJS code to ES6+ modules\r\n  - [x] bms\r\n  - [x] bemuse-indexer\r\n- [ ] Convert documentation to TypeScript-JSDoc\r\n  - [x] bms\r\n  - [ ] bmson\r\n  - [ ] bemuse-notechart\r\n- [x] Set up Lerna testing.\r\n- [x] Convert to CircleCI 2.\r\n- [ ] Replace custom code review Gulp task with ESLint/Danger\r\n- [x] Bump new major versions for each package.\r\n- [ ] Update dependencies and test.\r\n  - [ ] bmson &rarr; bms\r\n  - [ ] bemuse-indexer &rarr; bms\r\n  - [ ] bemuse-indexer &rarr; bmson\r\n  - [ ] bemuse-notechart &rarr; bms\r\n  - [ ] bemuse-notechart &rarr; bmson\r\n  - [ ] bemuse-tools &rarr; bemuse-indexer\r\n  - [ ] bemuse &rarr; bms\r\n  - [ ] bemuse &rarr; bmson\r\n  - [ ] bemuse &rarr; bemuse-indexer\r\n  - [ ] bemuse &rarr; bemuse-notechart\r\n- [ ] Try publishing them to npm.\r\n- [ ] Use them in Bemuse and make sure it works.\r\n\r\n---\r\n\r\nHow I did this octopus merging:\r\n\r\n![image](https://user-images.githubusercontent.com/193136/40192055-733a479e-5a2d-11e8-9e45-332b5677eed1.png)\r\n\r\n1. For each repo, I created a branch `migrate-to-monorepo`:\r\n\r\n    ```sh\r\n    git fetch\r\n    git checkout origin/master\r\n    git checkout -b migrate-to-monorepo\r\n    mkdir -p packages/$PACKAGE\r\n    git mv $(git ls-tree --name-only HEAD) packages/$PACKAGE\r\n    git commit -m ':truck: packages/$PACKAGE'\r\n    ```\r\n\r\n    Where `$PACKAGE` is the npm package name for that repo.\r\n\r\n2. In Bemuse project, fetch em all:\r\n\r\n    ```sh\r\n    for REPO in bms-js bemuse-notechart indexer bemuse-tools bmson\r\n    do\r\n      git fetch --no-tags \"../$REPO\" \"migrate-to-monorepo:monorepo-migrations/$REPO\"\r\n    done\r\n    ```\r\n\r\n3. Do an octopus merge:\r\n\r\n    ```sh\r\n    git merge \\\r\n      monorepo-migrations/bms-js \\\r\n      monorepo-migrations/bemuse-notechart \\\r\n      monorepo-migrations/indexer \\\r\n      monorepo-migrations/bemuse-tools \\\r\n      monorepo-migrations/bmson\r\n    ```sh\r\n\r\n4. The merge shall fail but [thanks to StackOverflow](https://stackoverflow.com/questions/10874149/git-octopus-merge-with-unrelated-repositoies) we can do this:\r\n\r\n\r\n    ```sh\r\n    git read-tree \\\r\n      monorepo-migrations/bms-js \\\r\n      monorepo-migrations/bemuse-notechart \\\r\n      monorepo-migrations/indexer \\\r\n      monorepo-migrations/bemuse-tools \\\r\n      monorepo-migrations/bmson \\\r\n      HEAD\r\n\r\n    git commit\r\n    ```"},"comment":{"url":"https://api.github.com/repos/bemusic/bemuse/issues/comments/390101193","html_url":"https://github.com/bemusic/bemuse/pull/486#issuecomment-390101193","issue_url":"https://api.github.com/repos/bemusic/bemuse/issues/486","id":390101193,"user":{"login":"codecov-io","id":8655789,"avatar_url":"https://avatars0.githubusercontent.com/u/8655789?v=4","gravatar_id":"","url":"https://api.github.com/users/codecov-io","html_url":"https://github.com/codecov-io","followers_url":"https://api.github.com/users/codecov-io/followers","following_url":"https://api.github.com/users/codecov-io/following{/other_user}","gists_url":"https://api.github.com/users/codecov-io/gists{/gist_id}","starred_url":"https://api.github.com/users/codecov-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codecov-io/subscriptions","organizations_url":"https://api.github.com/users/codecov-io/orgs","repos_url":"https://api.github.com/users/codecov-io/repos","events_url":"https://api.github.com/users/codecov-io/events{/privacy}","received_events_url":"https://api.github.com/users/codecov-io/received_events","type":"User","site_admin":false},"created_at":"2018-05-18T05:47:30Z","updated_at":"2018-05-18T05:47:30Z","author_association":"NONE","body":"# [Codecov](https://codecov.io/gh/bemusic/bemuse/pull/486?src=pr&el=h1) Report\n> :exclamation: No coverage uploaded for pull request base (`master@2018fe7`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).\n> The diff coverage is `n/a`.\n\n[![Impacted file tree graph](https://codecov.io/gh/bemusic/bemuse/pull/486/graphs/tree.svg?height=150&src=pr&token=dS8YgEP7Et&width=650)](https://codecov.io/gh/bemusic/bemuse/pull/486?src=pr&el=tree)\n\n```diff\n@@            Coverage Diff            @@\n##             master     #486   +/-   ##\n=========================================\n  Coverage          ?   83.36%           \n=========================================\n  Files             ?      125           \n  Lines             ?     3979           \n  Branches          ?        1           \n=========================================\n  Hits              ?     3317           \n  Misses            ?      662           \n  Partials          ?        0\n```\n\n\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/bemusic/bemuse/pull/486?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/bemusic/bemuse/pull/486?src=pr&el=footer). Last update [2018fe7...ff4e3f2](https://codecov.io/gh/bemusic/bemuse/pull/486?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n"}}
{"actor":{"display_login":"codecov-io"}}