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

No official way to install ninja is documented #11235

Closed
14 of 16 tasks
marc-hb opened this issue Dec 22, 2024 · 8 comments
Closed
14 of 16 tasks

No official way to install ninja is documented #11235

marc-hb opened this issue Dec 22, 2024 · 8 comments

Comments

@marc-hb
Copy link

marc-hb commented Dec 22, 2024

Description

This is a documentation gap; there is no specific category for that so filing as a "bug".

As detailed in #514 (comment) and many others, ninja is probably the most popular tool for building C/C++. It's also used outside C/C++ Unsurprisingly, including ninja in the default image has been requested many times over the years:

This has been rejected every time. One of the answers given practically every time: "it's easy to install at run time".

Because ninja is the top C/C++ build tool, how to install it should be in the official documentation.
https://docs.github.com/en/search?query=ninja

The official documentation should either:

As of now, installing ninja requires searching closed issues for scattered, conflicting and out of date advice. Random tips to install ninja on Windows vary (either vcpkg that comes and goes, unreliable choco, other?), mac recommendations are very slow (brew) and Linux samples miss the important and non-obvious "apt-get update" pre-requirement #2924

From #8348 (comment)

"The instrument is extremely easy to install in runtime."

I don't think it is "extremely" easy, see above. Especially not on Windows. But if it truly is, then documenting this will be too.

cc: @erik-bershel, @Darleev, @alepauly, @miketimeofeev, @maxim-lobanov, @dibir-magomedsaygitov

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • Windows Server 2019
  • Windows Server 2022
  • Windows Server 2025

Image version and build link

This is a documentation gap; there was no category for that.

Is it regression?

No

Expected behavior

https://docs.github.com/en/search?query=ninja shows something

Actual behavior

https://docs.github.com/en/search?query=ninja shows nothing

Repro steps

https://docs.github.com/en/search?query=ninja

@RaviAkshintala
Copy link
Contributor

Hi @marc-hb Thank you for bringing this issue to our attention. We are looking into this issue and will update you on this issue after investigating.

@Toxe
Copy link

Toxe commented Dec 23, 2024

Thank you for bringing this up. (Even though this shouldn't be an issue in the first place.)

@kelvinphilip889
Copy link

It will be rectify soon

@vidyasagarnimmagaddi
Copy link
Contributor

Hi @Toxe ,

  • The reference manual for ninja is maintained here, the source code is maintained in this github repo.

  • Also, docs.github.com is open source, if you feel a documentation is missing, please raise a PR with your changes on the repo, maintainers would be happy to review your contribution.

  • Ninja can be installed at runtime in our runner.

We are closing this issue as it does not pertain to github runner images.Thanks.

@sureshe456
Copy link
Contributor

Hi @marc-hb, I would like to inform you that we are unable to add these tools in the macOS images due to the need to maintain lightweight operating system images and limited sapce.

We request that you use the below code at runtime for your build. Thanks.
Screenshot 2025-01-01 at 11 38 59 AM

@marc-hb
Copy link
Author

marc-hb commented Jan 4, 2025

The reference manual for ninja is maintained here, the source code is maintained in this github repo.

Thanks but that is irrelevant.

Ninja can be installed at runtime in our runner.

I don't see where is the information added by this comment.

Also, docs.github.com is open source, if you feel a documentation is missing, please raise a PR with your changes on the repo, maintainers would be happy to review your contribution.

Very good point! However we would first need to know what is the recommended/approved way to install ninja on Windows (mac and Linux seem simpler and consensual).

Also, closing an issue before any work has ever started is strange.

We are closing this issue as...
... it does not pertain to github runner images.Thanks.

Wow, the second line is probably the most extraordinary so far. There's been a lot of disagreement on this topic but nothing like that yet. This issue is 100% about Github hosted runners; there is really zero doubt about that. Even digressions have stuck to Github hosted runners.

https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners

I would like to inform you that we are unable to add these tools in the macOS images due to the need to maintain lightweight operating system images and limited sapce.

ninja is low-level and extremely basic, stable and lightweight. For instance, it is minuscule compared to Visual Studio which is huge and has many (interactive) parts useless on a headless runner. This has been measured and discussed many times, most recently here: #514 (comment)

Anyway, this issue was NOT asking to revisit this wrong decision; there has already been 6 "wontfix" duplicates for that, see list at the top. This new issue was filed about mitigating this problem with new documentation.

We request that you use the below code at runtime for your build.

Thanks, but:

@Toxe
Copy link

Toxe commented Jan 4, 2025

@marc-hb It feels like no one has even read anything you have written.

@marc-hb
Copy link
Author

marc-hb commented Jan 4, 2025

@Toxe that's a bit extreme but yeah: the huge gap between the time and effort I put versus the level of attention I got is loudly screaming "Don't bother filing issues".

Well, things could be worse: at least this issue is public. We get some transparency at least. With some other services, the same would have been a ticket buried and hidden in some opaque support system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants