= Noosfero: a free web-based social platform == Setting up a Noosfero development/test environment Noosfero is written in Ruby with the "Rails framework":http://www.rubyonrails.org, so the process of setting it up is pretty similar to other Rails applications. === Requirements You need to have a Subversion client (svn) installed, as well as: * Ruby: http://www.ruby-lang.org/ * Rake: http://rake.rubyforge.org/ * Ruby-GetText: http://www.yotabanana.com/hiki/ruby-gettext.html?ruby-gettext * Mocha: http://mocha.rubyforge.org/ * Ruby-sqlite3: http://rubyforge.org/projects/sqlite-ruby * rcov: http://eigenclass.org/hiki/rcov * Ferret: http://ferret.davebalmain.com/trac There are Debian packages available for all of them but ferret. Try: # aptitude install subversion ruby rake libgettext-ruby libmocha-ruby libsqlite3-ruby rcov Ferret shall enter Debian soon (as +libferret-ruby+). until there you have two options: 1. build the source package from svn://svn.debian.org/svn/pkg-ruby-extras/packages-wip/libferret-ruby 1. install ferret via rubygems: issue +gem install ferret+ as root (you'll need to install the +rubygems+ package for it) If you have problems with the setup, use the development mailing list. In special its possible that the requirements list above is not complete. === Boostraping the test environment You can copy and paste the commands below into a terminal (please review the commands and make sure you understand what you are doing): # checkout the code from repository svn checkout https://svn.colivre.coop.br/svn/noosfero/trunk/ noosfero # enter the directory cd noosfero # copy a sample config file cp config/database.yml.sqlite3 config/database.yml # create the database: rake db:migrate # compile translations: rake makemo # create some test data: ./script/populate # run the automated test suite to make sure your environment is sane: rake test You should now be ready to go. Issue the following command to start the Rails development server: ./script/server The server will be available at http://localhost:3000/ . If you want to use another port than 3000, you can use the -p option of ./script/server: ./script/server -p 9999 The above command makes the server available at http://localhost:9999/ The populate script creates some test users, one of them has login 'ze' and password 'test'. You can use it or you can register a new user. == Reporting bugs Use Noosfero Tracker application at http://www.colivre.coop.br/Noosfero. == Helping with development * It's recommended that you subscribe to the "development mailing list":http://ynternet.net/mailman/listinfo/noosfero * If you have a patch, create an appropriate action item (bugs/requirement/enhancement) in the Tracker web (see "Reporting bugs" above) of type. == Releasing noosfero To prepare a release of noosfero, you must follow the steps below: * finish all requirements and bugs assigned to the to-be-released version * make sure all tests pass * write release notes at the version's wiki topic. * generate package with +rake package+. Your tarball will be under the pkg/ directory, named as noosfero-${VERSION}.tar.gz * test that the package contains everything that is needed: explode the tarball in a temporary directory, copy config/database.yml.sqlite3 to config/database.yml, and make +rake db:migrate+ and +rake test+. If everything is ok, you are done. If not, maybe some files are not going into the tarball. See lib/tasks/package.rake, probably you'll need to change it. * Go to the version's wiki topic and edit it to reflect the new reality. * Attach the generated package to that topic. * create a svn tag for the released version with +rake tag+. See lib/tasks/svn.rake in case of any questions. * IMMEDIATELY change the version in lib/noosfero.rb to the next version. (e.g. 0.2.0 -> 0.3.0) If you had any problem during these steps, you can do +rake clobber_package+ to completely delete the generated packages and start the process again. == Working with translations * Update translation files: +rake updatepo+. Then +svn commit+ them. * Send the PO files to the translators. * Get tha PO files back from translators, put in po/ under the correct language name (e.,g. po/pt_BR/) and +svn commit+. * test translations: +rake makemo+ and browse the application on the web.