Skip to content
This repository has been archived by the owner on Aug 22, 2022. It is now read-only.

Update: Python 3.5, Django 1.9, Ubuntu 16.04 #6

Merged
merged 11 commits into from
May 2, 2016
Merged

Conversation

antoviaque
Copy link
Member

@antoviaque antoviaque commented Sep 14, 2015

Includes:

  • Python 3.5
  • Django 1.9
  • Ubuntu 16.04
  • Pylint 1.5
  • All other Python dependencies updated to their latest version.

Exclusions of scope, to be addressed post-merge:

  • Upstream warnings raised by the upgrade (OC-1571)
  • pylint exclusions cleanup (OC-1572, eg. 1 2 3)

Local test instructions:

  1. Make a copy of your current box, in case you need to revert to it: https://www.vagrantup.com/docs/virtualbox/boxes.html
  2. After switching to the current branch: vagrant destroy && vagrant up
  3. Test the most important features (including provisioning a sandbox from the shell, with the worker processes working separately)

Todo:

  • Get tests to pass (green build)
  • Get server & shell commands to work
  • Add OC-* tickets in backlog for exclusions of scope

@antoviaque antoviaque force-pushed the python3.5 branch 4 times, most recently from 7cb096e to 4652b9d Compare September 19, 2015 07:10
@antoviaque
Copy link
Member Author

Currently fails due to pylint not supporting python 3.5 just yet. Seems to be in progress, for the next pylint release: https://bitbucket.org/logilab/pylint/issues/643/regression-attributeerror-call-object-has

@antoviaque
Copy link
Member Author

Rebased on top of #10 which should get merged before.

@antoviaque antoviaque force-pushed the python3.5 branch 2 times, most recently from 8c7f4ac to a7c0d39 Compare October 10, 2015 12:20
@omarkhan
Copy link
Contributor

@antoviaque pylint should support python 3.5 now.

@antoviaque
Copy link
Member Author

@omarkhan Yup, the dependencies need an update - Django 1.9 has been released too, for example.

@smarnach
Copy link
Contributor

Django 1.9 isn't an LTS version, so if we do upgrade we will be forced to upgrade for every minor version they release. (I'm just pointing this out and not implying we shouldn't do this.)

@antoviaque
Copy link
Member Author

@smarnach True - although waiting for the next LTS release also means accumulating quite a lot of technical debt in the meantime, as you still need to address the individual version upgrades/incompatibilities at once when the next LTS does come, instead of doing it progressively - you likely end up with more work overall, no?

@smarnach
Copy link
Contributor

@antoviaque I don't think it's more work overall, but it's most definitely less pleasant to have to do it all at once, and you miss out on any Django improvements in the meantime. So yeah, we should probably do all the minor version upgrades.

@antoviaque antoviaque force-pushed the python3.5 branch 3 times, most recently from bb2086a to 576fe34 Compare March 29, 2016 20:25
@antoviaque antoviaque changed the title Update build to use Python 3.5 Dependencies upgrade: Python 3.5, Django 1.9, Ubuntu 16.04 Mar 29, 2016
@antoviaque antoviaque changed the title Dependencies upgrade: Python 3.5, Django 1.9, Ubuntu 16.04 Deps upgrade: Python 3.5, Django 1.9, Ubuntu 16.04 Mar 29, 2016
@antoviaque antoviaque changed the title Deps upgrade: Python 3.5, Django 1.9, Ubuntu 16.04 (WIP) Update: Python 3.5, Django 1.9, Ubuntu 16.04 Mar 29, 2016
@antoviaque antoviaque force-pushed the python3.5 branch 7 times, most recently from 0dbfb7e to 52e1d56 Compare April 24, 2016 11:11
To better handle box versioning and updates.
Commands:

```
$ for i in `git grep -l xavier@opencraft`; do sed -e 's/xavier@opencraft/contact@opencraft/' $i > /tmp/rename && mv /tmp/rename $i ; done
$ for i in `git grep -l '2015 OpenCraft'`; do sed -e 's/2015 OpenCraft/2015-2016 OpenCraft/' $i > /tmp/rename && mv /tmp/rename $i ; done
```
@bradenmacdonald
Copy link
Member

@antoviaque Did you run this in "production mode" or deploy it? Because the Procfile here no longer works:

01:35:31 periodic.1  | Usage: manage.py run_huey [options] 
01:35:31 periodic.1  | 
01:35:31 periodic.1  | Run the queue consumer
01:35:31 periodic.1  | 
01:35:31 periodic.1  | manage.py: error: no such option: --periodic

The fix is simply to remove --periodic from the Procfile, since that option is implied whenever --no-periodic is not specified.

@antoviaque
Copy link
Member Author

@bradenmacdonald Ah damn - I think I only ever ran it with make rundev, sorry for having missed that. The deployment itself is done in OC-1533, so we haven't seen it yet. (FYI @smarnach ). I'll have a look and open a PR for the change.

@antoviaque
Copy link
Member Author

@bradenmacdonald Done: #70

@bradenmacdonald
Copy link
Member

I noticed in my VM that since this upgrade (and new vagrant setup), the bash history of the vagrant user was not being saved (which was annoying), because ~/.bash_history was owned by root. Any idea why? I don't see any reference to it in the Vagrantfile or bootstrap script.

@antoviaque
Copy link
Member Author

@bradenmacdonald That is likely coming from the box I used as a base for building opencraft/xenial64 - likely a way for the upstream to ensure he doesn't forget to clear his history before publishing his box : ) If you want I can edit the base box to change the owner back to vagrant. Editing, publishing and testing the base box takes time though, so alternatively we could put this in a ticket for the next update? The plan is eventually to switch to the official ubuntu/xenial64 box anyway, once they have solved the issues it currently has.

@bradenmacdonald
Copy link
Member

@antoviaque We could also just put a fix into the Vagrantfile provisioning section, especially if/when we move to the official upstream box.

@antoviaque
Copy link
Member Author

@bradenmacdonald I think the upstream box should not have this - or did you had to do that in the previous box, before the upgrade? My hope is that we'll not have to do anything then - but we'll need to check. If the upstream box also has this, then yep the Vagrantfile would work (or the ansible playbook, actually.)

@bradenmacdonald
Copy link
Member

OK, hopefully that is the case :)

@bradenmacdonald bradenmacdonald deleted the python3.5 branch May 26, 2016 18:07
xirdneh added a commit that referenced this pull request Jun 30, 2019
# This is the 1st commit message:

Re-writing circle.yml to store code coverage in CircleCI's workspace and
collect them afterwards. Test run parallelization is used with
environment variables instead of using custom test runner.

# This is the commit message #2:

Update Makefile message.

# This is the commit message #3:

Remove cov.html from cov.combine.

# This is the commit message #4:

Stop running all tests in all containers

# This is the commit message #5:

Cleanup

# This is the commit message #6:

Experiment with different IDs for each coverage report

# This is the commit message #7:

Gathering raw coverage from all steps

# This is the commit message #8:

Always copy coverage and log message when not found

# This is the commit message #9:

Log copying raw coverage files for debugging
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants