-
Notifications
You must be signed in to change notification settings - Fork 140
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
Continued Maintenance of nrf-rs
crates
#432
Comments
CC @nrf-rs/all, @nrf-rs/nrf51, @nrf-rs/nrf52, @nrf-rs/nrf91. |
I'm afraid I will have to withdraw my interesting in taking over the org. |
I guess we will need to figure out where to go with |
@therealprof I am currently figuring out whether @hdoordt and I can/should take over maintenance of both crates for exactly that reason: I am in the middle of teaching an Embedded Rust class right now. Any input is greatly appreciated. The alternatives I can find:
Any of the three would be significant work, but I don't have any better ideas: maybe someone else does? I'm not entirely enamored with 3, as learning embedded Rust is hard without also having to figure out async/await stuff. But it is definitely doable. 2 and 3 would probably mean abandoning the Microbit v1 in the Disco Book, as Embassy doesn't support it. I personally think this is a good idea anyhow: the Microbit v2 is readily and cheaply available, and having a tutorial based on two slightly different pieces of hardware confuses the presentation in my opinion. |
Hi there! As @BartMassey said, the reason we're interested in taking on maintenance of The only way I see this work is if we get write access to the discovery repo as well. @adamgreig How does the rust-embedded org feel about this? @therealprof would you be willing to accept pull requests from us, or alternatively give us write access to the |
I was actually thinking porting the book to embassy-nrf some months ago (I ordered a microbit v2, then the plans fell apart because the store decided to take my money and not ship anything 😬). It doesn't look very good on the embedded ecosystem if the discovery book uses an unmaintained HAL, but IMO using a "maintenance mode, no new features" HAL doesn't look that much better. I still want to get the book ported eventually, if you guys want to help it'd be welcome, but if not I'll do it anyway. I guess it shouldn't be a problem to have both editions of the book given we already have both one for nrf and another for stm32f3.
@lulf has opened a PR for nrf51 support. embassy-rs/embassy#2469 . I still think we should focus on microbit v2 only for the book, thumbv7em is much nicer to work with.
You can use embassy-nrf with no async executor at all. you can only call blocking methods of course, but that yields exactly the same UX as nrf-hal. I agree the book should not use async, or at least not from the start, it could have a later chapter that introduces it. |
@Dirbaio Definitely would rather do one thing rather than two. While I can ship you a MB2 if you need me to — I have many of them 😀. |
Hi @hdoordt,
I would be thrilled to make you and @BartMassey maintainers for the That is also the reason why I'm a bit hesistant to go Also I'm not quite sure what the goal of Literally the only condition I would put on such a project is: the crate and all examples must always be compilable with a stable Rust version. (Again, no time to follow |
@therealprof Great to hear it!
Recently Embassy was released on crates.io, and is at least in part usable with a stable compiler. We'd have to investigate to what extent |
Generally in the REWG we apply the 4-eye principle. I would be happy to review PRs to the discovery book. Please submit them on a chapter-by-chapter basis. |
The goal of microbit-bsp was primarily to experiment with building a microbit BSP on embassy, and my intention in the long run was to submit changes to the
With rust 1.75 you can use embassy on stable, and moreover all crates are released on crates.io. Adding nrf51 support to embassy-nrf is the only missing piece to fully support microbit v1 which is in progress. |
@lulf Thanks for your assessment. I'd be happy to also add you as maintainer for
Are there still limitations on stable and if so, how severe are they? |
The only limitations AFAIK is that on stable the embassy 'async task stack' uses a memory arena that is configured using a feature flag, whereas on nightly it is the ideal size which requires the TAIT (type_alias_impl_trait) nightly feature. But in practice this is not a problem, more an optimization. |
Regardless of the ultimate fate of this crate, @hdoordt and I think it would be good to triage it and leave it in reasonable shape beforehand. I think folks have submitted good-looking PRs that deserve to be merged. If nothing else, I'm still teaching from it this academic quarter. @jamesmunns would like maintainer privs on the repo if you are willing. Our plan is to first tag all the Issues and PRs with priority and disposition, then merge as many of the PRs and close as many of the Issues as seems to make sense and isn't too hard. I'm not sure how long this will take, but we will start in the next few days. There's obviously still quite a bit of interest in this crate, as reflected by recent contributions. If we can get it back to current, maybe someone else will want to help maintain it with us ongoing. |
This proposal seems good to me, and if it would help I would be happy to look through #431 in detail. Another thought that occurs to me, if review is the limiting factor, is that it ought to be possible to rework #431 so that it's easy to see that it makes no change at all for users of the (At the expense of some source-level code duplication, but perhaps that's not a big problem if the goal is "one last release".) |
Oh wow, there have been a lot of new traits added to @qwandor's excellent Henk and I still waiting for commit privs so we can work in this repo directly. In the meantime, I am using my fork https://github.com/BartMassey-upstream/nrf-hal with my students (and will update it again now that I know). Once Henk and I can commit, we'll review the PRs and merge those as much as possible, and also triage and tag Issues. |
I can also help out as a maintainer if needed. |
@qwandor That would be cool. Thanks huge for your |
It looks like I've been added as a member by @therealprof, thanks! I've started to go through and review some of the PRs, but it looks like I don't have permission to merge them. Can someone give me the necessary permissions? I also see that the repository has been using bors, which seems to be deprecated. Can we disable it, or use GitHub merge queues instead? |
@qwandor looking now... |
@qwandor you are on the Can you link me to a PR you can't merge? It's possible there is some other rule (missing review or CI?) that is causing problems. |
Any PR, e.g. #425. The "Merge pull request" button shows greyed out, I guess because it's configured to use bors and I don't have permission to override that. But bors doesn't seem to work, which is consistent with https://bors.tech/ saying that it is deprecated. |
@qwandor I've disabled "require bors is green" in the "branch protection rules" for the Is it possible to merge now? |
Yep! Thanks. |
Does anybody else want to look through #431 before I merge it? |
Apologies for being away from this for so long. It's been a busy couple of weeks. I've had a student apply #431 on a fork and build some of our stuff. Everything seems to work, reportedly. Here's what I'd like to do if folks have no objections:
It's a lot, and a big project, although I've done parts of it in my own repos already. I wouldn't attempt doing it globally without the help of my students and the folks here. I also wouldn't do it unless there is general consensus that it is ok with both the Thoughts? Hell no is an acceptable response, especially with reasons. I realize that I'm new here: greater wisdom is appreciated. |
Thanks for looking at #431! I'm pretty sure there are no breaking changes since 0.16.0; looking at the diff the only API changes are adding new methods and types, so we should be able to release the current master as 0.16.1. Once #431 is merged I'd like to make a few more changes, in particular making the embedded-hal 0.2 dependency optional (behind a feature flag) before we make a 1.0 release. |
@BartMassey I've merged a couple more small PRs and sent #434 to prepare for a 0.16.1 release. Once that's in and published I'll merge #431. |
If you are looking into making a 1.0 release of these crates, I would advise you to have a look at the Rust API Guidelines. Complying with that is probably a bunch of additional work. |
#434 is merged but I don't seem to have permission to publish |
@qwandor I expected that. Hopefully we can find out who can publish for us. |
@eldruin Good point. I'll investigate the list of pre-1.0 dependencies and report back. I'll also go through the other checklist stuff: I have my own checklist https://github.com/BartMassey/crate-release that includes checking the API guidelines. @qwandor Someone should probably do that for 0.16.1 before we publish as well. In the worst case we publish as 0.17.0, which is not the end of the world. |
@qwandor The consensus in the embedded meeting is that you should be able to publish as a member of the |
This has been discussed on the #nrf-rs room since late 2023, but many of the original users + maintainers of
nrf-rs
crates are no longer actively using them, myself included. The HAL has not been actively maintained since Jonas left Ferrous. At the moment, @therealprof is the most active maintainer on the microbit crate, and @diondokter is still active in discussing some issues.These days I personally am often using
embassy
andembassy-nrf
. It is actively maintained, and a reasonable path forward for all Nordic devices outside of the nRF51, which is not supported (yet). The embassy-nrf HAL can be used in async or non-async modes.We are looking for maintainers of the nrf-rs crates by the end of January 2024, or we will likely archive the project to prevent further PRs being opened, and prevent users from getting the wrong impression about how active this crate is.
On chat, @BartMassey, @hdoordt, and
@thejpsterhave discussed potentially being interested in continuing limited maintenance.Opening an issue here to surface this discussion outside of just chat.
The text was updated successfully, but these errors were encountered: