Commit 57116ca5dc6651a17ccdd525ae84c38fa5146870
1 parent
42a922ed
Exists in
master
and in
29 other branches
ActionItem1210: putting the English version as default
Showing
2 changed files
with
174 additions
and
174 deletions
Show diff stats
@@ -0,0 +1,174 @@ | @@ -0,0 +1,174 @@ | ||
1 | += Noosfero: a free web-based social platform | ||
2 | + | ||
3 | +== Setting up a Noosfero development/test environment | ||
4 | + | ||
5 | +Noosfero is written in Ruby with the "Rails framework":http://www.rubyonrails.org, | ||
6 | +so the process of setting it up is pretty similar to other Rails applications. | ||
7 | + | ||
8 | +=== Requirements | ||
9 | + | ||
10 | +noosfero is intended to be run in Debian stable. It can work in other environments, but we do not test on them. | ||
11 | + | ||
12 | +You need to have git installed, as well as: | ||
13 | + | ||
14 | +* Ruby: http://www.ruby-lang.org/ | ||
15 | +* Rake: http://rake.rubyforge.org/ | ||
16 | +* Ruby-GetText: http://www.yotabanana.com/hiki/ruby-gettext.html?ruby-gettext (at least version 1.9.0) | ||
17 | +* Ruby-sqlite3: http://rubyforge.org/projects/sqlite-ruby | ||
18 | +* rcov: http://eigenclass.org/hiki/rcov | ||
19 | +* Ferret: http://ferret.davebalmain.com/trac | ||
20 | +* RMagick: http://rmagick.rubyforge.org/ | ||
21 | +* RedCloth: http://whytheluckystiff.net/ruby/redcloth/ | ||
22 | +* will_paginate: http://github.com/mislav/will_paginate/wikis | ||
23 | +* contacts: http://github.com/cardmagic/contacts/tree/master | ||
24 | +* iso-codes: http://pkg-isocodes.alioth.debian.org/ | ||
25 | +* feedparser: http://packages.debian.org/sid/libfeedparser-ruby | ||
26 | +* Mongrel: http://mongrel.rubyforge.org/ | ||
27 | +* tango-icon-theme: http://tango.freedesktop.org/Tango_Icon_Library | ||
28 | + | ||
29 | +There are Debian packages available for all of them but contacts. Try: | ||
30 | + | ||
31 | + # aptitude install subversion ruby rake libgettext-ruby1.8 libsqlite3-ruby rcov librmagick-ruby libredcloth-ruby libwill-paginate-ruby iso-codes libfeedparser-ruby libferret-ruby mongrel mongrel-cluster tango-icon-theme | ||
32 | + | ||
33 | +contacts is bundled together with noosfero for now, so you don't need to install it. | ||
34 | + | ||
35 | +If you have problems with the setup, use the development mailing list. In | ||
36 | +special its possible that the requirements list above is not complete. | ||
37 | + | ||
38 | +=== Setting up a production environment | ||
39 | + | ||
40 | +* install memcached. Study whether you need to raise the ammount of memory it uses for caching, depending on the demand you expect for your site. | ||
41 | +* copy config/ferret_server.yml.dist to config/ferret_server.yml.dist | ||
42 | +* configure the mongrel cluster: `mongrel_rails cluster::configure` | ||
43 | +** then edit config/mongrel_cluster.yml to suit your environment. Make sure your apache configuration matches the mongrel cluster configuration, specially in respect to the ports and numbers of mongrel instances. | ||
44 | +* create needed temporary directories: | ||
45 | + mkdir tmp | ||
46 | + mkdir tmp/pids | ||
47 | + mkdir log | ||
48 | +* create database (example using PostgreSQL, YMMV) | ||
49 | + | ||
50 | + root user | ||
51 | + ========= | ||
52 | + # sudo apt-get install postgresql libpgsql-ruby | ||
53 | + # su - postgres | ||
54 | + | ||
55 | + postgres user | ||
56 | + ============= | ||
57 | + postgres@HOST:~$ createuser noosfero | ||
58 | + Shall the new role be a superuser? (y/n) n | ||
59 | + Shall the new role be allowed to create databases? (y/n) y | ||
60 | + Shall the new role be allowed to create more new roles? (y/n) n | ||
61 | + | ||
62 | + noosfero_user | ||
63 | + ============= | ||
64 | + createdb noosfero_production | ||
65 | + createdb noosfero_development | ||
66 | + createdb noosfero_test | ||
67 | + | ||
68 | +* configure database access in config/database.yml | ||
69 | + | ||
70 | +* test database access: | ||
71 | +** first create the development database | ||
72 | + rake db:schema:load | ||
73 | +** if everything goes right, then create the production database: | ||
74 | + RAILS_ENV=production rake db:schema:load | ||
75 | + | ||
76 | +* create sample data: | ||
77 | + RAILS_ENV=production rake db:populate | ||
78 | + | ||
79 | +* compile the translations: | ||
80 | + rake makemo | ||
81 | + | ||
82 | +* start the server: | ||
83 | + ./script/production start | ||
84 | + | ||
85 | +* to stop the server: | ||
86 | + | ||
87 | + ./script/production stop | ||
88 | + | ||
89 | +* to restart the server: | ||
90 | + | ||
91 | + ./script/production restart | ||
92 | + | ||
93 | +=== Boostraping a test environment | ||
94 | + | ||
95 | +You can copy and paste the commands below into a terminal (please review the | ||
96 | +commands and make sure you understand what you are doing): | ||
97 | + | ||
98 | + # checkout the code from repository | ||
99 | + git clone git://git.colivre.coop.br/noosfero.git | ||
100 | + # enter the directory | ||
101 | + cd noosfero | ||
102 | + # copy a sample config file | ||
103 | + cp config/database.yml.sqlite3 config/database.yml | ||
104 | + # create the database: | ||
105 | + rake db:migrate | ||
106 | + # compile translations: | ||
107 | + rake makemo | ||
108 | + # create some test data: | ||
109 | + ./script/populate | ||
110 | + # install the test dependences: | ||
111 | + aptitude install libtidy-ruby libhpricot-ruby libmocha-ruby imagemagick | ||
112 | + # run the automated test suite to make sure your environment is sane: | ||
113 | + rake test | ||
114 | + | ||
115 | +You should now be ready to go. Issue the following command to start the Rails | ||
116 | +development server: | ||
117 | + | ||
118 | + ./script/server | ||
119 | + | ||
120 | +The server will be available at http://localhost:3000/ . If you want to use | ||
121 | +another port than 3000, you can use the -p option of ./script/server: | ||
122 | + | ||
123 | + ./script/server -p 9999 | ||
124 | + | ||
125 | +The above command makes the server available at http://localhost:9999/ | ||
126 | + | ||
127 | +The populate script creates some test users, one of them has login 'ze' and | ||
128 | +password 'test'. You can use it or you can register a new user. | ||
129 | + | ||
130 | +== Reporting bugs | ||
131 | + | ||
132 | +Use Noosfero Tracker application at http://www.colivre.coop.br/Noosfero. | ||
133 | + | ||
134 | +== Helping with development | ||
135 | + | ||
136 | +* It's recommended that you subscribe to the development mailing | ||
137 | + list: http://ynternet.net/mailman/listinfo/noosfero | ||
138 | +* If you have a patch, create an appropriate action item | ||
139 | + (bugs/requirement/enhancement) in the Tracker web (see "Reporting bugs" | ||
140 | + above) of type. | ||
141 | + | ||
142 | +== Releasing noosfero | ||
143 | + | ||
144 | +To prepare a release of noosfero, you must follow the steps below: | ||
145 | + | ||
146 | +* finish all requirements and bugs assigned to the to-be-released version | ||
147 | +* make sure all tests pass | ||
148 | +* write release notes at the version's wiki topic. | ||
149 | +* generate package with <tt>rake package</tt>. Your tarball will be under the pkg/ | ||
150 | + directory, named as noosfero-${VERSION}.tar.gz | ||
151 | +* test that the package contains everything that is needed: explode the tarball | ||
152 | + in a temporary directory, copy config/database.yml.sqlite3 to | ||
153 | + config/database.yml, and make <tt>rake db:migrate</tt> and <tt>rake test</tt>. If | ||
154 | + everything is ok, you are done. If not, maybe some files are not going into | ||
155 | + the tarball. See lib/tasks/package.rake, probably you'll need to change it. | ||
156 | +* Go to the version's wiki topic and edit it to reflect the new reality. | ||
157 | +* Attach the generated package to that topic. Before attaching calculate the md5 of the package (with mu5sum and paste the MD5 hash as comment in the attachment form) | ||
158 | +* Download the attached and verify the MD5 hash | ||
159 | +* create a git tag for the released version with <tt>git tag</tt>. | ||
160 | +* IMMEDIATELY change the version in lib/noosfero.rb to the next version. (e.g. | ||
161 | + 0.2.0 -> 0.3.0) | ||
162 | +* update an eventual demonstration version that you run. | ||
163 | +* write an announcement e-mail to the relevant maimling lists pointing to the release notes, and maybe to the demonstration version. | ||
164 | + | ||
165 | +If you had any problem during these steps, you can do <tt>rake clobber_package</tt> to | ||
166 | +completely delete the generated packages and start the process again. | ||
167 | + | ||
168 | +== Working with translations | ||
169 | + | ||
170 | +* Update translation files: <tt>rake updatepo</tt>. Then <tt>git commit</tt> them. | ||
171 | +* Send the PO files to the translators. | ||
172 | +* Get the PO files back from translators, put in po/ under the correct language | ||
173 | + name (e.,g. po/pt_BR/) and <tt>git commit</tt>. | ||
174 | +* test translations: <tt>rake makemo</tt> and browse the application on the web. |
doc/README_FOR_APP.en
@@ -1,174 +0,0 @@ | @@ -1,174 +0,0 @@ | ||
1 | -= Noosfero: a free web-based social platform | ||
2 | - | ||
3 | -== Setting up a Noosfero development/test environment | ||
4 | - | ||
5 | -Noosfero is written in Ruby with the "Rails framework":http://www.rubyonrails.org, | ||
6 | -so the process of setting it up is pretty similar to other Rails applications. | ||
7 | - | ||
8 | -=== Requirements | ||
9 | - | ||
10 | -noosfero is intended to be run in Debian stable. It can work in other environments, but we do not test on them. | ||
11 | - | ||
12 | -You need to have git installed, as well as: | ||
13 | - | ||
14 | -* Ruby: http://www.ruby-lang.org/ | ||
15 | -* Rake: http://rake.rubyforge.org/ | ||
16 | -* Ruby-GetText: http://www.yotabanana.com/hiki/ruby-gettext.html?ruby-gettext (at least version 1.9.0) | ||
17 | -* Ruby-sqlite3: http://rubyforge.org/projects/sqlite-ruby | ||
18 | -* rcov: http://eigenclass.org/hiki/rcov | ||
19 | -* Ferret: http://ferret.davebalmain.com/trac | ||
20 | -* RMagick: http://rmagick.rubyforge.org/ | ||
21 | -* RedCloth: http://whytheluckystiff.net/ruby/redcloth/ | ||
22 | -* will_paginate: http://github.com/mislav/will_paginate/wikis | ||
23 | -* contacts: http://github.com/cardmagic/contacts/tree/master | ||
24 | -* iso-codes: http://pkg-isocodes.alioth.debian.org/ | ||
25 | -* feedparser: http://packages.debian.org/sid/libfeedparser-ruby | ||
26 | -* Mongrel: http://mongrel.rubyforge.org/ | ||
27 | -* tango-icon-theme: http://tango.freedesktop.org/Tango_Icon_Library | ||
28 | - | ||
29 | -There are Debian packages available for all of them but contacts. Try: | ||
30 | - | ||
31 | - # aptitude install subversion ruby rake libgettext-ruby1.8 libsqlite3-ruby rcov librmagick-ruby libredcloth-ruby libwill-paginate-ruby iso-codes libfeedparser-ruby libferret-ruby mongrel mongrel-cluster tango-icon-theme | ||
32 | - | ||
33 | -contacts is bundled together with noosfero for now, so you don't need to install it. | ||
34 | - | ||
35 | -If you have problems with the setup, use the development mailing list. In | ||
36 | -special its possible that the requirements list above is not complete. | ||
37 | - | ||
38 | -=== Setting up a production environment | ||
39 | - | ||
40 | -* install memcached. Study whether you need to raise the ammount of memory it uses for caching, depending on the demand you expect for your site. | ||
41 | -* copy config/ferret_server.yml.dist to config/ferret_server.yml.dist | ||
42 | -* configure the mongrel cluster: `mongrel_rails cluster::configure` | ||
43 | -** then edit config/mongrel_cluster.yml to suit your environment. Make sure your apache configuration matches the mongrel cluster configuration, specially in respect to the ports and numbers of mongrel instances. | ||
44 | -* create needed temporary directories: | ||
45 | - mkdir tmp | ||
46 | - mkdir tmp/pids | ||
47 | - mkdir log | ||
48 | -* create database (example using PostgreSQL, YMMV) | ||
49 | - | ||
50 | - root user | ||
51 | - ========= | ||
52 | - # sudo apt-get install postgresql libpgsql-ruby | ||
53 | - # su - postgres | ||
54 | - | ||
55 | - postgres user | ||
56 | - ============= | ||
57 | - postgres@HOST:~$ createuser noosfero | ||
58 | - Shall the new role be a superuser? (y/n) n | ||
59 | - Shall the new role be allowed to create databases? (y/n) y | ||
60 | - Shall the new role be allowed to create more new roles? (y/n) n | ||
61 | - | ||
62 | - noosfero_user | ||
63 | - ============= | ||
64 | - createdb noosfero_production | ||
65 | - createdb noosfero_development | ||
66 | - createdb noosfero_test | ||
67 | - | ||
68 | -* configure database access in config/database.yml | ||
69 | - | ||
70 | -* test database access: | ||
71 | -** first create the development database | ||
72 | - rake db:schema:load | ||
73 | -** if everything goes right, then create the production database: | ||
74 | - RAILS_ENV=production rake db:schema:load | ||
75 | - | ||
76 | -* create sample data: | ||
77 | - RAILS_ENV=production rake db:populate | ||
78 | - | ||
79 | -* compile the translations: | ||
80 | - rake makemo | ||
81 | - | ||
82 | -* start the server: | ||
83 | - ./script/production start | ||
84 | - | ||
85 | -* to stop the server: | ||
86 | - | ||
87 | - ./script/production stop | ||
88 | - | ||
89 | -* to restart the server: | ||
90 | - | ||
91 | - ./script/production restart | ||
92 | - | ||
93 | -=== Boostraping a test environment | ||
94 | - | ||
95 | -You can copy and paste the commands below into a terminal (please review the | ||
96 | -commands and make sure you understand what you are doing): | ||
97 | - | ||
98 | - # checkout the code from repository | ||
99 | - git clone git://git.colivre.coop.br/noosfero.git | ||
100 | - # enter the directory | ||
101 | - cd noosfero | ||
102 | - # copy a sample config file | ||
103 | - cp config/database.yml.sqlite3 config/database.yml | ||
104 | - # create the database: | ||
105 | - rake db:migrate | ||
106 | - # compile translations: | ||
107 | - rake makemo | ||
108 | - # create some test data: | ||
109 | - ./script/populate | ||
110 | - # install the test dependences: | ||
111 | - aptitude install libtidy-ruby libhpricot-ruby libmocha-ruby imagemagick | ||
112 | - # run the automated test suite to make sure your environment is sane: | ||
113 | - rake test | ||
114 | - | ||
115 | -You should now be ready to go. Issue the following command to start the Rails | ||
116 | -development server: | ||
117 | - | ||
118 | - ./script/server | ||
119 | - | ||
120 | -The server will be available at http://localhost:3000/ . If you want to use | ||
121 | -another port than 3000, you can use the -p option of ./script/server: | ||
122 | - | ||
123 | - ./script/server -p 9999 | ||
124 | - | ||
125 | -The above command makes the server available at http://localhost:9999/ | ||
126 | - | ||
127 | -The populate script creates some test users, one of them has login 'ze' and | ||
128 | -password 'test'. You can use it or you can register a new user. | ||
129 | - | ||
130 | -== Reporting bugs | ||
131 | - | ||
132 | -Use Noosfero Tracker application at http://www.colivre.coop.br/Noosfero. | ||
133 | - | ||
134 | -== Helping with development | ||
135 | - | ||
136 | -* It's recommended that you subscribe to the development mailing | ||
137 | - list: http://ynternet.net/mailman/listinfo/noosfero | ||
138 | -* If you have a patch, create an appropriate action item | ||
139 | - (bugs/requirement/enhancement) in the Tracker web (see "Reporting bugs" | ||
140 | - above) of type. | ||
141 | - | ||
142 | -== Releasing noosfero | ||
143 | - | ||
144 | -To prepare a release of noosfero, you must follow the steps below: | ||
145 | - | ||
146 | -* finish all requirements and bugs assigned to the to-be-released version | ||
147 | -* make sure all tests pass | ||
148 | -* write release notes at the version's wiki topic. | ||
149 | -* generate package with <tt>rake package</tt>. Your tarball will be under the pkg/ | ||
150 | - directory, named as noosfero-${VERSION}.tar.gz | ||
151 | -* test that the package contains everything that is needed: explode the tarball | ||
152 | - in a temporary directory, copy config/database.yml.sqlite3 to | ||
153 | - config/database.yml, and make <tt>rake db:migrate</tt> and <tt>rake test</tt>. If | ||
154 | - everything is ok, you are done. If not, maybe some files are not going into | ||
155 | - the tarball. See lib/tasks/package.rake, probably you'll need to change it. | ||
156 | -* Go to the version's wiki topic and edit it to reflect the new reality. | ||
157 | -* Attach the generated package to that topic. Before attaching calculate the md5 of the package (with mu5sum and paste the MD5 hash as comment in the attachment form) | ||
158 | -* Download the attached and verify the MD5 hash | ||
159 | -* create a git tag for the released version with <tt>git tag</tt>. | ||
160 | -* IMMEDIATELY change the version in lib/noosfero.rb to the next version. (e.g. | ||
161 | - 0.2.0 -> 0.3.0) | ||
162 | -* update an eventual demonstration version that you run. | ||
163 | -* write an announcement e-mail to the relevant maimling lists pointing to the release notes, and maybe to the demonstration version. | ||
164 | - | ||
165 | -If you had any problem during these steps, you can do <tt>rake clobber_package</tt> to | ||
166 | -completely delete the generated packages and start the process again. | ||
167 | - | ||
168 | -== Working with translations | ||
169 | - | ||
170 | -* Update translation files: <tt>rake updatepo</tt>. Then <tt>git commit</tt> them. | ||
171 | -* Send the PO files to the translators. | ||
172 | -* Get the PO files back from translators, put in po/ under the correct language | ||
173 | - name (e.,g. po/pt_BR/) and <tt>git commit</tt>. | ||
174 | -* test translations: <tt>rake makemo</tt> and browse the application on the web. |