-
Notifications
You must be signed in to change notification settings - Fork 4
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
Pin versions of our main top-level libraries #28
Conversation
7807b7d
to
6b6da54
Compare
6b6da54
to
dff1178
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we're doing this, should we be specifying versions for the debian packages we're pulling with apt-get?
Maybe. Although this ticket is just about the uwsgi version, which I extended to our python libs. If we think it's important to also pin our other dependencies, I might make a new ticket for that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, maybe another ticket. On the other hand, if we pin the versions, how do we ever get/become aware of security updates to those packages?
That's certainly a far wider issue, yes... |
/usr/bin/python2.7 /usr/bin/pip install supervisor==3.3.3 && \ | ||
pip install --no-cache-dir uwsgi awscli awscli-cwlogs && \ | ||
/usr/bin/python2.7 /usr/bin/pip install supervisor==${SUPERVISOR_VERSION} && \ | ||
/usr/local/bin/pip3 install --no-cache-dir uwsgi==${UWSGI_VERSION} awscli==${AWSCLI_VERSION} awscli-cwlogs==${AWSCLI_CWLOGS_VERSION} && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it used mostly when we deploy code, or in development environments, too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is primarily for deployed applications, although you can use the docker containers locally as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, cheers
We could use a tool to check if our dependencies have security issues in their current versions, for example this one: |
@CrystalPea Definitely, we should have some sort of thorough dependency-checker for our docker containers. Would need to add a tech debt ticket if we don't already have one. 😄 Edit: We have one already! https://trello.com/c/ZXPjYFE8/322 |
ENV SUPERVISOR_VERSION 3.3.3 | ||
ENV UWSGI_VERSION 2.0.15 | ||
ENV AWSCLI_VERSION 1.14.31 | ||
ENV AWSCLI_CWLOGS_VERSION 1.4.4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something in this section, unbelieveably (to me at least), has broken this... 😕 Investingating which one in particular...
Summary
Pin the versions of our main libraries so that we don't accidentally do a major/minor upgrade that breaks our deploys. I've taken these versions from what is currently installed in the latest frontend docker image. Also clarifies that we are using pip3/python3 to install uwsgi/awscli. I looked into upgrading Supervisor to Python3 and while it seems it is mostly compatible, they haven't explicitly released version 4.0.0 that comes with official support, so leaving it as-is for now. Supervisor/supervisor#510
Dependencies of these libraries are still not pinned, so theoretically things could still break, but at least it's a lot less likely.
Ticket
https://trello.com/c/Y6H3QWlM/315-uwsgi-version-should-be-pinned