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

Add a job that runsmake full-source-dist, but mark it as "allow fail" for now #252

Draft
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

DilumAluthge
Copy link
Member

@DilumAluthge DilumAluthge commented Nov 15, 2022

In a follow-up PR, we'll take this output and upload it to S3. But for now, let's just get this PR in, so that we can make sure that the full source dist doesn't regress again.

Refs #190 (but does not fix it, because we still need to actually upload them to S3, which we'll do in a follow-up PR).

@DilumAluthge DilumAluthge changed the title Make sure that make full-source-dist doesn't regress Add a job that runsmake full-source-dist, but mark it as "allow fail" for now Nov 15, 2022
@DilumAluthge
Copy link
Member Author

I'm getting:

Cannot change ownership to uid 1000, gid 1000: Invalid argument

@staticfloat @ararslan Any ideas what's going on?

# Drop default "registries" directory, so it is not persisted from execution to execution
persist_depot_dirs: packages,artifacts,compiled
version: '1.6'
timeout_in_minutes: 10
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 full-source-dist may take more than 10 minutes... I've never timed it but anecdotally it feels like an eternity. It does a source build of all dependencies then Julia then all documentation.

Copy link
Member Author

Choose a reason for hiding this comment

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

Wait, it actually builds Julia? I thought it just downloads the source code of the dependencies.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah haha. It builds Julia so that it can use the built binary to build the documentation.

Copy link
Member Author

Choose a reason for hiding this comment

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

😬

Copy link
Member Author

Choose a reason for hiding this comment

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

Hmmm. A full from-source build of the dependencies and Julia takes more than 30 minutes on our fastest CI machines. See e.g. https://buildkite.com/julialang/julia-master-scheduled/builds/159#01847a53-374d-441c-90cc-c4dcfef6ae22

Maybe we should move the full-source-dist job to the once-daily scheduled pipeline. That's where the existing USE_BINARYBUILDER=0 job lives.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm now downloading a pre-built Julia, but it seems to insist on building everything (including LLVM) from source.

Copy link
Member Author

Choose a reason for hiding this comment

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

@ararslan What's the difference between make full-source-dist and make full-source-dist USE_BINARYBUILDER=0? Shouldn't they both produce the same output? Presumably we shouldn't have to build LLVM from source just to be able to build the docs and download the source tarballs of all dependencies, right?

Copy link
Member

Choose a reason for hiding this comment

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

USE_BINARYBUILDER=0 ensures that the source code of the dependencies is included in the resulting tarball alongside Julia's source code. It's meant to be platform-agnostic and buildable without network access, which IIUC isn't possible with the default JLL-based dependencies.

Copy link
Member Author

Choose a reason for hiding this comment

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

Sure, but shouldn't make full-source-dist do that regardless of the value of USE_BINARYBUILDER?

I guess what I'm getting at is, do we need to actually do a full from-source build of LLVM etc just to build this tarball? AFAICT, the tarball needs the following contents:

  1. Source code of Julia
  2. Source code of all of Julia's dependencies
  3. HTML documentation

It seems to me that we can use a regular Julia build to build the HTML docs, and then download the source code of all the dependencies, and then stick everything together.

Copy link
Member

Choose a reason for hiding this comment

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

We definitely could do that, the Makefile just isn't set up that way

@ararslan
Copy link
Member

Any ideas what's going on?

None at all from me. Where are you seeing that? I still haven't gotten used to navigating the buildkite UI...

@DilumAluthge
Copy link
Member Author

Any ideas what's going on?

None at all from me. Where are you seeing that? I still haven't gotten used to navigating the buildkite UI...

Here's an example log: https://buildkite.com/julialang/julia-buildkite/builds/1144#01847d9b-3335-4515-8457-3e87976b0331

@staticfloat
Copy link
Member

staticfloat commented Nov 16, 2022

Try adding uid and gid parameters to the sandbox plugin, like this:

I also suggest using a newer package rootfs image; we've made lots of improvements since the v4.X days.

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

Successfully merging this pull request may close these issues.

4 participants