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

Record build logs for non-default targets #787

Closed
Nemo157 opened this issue May 29, 2020 · 9 comments · Fixed by #2427
Closed

Record build logs for non-default targets #787

Nemo157 opened this issue May 29, 2020 · 9 comments · Fixed by #2427
Labels
A-builds Area: Building the documentation for a crate A-frontend Area: Web frontend C-enhancement Category: This is a new feature E-medium Effort: This requires a fair amount of work P-medium Medium priority

Comments

@Nemo157
Copy link
Member

Nemo157 commented May 29, 2020

Currently the build log only displays the log for the default target, e.g. https://docs.rs/crate/semver/0.10.0/builds/253654. We should record the logs for each built target, so that failures in non-default targets can be easily identified.

If some set of non-default targets do fail (especially if those targets were opted-in) we should also highlight this partial failure somehow so the crate developer may notice and fix the issue.

As part of this it would be good to migrate log storage from the database into S3, e.g. at a path like /build-logs/{build-id}/{target}.txt.

@jyn514
Copy link
Member

jyn514 commented Jun 8, 2020

We decided it would be ideal if we only showed this for targets that were opt-in. Since currently we build many targets by default, there's no way to tell that. We'll revisit this after the discussion of #532 finishes.

@jyn514 jyn514 added A-builds Area: Building the documentation for a crate C-enhancement Category: This is a new feature A-frontend Area: Web frontend E-medium Effort: This requires a fair amount of work P-medium Medium priority labels Jul 14, 2020
@jyn514
Copy link
Member

jyn514 commented Jul 18, 2020

Another point brought up by @jebrosen is that we use the same icon for builds and targets, so it's very confusing that targets has info that builds doesn't. We should probably change the icon until this is fixed.

@Nemo157
Copy link
Member Author

Nemo157 commented Oct 26, 2020

I'm tempted to look into this soon, @jyn514 in reference to only showing these for opt-in, it seems like just showing the log on the /builds page for all builds attempted would be ok; it's just the "highlight this partial failure somehow so the crate developer may notice and fix the issue" that really needs an opt-in?

@jyn514
Copy link
Member

jyn514 commented Oct 26, 2020

@Nemo157 sure, I'm fine with displaying this on the /builds page. I'm a little concerned about bloating the size of the build logs though - maybe we could only store the log if the build failed or the build was for the default target?

@pietroalbini
Copy link
Member

I don't think storing compressed build logs will make an impact on our storage costs, especially compared to the size of documentation.

@jyn514
Copy link
Member

jyn514 commented Oct 26, 2020

@pietroalbini remember we currently store build logs in the database, not s3. We've had storage issues on the prod server in the past, although mostly from the large docker images. I'll check how much space the build logs are taking up currently.

@pietroalbini
Copy link
Member

@jyn514 right! we should also switch storing logs to S3.

@Nemo157
Copy link
Member Author

Nemo157 commented Oct 26, 2020

Yes, part of this was moving build logs to S3 (@pietroalbini is it worth migrating existing logs there, or just start storing new ones there?).

@pietroalbini
Copy link
Member

@Nemo157 I think migrating the existing logs will make the implementation simpler and it will shrink the database to a more manageable size. We don't need to do it ASAP though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-builds Area: Building the documentation for a crate A-frontend Area: Web frontend C-enhancement Category: This is a new feature E-medium Effort: This requires a fair amount of work P-medium Medium priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants