Closed Bug 1645422 Opened 5 years ago Closed 4 years ago

Set up a Docker image with compiler explorer so we have a long-lived/consistent image for easy development

Categories

(Developer Infrastructure :: Source Code Analysis, task, P4)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: tjr, Assigned: tjr)

References

Details

No description provided.

I see there is https://github.com/madduci/docker-compiler-explorer, which seems to be working.
Tom: do we have a specific use-case or need that warrants a fork / copy, here? If so, I think this bug needs updating.

Btw, there's a very minor issue with the Docker image, that I've filed a pull request for[1]. I'm using that pull request to test how well-maintained the docker image is :-)

[1] (The issue is that the compiler-explorer repo has moved URL. I consider this very minor because GitHub provides redirects for repositories that are moved between account and teams. See https://github.com/madduci/docker-compiler-explorer/pull/2 for status)

Flags: needinfo?(tom)

(PR was merged)

There were a few things we wanted. Here's the RRA.

  • We had talked about restarting the Docker container every X hours to wipe it fresh. I'm not really sure of the value of this, given if the container can be compromised, it can be re-compromised.
  • We wanted a notification that data should ideally not be saved to the server via the 'Share' feature, and a warning that it may be wiped at any time.

June, was there some other modification(s) we cared about?

Flags: needinfo?(tom) → needinfo?(jewilde)

Also, some of the revisions from https://reviews.llvm.org/people/revisions/526/ but I don't remember which of these are the clang-query improvements we wanted to use as I haven't been keeping up with what's going on there

OK, that's useful. It seems I was missing a lot of context here. (Until comment 3 I was expecting the docker image to be used on the developer's machine for individual testing and did not know and didn't know we want this hosted on Mozilla infra)

Looking at the RRA, I suppose we'd solve a lot of the issues if we put this behind SSO and required permissions (e.g., either request an access group for this machine or become inventive with existing flags, e.g., L1, L3 access, holly access and whatnot).
AFAIU that would allow us not to wipe things and wouldn't require off-tree patches that bodge warnings on top of the share feature.

(In reply to Frederik Braun [:freddy] from comment #6)

Looking at the RRA, I suppose we'd solve a lot of the issues if we put this behind SSO and required permissions (e.g., either request an access group for this machine or become inventive with existing flags, e.g., L1, L3 access, holly access and whatnot).

I think L1 access would certainly be sufficient. If you want to investigate how to put it behind SSO go for it, but that seemed like a lot of work to me....

I think there was a way to "just" throw a reverse proxy on a service. I'll find out.

Priority: -- → P4

The Repo this is being on in is https://github.com/mozilla-services/civet-docker

Why do we need this? What benefits brings this to us?

Flags: needinfo?(tom)

(In reply to Andi-Bogdan Postelnicu [:andi] from comment #10)

Why do we need this? What benefits brings this to us?

In general, developing a static analysis query is way easier in an interactive way using Compiler Explorer than setting up a toolchain and environment locally.

As far as running our own vs godbolt; godbolt only has clang-query trunk; which may not behave the same way as our own static analysis toolchain. By running our own we can slim down CE to the tools we care about (vs their tremendous overwhelming list of compilers+tools), make sure we match the versions correctly, and match any local patches that are valuable to apply. Plus customize CE to our needs - so far all the workflow-bandaid patches to CE I've made have been happily accepted upstream but that may not always be the case.

Flags: needinfo?(tom)

OK, thanks, do you think we can close this now?

Flags: needinfo?(tom)

No, while we have a dev instance running, we still need to do the RRA, set up the domain name, and deploy it in production

Flags: needinfo?(tom)
Blocks: 1715039
Blocks: 1715040

I'm going to call this done with the puppet config we have at https://github.com/mozilla-services/civet-docker

Assignee: nobody → tom
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.