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

Split Dockerfile into dev+prod version #131

Merged
merged 16 commits into from
Oct 5, 2016

Conversation

bhearsum
Copy link
Contributor

Along with https://bugzilla.mozilla.org/show_bug.cgi?id=1304101, I've come to realize just how inefficient the dev workflow is right now if you have a slow connection. There are numerous places where we don't use caches properly, and we rebuild the UI far more than necessary. There's lots of going in this patch, so I'll make some inline comments to try to explain it all.

@@ -3,12 +3,10 @@ FROM python:2.7-slim
MAINTAINER bhearsum@mozilla.com
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think this file is pretty straightforward - I'm just stripping out all the test-only stuff. It's a PITA to test it now though, because there's no way to fire up prod-style containers without tweaking docker-compose.yml. Perhaps I should add a companion docker-compose.yml that uses this docker file? In the meantime, you can adjust the "dockerfile" option, remove volume mounts, and the entrypoint from admin to make it work.

Copy link
Contributor

Choose a reason for hiding this comment

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

Tweaking docker-compose.yml worked fine from my side

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, it works fine, but it's a PITA to do if you want to regularly test production-like containers.


# Same thing for UI dependencies.
WORKDIR /app/ui
RUN npm install
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The idea of this and the previous block is that we want to do all the network stuff first. Copying in just the absolutely necessary files means we don't re-run pip nor npm install unless something that affects their outcome changes.

# We also copy in and build the UI early. If we did this after copying everything,
# it would rebuild even when Python files change.
COPY ui/ /app/ui/
RUN npm run build
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Similarly, we copy in the UI on its own, and then build it before copying in anything else. This means that you'll have this command cached if you're only hacking on the backend.

Copy link
Contributor

Choose a reason for hiding this comment

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

Nice!

@@ -1,8 +1,22 @@
tox==2.3.1 \
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This file used to be our pre-tox one, but I've repurposed it and moved the requirements that we used to specify in tox.ini into here, and pinned them. This should help with reproducability.

docker build --pull -t balrogtest .
docker run --rm --entrypoint /app/scripts/test-entrypoint.sh balrogtest $@
docker build -t balrogtest -f Dockerfile.dev .
docker run --rm -v `pwd`:/app --entrypoint /app/scripts/test-entrypoint.sh balrogtest $@
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Using a volume mount here means that ".tox" ends up on the host, which means we don't re-download and re-install all of the test dependencies with every run. This should be a big speed up for those on slower connections.

apt-get -q update
apt-get -q --yes install mysql-client
apt-get clean

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was moved to Dockerfile.dev.

@bhearsum
Copy link
Contributor Author

Something that his explicitly doesn't fix is the permissions problem on files created inside of the containers (eg, ui/dist). I'm not sure this is fixable right now after reading through moby/moby#2259.

@nthomas-mozilla, @nurav, @JohanLorenzo - I need to take a second pass at this with fresh eyes next week, but if any of you have a chance to give it a try I'd appreciate it.

@JohanLorenzo
Copy link
Contributor

The changes make sense to me. FWIW, I had to recreate the images locally, otherwise balrogadmin complains about mysql not being installed. In order to test locally, I wiped every images I had, git clean -fdx my repo, applied your changes and built'em. I've had no issue so far, and the dev built the UI twice, like expected.

The prod instance works from my side as well. I just had to comment out both volumes and entrypoints, just like you said.

Regarding the failure in CI, I haven't experienced it, run-tests.sh works fine here.. It seems related to volumes mounting after building the dev instance. Maybe -v pwd:/app doesn't work while already being in a dockerized environment?

# We also copy in and build the UI early. If we did this after copying everything,
# it would rebuild even when Python files change.
COPY ui/ /app/ui/
RUN npm run build
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice!

docker build -t balrogtest -f Dockerfile.dev .
# Using a volume mount here ensures that the tox cache dir ends up on the host,
# which avoids re-installing test dependencies every single time.
docker run --rm -v `pwd`:/app --entrypoint /app/scripts/test-entrypoint.sh balrogtest $@
Copy link
Contributor

Choose a reason for hiding this comment

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

Good idea!


WORKDIR /app/ui
RUN npm install
RUN npm run build

RUN find . -maxdepth 1 -not -name dist -exec rm -rf {} \;

RUN apt-get -q update \
Copy link
Contributor

Choose a reason for hiding this comment

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

Is update still necessary here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I suppose not!

@@ -3,12 +3,10 @@ FROM python:2.7-slim
MAINTAINER bhearsum@mozilla.com
Copy link
Contributor

Choose a reason for hiding this comment

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

Tweaking docker-compose.yml worked fine from my side

@bhearsum
Copy link
Contributor Author

The latest commits do a few more things:

  • Stop doing any UI stuff in Dockerfile.dev, because the node_modules and built UI don't get used in dev because of the volume mount. This happens as part of startup now.
  • Get rid of test-entrypoint.sh in favour of merging it in with run.sh. This seemed like an obvious improvement after building the UI at startup.

Permissions are still an issue, and I don't think I can do anything about it. The workaround discussed in the aforementioned docker issue is to run with --user, and then create a user with that UID at startup. Unfortunately, I can't find a way to pass along the correct UID in docker-compose.yml. $USER is typically available in the environment, but $UID is not. Unless I can find a fix, everything created at startup (.tox, .cache, ui/{dist,generated,node_modules}) will be root-owned. We can mitigate this a bit by updating docs to have people build their UI on the host before running docker-compose, but it's not a perfect solution.

I still need to figure out the Docker run issue in CI, too.

@bhearsum
Copy link
Contributor Author

I asked the Taskcluster folks about the Docker error, and it looks like volume mounts are not supported:

16:39 < bhearsum> unrelated to the above, is it expected that bind mounts with dind don't work? i get: https://pastebin.mozilla.org/8913587
16:42 < dustin> I suspect so
16:42 < dustin> since the source mount would be from the parent
16:42 < bhearsum> ah, darn
16:43 < bhearsum> does that mean that when i run a container in a dind-enabled image, that it ends up running that container on its hosts docker daemon?
16:43 < dustin> yes

Given that, building the UI in the Dockerfile may be unavoidable.

@JohanLorenzo
Copy link
Contributor

JohanLorenzo commented Sep 28, 2016

it looks like volume mounts are not supported

Oooooh 😞 . We can also mitigate that by either updating the documentation (downloading the dependencies is only done once during the image building, after node_modules is fetched on the host machine), or by creating a Dockerfile.test. I believe the first one is better, as it doesn't create another new environment.

@bhearsum
Copy link
Contributor Author

Can you flesh out exactly what the first option is, I'm not sure I fully understand what you're suggesting. I do agree that adding a Dockerfile.test is undesireable though - I don't want to be in a situation where local tests are different than CI tests.

@bhearsum
Copy link
Contributor Author

@JohanLorenzo and I brainstormed and hacked on this a bit this morning. We realized that one of the biggest pain points for local development is that "npm install" and "npm build" are sometimes run in the Docker container, and other times run on the host. Because of the aforementioned permissions issue with volume mounts, this can be very difficult. There can also be some problems if the host node/npm is incompatible with the one used in Docker.

We came up with a clever idea to fix this (mostly @JohanLorenzo), which is to run the UI with "lineman" run in its own container. Doing this means that all npm install and build commands run within the container, and lineman will automatically rebuild the UI whenever files change - eliminating the need for rebuilds on the host. This has the nice bonus of forcing local development to use non-minified sources, which makes debugging in the browser a LOT easier.

Johan is also looking at relocating the "generated" and "node_modules" directory into .cache, to avoid having root-owned files in ui/.

The other issue we still had to deal with was the inability to volume mount in Taskcluster. This means that we cannot rely on volume mounts to run tests. To workaround this, we've started copying the entire repository into the image in Dockerfile.dev. This ends up overridden by the volume mount when running docker-compose, but it eliminates the need for a volume mount in run-tests.sh.

This needs

@bhearsum
Copy link
Contributor Author

I've tested this personally on Linux, Mac and Windows. It worked 100% out of box on Linux and Mac, but I'm running into issues on Windows, probably related to the volume mount, or possibly related to me doing something dumb. @F3real, would you mind giving this a try? I've already merged #134 into this branch, but if you're able to make it work I'd love to know what, if any, changes you have to make.

I'd also appreciate some testing from other folks on Linux and Mac, there may be some different configurations that I'm not covering in my own testing. @rail, @nthomas-mozilla, @nurav, @njirap, @xunga - if any of you have time, I'm curious how "docker-compose up" goes for you.

Regardless of platform, I strongly advise removing all existing Balrog Docker images before you try to run docker-compose.

@F3real
Copy link
Contributor

F3real commented Oct 1, 2016

Well I'll make another PR so that in Windows we see entrypoints in Dockerfiles. But this still won't fix issue completely (it will just help docker-up compose not break at start). Main problem is that by default all files miss execute permission and then they get reported as missing.
I was trying to fix it using
RUN chmod +x <some file>
but that just fixes one file and it still breaks.
Now things I still haven't tested are:

  1. Simply adding execute to all files ( not sure how to do this for all balrog_db and pub since they get just built from .yml file, or maybe I still just haven't found dockerfile for them).
  2. Also I heard that you can specify user who owns files in dockerfile so they aren't owned by docker, but I didn't really look into it yet.

@bhearsum
Copy link
Contributor Author

bhearsum commented Oct 3, 2016

Thanks @F3real, I appreciate you testing this.

@rail
Copy link
Contributor

rail commented Oct 5, 2016

The first time I ran docker-compose build because apt-get install failed to download a file due to some network issues (remote closed connection). We can improve this by using apt-get ... -o Acquire::Retires=5 install ... instead. Not a blocker though.

@bhearsum
Copy link
Contributor Author

bhearsum commented Oct 5, 2016

Rail ran into an interesting issue when testing this out. It looks to be the same or related to docker/compose#2172, and appears to be rooted in a race condition when docker-compose updates /etc/hosts for linked containers. My suspicion is that it only happens with older versions of docker-compose, and possibly only with certain versions of Docker. Rail was able unable to reproduce it consistently, so I'm not going to block on it -- everything worked for him otherwise.

@bhearsum bhearsum merged commit d75baaf into mozilla-releng:master Oct 5, 2016
F3real pushed a commit to F3real/balrog that referenced this pull request Oct 5, 2016
@JohanLorenzo
Copy link
Contributor

Yay! 🙌

leonidcliqz added a commit to cliqz/balrog that referenced this pull request Jul 14, 2017
* [balrog-ui] bug 1281912: Rules pagination bad wrapping (mozilla-releng#36). r=bhearsum

* [balrog-ui] Build latest UI.

* Pick up latest UI.

* bug 1248475: Rate changes and rule ids not shown on rule history (fixes mozilla-releng#113). r=bhearsum

* [balrog-ui] Use larger modal for rule duplication (follow-up from bug 1296683).

* Update sample data to include new-style GMP rules and releases. (mozilla-releng#118)

* Pick up latest UI.

* [balrog-ui] Update api proxy port to use the default admin api port.

* [balrog-ui] bug 1246675: UI for Scheduled Rule Changes (mozilla-releng#30). r=nthomas

* Pick up latest version of UI.

* Bug 1299203: Part 1, remove ui submodule

* bug 1246675: Don't allow changes in the past to be scheduled (mozilla-releng#119). r=nthomas

* Bug 1299203: Part 3, Make UI tests run in the docker image

* Add PhantomJS in PATH thanks to node package
* Add testem to node_modules binaries

* Bug 1299213 - Clean up ui/* now that no submodule is used (mozilla-releng#115). r=bhearsum

* bug 1270827: support substitution in DesupportBlob urls (mozilla-releng#122). r=bhearsum

* Switch to more compact form of mock.

* Version bump for next release.

* Add test to ensure that changes cannot be scheduled for the same row at the same time.

* Don't allow multiple scheduled changes for the same PK.

* Bug 1278543: history field view doesn't work on integer columns (mozilla-releng#124). r=bhearsum

* Bug 1041584 - move balrog whitelist checks out of AUSDatabase (mozilla-releng#121). r=bhearsum

* Bug 1303057 - docker-compose up should build ui (mozilla-releng#125). r=bhearsum

* Add LICENSE.

* Add IRC notifications to CI jobs.

* Backout IRC notifications because they broke CI.

* Bug 1112628: disallow deletion of releases that have a rule.mapping or rule.whitelist pointing at them (mozilla-releng#126). r=bhearsum

* Version bump for 2.9

* bug 1270827: support substitution of %OS% in DesupportBlob urls (mozilla-releng#127). r=bhearsum

* bug 1296685: Added an optional attribute "product" to all blob schemas (mozilla-releng#129). r=bhearsum

* bug 1304101: Switch to 2.7-slim docker image. (mozilla-releng#128). r=jlorenzo

* bug 1296685: remove dead attributes from apprelease blobs (mozilla-releng#130). r=bhearsum

* Version bump for 2.10

* bug 1305980: Remove whitelist checks from desupport blobs. (mozilla-releng#133). r=vjoshi

* Version bump for 2.10.1

* Bug 1284481: script to extract "active" data from balrog (mozilla-releng#132). r=bhearsum

* Further reduce releases_history limit in active data extraction query; update sample data.

* Revert sample data because of issues.

* Use /bin/bash instead of run.sh as our ENTRYPOINT to workaround volume mount issues on Windows (mozilla-releng#136). r=bhearsum

* Add .gitattributes file (mozilla-releng#134). r=bhearsum

* bug 1284481: script to extract "active" data from balrog (mozilla-releng#139). r=bhearsum

* Update sample data with a dump from production.

* bug 1304101: Split Dockerfile into dev+prod version (mozilla-releng#131). r=rail,jlorenzo

* Add a horrible hack to greatly reduce CPU usage of balrogui container. (mozilla-releng#140). r=jlorenzo,nthomas

* Copy in requirements files early again (mozilla-releng#141). r=jlorenzo

* bug 1170919: Raise value error of channel not in 'fileUrls' (mozilla-releng#138). r=bhearsum

* bug 1304082: fix issues with change notifier in production (mozilla-releng#142). r=rail

* Use volume mount when running tests in local dev, but not in Taskcluster. (mozilla-releng#147). r=jlorenzo

* bug 1302838: Reinstated Sentry logging (mozilla-releng#144). r=bhearsum

* Version bump for latest release.

* Add run.sh to the prod container.

* Reduce docker container from 776.9MB to 246.6MB (uncompressed) (mozilla-releng#153). r=bhearsum

Each command in a Dockerfile creates a new layer. To keep the final
docker image small build dependencies must be removed in the same
Dockerfile command. Removing data in separate commands does not make
the final image smaller.

This commit uses the above technique for adding and building with pip+gcc
and node+npm dependencies. It also adds a few extra cleanup commands for
files in /root/cache/.pip, /root/.npm and /tmp/phantomjs.

* Bug 1282898: allow multifile updates that point directly to blobs instead of product names (mozilla-releng#145). r=bhearsum

* manage-db: Prevent using socket when connecting to localhost

Mysql client fails when port forwarding is done between docker and host machine.
It also allows port to defined in URI.

* manage-db: Extract common default command

* manage-db: Make port not required

* Add extract command to run.sh (mozilla-releng#154). r=jlorenzo

* Bug 1309660 - add support for backgroundInterval (mozilla-releng#158). r=bhearsum

* Migrate balrog.submitter.api to balrogclient (mozilla-releng#159). r=bhearsum

* Bug 1282891: support fallback mappings when background rate roll fails (mozilla-releng#160). r=bhearsum

* bug 1311730: Gracefully handle missing addons section (mozilla-releng#162). r=rail

* Bump version for next release.

* bug 1301066: autocomplete release name by peeking into blob (mozilla-releng#152). r=bhearsum

* bug 1311705: Add change notifier for scheduled rule changes (mozilla-releng#155) r=nthomas

* bug 1282569: handle requests that don't substitute %PRODUCT%, et. al. (mozilla-releng#161). r=bhearsum

* bug 1311763: Don't dump permissions or permissions history. (mozilla-releng#156). r=nthomas

* Bug 1313732: add fallback mapping to scheduled changes ui (mozilla-releng#164). r=bhearsum

* Version bump for next release.

* Fix db creation when sample data doesn't match current schema version. (mozilla-releng#168). r=rail

* Bump cache control to 90s. (mozilla-releng#170). r=mostlygeek

* bug 1170797: "unhang" release upload screen if no file provided (mozilla-releng#163). r=bhearsum

* bug 1312562: Don't raise exception when fileUrl can't be found for partial update (mozilla-releng#171). r=rail

* Forward SMTP_TLS to balrogadmin to match other env vars

* Separate changing values from unchanged in email notifications

* Add support for conditions to getOrderedRules.

* Support filtering by product when retrieving rules.

* bug 1310218: create User Roles table and web APIs (mozilla-releng#167). r=nthomas,jlorenzo

* bug 1310187: Move Scheduled Changes conditions to their own table (mozilla-releng#165). r=nthomas,jlorenzo

* Version bump for next release.

* Bug 1316929 - temporarily whitelist stage bucket to allow testing of … (mozilla-releng#176)

* Bug 1316929 - temporarily whitelist stage bucket to allow testing of nightlies Tier-2. r=bhearsum, r=Callek

* Backout stage bucket whitelisting from bug 1316929 (mozilla-releng#176) because it is no longer necessary.

* bug 1315335: JSON parse errors should be exposed in New Release UI (mozilla-releng#177). r=bhearsum

* bug 1315365: Add mysql-client so that mysqldump will be available. (mozilla-releng#179). r=mostlygeek

* bug 1287593: Add create-db command to run.sh (mozilla-releng#180). r=bhearsum

* bug 1310187: Make Scheduled Changes conditions configurable (mozilla-releng#151). r=jlorenzo,nthomas

* bug 1279231: move balrog docs into the repo (mozilla-releng#166). r=bhearsum

* Version bump

* Add link to RTD (mozilla-releng#183). r=bhearsum

* bug 1310209: Implement SignoffsTable and web apis for it. (mozilla-releng#181). r=nthomas,jlorenzo

* bug 1170797: "unhang" release upload screen if no file provided (mozilla-releng#186). r=bhearsum

* Link change (mozilla-releng#191). r=bhearsum

* bug 1285975: product/channel filter not updated after adding/editting (mozilla-releng#188). r=bhearsum

* bug 1310188: Use custom column types for JSON columns (mozilla-releng#184). r=nthomas,jlorenzo

* bug 1301067: don't close modals without confirmation when clicking outside of them (mozilla-releng#193). r=bhearsum

* bug 1282841: can't set background rate to 0 for new rules (mozilla-releng#189). r=bhearsum

* Bug 1310213 - enable scheduled deletions (mozilla-releng#182). r=bhearsum

* bug 1310220: Return empty list when user has no roles (mozilla-releng#195). r=bhearsum

* Version bump for next release.

* Build Docker Images in response to Release events.

* Switch to create event for docker images.

* bug 1308067 - Fixed 'DeprecationWarning: Required is going away in WTForms 3.0' warnings (mozilla-releng#197). r=bhearsum

* bug 1315369: pull latest balrogdb from hosted location when rebuilding local db (mozilla-releng#192). r=bhearsum

* bug 1281459: stop eating exceptions (mozilla-releng#194). r=bhearsum

* bug 1310213: Correcting UI and backend for Delete Scheduled change update button (mozilla-releng#198). r=bhearsum

* bug 1312560: handling unparsable versions as BadDataError (mozilla-releng#199). r=bhearsum

* changing Required to InputRequired

* bug 1325460: rule history ui broken by bug 1285975 (mozilla-releng#201). r=ninadbhat

* Version bump for next release.

* Turn off signal registration in Sentry to avoid submitting unwanted exceptions to Sentry.

* Send 400 for BadDataError. (mozilla-releng#202). r=rail

* Version bump for next release. (mozilla-releng#203). r=rail

* Update active data extraction to include new Scheduled Changes tables. (mozilla-releng#204). r=rail

* Bug 1313719 : History view for scheduled rules (mozilla-releng#207). r=bhearsum

* Try new way of enabling release events. (mozilla-releng#209). r=rail,owlish

* bug 1310188: Enable Scheduled Changes for Releases and Permissions (mozilla-releng#196). r=nthomas

* Version bump for next release. (mozilla-releng#212). r=jlorenzo

* Add initial version of contract tests (mozilla-releng#210). r=bhearsum

* bug 1310210: Implement Required Signoffs tables (mozilla-releng#208). r=nthomas,jlorenzo

* bug 1310220: UI for User Roles (mozilla-releng#206). r=bhearsum

* bug 1310217: Make Agent Aware of Release and Permissions Scheduled Changes (mozilla-releng#214). r=bhearsum

* bug 1310214: UI for scheduled changes of Releases (mozilla-releng#205). r=bhearsum

* Update docs with new bug links. (mozilla-releng#216) r=jlorenzo

* Improve text on button for creating new objects with a Scheduled Change. (mozilla-releng#220). r=mtabara

* Configure logging before using it in public.wsgi (mozilla-releng#219) r=bhearsum

* Bug 1308625 - improve active data extraction script to grab referenced partials (mozilla-releng#211). r=bhearsum

* Bug 1308625 : Adding extra arguments to skip dropping and recreating the table again (mozilla-releng#221). r=bhearsum

* Backout bug 1308625 for now, because it's not working well enough yet. (mozilla-releng#222)

* bug 1326074  - Make destrucive buttons more visible (mozilla-releng#224). r=bhearsum

* Bug 1308625 : Preventing same release row data from getting inserted twice in the sql dump file (mozilla-releng#226). r=bhearsum

* bug 1332829: Improve some security related headers on public app (mozilla-releng#228). r=jlorenzo,april

* bug 1321036: verify column attributes (mozilla-releng#215). r=bhearsum

* Bug 1257298 - support a list of values in rules' version field (mozilla-releng#217). r=bhearsum

* Bump version for next release. (mozilla-releng#231)

* Fixed error with multiple changes at one endpoint (mozilla-releng#234). r=bhearsum

* bug 1310214: Ui for scheduled permission (mozilla-releng#225). r=bhearsum

* Bug 1333095 - reset signoffs when a scheduled change is updated (mozilla-releng#229). r=bhearsum

* Bug 1324799 - Able to set priority to 0 for new rules (mozilla-releng#235). r=bhearsum

* Bug 1304375 - no error in UI when release cannot be deleted (mozilla-releng#213). r=bhearsum,aksareen

* Bug 1257298 : Altering rules.version field's length from 10 to 75 (mozilla-releng#233). r=bhearsum

* bug 1302164: add contribute.json (mozilla-releng#237). r=bhearsum

* Bug 1333875 - don't update "scheduled_by" field when merging in update of base table (mozilla-releng#238). r=bhearsum,aksareen

* Bug 1337353: Set HSTS header in balrog responses (mozilla-releng#240). r=bhearsum

* Version bump for next release. (mozilla-releng#241). r=jlorenzo

* bug 1301040: persist drop down filter state on Rules page (mozilla-releng#239). r=bhearsum,aksareen

* Moar docs for rule resolution (mozilla-releng#242). r=bhearsum

* Bug 1337642 - fallbackMapping sidesteps checks on version and buildID increasing  (mozilla-releng#243). r=bhearsum

* Version bump to pick up fix for fallback mappings. (mozilla-releng#244)

* Bug 1325441 - don't allow completed scheduled changes to be modified (mozilla-releng#236). r=bhearsum

* Bug 1310228 - record Signoffs when a change is scheduled if a User holds a Required Role (mozilla-releng#246). r=bhearsum

* Bump Sphinx version to fix docs. (mozilla-releng#247). r=jlorenzo

* Pin Sphinx in requirements.txt (mozilla-releng#248). r=jlorenzo

* Bug 1278539 - refactory history api backend code (mozilla-releng#230). r=bhearsum

* Update .taskcluster.yml with new settings. (mozilla-releng#251). r=rail

* Add SeaMonkey to domain whitelists (mozilla-releng#250). r=bhearsum

* Bug 1333874: mergeUpdate is broken when a base table row updates a value to the same value in the scheduled change (mozilla-releng#245). r=bhearsum

* Version bump for next release. (mozilla-releng#254). r=rail

* Bug 1333876 - scheduled change history sometimes fails to load because of IndexError (mozilla-releng#255). r=bhearsum

* Web APIs for Required Signoffs (mozilla-releng#218). r=nthomas,jlorenzo

* Version bump. (mozilla-releng#258). r=nthomas

* Bug 1304555:Remove Product/Channel filter from Rules history pages (mozilla-releng#259). r=bhearsum,ninadbhat

* Bug 1301051:number fields sometimes steal scroll events, causing unwanted changes to their values (mozilla-releng#260). r=bhearsum,ninadbhat

* Bug 1310303 - teach the Balrog agent how to determine whether or not scheduled changes meet signoff requirements  (mozilla-releng#252). r=bhearsum

* Bug 1310217 - teach the Balrog Agent how to look for and enact Required Signoffs (mozilla-releng#261). r=bhearsum

* bug 1304561: move "view data" button next to other Release buttons (mozilla-releng#262). r=bhearsum

* Update : Best Practices Section in Balrog Docs (mozilla-releng#265)

* bug 1342531: required signoffs are not accurate in scheduled changes in some cases (mozilla-releng#266). r=nthomas,jlorenzo

* bug 1310226: UI for Required Signoffs management (mozilla-releng#253). r=jlorenzo

* Fix drop down after regression in mozilla-releng#259. (mozilla-releng#269). r=jlorenzo

* Bug 1257298 : updating docs (mozilla-releng#271). r=bhearsum

* Bug 1332000 - test that downgrades actually work (mozilla-releng#263). r=bhearsum

* Bug 1329525: Ungrouping of emails (mozilla-releng#256). r=bhearsum

* Don't run any tests on pull_request.assigned. (mozilla-releng#270). r=rail

* bug 1343255: Navbar Menu doesn't work after collapsing for smaller screens in Admin Window (mozilla-releng#272). r=bhearsum

* Fixing Bug:1136164. Case insensitive interpolation of apprelease blobs. (mozilla-releng#273). r=bhearsum,rail

* Version bump for next release. (mozilla-releng#275). r=rail

* Bug 1334133. Possible fix for correct validation of vendors and addons in the GMP and SystemAddons blobs. r=bhearsum,aksareen (mozilla-releng#257)

* bug 1310227: UI for signing off on Scheduled Changes for Rules, Releases, and Permissions (mozilla-releng#268). r=jlorenzo

* Version bump for latest release. (mozilla-releng#279). r=rail

* Bug 1331992: Update the requirement files with working hash values and add dependencies. (mozilla-releng#277) r=bhearsum

* Bug: 1287536. Returning the exceptions from __heartbeat with 502 and a message. r=bhearsum. (mozilla-releng#274).

* Bug 1333571 - Implemented dynamic titles by adding a new service to set the page title (mozilla-releng#278). r=bhearsum

* Adding connexion and its dependencies (mozilla-releng#281). r=bhearsum

* Add a docker tag for git commit (mozilla-releng#283). r=bhearsum

* Remove support for revision in SystemAddon superblobs. (mozilla-releng#285). r=jlorenzo

* Version bump for next release. (mozilla-releng#289)

* Remove update/delete button on completed scheduled changes for the UI (mozilla-releng#292). r=bhearsum,njirap

* Bug 1350970: Disable non-error output from docker containers in local development (mozilla-releng#290). r=bhearsum,njirap

* Add support for creating rule scheduled changes (mozilla-releng#288). r=sfraser

* Bug 1304026: Make the order of enacting changes predictable (mozilla-releng#291). r=bhearsum,njirap

* Updating Connexion to 1.1.6 (mozilla-releng#294). r=bhearsum

* Bug 1261061: Stop using the "dbo" wrapper in db.py (mozilla-releng#295). r=bhearsum,ninad,njirap

* bug 1342331: Disable role granting for users without permissions (mozilla-releng#296). r=bhearsum,njirap

* Bug 1344716: Add health checks to Docker-compose file (mozilla-releng#297). r=bhearsum

* Bug 1312499 - figure out how to match multiple substrings in one rule field (mozilla-releng#280). r=bhearsum

* Version bump for next release. (mozilla-releng#299)

* Backout bug 1304026 due to bustage. (mozilla-releng#300)

* Updating connexion to 1.1.9 (mozilla-releng#298). r=bhearsum

* Bug 1354130: Stop exporting scheduled changes in the production dump. (mozilla-releng#302). r=bhearsum

* Bug 1326046: Move dependencies from tox.ini into requirements-test.txt (mozilla-releng#303). r=bhearsum

* Bug 1342241: Handle errors when adding a new user better (mozilla-releng#306). r=bhearsum

* Bug 1281520: Rip Whitelist Support (mozilla-releng#305). r=bhearsum

* Bug 1334188: show "scheduled by" field in UI when making scheduled changes. (mozilla-releng#307). r=bhearsum

* Install netcat in dev Dockerfile to fix healthchecks. (mozilla-releng#309). r=rail

* bug 1325377: restructure web layers and convert public app to swagger (mozilla-releng#276). r=bhearsum

* Version bump for next release. (mozilla-releng#311)

* Backout conversion of public app to swagger because of increased error rate (mozilla-releng#313). r=rail

* bug 1325377 - reorg of web code and swaggerification of existing public endpoints (mozilla-releng#314). r=bhearsum

* Version bump (mozilla-releng#315)

* Preemptively bump to next release version. (mozilla-releng#316). r=rail

* Bug 1336452 : Migrating /rules , /users and /csrf_token to connexion app (mozilla-releng#312). r=bhearsum

* Bug 1355474: Add a "view data" button for releases scheduled changes (mozilla-releng#304). r=bhearsum

* Bump balrogclient version. (mozilla-releng#318)

* bug 1276289: reenable coveralls (mozilla-releng#310). r=bhearsum

* Devedition changes (mozilla-releng#319)

* Add staging domain when running in staging
* Add Devedition product

* Version bump for next release. (mozilla-releng#322)

* bug 1363058: don't send empty strings for null values when a field's value is removed (mozilla-releng#321). r=bhearsum

* Bug 1336452: migrate all remaining Rules and Users APIs (mozilla-releng#317). r=bhearsum

* bug 1346212: Cannot revert a rule change (mozilla-releng#324). r=bhearsum

* Bump to next version before next release. (mozilla-releng#326)

* bug 1369078: Stop sending data_version and rule_id when duplicating rules (mozilla-releng#328). r=bhearsum

* Version bump after release. (mozilla-releng#329)

* Backout patch that broke /rules/:rule API. (mozilla-releng#331)

* bug 1138418: Adds sanity check for hashLength for gmp blob type (mozilla-releng#325). r=bhearsum

* Update the client to send data over the wire as JSON. (mozilla-releng#332). r=sfraser

* bug 1304026: Implements change enact order predictable (mozilla-releng#335). r=bhearsum

* Always treat data_version as an int (mozilla-releng#337) r=sfraser

* Bug 1336452: migrate all remaining Rules and Users APIs (mozilla-releng#317). r=bhearsum

* bug 1355057: balrog throws ISE 500 instead of 400 when duplicate alias name is present when posting a new Rule. (mozilla-releng#330). r=bhearsum

* Bug 1336452 : Specific users view + Release History Diffs & View API migration (mozilla-releng#323). r=bhearsum

* Bug 1336452 - Release APIs Migration (mozilla-releng#336). r=bhearsum

* bug 1353241: 'View diff' for first revision doesn't work (mozilla-releng#334). r=bhearsum

* Explicity Typecasting all 'data_version' query arguments into integer (mozilla-releng#339). r=bhearsum

* Version bump ahead of next release. (mozilla-releng#341)

* Don't define enums for permission actions. (mozilla-releng#344). r=rail

* bug 1375670: Use full version of current rule when looking up required signoffs for updates (mozilla-releng#343). r=rail

* Bug 1336452: convert Required Signoffs APIs to swagger (mozilla-releng#342). r=bhearsum

* bug 1325377: Public API for Rules & Releases (mozilla-releng#320). r=bhearsum,sfraser,aksareen

* Abstracting count field to a model (mozilla-releng#345). r=bhearsum

* bug 1276289: reenable coveralls (mozilla-releng#327). r=bhearsum

* Bump version before next release.

* Version bump ahead of next release.

* Add support for "memory" to the update ping (mozilla-releng#346). r=nthomas

* Imlemented cliqz related changes to balrog
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.

5 participants