Skip to content

Conversation

mkoeppe
Copy link
Contributor

@mkoeppe mkoeppe commented Oct 22, 2023

Running the container manually instead of using the (convenient, but restrictive) container feature of GH Actions gives us more control:

Here we do the work for doc-build.yml and doc-build-pdf.yml only; the same is done in #36498 for build.yml.

📝 Checklist

  • The title is concise, informative, and self-explanatory.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation accordingly.

⌛ Dependencies

Copy link
Collaborator

@kwankyu kwankyu left a comment

Choose a reason for hiding this comment

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

LGTM.

Voilà. The cosmetic concern is now solved.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 23, 2023

Thanks!

Copy link
Contributor

@tobiasdiez tobiasdiez left a comment

Choose a reason for hiding this comment

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

As explained in the similar PR #36498, I'm strongly against reimplementing the container feature.

@kwankyu
Copy link
Collaborator

kwankyu commented Oct 23, 2023

It seems to mostly complicate the setup and essentially reimplements the container feature of github.

It seems not very complicated. It's a bit ugly though. But beauty is the least concern in the business of pipelining.

For the out-of-space issue it would be nice to first know what's the root cause to be able to evaluate if steps to fixing it go into the correct direction.

Yes. I am curious about that. Do you have any clue?

For potential speedups by caching the docker image, I'm not sure if this is really needed. Yes, from a conceptual viewpoint you only want to build sagelib once, and then reuse it - but well, it mostly takes 2-10 mins of incremental compilation anyway.

Yes, there are potential speedups, so why not try?

Personally, I think we have more pressing issues with the ci setup

I believe Matthias is working on this PR for pressing issues. One of them is the out-of-space issue. This PR gives us some time to investigate the root cause leisurely.

What are your pressing issues? Does this PR hinders solving them?

and better not introduce more moving parts (atm at least).

It's working well. Why is it a "moving part"?

Personally most important is that it fixes the cosmetic issue!

@kwankyu
Copy link
Collaborator

kwankyu commented Oct 23, 2023

If you disagree with this PR, then removing "positive review" is enough. "Requesting changes" seems inappropriate.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 23, 2023

Tobias wrote:

As explained in the similar PR #36498, I'm strongly against reimplementing the container feature.

As the record there shows, neither did he say that he is "strongly against" it, nor did he explain a basis for his opinion.

@tobiasdiez
Copy link
Contributor

It seems to mostly complicate the setup and essentially reimplements the container feature of github.

It seems not very complicated. It's a bit ugly though. But beauty is the least concern in the business of pipelining.

It limits what we can do in the workflow. For example, I don't think it would be easily possible to run github actions in the container context (e.g. something like #36510).

For the out-of-space issue it would be nice to first know what's the root cause to be able to evaluate if steps to fixing it go into the correct direction.

Yes. I am curious about that. Do you have any clue?

My guess would be that the git acrobatics maybe replaced a symlink by a copy of the files. In my opinion step number one would be to clarify why our image got 10% bigger and step 2 would be to print the used space before the build (github gives 14gb, minus 7gb of the container image should be still 7gb available - enough for a full build).

For potential speedups by caching the docker image, I'm not sure if this is really needed. Yes, from a conceptual viewpoint you only want to build sagelib once, and then reuse it - but well, it mostly takes 2-10 mins of incremental compilation anyway.

Yes, there are potential speedups, so why not try?

Caching the docker image doesn't decrease the time until you see the test results and built docs. You cannot start testing before the build is done, so you have to wait for the build and then do the next steps. In fact, it would be slower as caching and restoring a 7gb image takes about 3-5 mins. It would only reduce github's cpu time, but this is free anyway.

and better not introduce more moving parts (atm at least).

It's working well. Why is it a "moving part"?

It's one more thing that we have to maintain and that might break (similar to the "apply ci fixes" that also seemed to work and then broke the ci in many different ways). The github container feature is maintained by github, and not by us.

Personally most important is that it fixes the cosmetic issue!

Yes, for me as well. But we all know that this can be also fixed within the boundaries of the docker container.

@tobiasdiez
Copy link
Contributor

If you disagree with this PR, then removing "positive review" is enough. "Requesting changes" seems inappropriate.

It would be nice if the developer docs would contain a guide on how to handle such situations.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 25, 2023

there are potential speedups, so why not try?

Caching the docker image doesn't decrease the time until you see the test results and built docs. You cannot start testing before the build is done, so you have to wait for the build [...] It would only reduce github's cpu time, but this is free anyway.

That's an oversimplification. We do experience situations in which our CI queue is congested, namely in the 36 hours after a release has been made. Caching the built image can help reduce the congestion.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 25, 2023

It limits what we can do in the workflow. For example, I don't think it would be easily possible to run github actions in the container context

That's correct, but I am not aware of a need to run any Actions on the container in which the docbuild takes place.
Obviously it's easy to switch back to using the container feature, should a need for this arise that is more important than caching.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 28, 2023

Let's get this in please.

@kwankyu
Copy link
Collaborator

kwankyu commented Oct 29, 2023

Hopefully Tobias doesn't object anymore.

@tobiasdiez
Copy link
Contributor

tobiasdiez commented Oct 29, 2023

Sorry, but in its current form the disadvantages of this PR outweigh the positives. I might change my opinion once its clear how the caching should work, but with the information provided so far I don't see how caching will give us any improvement (given the limited cache quota of 10GB and the relatively slow cache upload/retrieval speeds).

@jhpalmieri
Copy link
Member

How do we resolve the conflict here? A poll on sage-devel?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 1, 2023

I am preparing the caching technique, which Tobias says he needs to see.

Should be ready in a bit.

@github-actions
Copy link

Documentation preview for this PR (built with commit 082585b; changes) is ready! 🎉

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 10, 2023

Closing this PR because it is merged into #36498, where the work will continue.

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

Labels

c: documentation c: scripts disputed PR is waiting for community vote, see https://groups.google.com/g/sage-devel/c/IgBYUJl33SQ

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants