oxidecomputer / oxidecomputer/hubris
Allow using Hubris as a crate incorporated into your project
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Description
Hi all,
I was considering positng in https://github.com/oxidecomputer/hubris/issues/282, but I think it is already a bit bloated.
I just started playing around with Hubris and find the design of it very beneficial for plenty of projects I have been involved so far (namely connected health tech and industrial controllers).
What is a bit off putting at first glance is that the apps are incorporated into the repository. Correct me if I'm wrong but this effectively requires you to fork the repo if you want to build upon it.
I expect that allowing Hubris to be used by just bringing it as a crate into your dependencies would be very beneficial for wider adoption.
I know that you have encountered a lot of problems with cargo, that lead you to the xtask machinery and I expect problems with what I am proposing, but perhaps there is a quick win somewhere...
For sure it sub-ideal that bringing the crate to your project changes the way you interact with the build system, but it would still be better for example to provide an app template external to this repository with a place where you can put your own tasks, config tomls and so on (that has xtask thingy working out of the box) that brings hubris as crate (or if not possible, at least as I don't know - git submodule)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the repository's xtask machinery and how apps, configuration TOMLs, and the build system are currently incorporated. Define whether an external app template can bring Hubris in as a crate or git submodule, and consider that integration complete only when an external project can build its own tasks without forking this repository.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100