Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upReorganize project infrastructure #4
Comments
ebkalderon
added
status: in-progress
diff: medium
pri: blocker
type: improvement
labels
Jan 27, 2016
ebkalderon
self-assigned this
Jan 27, 2016
ebkalderon
added this to the 1.0 milestone
Jan 27, 2016
ebkalderon
referenced this issue
in amethyst/amethyst
Jan 27, 2016
Closed
Reorganize project infrastructure #13
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
ebkalderon
Jan 27, 2016
Member
Unfortunately, this doesn't seem to be going smoothly.
- Cargo generates an unnecessary
libamethyst_tools.rliblibrary when I compile. - I cannot find the binaries inside the target/ folder and launch them without installing them onto the host system.
|
Unfortunately, this doesn't seem to be going smoothly.
|
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
ebkalderon
Jan 27, 2016
Member
Here are some possible alternatives for better hosting multiple optional binaries in a single repository:
- Somehow allowing binary crate dependencies in a similar manner to library crates, which would be the ideal route, but is unlikely to ever happen in Cargo.
- Conditional compilation of binaries using Cargo
[features]. This doesn't exist, but there is rust-lang/cargo#2080 which links to rust-lang/cargo#1570. A pull request implementing this exists, but appears to have gone stale.
Neither idea is very appealing. Suggestions are welcome!
|
Here are some possible alternatives for better hosting multiple optional binaries in a single repository:
Neither idea is very appealing. Suggestions are welcome! |
ebkalderon
added
diff: hard
and removed
diff: medium
labels
Jan 27, 2016
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
ebkalderon
Jan 27, 2016
Member
Honestly, I think the best route for now is to make each binary a [[bin]] target and move on. Currently, there is only one tool (the amethyst CLI client), so we don't actually have to worry about dependencies and conditional compilation.
It's a hard decision, but to keep Amethyst moving, I'm going to mark this improvement as stalled. Discussion is still welcome, and resolving this ASAP is still a priority, but it shouldn't have to block the 0.2.0 release if we don't have any reason to do so yet.
|
Honestly, I think the best route for now is to make each binary a It's a hard decision, but to keep Amethyst moving, I'm going to mark this improvement as stalled. Discussion is still welcome, and resolving this ASAP is still a priority, but it shouldn't have to block the 0.2.0 release if we don't have any reason to do so yet. |
ebkalderon commentedJan 27, 2016
There are some major changes coming to our core infrastructure. Currently, the overall Amethyst project consists of three repositories: amethyst, amethyst_cli, and amethyst_opengl.
Amethyst is set for future expansion, and the current approach to organizing our code is not maintainable. I propose the following:
This might cause some breakage, but this must be minimized as much as possible. Let's use Piston's approach for managing multiple crates under one repository as prior art.
Progress has begun on the reorg branch.
This is the tools-side counterpart of Amethyst issue #13.
Edit: See the caveats below.