Skip to content

[RFC] Embedded Rust Showcase #187

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 28, 2018
Merged

[RFC] Embedded Rust Showcase #187

merged 3 commits into from
Aug 28, 2018

Conversation

adamgreig
Copy link
Member

Follow-up from #147 and today's IRC meeting.

Rendered

cc @rust-embedded/resources

@japaric
Copy link
Member

japaric commented Aug 22, 2018

Thanks for writing this, @adamgreig!

This proposal (PR) needs at least 10 votes (approvals) from @rust-embedded/all
to be accepted. After the proposal has been accepted we'll proceed to implement
it.

@rust-embedded/all please vote on this proposal using [pull request reviews].
Or if you have a concern leave a comment.

@japaric japaric added the needs-decision This RFC or PR needs to be approved by the majority of reviewers before it's merged label Aug 22, 2018
hannobraun
hannobraun previously approved these changes Aug 22, 2018
Copy link
Member

@hannobraun hannobraun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is very good, thank you @adamgreig!

I have some notes, although I won't veto this proposal over any of them.


## New Repository

We create a new repository, `embedded-rust-showcase` (TBC), in the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be shortened to just showcase, due to the org namespace: rust-embedded/showcase


## New Web Page

The new web page would live at https://showcase.embedded-rust.org (TBC).
Copy link
Member

@hannobraun hannobraun Aug 22, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean http://www.rust-embedded.org/? embedded-rust.org is crurrently unregistered.

* Whether or not the project builds on stable Rust

After a project is submitted, the resources team will review the PR and
vote on inclusion. They may consult other relevant teams in the process,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a full vote is overkill. This isn't some highly sensitive decision. If one or two team members think something should be included, I think that's good enough.

* The web page could instead be maintained as part of the main embedded-rust
website, existing as a page in that website.
* We could extend awesome-embedded-rust to permit longer descriptions of
projects.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to keep the showcase separate and focus awesome-embedded-rust on libraries, tools, etc.


* Final name for repository/web page
* The specific technical solution for rendering the repository contents to a
web page
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that last point needs to be part of the RFCs. As long as we agree on the general idea (i.e. static website generator), whoever ends up implementing it is most qualified to decide whether to use Jekyll, Gutenberg, or whatever else.

@adamgreig
Copy link
Member Author

Thanks for the comments @hannobraun! I think they're worth including and I'll update the RFC with them this evening.

@adamgreig
Copy link
Member Author

I had some time so addressed your comments in 4177a15 (though this has dismissed your review).

hannobraun
hannobraun previously approved these changes Aug 22, 2018
Copy link
Member

@hannobraun hannobraun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, perfect!

korken89
korken89 previously approved these changes Aug 22, 2018
Copy link
Contributor

@korken89 korken89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for writing it up, looks good!


The objective of this list is to showcase Rust code in action; we can't do this
if people can't read the code! There might be space on the main Embedded Rust
website to showcase projects known to use Rust but without public code. We
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me if the code is available to the public it is very much the meaning of the term open source. I think what you're trying to say is that the specific choice of license doesn't matter as long as the source is available. Not sure how to properly word that, though.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what change you'd like: the RFC already says the code must be publicly available but that it doesn't require an open source license.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, just reads odd to me. It kind of implies open source in the definition of the OSI which many people do not agree with. Maybe shorten the sentence to: "We don't require any specific license; just that
it's publicly available for interested users to read."?

which is useful to establish if a project works on stable Rust.

* Have at least one photograph/video/GIF of the project in action

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to make build/configuration/installation instructions at least a soft requirement so that interested parties can reproduce the work or at least have a rough guideline for their own projects.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How should we specify a soft requirement? I was thinking that if CI is working that means it should be pretty easy to figure out how to build the project, but since this showcase is about complete projects I don't imagine many people will be reproducing the whole project anyway (you'd presumably need custom hardware); instead we want to show off what projects are possible.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will be one of those curious people that will compile the project just to see how big the binary is. I might also look at some parts of the disassembly, in particular interrupt handlers, if it seems that the program contains time sensitive / real time portions. So I would give extra points for build instructions and double extra points if the CI includes the output of size.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's fair. Do you think having working CI is enough of a requirement or do we want to require specific build instructions too?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will first try cargo build --release (on w/e rustc channel I happen to be on) and then check the CI builds if that doesn't work but I'm sure most people will give up after the first error so I would say include build instructions if it's more complex than doing cargo build --release from the root of the repo -- assuming that the user will have stable as their default channel. If nightly is required they can just put a rustc-version file in the root of the repository and not write build instructions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the project may or may not require custom hardware but with embedded projects there're more steps involved than just "fire up the compiler, then run it". It may require custom hardware or run on a development board. It's likely to require additional hardware, then it would be interesting how that is hooked up. Even if an interested reader is not capable or willing to reproduce it it might spark ideas for new projects or animate to tinker which I think would be a nice outcome of the showcase display.

@therealprof
Copy link
Contributor

@adamgreig Thanks for writing this up, this looks very good to me.

@adamgreig adamgreig dismissed stale reviews from korken89 and hannobraun via 8548731 August 22, 2018 21:11
@adamgreig
Copy link
Member Author

I've updated to address @therealprof 's comments.

Copy link
Contributor

@therealprof therealprof left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM

@jamesmunns jamesmunns self-requested a review August 22, 2018 23:41
Copy link
Member

@japaric japaric left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The name "showcase" sgtm!

Copy link
Member

@posborne posborne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great idea. I think this is great for pulling in more people who may have a primary interest in building things and a secondary interesting in building them in Rust.

I think this could also appeal to those that are already Rust developers and looking to see what you can actually do on the embedded front (project ideas that are concrete).

Copy link

@cr1901 cr1901 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since nightly-only projects are permitted, I have no objections :)!

@japaric
Copy link
Member

japaric commented Aug 28, 2018

This RFC is now officially approved so I'm going to merge it.

bors r+

@rust-embedded/resources anyone up for implementing this? We used Gutenberg for the blog, perhaps there's some template we could use here?

bors bot added a commit that referenced this pull request Aug 28, 2018
187: [RFC] Embedded Rust Showcase r=japaric a=adamgreig

Follow-up from #147 and today's IRC meeting.

[Rendered](https://github.com/rust-embedded/wg/blob/embedded-rust-showcase/rfcs/0000-embedded-rust-showcase.md)

cc @rust-embedded/resources 

Co-authored-by: Adam Greig <[email protected]>
Co-authored-by: Adam Greig <[email protected]>
@bors
Copy link
Contributor

bors bot commented Aug 28, 2018

Build succeeded

@bors bors bot merged commit 8548731 into master Aug 28, 2018
@adamgreig adamgreig deleted the embedded-rust-showcase branch August 29, 2018 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-decision This RFC or PR needs to be approved by the majority of reviewers before it's merged RFC T-resources
Projects
None yet
Development

Successfully merging this pull request may close these issues.