oxidecomputer / oxidecomputer/hubris

Allow using Hubris as a crate incorporated into your project

Open
#691 0 comments 1 reaction 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.