Amahi Edge
WARNING | |
---|---|
The Amahi 7 work has moved to a new page specific for Amahi 7! |
Amahi "edge" is the developer version of Amahi, with the very latest and greatest code in it.
It lives in the master branch of the Amahi git repo at https://github.com/amahi/platform
This page is about working notes for the latest in the development tree.
How to Get Amahi Edge Running
This procedure is the way to get Amahi 7 running in development. This has been tested with a clean Fedora 19 minimal install from the netinst DVD (generally without updates), though it can be done on Mac OS X as well:
- open a terminal window
- If you are running Fedora, do this as Root (
su
):- enter the root password (not the one from the first user)
yum groupinstall 'Development Tools'
, or for a shorter install do:yum -y install make git mysql-devel sqlite-devel mysql-server gcc-c++ tar rpm-build
yum -y install ruby ruby-devel libxml2-devel libxslt-devel
systemctl start mysqld.service
gem install bundler
- exit the root user and use a regular user. you will need to reinstall fedora if you skip this step :(
- if you are running on Mac OS X, install git, mysql, probably homebrew as well
- we suggest you create a new folder to put the amahi development code, then in it run:
git clone git@github.com:amahi/platform.git
cd platform
bundle install
(this will take a while and install all the necessary gems)rake db:create
this will ask for the mysql root password with a prompt ">"- if this is a fresh Fedora 18 install, your mysql server probably does not have a password, so just press Enter
- if you set a password for the mysql root user, type it. Note that it will show a warning and echo the password!
- if you are re-running this step and the db is already created, you can run rake db:drop first then create it again
rake db:migrate
(this will get the database up to snuff)rake db:seed
(this will get a basic database setup)- rails s (this will start the rails server)
The development dashboard can be reached with your favorite browser at:
http://localhost:3000
There is an initial user created called admin
with password admin
. Login should work out of the box.
To stop the development server, just hit Ctrl+C
in the terminal where you started the server.
Running Tests
A great way to contribute is to write tests. The spec tests are in the spec/
directory. To run them:
rake spec
It will show you one dot per test passing. It will show test fails with F and display the error.
You may need to
yum install rubygem-minitest
to get things to run properly for some reason that we did not root cause yet.
Old, obsolete info for Amahi 6
First you need to get the latest git repository (see how on the Contribute-page)
After you've got the latest master branch you need to switch to the amahi-edge branch (and tell git to follow it on the remote server):
git checkout amahi-edge
The amahi-edge code uses a different database for it's data so we need to create one, copy the production data in it and migrate it to the new datamodel:
- Go to
/path/to/git/clone/platform/platform
- Execute
./hda-create-db-and-user amahi_devel
- Go to
/path/to/git/clone/platform/platform/html/script
- Execute
./db-duplicate hda_production amahi_devel
- Go to
/path/to/git/clone/platform/platform/html
- Execute
rake db:migrate
Now we have a working amahi-edge branch which can be used to develop features, gadgets, widgets and fix bugs.
To reach the amahi-edge branch you need to go to /path/to/git/clone/platform/platform/html
and execute
./script/server
How to install one Gadget
If you have developed a new gadget or fixed some bugs on an existing one you can install it using:
- Go to
/path/to/git/clone/platform/platform/html
- Execute
rake gadgets:install source=/path/to/the/gadget/source
, e.g.
rake gadgets:install source=../../gadgets/gadget_last_modified_files
When there are errors after installing the gadget you can uninstall it using:
- Go to
/path/to/git/clone/platform/platform/html
- Execute
rake gadgets:uninstall source=/path/to/the/gadget/source
Tips
- Start with virtual machine snapshots. Take a snapshot of your VM at the beginning, in case you have to revert, and take a snapshot as you progress through milestones.
- If you do not have a VM, take a snapshot of your development database. You can use ./script/db-duplicate and ./script/db-restore (use with care!)
- Don't forget, the Amahi forum has a section for virtualization, in case you're looking for some input in that area.