{"action":"created","issue":{"url":"https://api.github.com/repos/matthiasbeyer/imag/issues/810","repository_url":"https://api.github.com/repos/matthiasbeyer/imag","labels_url":"https://api.github.com/repos/matthiasbeyer/imag/issues/810/labels{/name}","comments_url":"https://api.github.com/repos/matthiasbeyer/imag/issues/810/comments","events_url":"https://api.github.com/repos/matthiasbeyer/imag/issues/810/events","html_url":"https://github.com/matthiasbeyer/imag/pull/810","id":183219861,"number":810,"title":"Single crate for all binaries","user":{"login":"mario-kr","id":7137799,"avatar_url":"https://avatars.githubusercontent.com/u/7137799?v=3","gravatar_id":"","url":"https://api.github.com/users/mario-kr","html_url":"https://github.com/mario-kr","followers_url":"https://api.github.com/users/mario-kr/followers","following_url":"https://api.github.com/users/mario-kr/following{/other_user}","gists_url":"https://api.github.com/users/mario-kr/gists{/gist_id}","starred_url":"https://api.github.com/users/mario-kr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mario-kr/subscriptions","organizations_url":"https://api.github.com/users/mario-kr/orgs","repos_url":"https://api.github.com/users/mario-kr/repos","events_url":"https://api.github.com/users/mario-kr/events{/privacy}","received_events_url":"https://api.github.com/users/mario-kr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-10-15T16:51:17Z","updated_at":"2016-10-16T12:35:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/matthiasbeyer/imag/pulls/810","html_url":"https://github.com/matthiasbeyer/imag/pull/810","diff_url":"https://github.com/matthiasbeyer/imag/pull/810.diff","patch_url":"https://github.com/matthiasbeyer/imag/pull/810.patch"},"body":"I tried making all of imag into one crate, but only succeeded partially.\r\nThe project [plantex](https://github.com/OsnaCS/plantex) could be considered my source of inspiration.\r\n\r\nWhat I have right now is:\r\n* A Cargo.toml specifying every binary as a part of `imag-project` (Thats only a temporary name)\r\n* The same Cargo.toml containing each and every dependency of all the imag-binaries\r\n\r\nWith this, I can call for example `cargo build` in the project root, and all binaries would be built.\r\n\r\nWhat is a problem:\r\n* the libraries are not includable as the binaries are, therefore not part of `imag-project`, but still single crates. This leads to\r\n* `cargo test` tests only the binaries, not the libraries. And\r\n* Adding a `workspace` containing the libraries does not solve this problem (I don't really know how workspaces work, I just figured I'd give it a shot)\r\n\r\nWith this, the individual binaries' `Cargo.toml` might be considered obsolete, as it is still possible to build single binaries via `cargo build --bin imag-store` for example.\r\n\r\nI only open this PR as a suggestion, and for discussion. Therefore, some things are simply not done yet, like:\r\n* Deleting the unneeded `Cargo.toml`s\r\n* Updating the Makefile\r\n* Updating the README.md/other Documentation\r\n\r\nAs of the creation of this PR, `cargo build`, `cargo install` and `cargo test` work as described above. (A minor fix in `libimagstore/src/store.rs` was needed and is part of this PR)"},"comment":{"url":"https://api.github.com/repos/matthiasbeyer/imag/issues/comments/254044480","html_url":"https://github.com/matthiasbeyer/imag/pull/810#issuecomment-254044480","issue_url":"https://api.github.com/repos/matthiasbeyer/imag/issues/810","id":254044480,"user":{"login":"neithernut","id":6747556,"avatar_url":"https://avatars.githubusercontent.com/u/6747556?v=3","gravatar_id":"","url":"https://api.github.com/users/neithernut","html_url":"https://github.com/neithernut","followers_url":"https://api.github.com/users/neithernut/followers","following_url":"https://api.github.com/users/neithernut/following{/other_user}","gists_url":"https://api.github.com/users/neithernut/gists{/gist_id}","starred_url":"https://api.github.com/users/neithernut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neithernut/subscriptions","organizations_url":"https://api.github.com/users/neithernut/orgs","repos_url":"https://api.github.com/users/neithernut/repos","events_url":"https://api.github.com/users/neithernut/events{/privacy}","received_events_url":"https://api.github.com/users/neithernut/received_events","type":"User","site_admin":false},"created_at":"2016-10-16T12:35:52Z","updated_at":"2016-10-16T12:35:52Z","body":"Another thing to consider: one day, if `imag` internal interfaces are somewhat stable, we might split it up into its individual libraries and binaries."}}
{"actor":{"display_login":"neithernut"}}