Difference between revisions of "Amahi Edge"
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{MessageBox| | ||
+ | backgroundcolor = #faa| | ||
+ | image =Warning.png| | ||
+ | heading =WARNING| | ||
+ | message = Amahi 7 for Fedora 19<br />Maintenance Support ONLY!}} | ||
+ | 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. | This page is about working notes for the latest in the development tree. | ||
Line 8: | Line 12: | ||
= How to Get Amahi Edge Running = | = 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 | + | 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 | # open a terminal window | ||
− | # as Root (<code>su</code>): | + | # If you are running Fedora, do this as Root (<code>su</code>): |
##enter the root password (not the one from the first user) | ##enter the root password (not the one from the first user) | ||
##<code>yum groupinstall 'Development Tools'</code>, or for a shorter install do: | ##<code>yum groupinstall 'Development Tools'</code>, or for a shorter install do: | ||
− | ##* <code>yum -y install | + | ##* <code>yum -y install make git mysql-devel sqlite-devel mysql-server gcc-c++ tar rpm-build</code> |
+ | ##* <code>yum -y install ruby ruby-devel libxml2-devel libxslt-devel</code> | ||
##<code>systemctl start mysqld.service</code> | ##<code>systemctl start mysqld.service</code> | ||
## <code>gem install bundler</code> | ## <code>gem install bundler</code> | ||
# exit the root user and use a regular user. you will need to reinstall fedora if you skip this step :( | # 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: | |
− | # <code>cd | + | # <code>git clone git@github.com:amahi/platform.git</code> |
+ | # <code>cd platform</code> | ||
# <code>bundle install</code> (this will take a while and install all the necessary gems) | # <code>bundle install</code> (this will take a while and install all the necessary gems) | ||
# <code>rake db:create</code> this will ask for the mysql root password with a prompt ">" | # <code>rake db:create</code> this will ask for the mysql root password with a prompt ">" | ||
− | #* if this is a fresh Fedora | + | #* 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 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 | #* if you are re-running this step and the db is already created, you can run rake db:drop first then create it again | ||
Line 38: | Line 44: | ||
To stop the development server, just hit <code>Ctrl+C</code> in the terminal where you started the server. | To stop the development server, just hit <code>Ctrl+C</code> 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 <code>spec/</code> directory. To run them: | A great way to contribute is to write tests. The spec tests are in the <code>spec/</code> directory. To run them: | ||
Line 57: | Line 58: | ||
to get things to run properly for some reason that we did not root cause yet. | to get things to run properly for some reason that we did not root cause yet. | ||
− | = Old info for Amahi 6 = | + | = Old, obsolete info for Amahi 6 = |
First you need to get the latest git repository (see how on the [[Contribute]]-page) | First you need to get the latest git repository (see how on the [[Contribute]]-page) |
Latest revision as of 00:57, 15 September 2015
WARNING | |
---|---|
Amahi 7 for Fedora 19 Maintenance Support ONLY! |
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.
Contents
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.