BMO/DeveloperBox

< BMO
Revision as of 03:22, 10 December 2013 by Dlawrence (talk | contribs)

Creating a BMO Development System using VirtualBox and Vagrant

Getting Bugzilla, as well as the latest code that is used by bugzilla.mozilla.org, installed and running locally in order to make changes, fix bugs, etc. is not the easiest thing for every one to do. Especially if you are not familiar with Linux systems, the Perl programming language, or installing all of the many CPAN module dependencies needed for Bugzilla to work properly. This Developer Box is designed to help people to be able to get up and running quickly and easily by providing a ready to run Virtual Machine (VM) that should work on most platforms. The VM is built using Vagrant and VirtualBox which most people should not have difficulty getting installed on Windows, OSX, and Linux.

The VM provided for download comes with a test database already installed that contains most products and other data that would see on BMO it has all of the bugs themselves removed for size. Also all user account passwords, stored queries, group membership have been removed for obvious reasons. At the end of this document, I will outline how to obtain a sanitized copy of the BMO database which does contain all 'public' bugs that you can then import into your VM and be able to do more thorough testing and development on a larger amount of data.

Getting your system setup

Installing and running the BMO Vagrant box

  • Create following file called 'Vagrantfile' in a directory by itself.
 Vagrant.configure("2") do |config|
   config.vm.box = "bugzilla"
   config.vm.box_url = "https://people.mozilla.com/~dkl/bugzilla.box"
   config.vm.network :forwarded_port, guest: 80, host: 8080
 end
  • Execute the following in the directory where the 'Vagrantfile' is located. This will download the box and then start the VM.
 $ vagrant up
  • The following will log you into the VM over SSH and drop you into the 'vagrant' user's home directory.
$ vagrant ssh

Working with the latest BMO code in the VM

  • For starters you will need change your login password to a known value and also make yourself a Bugzilla admin (substitute your bmo address below).
 $ vagrant ssh
 $ cd ~/htdocs/bmo
 $ ./checksetup.pl --make-admin=<email> --reset-password=<email>
  • You should now be able to access the web UI at http://localhost:8080/bmo using your browser on the same system.
    • You may need to update the values for urlbase and sslbase in /home/vagrant/htdocs/bmo/data/params to match the port number you chose for redirection earlier. If the port is different than 8080.
 $ cd ~/htdocs/bmo
 $ bzr merge  (This will merge upstream changes into your local branch. There may be conflicts if you have made changes as well)
 $ bzr commit (commit the merged files to your branch)
  • Run the built in test suite located in the /home/vagrant/htdocs/bmo/t directory.
 $ perl runtests.pl
  • You can run just one of the tests in /t, for example to run the template compilation tests:
 perl t/004template.t
  • Making a patch for review of your latest changes
 $ cd ~/htdocs/bmo
 $ bzr diff > /vagrant/<some_patch_name>_1.patch
  • File any bugs or feature requests here

Installing a recent sanitized dump of public bugs from BMO

  • From time to time Michael Hoye (mhoye) will upload an updated MySQL dump file to his people site that contains sanitized data from BMO.
 http://people.mozilla.org/~mhoye/bugzilla/
  • You can drop the database you have currently installed in your VM and import the new dump which will give you a larger amount of data to test/develop with.
 $ vagrant ssh
 $ cd ~/htdocs/bmo
 $ mysql -u root mysql
 mysql> DROP DATABASE bugs; CREATE DATABASE bugs CHARACTER SET = 'utf8';
 $ zcat /vagrant/database_dump_file.gz | mysql -u root bugs --max_allowed_packet=128M
  • The BMO code may have had features added since the last time the snapshot was made and put out for download. Running ./checksetup.pl will make any database schema changes needed.
 $ ./checksetup.pl
  • Since this is a new import, you will need to setup your personal BMO account again as well.
 $ vagrant ssh
 $ cd ~/htdocs/bmo
 $ ./checksetup.pl --make-admin=<email> --reset-password=<email>