Skip to content
This repository has been archived by the owner on Jun 28, 2024. It is now read-only.

Mac Installation Instructions

Ashok Dongare edited this page Oct 23, 2019 · 36 revisions

Absolute Beginner’s Guide to BONNIE Development on a Mac

Setting up Your Local BONNIE Environment

  1. Download and install xcode and xcode developer tools – without them, nothing works
  1. If needed, setup http_proxies in your bash profile (~/.profile)
  • export http_proxy="[proxy]"
  • export https_proxy="[proxy]"
  • export HTTP_PROXY="[proxy]"
  • export HTTPS_PROXY="[proxy]"
  • export no_proxy="localhost,127.0.0.1"
  • export NO_PROXY="localhost,127.0.0.1"
  1. Install Yarn
  • brew install yarn
  1. Install homebrew: http://brew.sh/
  • brew install openssl
  • brew link openssl --force
  1. Install mongodb using homebrew
  • brew tap mongodb/brew

  • brew install [email protected] or

  • brew install mongo (note there might be problems with mongo 3.5 and higher)

  • If you want mongod and mongo command to be available from anywhere in the terminal, export mongodb path to .bash_profile as:

    sudo vi ~/.bash_profile  //open .bash_profile
    export PATH="/usr/local/opt/[email protected]/bin:$PATH"   //paste this in .bash_profile
    source ~/.bash_profile    //reload .bash_profile
    
  1. If mongodb 3.4.4 or newer is installed. Configure mongodb to allow more depth in BSON documents. Add the following to /usr/local/etc/mongod.conf

     setParameter:
        maxBSONDepth: 500
    
  2. Follow instructions for starting mongo db on launch and immediately. Should look something like:

  • To have launchd start mongodb now and on reboot: brew services start mongodb/brew/[email protected]
  • If you don't want to run mongodb on reboot but run in background: mongod --config /usr/local/etc/mongod.conf &
  • Note that you may also have the option to use: brew services mongodb start
  1. Install gpg: https://gpgtools.org

  2. Install RVM: https://rvm.io/

  • Make sure you install so ruby is included: \curl -sSL https://get.rvm.io | bash -s stable --ruby
  • This will ask gp2 keys to import. You can generate using gptools or import one given by rvm
  • To start using RVM run: source ~/.rvm/scripts/rvm
  • Bonnie uses ruby 2.4.5. To install ruby 2.4.5:
rvm install 2.4.5
rvm use 2.4.5
rvm --default 2.4.5
  • If installation is failing due to an error message similar to "bash: /root/.rvm/scripts/rvm: No such file or directory" try following the top solution in this Stack Overflow page.
  1. Restart terminal

  2. (Optional) install git bash-completion tools

  • brew install git bash-completion
  • Add the following to ~/.bash_profile
  if [ -f `brew --prefix`/etc/bash_completion ]; then
      . `brew --prefix`/etc/bash_completion
  fi
  1. Install bonnie
  • mkdir git
  • cd git
  • git clone https://github.com/projecttacoma/bonnie.git
  • cd bonnie
  • gem install eventmachine -v '1.0.7'
  • bundle install
  • (If this doesn’t work, do gem install bundler)
  • (Also sometimes gem install eventmachine –v '1.0.7' -- --with-cppflags=-I/usr/local/opt/openssl/include)
  1. Set up the bonnie_development database
  • bundle exec rake db:setup
  • mongo
  • show dbs;
      admin               0.000GB
      bonnie_development  0.000GB
      local               0.000GB
    
  1. Make a temp directory in ~/git/bonnie
  • mkdir tmp
  1. Open the rails shell:
  • bundle exec rails console
  • User.last
  • Should not be nil.
  • If you get nil, try in various orders starting the mongo db and calling the bundle exec rake commands
  1. Start the web server:
  • bundle exec rails server
  • BONNIE should be available at http://localhost:3000
  1. Log in
  • The package comes with one user account:
  • To make any user an admin, open the rails console (bundle exec rails console) and use the following:
    • User.first.update_attributes approved: true, admin: true
    • Replace User.first with any user you would like to make admin, e.g. User.where(email:/\w/).first
    • NOTE that [email protected] will be set up as an admin by default.

Set up the rest of your Coding Environment

  1. Pull down a few more dependencies
cd ~/git
git clone https://github.com/cqframework/cql-execution
git clone https://github.com/projecttacoma/cqm-models
git clone https://github.com/projecttacoma/cqm-execution
git clone https://github.com/projecttacoma/cqm-execution-service
git clone https://github.com/projecttacoma/cqm-parsers
git clone https://github.com/projecttacoma/cqm-reports

Troubleshooting and Debugging in BONNIE

  1. If working with local copies of libraries
  • In /Gemfile, set up BONNIE to pull hqmf2js and health-data-standards from your local environment rather than git

    • Comment out:
    gem 'cqm-models', :git => 'https://github.com/projecttacoma/cqm-models.git', :branch => 'master'
    
    • Uncomment:
    # gem 'cqm-models', :path => '../cqm-models'
    
  • In package.json,

    • replace
        "cqm-execution": "https://github.com/projecttacoma/cqm-execution#2019-standards-update"
    
    • with
        "cqm-execution": "../cqm-execution"
    
  • Then re-run bundle install (which also calls yarn install)

  1. Helpful web browser console commands
  • bonnie.mainView.getView().model.attributes – this gets the attributes of the model of the current view, which should be super helpful for discovering data inconsistencies
  • In the chrome developer console (option + command + I)
  • Sources tab > assets has all of the rendered items for this page (helpful to figure out how everything fits together)
  • Using the Development db is great, because stuff is not minified like it is for the production db

git/GitHub Basics

  • Get the original repository
    • git clone %%github address%%
  • Check out a new branch (mostly for creating bugfixes or new features)
    • git checkout -b %%some new branch name%%
  • Check out an existing branch
    • git checkout %%some existing branch name%%
  • Figure out the status of your local repository
    • git status
  • Commit a change to your local repo
    • git commit -a –m “%%some commit message%%”
  • Push the change to github
    • git push origin %%some existing branch name%%
  • Go back to master
    • git checkout master