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

fixes bug 788085 - automate setup/run of socorro dev mode #1665

Conversation

rhelmer
Copy link
Contributor

@rhelmer rhelmer commented Nov 11, 2013

No description provided.



def main():
parser = argparse.ArgumentParser(prog='socorro')
Copy link
Contributor

Choose a reason for hiding this comment

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

I thought argparse only existed in Python2.7 and above? Did you use a backport?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We already have the pypi version for 2.6 in our requirements file

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 13, 2013

@twobraids - reverted those logging changes

@adngdb
Copy link
Contributor

adngdb commented Nov 15, 2013

After running

vagrant up
vagrant ssh
cd src/socorro/
./bin/socorro setup

I got that error: http://pastebin.mozilla.org/3608629

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 15, 2013

@AdrianGaudebert thanks, should make that output prettier - the error is:

src/client/linux/libbreakpad_client.a: could not read symbols: File in wrong format

Do you have a google-breakpad/ directory that you built on a different OS or arch (e.g. 64 bit linux)?

./bin/socorro setup actually creates a unique virtualenv based on hostname now to avoid this type of problem, we should probably do the same for the breakpad build directories...

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 15, 2013

@AdrianGaudebert to confirm this is the case, can you please try:

make clean
./bin/socorro setup

If it still fails then the problem is elsewhere :)

@adngdb
Copy link
Contributor

adngdb commented Nov 18, 2013

@rhelmer A new error occurred (I indeed had a google-breakpad that was built on Ubuntu) - http://pastebin.mozilla.org/3628628

It happened during setup, while building google-breakpad.

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 18, 2013

@AdrianGaudebert hmm could you try removing "./exploitable" directory and then running setup again?

I didn't realize how problematic sharing workspaces are between vagrant/mac :) if this is indeed the problem.

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 18, 2013

@AdrianGaudebert actually perhaps we should document this, so people always get a clean install:

./bin/socorro setup --clean
./bin/socorro run

What do you think? That calls make clean and also remove the virtualenv, so it should work even for people with unclean checkouts.

logger.addHandler(logging.StreamHandler())


class Socorro():
Copy link
Contributor

Choose a reason for hiding this comment

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

No reason not to use a new-style class

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not really sure why all these routines are wrapped in a class, except to share the superuser bit of state. But that's actually a singleton in multiton's clothing: it's always the same for one process invocation (modulo people scribbling evilly on os.environ). If we really wanted to have an excuse to make this a class, we should pass os.environ['USER'] in when Socorro is instantiated.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well originally I had started doing this using configman, but had trouble figuring out how to get it to handle the subcommand style of parsing I am using argparse for. Currently the only state they share is that superuser string but I could see it being useful to share more.

I'll make the change you suggest, passing in that environment variable when Socorro is instantiated.

Copy link
Contributor

Choose a reason for hiding this comment

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

Well originally I had started doing this using configman, but had trouble figuring out how to get it to handle the subcommand style

I've got examples for that, but I don't think it's worth going back to do it.

----- Original Message -----

@@ -0,0 +1,206 @@
+import argparse
+import logging
+import os
+import shutil
+import socket
+import subprocess
+import sys
+
+logger = logging.getLogger('socorro')
+logger.setLevel(logging.INFO)
+logger.addHandler(logging.StreamHandler())
+
+
+class Socorro():

Well originally I had started doing this using configman, but had trouble
figuring out how to get it to handle the subcommand style of parsing I am
using argparse for. Currently the only state they share is that
superuser string but I could see it being useful to share more.

I'll make the change you suggest, passing in that environment variable when
Socorro is instantiated.


Reply to this email directly or view it on GitHub:
https://github.com/mozilla/socorro/pull/1665/files#r7740062

@ghost ghost assigned adngdb Nov 20, 2013
@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 20, 2013

@AdrianGaudebert @twobraids @erikrose thanks for your review comments! Everything is addressed, anyone want to do a final once-over and r+ this for me ? :)

I will probably hold off until after release to land it, since it touches quite a bit. I don't expect it to break anything we use for production but couldn't hurt.

@adngdb
Copy link
Contributor

adngdb commented Nov 20, 2013

Could you please update the /gitignore file to hide the various virtualenvs that get created?

@lonnen
Copy link
Contributor

lonnen commented Nov 22, 2013

Tested this locally, but there doesn't seem to be a server installed to serve crash-stats. I don't have apache or httpd on the box, and I don't see it in puppet as a dep.

@lonnen
Copy link
Contributor

lonnen commented Nov 22, 2013

Tried this again, now knowing that there's a ./bin/socorro command. ./bin/socorro setup, with or without the --clean flag, hangs on "Setting up virtualenv". If I execute just ./bin/socorro I encounter

[vagrant@localhost socorro]$ ./bin/socorro
Traceback (most recent call last):
  File "./socorro/lib/socorro_app.py", line 1, in <module>
    import argparse
ImportError: No module named argparse

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 23, 2013

@lonnen sent an email, but the Apache missing is expected I think, since this runs everything in dev mode. So django will be on port 8000 for instance.

On the second one, how long did you wait? It takes quite a while to populate the virtualenv from scratch. If you run without --clean then the script will detect that the virtualenv directory exists and try to use it (and it is missing argparse apparently)

Originally I had it rerun peep install on every run but this is slow. Do you have any suggestions?

Oh also could you try bash -x ./bin/socorro setup --clean and report what it's hanging on? If it's building the virtualenv, maybe you could peek in directory and see if it seems to be working?

@lonnen
Copy link
Contributor

lonnen commented Nov 24, 2013

I guess I didn't let it run long enough. It took 23 minutes. There was still an error, and it's difficult to parse what's going on.

$ time ./bin/socorro setup --clean
Removing virtualenvs
Setting up virtualenv
Setting up webapp-django
cd webapp-django; ./bin/bootstrap.sh No virtualenv found. Making one... New python executable in localhost-socorro-virtualenv/bin/python2.6 Also creating executable in localhost-socorro-virtualenv/bin/python Installing Setuptools..............................................................................................................................................................................................................................done. Installing Pip.....................................................................................................................................................................................................................................................................................................................................done. Running virtualenv with interpreter /usr/bin/python2.6 Requirement already up-to-date: pip in ./localhost-socorro-virtualenv/lib/python2.6/site-packages Cleaning up... Downloading/unpacking coverage Running setup.py egg_info for package coverage warning: no previously-included files matching '*.pyc' found anywhere in distribution Installing collected packages: coverage Running setup.py install for coverage building 'coverage.tracer' extension gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.6 -c coverage/tracer.c -o build/temp.linux-i686-2.6/coverage/tracer.o gcc -pthread -shared build/temp.linux-i686-2.6/coverage/tracer.o -L/usr/lib -lpython2.6 -o build/lib.linux-i686-2.6/coverage/tracer.so warning: no previously-included files matching '*.pyc' found anywhere in distribution Installing coverage2 script to /home/vagrant/src/socorro/webapp-django/localhost-socorro-virtualenv/bin Installing coverage-2.6 script to /home/vagrant/src/socorro/webapp-django/localhost-socorro-virtualenv/bin Installing coverage script to /home/vagrant/src/socorro/webapp-django/localhost-socorro-virtualenv/bin Successfully installed coverage Cleaning up... real 2m29.168s user 0m37.945s sys 0m4.975s real 4m34.880s user 0m3.497s sys 0m4.468s real 2m44.603s user 0m4.798s sys 0m2.174s Copying '/home/vagrant/src/socorro/webapp-django/vendor/lib/python/django_browserid/static/browserid/browserid.js' Copying '/home/vagrant/src/socorro/webapp-django/vendor/lib/python/django_browserid/static/browserid/persona-buttons.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/__utm.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/ajax-loader.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/ajax-loader16x16.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/arrow_collapsed.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/arrow_expanded.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/block-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/block-vrule.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/body-vrule.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/down_arrow.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/favicon.ico' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/feed-icon16x16.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/feed-icon32x32.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/footer_bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/header-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/header-logo.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/header-watermark.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/loading.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/logo.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/search-icon.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/table-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/up_arrow.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/down-selected.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/down.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/footer-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/header-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/logo.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/logo2.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/mozilla.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/page-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/panel-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/product-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/product-selected-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/search.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/title.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/2.0/version-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/fatcow/application16x16.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/fatcow/brick16x16.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/fatcow/content16x16.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/fatcow/stop16x16.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/silk/application_form_add.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/silk/chart_curve.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/silk/delete.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/3rdparty/silk/readme.txt' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/icons/ajax-loader.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/icons/calendar.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/icons/close_round.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/icons/external.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/icons/rocket_fly.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/button-grad-active.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/button-grad.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/calendar.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/disclosure-down.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/disclosure.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/header-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/main-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/moz-developer.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/mozillalogo.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/topcrashhead-bg.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/base/static/img/slate/white-grad.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/base.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/crash_trends.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/crontabber_state.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/daily.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/explosives.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/mixins.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/report_list.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/screen.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/topcrashers.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/variables.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.accordion.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.calendar.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.datepicker.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.dialog.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.menu.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.resizable.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.slider.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.tablesorter.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.tabs.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.toasterLite.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/flora.toolbar.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-left-act.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-left-over.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-left.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-middle-act.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-middle-over.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-middle.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-right-act.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-right-over.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/accordion-right.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/asc.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/bg.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/desc.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-e.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-n.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-ne.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-nw.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-s.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-se.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-sw.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-title.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-titlebar-close-hover.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-titlebar-close.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/dialog-w.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/menu-submenu.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-e.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-n.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-ne.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-nw.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-s.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-se.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-sw.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/resizable-w.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/shadow.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/slider-bg-1.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/slider-bg-2.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/slider-handle.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/tabs.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-e.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-n.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-ne.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-nw.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-s.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-se.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-sw.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toaster-w.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/flora/i/toolbars-bot-bg.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/jquery.ui.custom.min.aaa.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/jquery.ui.custom.min.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/animated-overlay.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_flat_0_aaaaaa_40x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_flat_0_eeeeee_40x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_flat_55_ffffff_40x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_flat_75_ffffff_40x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_glass_65_ffffff_1x400.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-icons_0073ea_256x240.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-icons_454545_256x240.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-icons_666666_256x240.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-icons_ff0084_256x240.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/css/jquery-ui-1.10.3/flick/images/ui-icons_ffffff_256x240.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/async-local-storage-with-Promise.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/d3.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/moment.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/sankey.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/underscore-min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/flot-0.7/excanvas.pack.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/flot-0.7/jquery.flot.pack.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/flot-0.7/jquery.flot.stack.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/date.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/jquery-2.0.3.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/mustache.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.cookie.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.cookies.2.2.0.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.cookies.2.2.0.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.dimensions.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.girdle.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.mockjax.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.simplebox.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.simplebox.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/jquery.tooltip.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.tablesorter.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.core.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.datepicker.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.mouse.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.position.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.sortable.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.tabs.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.tooltip.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/jquery.ui.widget.min.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-ar.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-bg.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-ca.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-cs.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-da.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-de.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-es.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-fi.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-fr.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-he.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-hu.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-hy.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-id.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-is.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-it.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-ja.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-ko.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-lt.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-lv.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-nl.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-no.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-pl.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-pt-BR.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-ro.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-ru.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-sk.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-sv.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-th.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-tr.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-uk.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-zh-CN.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/jquery/plugins/ui/i18n/ui.datepicker-zh-TW.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/admin.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/bugzilla.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/correlation.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/crash_trends.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/crontabber_state.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/daily.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/dashboard_graph.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/explosives.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/hangreport.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/homepage_tmpl.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/mtbf.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/nav.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/pending.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/query.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_bugzilla.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_comments.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_correlations.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_graph.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_reports.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_signature_summary.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_sigurls.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/report_list_table.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/server_status.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/topcrash.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/topcrashbyurl.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/socorro/utils.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/crashstats/static/crashstats/js/timeago/jquery.timeago.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/api/static/api/js/testdrive.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/manage/static/manage/js/featured-versions.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/manage/static/manage/js/fields.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/manage/static/manage/js/skiplist.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/manage/static/manage/js/users.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/css/search.less' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/css/select2/select2.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/img/select2/select2-spinner.gif' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/img/select2/select2.png' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/js/lib/dynamic_form.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/js/lib/select2.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/supersearch/static/supersearch/js/socorro/search.js' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/auth/static/auth/css/persona-button.css' Copying '/home/vagrant/src/socorro/webapp-django/crashstats/auth/static/auth/img/persona-logo.png' Copying '/home/vagrant/src/socorro/webapp-django/vendor-local/lib/python/django_statsd/static/stick.js' 250 static files copied. Error: An error occured during rendering /home/vagrant/src/socorro/webapp-django/crashstats/base/templates/crashstats_base.html: /bin/sh: lessc: command not found Invalid template /home/vagrant/src/socorro/webapp-django/vendor/lib/python/djcelery/templates/admin/djcelery/change_list.html: Encountered unknown tag 'load'. Invalid template /home/vagrant/src/socorro/webapp-django/vendor/lib/python/djcelery/templates/djcelery/confirm_rate_limit.html: Encountered unknown tag 'load'. Invalid template /home/vagrant/src/socorro/webapp-django/vendor/lib/python/django_browserid/templates/browserid/info.html: Encountered unknown tag 'csrf_token'. Found 'compress' tags in: /home/vagrant/src/socorro/webapp-django/crashstats/manage/templates/manage/featured_versions.html /home/vagrant/src/socorro/webapp-django/crashstats/manage/templates/manage/users.html /home/vagrant/src/socorro/webapp-django/crashstats/base/templates/crashstats_base.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/topcrasher.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/status.html /home/vagrant/src/socorro/webapp-django/crashstats/manage/templates/manage/groups.html /home/vagrant/src/socorro/webapp-django/crashstats/api/templates/api/documentation.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/report_list.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/home.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/explosive_crashes.html /home/vagrant/src/socorro/webapp-django/crashstats/manage/templates/manage/fields.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/report_index.html /home/vagrant/src/socorro/webapp-django/crashstats/manage/templates/manage/skiplist.html /home/vagrant/src/socorro/webapp-django/crashstats/supersearch/templates/supersearch/search.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/crontabber_state.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/query.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/crash_trends.html /home/vagrant/src/socorro/webapp-django/crashstats/crashstats/templates/crashstats/daily.html Compressing... make: akela alembic analysis bin bixie build config coverage.xml docs exploitable google-breakpad history.txt LICENSE localhost-socorro-virtualenv Makefile minidump-stackwalk node_modules nosetests.xml pip-cache puppet README requirements scripts socorro socorro-toolbox socorro-vagrant-virtualenv socorro-virtualenv sql stackwalk testcrash tools vagrantconfig_local.yaml-dist vagrantconfig.yaml Vagrantfile webapp-django wsgi [webapp-django-bootstrap] Error 1

real    23m40.398s
user    1m46.072s
sys 0m38.454s

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 24, 2013

Ouch that's terrible sorry, I'll fix that up. Here's the actual error:

Error: An error occured during rendering /home/vagrant/src/socorro/webapp-django/crashstats/base/templates/crashstats_base.html: /bin/sh: lessc: command not found 

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 24, 2013

@lonnen OK! I fixed the output and also the underlying problem here, mind trying again?

You should be able to just do ./bin/socorro setup (no --clean) and it'll carry off where it left off, it's safe to re-run.

Do you think we should have some kind of progress or show output as the virtualenv is built, since it takes so long?

@lonnen
Copy link
Contributor

lonnen commented Nov 24, 2013

Given how long it runs, the script should put out a warning or something to reassure the user it is running. The Boxen install takes a while, but keeps the user updated with --> {:some build step}.

What's the advantage of this python script over improving the Makefile?

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 24, 2013

@lonnen having it print that this will take a while is a good idea, thanks!

I am hoping to eventually replace the Makefile with this, in my opinion:

  • people on the team are more comfortable hacking a Python script (and a small shell script that bootstraps it)
  • ergonomics of the script are better ("socorro subcommand --flag" style, we could do integrated help e.g. "socorro help subcommand" too)
  • doing any kind of logic, even basic if-then-else, is super painful in make

Make has some advantages for sure, it's been around a very long time and is more discoverable without looking at the docs at all (assuming running plain make does something useful). However our current Makefile seems very confusing to me, and I wrote most of it! I am hoping this will be a better way to script all the little tasks that we have, and hide a lot of the complexity of dealing with Socorro setup and running.

then
echo "Removing virtualenvs"
rm -rf $VENV
rm -rf webapp-django/$VENV
Copy link
Contributor

Choose a reason for hiding this comment

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

after a partial ./bin/socorro setup I restarted it with --clean and encountered:

rm: cannot remove `webapp-django/localhost-socorro-virtualenv/bin': Directory not empty

so I'm not sure if the -rf flags are being passes appropriately.

@lonnen
Copy link
Contributor

lonnen commented Nov 27, 2013

  1. Still seeing most of the output dump to the console only after things are done executing.
  2. lessc is installed, but not found when asset compression happens

https://gist.github.com/lonnen/86b484c57edd4ee97235

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 27, 2013

@lonnen output dumps to the console only if there's been an error.

I was actually testing this from scratch last night and hit the same npm problem, 2908d65 should fix this (installs npm before running the bootstrap script)

@lonnen
Copy link
Contributor

lonnen commented Nov 27, 2013

I had that commit before this most recent attempt. I believe the PATH change from the line above does not propagate through the rest of the build target because each line in a Makefile is executed in its own shell.

@lonnen
Copy link
Contributor

lonnen commented Nov 27, 2013

I've made some local mods to test this idea out. I'll get back to you in a moment.

@lonnen
Copy link
Contributor

lonnen commented Nov 27, 2013

This is all complicated by intermittent npm failures this week.

@rhelmer
Copy link
Contributor Author

rhelmer commented Nov 27, 2013

@lonnen ugh. So one thing I noticed digging into this is, bootstrap does more than we need for a dev install - lessc will be run on the fly anyway. However if it's not installed it'll still fail when you try to run.

@lonnen
Copy link
Contributor

lonnen commented Dec 2, 2013

Got it running, finally. A couple of notes:

  • yum nearly always fails somewhere. vagrant provision once or twice is usually necessary but undocumented.
  • I had to manually run sudo npm install -g less in order to get less into the path for the makefile
  • the documentation and feedback from the script are inconsistent. Docs recommend modifying your hosts file in one place, and in another place (as well as script output) you're asked to run without the flags that are necessary for serving content from the hostfile

@rhelmer
Copy link
Contributor Author

rhelmer commented Dec 3, 2013

@lonnen thanks for the thorough testing!

  1. maybe it's worth just generating a base box that has had provisioning run successfully once - I'll see how large that'd be
  2. I have had a lot of trouble with less also, I will take a look. Might be worth just grabbing an RPM for it.
  3. I'll fix this up

@rhelmer
Copy link
Contributor Author

rhelmer commented Dec 3, 2013

So the provisioned box is 529MB, with the base CentOS box being 435MB. It's probably worth packaging our own box (note that this yum issue isn't new, it's been there since we switched from Ubuntu to CentOS, but this will work around it and remove variability)

@rhelmer
Copy link
Contributor Author

rhelmer commented Dec 4, 2013

Hrm so thinking about the documentation inconsistency issue - since we are only recommending vagrant for dev setups (which I think is appropriate), we might be better off just forwarding ports from vagrant to the host instead of giving the VM its own IP address.

This would allow us to remove the whole /etc/hosts instruction (which honestly people get confused about anyway, whether that goes on the host or the guest) and all instructions could just refer to "localhost" and it'd Just Work, I think.

@rhelmer
Copy link
Contributor Author

rhelmer commented Jan 6, 2014

After reflecting on this, I think we should step back and work on some of the setup steps before trying to automate them, it's still too flaky to work reliably even if it's all wrapped up.

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