Moving Redox OS support to Tier 1
@jackpot51 is already working on this.
Since Aug 27, 2023.
- Dominant language
- Rust
- Stars
- 24.1k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 365
Description
For context, we recently made a policy on platform support. The gist of that is that a platform is Tier 1 if we have CI for it. I listed Redox there as a Tier 2 platform, because we don't have CI for it.
We want to support Redox OS, because it's an awesome project. uutils is also the default implementation of coreutils on Redox (at least it was when I last checked). However, we have probably accidentally broken support for Redox since https://github.com/uutils/coreutils/pull/2550. For example in https://github.com/uutils/coreutils/pull/5064, but there are probably many more failing tests to find. This is due to no fault of the authors of the PRs that broke the support, because it is simply impractical for us to keep compatibility without a Redox CI job. The longer we wait with setting this up, the harder it will be to fix.
I think the way to support this is as follows:
- Investigate how bad the damage is, by building and testing the utils on Redox.
- Fix some issues that break the entire build for all utils (e.g. the
terminal_sizeissue mentioned below) - Figure out which subset of utils that already compiles and adapt this feature set accordingly:
https://github.com/uutils/coreutils/blob/1f081f3716b181cafbd0be9e2ef8d42a3c554330/Cargo.toml#L239-L245 - Create a CI job to build, test and lint on Redox
- Update our platform support page to make the support "official" :)
- Open an issue to keep track of all the utils that should work but don't.
- Then we can start accepting fixes to enable more utils.
I'm not sure what the best way is to add a CI job for Redox. We probably need to to set up a VM (similar to how we do FreeBSD).
Some things to explore:
- Are there examples of projects that already have Redox tests in their CI?
- What subset of utils make sense to support on Redox?
@jackpot51, hope you don't mind me pinging you here. I've tried to follow up on the outstanding issues from #2550:
filetimeseems to have made a release in the meantime here: https://github.com/alexcrichton/filetime/pull/72termsizehas been removed from our dependency tree and replaced withterminal_size(https://github.com/uutils/coreutils/pull/3864). However,terminal_sizemakes no mention of Redox, so I suspect it won't work. We depend on this directly inlsand thecoreutilsmulti-call binary, but also viaclap(because we enabledwrap_helpfeature). So maybe we should first askterminal_sizeto support redox. Otherwise we'll have to think about workarounds.- Do you have any advice for a CI setup that works well in your opinion? Or any opinions/ideas/advice about this effort in general?
cc @sylvestre @cakebaker any opinions on this? Anything I missed?
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.
Assessment
This issue has not been assessed yet.