Skip to content
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

doc: Document Platform Support Tiers #245368

Closed
wants to merge 3 commits into from

Conversation

asymmetric
Copy link
Contributor

@asymmetric asymmetric commented Jul 25, 2023

As required by RFC046.

Closes #244686

cc @7c6f434c

Description of changes
Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.11 Release Notes (or backporting 23.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

platform-compatible package in Nixpkgs must successfully build in the Hydra and OfBorg CIs.
**TODO**: this seems to not be entirely true for Hydra, but true for OfBorg.

- `x86_64-linux`, `gcc` + `glibc`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should these be tables?

Copy link
Member

Choose a reason for hiding this comment

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

If we start with «copy what needs to be copied», let's keep RFC formatting. Then reformatting different parts of the text can be done at its own pace

## Tier 2 {#platform-support-tier-2}

Many of the packages are required to build successfully on these platforms in CI, the rest are supported on a best-effort basis by dedicated platform maintainers.
**TODO**: link teams
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Problem is that the @NixOS/aarch64-maintainers mandated by the RFC was never created

Copy link
Contributor Author

Choose a reason for hiding this comment

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


No current support, but previous support or clear path to add support.

- `aarch64-darwin`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This seems to be false now, since OfBorg builds for this platform.

Copy link
Member

@7c6f434c 7c6f434c Jul 25, 2023

Choose a reason for hiding this comment

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

Yes, it looks like right now after all the work done, two macOS versions are mostly on par (although capacity issues at ofBorg make it questionable if aarch64-linux has tooling of «a bit better than T3» but not really «almost T2»). And upstream pretends that the latter is the continuation of the former in some sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm inclined towards leaving this at the state it was when the RFC was accepted, since I don't have the resources to update the list on my own.

The RFC also requires documentation be kept up to date, so that could be the next step (and the task of the respective arch maintainers) once this is merged.

Copy link

Choose a reason for hiding this comment

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

I'm inclined towards leaving this at the state it was when the RFC was accepted, since I don't have the resources to update the list on my own.

In that case you should probably close this PR.

Adding inaccurate data to the documentation is not helpful.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well, it's inaccurate until someone fixes it, and seeing how nothing has happened in 3 years, this PR might at least get some things moving.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

But let's see if we gather more up to date info with this PR. Thank you for your contributions to that end.


## Further reading {#platform-support-tiers-further-reading}

For a formal definition of platform support tiers, see [RFC046](https://github.com/7c6f434c/rfcs/blob/platform-support-tiers/rfcs/0046-platform-support-tiers.md).
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 is better to include the definition in the manual: then small technical cleanups of the description can be made on the basis of technical review + not changing the intent of RFC.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What definition would you add here then?

Copy link
Member

Choose a reason for hiding this comment

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

I would stupidly add lines 55 to 275 from the RFC. This definitely covers «definition of support tiers» (and at least a half of it is definitely necessary). If this PR is «copy what RFC calls to copy» and updates (including formatting) are the next step, I think this is a reasonable way to handle definitions.

@@ -0,0 +1,88 @@
# Platform Support Tiers {#platform-support-tiers}
Copy link

Choose a reason for hiding this comment

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

Suggested change
# Platform Support Tiers {#platform-support-tiers}
# Non-normative Platform Support Tiers {#platform-support-tiers}

The RFC specifies these as "non-normative" (and also nearly four years out of date at this point).


A small number of packages might build successfully on these platforms.

- `x86_64-linux`, `gcc`+`glibc` — static
Copy link

Choose a reason for hiding this comment

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

I'm not sure this is correct. I don't think static linking is truly possible with glibc.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@7c6f434c what do you say?

Copy link
Member

Choose a reason for hiding this comment

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

We do have something that claims to be static linking with glibc. I am not sure which of the, say, NSS things it ends up doing with dynamic linking, but it does seem to link statically some stuff? As there are packages that depend on glibc.static, I tried to describe this build configuration as a platform…

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/2023-08-03-documentation-team-meeting-notes-69/31263/1

asymmetric added a commit to asymmetric/nixpkgs that referenced this pull request Sep 12, 2023
This commit adds minimal documentation of the supported platforms.
More exhaustive documentation would require producing a list of
platforms for each of the 7 tiers. This was attempted in NixOS#245368, but it
quickly became clear that that would be a long-term effort.

In the meantime, this commit adds the most important information to the
manual.
asymmetric added a commit to asymmetric/nixpkgs that referenced this pull request Sep 29, 2023
This commit adds minimal documentation of the supported platforms.
More exhaustive documentation would require producing a list of
platforms for each of the 7 tiers. This was attempted in NixOS#245368, but it
quickly became clear that that would be a long-term effort.

In the meantime, this commit adds the most important information to the
manual.
asymmetric added a commit to asymmetric/nixpkgs that referenced this pull request Oct 2, 2023
This commit adds minimal documentation of the supported platforms.
More exhaustive documentation would require producing a list of
platforms for each of the 7 tiers. This was attempted in NixOS#245368, but it
quickly became clear that that would be a long-term effort.

In the meantime, this commit adds the most important information to the
manual.

Co-authored-by: Valentin Gagarin <[email protected]>
asymmetric added a commit to asymmetric/nixpkgs that referenced this pull request Oct 2, 2023
This commit adds minimal documentation of the supported platforms.
More exhaustive documentation would require producing a list of
platforms for each of the 7 tiers. This was attempted in NixOS#245368, but it
quickly became clear that that would be a long-term effort.

In the meantime, this commit adds the most important information to the
manual.

Co-authored-by: Valentin Gagarin <[email protected]>
@asymmetric
Copy link
Contributor Author

Closing in favor of #254741

@asymmetric asymmetric closed this Oct 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document support tiers in Nixpkgs manual
3 participants