From 0d5fca9ba5ac81db46211b6cc06686e59c57beb4 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Tue, 6 Jul 2010 21:06:09 +0000 Subject: [PATCH 01/34] Force the default value of path to be set on the Change model class. #5771 This is needed because MySQL does not support default values on text columns (Error introduced in r3828) Contributed by Holger Just git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3830 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/change.rb | 4 ++++ db/migrate/20100705164950_change_changes_path_length_limit.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/change.rb b/app/models/change.rb index 385fe5acb..e5c1585b4 100644 --- a/app/models/change.rb +++ b/app/models/change.rb @@ -23,4 +23,8 @@ class Change < ActiveRecord::Base def relative_path changeset.repository.relative_path(path) end + + def before_save + path ||= "" + end end diff --git a/db/migrate/20100705164950_change_changes_path_length_limit.rb b/db/migrate/20100705164950_change_changes_path_length_limit.rb index 5f34d5dcf..62ba4ec22 100644 --- a/db/migrate/20100705164950_change_changes_path_length_limit.rb +++ b/db/migrate/20100705164950_change_changes_path_length_limit.rb @@ -1,6 +1,6 @@ class ChangeChangesPathLengthLimit < ActiveRecord::Migration def self.up - change_column :changes, :path, :text, :default => "", :null => false + change_column :changes, :path, :text, :null => false change_column :changes, :from_path, :text end From ef5bca0fefea59abd5b9b56140c6f10530a4d302 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 8 Jul 2010 03:46:14 +0000 Subject: [PATCH 02/34] Have Redmine.pm respect the Authentication Required setting. #5797 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3831 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- extra/svn/Redmine.pm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index 1b3b0910f..f608ee124 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -227,9 +227,38 @@ sub authen_handler { } } +# check if authentication is forced +sub is_authentication_forced { + my $r = shift; + + my $dbh = connect_database($r); + my $sth = $dbh->prepare( + "SELECT value FROM settings where settings.name = 'login_required';" + ); + + $sth->execute(); + my $ret = 0; + if (my @row = $sth->fetchrow_array) { + if ($row[0] eq "1" || $row[0] eq "t") { + $ret = 1; + } + } + $sth->finish(); + undef $sth; + + $dbh->disconnect(); + undef $dbh; + + $ret; +} + sub is_public_project { my $project_id = shift; my $r = shift; + + if (is_authentication_forced($r)) { + return 0; + } my $dbh = connect_database($r); my $sth = $dbh->prepare( From 69af1515d1fd7e9cf2ae01b19f075d5483f46cc1 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 8 Jul 2010 03:46:19 +0000 Subject: [PATCH 03/34] Check the browse repository or commit access permissions in Redmine.pm with LDAP. #5797 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3832 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- extra/svn/Redmine.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index f608ee124..091e21930 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -338,7 +338,9 @@ sub is_member { bindpw => $rowldap[4] ? $rowldap[4] : "", filter => "(".$rowldap[6]."=%s)" ); - $ret = 1 if ($ldap->authenticate($redmine_user, $redmine_pass)); + my $method = $r->method; + $ret = 1 if ($ldap->authenticate($redmine_user, $redmine_pass) && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/)); + } $sthldap->finish(); undef $sthldap; From 83f1ecb980b8c52a3d4101062340a4491603c7fb Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 8 Jul 2010 03:53:01 +0000 Subject: [PATCH 04/34] Update the CHANGELOG for 0.9.6 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3835 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- doc/CHANGELOG | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 8d23117fd..240b11609 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -8,7 +8,12 @@ http://www.redmine.org/ Adds context menu to the roadmap issue lists +== 2010-07-07 v0.9.6 + +Fixed: Redmine.pm access by unauthorized users + == 2010-06-24 v0.9.5 + Linkify folder names on revision view "fiters" and "options" should be hidden in print view via css Fixed: NoMethodError when no issue params are submitted From a84ea6866dd302a90b39de08baa5d1982da82585 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 8 Jul 2010 03:53:07 +0000 Subject: [PATCH 05/34] Version 0.9.6 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3836 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/redmine/version.rb b/lib/redmine/version.rb index 3e84bd17c..65aaf4bd5 100644 --- a/lib/redmine/version.rb +++ b/lib/redmine/version.rb @@ -4,7 +4,7 @@ module Redmine module VERSION #:nodoc: MAJOR = 0 MINOR = 9 - TINY = 5 + TINY = 6 # Branch values: # * official release: nil From cd54efa0c937e18fa163d2d40d43e45f25050400 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 9 Jul 2010 13:46:20 +0000 Subject: [PATCH 06/34] Force the test RAILS_ENV to help prevent purging data when mistyping. #4572 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3840 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/test_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 1f735f5f6..c934e1bc2 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -ENV["RAILS_ENV"] ||= "test" +ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require 'test_help' require File.expand_path(File.dirname(__FILE__) + '/helper_testcase') From 5e259d41e2c1bccd3ffe7de7267ff8015c0df54f Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 16 Jul 2010 03:11:35 +0000 Subject: [PATCH 07/34] Fix typos in the examples. #5823 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3841 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/plugin.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb index 2be8ac8aa..11255e02d 100644 --- a/lib/redmine/plugin.rb +++ b/lib/redmine/plugin.rb @@ -202,10 +202,10 @@ module Redmine #:nodoc: # permission :say_hello, { :example => :say_hello } # # # A permission that can be given to registered users only - # permission :say_hello, { :example => :say_hello }, :require => loggedin + # permission :say_hello, { :example => :say_hello }, :require => :loggedin # # # A permission that can be given to project members only - # permission :say_hello, { :example => :say_hello }, :require => member + # permission :say_hello, { :example => :say_hello }, :require => :member def permission(name, actions, options = {}) if @project_module Redmine::AccessControl.map {|map| map.project_module(@project_module) {|map|map.permission(name, actions, options)}} From c6223864d061377331b0c8e53f94fe20cbe77084 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 16 Jul 2010 03:16:29 +0000 Subject: [PATCH 08/34] Add :view_issues_index_bottom hook. #5169 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3842 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/views/issues/index.rhtml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/issues/index.rhtml b/app/views/issues/index.rhtml index beece6275..1778f4d64 100644 --- a/app/views/issues/index.rhtml +++ b/app/views/issues/index.rhtml @@ -70,6 +70,7 @@ <% end %> <% end %> +<%= call_hook(:view_issues_index_bottom, { :issues => @issues, :project => @project, :query => @query }) %> <% content_for :sidebar do %> <%= render :partial => 'issues/sidebar' %> From d064f272710a201c2dad2682e8ce05ed05143b74 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 16 Jul 2010 03:25:03 +0000 Subject: [PATCH 09/34] Updating CHANGELOG for 1.0 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3843 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- doc/CHANGELOG | 77 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 240b11609..d6b81944d 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -4,9 +4,82 @@ Redmine - project management software Copyright (C) 2006-2010 Jean-Philippe Lang http://www.redmine.org/ -== v1.0.0 +== v1.0.0 (Release candidate) + +#443: Adds context menu to the roadmap issue lists +#443: Subtasking +#741: Description preview while editing an issue +#1131: Add support for alternate (non-LDAP) authentication +#1214: REST API for Issues +#1223: File upload on wiki edit form +#1755: add "blocked by" as a related issues option +#2420: Fetching emails from an POP server +#2482: Named scopes in Issue and ActsAsWatchable plus some view refactoring (logic extraction). +#2924: Make the right click menu more discoverable using a cursor property +#2985: Make syntax highlighting pluggable +#3201: Workflow Check/Uncheck All Rows/Columns +#3359: Update CodeRay 0.9 +#3706: Allow assigned_to field configuration on Issue creation by email +#3936: configurable list of models to include in search +#4480: Create a link to the user profile from the administration interface +#4482: Cache textile rendering +#4572: Make it harder to ruin your database +#4573: Move github gems to Gemcutter +#4664: Add pagination to forum threads +#4732: Make login case-insensitive also for PostgreSQL +#4812: Create links to other projects +#4819: Replace images with smushed ones for speed +#4945: Allow custom fields attached to project to be searchable +#5121: Fix issues list layout overflow +#5169: Issue list view hook request +#5208: Aibility to edit wiki sidebar +#5281: Remove empty ul tags in the issue history +#5291: Updated basque translations +#5328: Automatically add "Repository" menu_item after repository creation +#5415: Fewer SQL statements generated for watcher_recipients +#5416: Exclude "fields_for" from overridden methods in TabularFormBuilder +#5573: Allow issue assignment in email +#5595: Allow start date and due dates to be set via incoming email +#5752: The projects view (/projects) renders ul's wrong +#5781: Allow to use more macros on the welcome page and project list +Fixed #1288: Unable to past escaped wiki syntax in an issue description +Fixed #1334: Wiki formatting character *_ and _* +Fixed #1416: Inline code with less-then/greater-than produces @lt; and @gt; respectively +Fixed #2473: Login and mail should not be case sensitive +Fixed #2990: Ruby 1.9 - wrong number of arguments (1 for 0) on rake db:migrate +Fixed #3089: Text formatting sometimes breaks when combined +Fixed #3690: Status change info duplicates on the issue screen +Fixed #3691: Redmine allows two files with the same file name to be uploaded to the same issue +Fixed #3764: ApplicationHelperTest fails with JRuby +Fixed #4265: Unclosed code tags in issue descriptions affects main UI +Fixed #4745: Bug in index.xml.builder (issues) +Fixed #4852: changing user/roles of project member not possible without javascript +Fixed #4857: Week number calculation in date picker is wrong if a week starts with Sunday +Fixed #4883: Bottom "contextual" placement in issue with associated changeset +Fixed #4918: Revisions r3453 and r3454 broke On-the-fly user creation with LDAP +Fixed #4935: Navigation to the Master Timesheet page (time_entries) +Fixed #5043: Flash messages are not displayed after the project settings[module/activity] saved +Fixed #5081: Broken links on public/help/wiki_syntax_detailed.html +Fixed #5104: Description of document not wikified on documents index +Fixed #5108: Issue linking fails inside of []s +Fixed #5199: diff code coloring using coderay +Fixed #5233: Add a hook to the issue report (Summary) view +Fixed #5265: timetracking: subtasks time is added to the main task +Fixed #5343: acts_as_event Doesn't Accept Outside URLs +Fixed #5440: UI Inconsistency : Administration > Enumerations table row headers should be enclosed in +Fixed #5463: 0.9.4 INSTALL and/or UPGRADE, missing session_store.rb +Fixed #5524: Update_parent_attributes doesn't work for the old parent issue when reparenting +Fixed #5548: SVN Repository: Can not list content of a folder which includes square brackets. +Fixed #5589: "with subproject" malfunction +Fixed #5676: Search for Numeric Value +Fixed #5696: Redmine + PostgreSQL 8.4.4 fails on _dir_list_content.rhtml +Fixed #5698: redmine:email:receive_imap fails silently for mails with subject longer than 255 characters +Fixed #5700: TimelogController#destroy assumes success +Fixed #5751: developer role is mispelled +Fixed #5769: Popup Calendar doesn't Advance in Chrome +Fixed #5771: Problem when importing git repository +Fixed #5823: Error in comments in plugin.rb -Adds context menu to the roadmap issue lists == 2010-07-07 v0.9.6 From 9cfa15917daaf0641a6c52b72bbacf1463adad67 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 16 Jul 2010 03:45:50 +0000 Subject: [PATCH 10/34] Added an official favicon.ico git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3845 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- public/favicon.ico | Bin 0 -> 7886 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/favicon.ico b/public/favicon.ico index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..51c1aeb09896dfa4de1de34d55fc062e9b6eb351 100644 GIT binary patch literal 7886 zcmeHMdu&rx82{#AecX;MptvZ|#Rp1EbiPpIWBegR@ktE&mx(4CA%L$$6OA&+d_W?> zs9=_`t*wZPNDLB!1~OpCqqpmv>j2l=c56G3fUqILkZs4`xu^H`uD$Eptwdw?C13Bk z=X~GqJFk6@JE8(Aq|#CXmD7T8L^IJUD--W4Y(#bFD=!!CUqf#C1fm=9%2jxGf%=Pv z75u*=*M~%&R>7`$!!OVMdQ#rK1MLAYOYoxM^*tXM5JUld~vxbZ1uS8m7HMRKV6$H!B2rbMw$al(jnFWe zcSb078BrDZ(hCXOj#V3B3A;;E%X3#BI^o17B2Mo;$wht|W$z z)rh`+*u|~X*nOO6-F3O+*WaJS(6QiyJ%0`E=YGAOU+)~rHD@pmx8Z&peZlnpy4!LD zhq&vhbe!7z(Dym)1Tel1&znVDXmI3?|MO&`%{XJe4%b#-?M8+%m8ceeetsblk0HJn z;q%?9zt7o#ZyWSJL9BaJsBQ!%CmsXj1z@bfhrQ>qNIoLQvi;o-&*Q^AQFVDd^nw$1 z;GW3$GWc&WuywvRTXdpdo;K)ljMLbM$CLWro6r|c$RMwfeq#4(_yf1@y7Ue7{razyx@A#GK|* z#Jq)whXZ(iPjuv}R7w3^ic~@kwZBH*_A^fruSnVcI72Cf5Dj`pV^{eC-RauJH?i&bG0aQ$rgDg9V6SGE<5s+ z8rV3H$XfziOmk@IMd4kYuH@g>{hNPCPrw$u7`&)=Z78QRilM zjQUt5buV>N_Z%nnHadw_18ezUJp55pId~RW&%=1f7>(_~*bW$Wz>R#s{Z%@9;79X8 zYmjr9;j4X!yPgZ_`J0*}B7e>Y)m>qZujaaq7#lDjclq;S9oUo2@m2dC>qvBN&{M%6yv-J8*_ME-!hxd!=GzKE}5!k$?qetMQv-OD%31|?Wx3bYk4QQ5BUhr!iW1YTJoI~STgRpZ@D>|w+v%lLQc>1 zVPEbrm(R9$FLHDvp4!Ga`*7z{iPtV^vY3Mxwcbd{|AaZF{9QVtcdfasANO;lq<(|s z=a|Ax52PcuVx2y|H<~Q|{=Huk@!WKzbO3i-ZpSy(egkgX&}i~@$niR?M%2|@GEj#4 zX7SKEW+SMTBn5RLue&($`{ivC_gY>g`pka!AXebJt431rS=1+@X0o=M?3pHLe4;L} zhu4VuNjW8IOl`cORBL5^wn(URw&*n&uk$!tLJvYOL*2pG9r}2Xo?5R4U%QeYz1aWZWVw%~e>fSPq} zYTZ{v5v2SLR?Go)Wn#ayrxeqyEvp z)AR56F~6C8-iKOwThdhGP9!_>&I&uI2 literal 0 HcmV?d00001 From 09a681db8bdd56af7057f57602a098289ac05a40 Mon Sep 17 00:00:00 2001 From: Azamat Hackimov Date: Fri, 16 Jul 2010 16:47:00 +0000 Subject: [PATCH 11/34] Translation updates * ru * sv (#5740) * pt-BR (#5785) * zh (#5158, #5883) * zh-TW (#5735) git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3847 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- config/locales/pt-BR.yml | 4 ++-- config/locales/ru.yml | 4 ++-- config/locales/sv.yml | 4 ++-- config/locales/zh-TW.yml | 4 ++-- config/locales/zh.yml | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index e3cf7d1c0..9365505d0 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -930,5 +930,5 @@ pt-BR: notice_failed_to_save_members: "Falha ao gravar membro(s): {{errors}}." text_zoom_out: Afastar zoom text_zoom_in: Aproximar zoom - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time + notice_unable_delete_time_entry: Não foi possível excluir a entrada no registro de horas trabalhadas. + label_overall_spent_time: Tempo gasto geral diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 5386c1fca..cce123622 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1022,5 +1022,5 @@ ru: field_principal: Глава text_zoom_out: Отдалить text_zoom_in: Приблизить - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time + notice_unable_delete_time_entry: Невозможно удалить запись журнала. + label_overall_spent_time: Всего затрачено времени diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 30ac17004..23450007a 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -203,6 +203,7 @@ sv: notice_account_pending: "Ditt konto skapades och avvaktar nu administratörens godkännande." notice_default_data_loaded: Standardkonfiguration inläst. notice_unable_delete_version: Denna version var inte möjlig att ta bort. + notice_unable_delete_time_entry: Tidloggning kunde inte tas bort. notice_issue_done_ratios_updated: % klart uppdaterade. error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: {{value}}" @@ -689,6 +690,7 @@ sv: label_changes_details: Detaljer om alla ändringar label_issue_tracking: Ärendeuppföljning label_spent_time: Spenderad tid + label_overall_spent_time: Total tid spenderad label_f_hour: "{{value}} timme" label_f_hour_plural: "{{value}} timmar" label_time_tracking: Tidsuppföljning @@ -951,5 +953,3 @@ sv: enumeration_doc_categories: Dokumentkategorier enumeration_activities: Aktiviteter (tidsuppföljning) enumeration_system_activity: Systemaktivitet - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 7d5c8091c..fc5f557d1 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -243,6 +243,7 @@ notice_account_pending: "您的帳號已經建立,正在等待管理員的審核。" notice_default_data_loaded: 預設組態已載入成功。 notice_unable_delete_version: 無法刪除版本。 + notice_unable_delete_time_entry: 無法刪除工時記錄項目。 notice_issue_done_ratios_updated: 項目完成百分比已更新。 error_can_t_load_default_data: "無法載入預設組態: {{value}}" @@ -729,6 +730,7 @@ label_changes_details: 所有變更的明細 label_issue_tracking: 項目追蹤 label_spent_time: 耗用工時 + label_overall_spent_time: 整體耗用工時 label_f_hour: "{{value}} 小時" label_f_hour_plural: "{{value}} 小時" label_time_tracking: 工時追蹤 @@ -991,5 +993,3 @@ enumeration_doc_categories: 文件分類 enumeration_activities: 活動 (時間追蹤) enumeration_system_activity: 系統活動 - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 49725b0a6..6fdb33f52 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -428,7 +428,7 @@ zh: one: 1 个项目 other: "{{count}} 个项目" label_project_all: 所有的项目 - label_project_latest: 最近更新的项目 + label_project_latest: 最近的项目 label_issue: 问题 label_issue_new: 新建问题 label_issue_plural: 问题 @@ -592,10 +592,10 @@ zh: label_all_time: 全部时间 label_yesterday: 昨天 label_this_week: 本周 - label_last_week: 下周 + label_last_week: 上周 label_last_n_days: "最后 {{count}} 天" label_this_month: 本月 - label_last_month: 下月 + label_last_month: 上月 label_this_year: 今年 label_date_range: 日期范围 label_less_than_ago: 之前天数少于 From 6807d070da908e6858d36b461deb9311c6e6f342 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sun, 18 Jul 2010 15:19:04 +0000 Subject: [PATCH 12/34] Updated the INSTALL and UPGRADING documents for the 1.0 release. Contributed by Mischa The Evil git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3848 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- doc/INSTALL | 80 +++++++++++++++++++++++++++++++++------------------ doc/UPGRADING | 60 +++++++++++++++++++++++++++----------- 2 files changed, 96 insertions(+), 44 deletions(-) diff --git a/doc/INSTALL b/doc/INSTALL index a4e4312eb..7a0e1a12f 100644 --- a/doc/INSTALL +++ b/doc/INSTALL @@ -11,61 +11,85 @@ http://www.redmine.org/ * Ruby on Rails 2.3.5 (official downloadable Redmine releases are packaged with the appropriate Rails version) - + +* Rack 1.0.1 + +* RubyGems 1.3.1 + +* Rake 0.8.3 + * A database: * MySQL (tested with MySQL 5) * PostgreSQL (tested with PostgreSQL 8.1) * SQLite (tested with SQLite 3) Optional: -* SVN binaries >= 1.3 (needed for repository browsing, must be available in PATH) -* RMagick (gantt export to png) +* SCM binaries (e.g. svn), for repository browsing (must be available in PATH) +* RMagick (to enable Gantt export to png images) +* Ruby OpenID Library >= version 2 (to enable OpenID support) == Installation 1. Uncompress the program archive - + 2. Create an empty database: "redmine" for example -3. Configure database parameters in config/database.yml - for "production" environment (default database is MySQL) +3. Configure the database parameters in config/database.yml + for the "production" environment (default database is MySQL) 4. Generate a session store secret + Redmine stores session data in cookies by default, which requires - a secret to be generated. Run: - rake generate_session_store + a secret to be generated. Under the application main directory run: + rake generate_session_store + +5. Create the database structure -5. Create the database structure. Under the application main directory: - rake db:migrate RAILS_ENV="production" - It will create tables and an administrator account. + Under the application main directory run: + rake db:migrate RAILS_ENV="production" + + It will create all the tables and an administrator account. + +6. Setting up permissions (Windows users have to skip this section) -6. Setting up permissions The user who runs Redmine must have write permission on the following - subdirectories: files, log, tmp (create the last one if not present). + subdirectories: files, log, tmp & public/plugin_assets (create the last + two if they are not yet present). + + Assuming you run Redmine with a user named "redmine": + mkdir tmp public/plugin_assets + sudo chown -R redmine:redmine files log tmp public/plugin_assets + sudo chmod -R 755 files log tmp public/plugin_assets - Assuming you run Redmine with a user named redmine: - mkdir tmp - sudo chown -R redmine:redmine files log tmp - sudo chmod -R 755 files log tmp - -7. Test the installation by running WEBrick web server: - ruby script/server -e production - +7. Test the installation by running the WEBrick web server + + Under the main application directory run: + ruby script/server -e production + Once WEBrick has started, point your browser to http://localhost:3000/ - You should now see the application welcome page + You should now see the application welcome page. -8. Use default administrator account to log in: +8. Use the default administrator account to log in: login: admin password: admin - Go to "Administration" to load the default configuration data (roles, - trackers, statuses, workflow) and adjust application settings + Go to "Administration" to load the default configuration data (roles, + trackers, statuses, workflow) and to adjust the application settings - -== Email delivery Configuration +== SMTP server Configuration Copy config/email.yml.example to config/email.yml and edit this file to adjust your SMTP settings. -Don't forget to restart the application after any change to this file. +Do not forget to restart the application after any change to this file. Please do not enter your SMTP settings in environment.rb. + +== References + +* http://www.redmine.org/wiki/redmine/RedmineInstall +* http://www.redmine.org/wiki/redmine/EmailConfiguration +* http://www.redmine.org/wiki/redmine/RedmineSettings +* http://www.redmine.org/wiki/redmine/RedmineRepositories +* http://www.redmine.org/wiki/redmine/RedmineReceivingEmails +* http://www.redmine.org/wiki/redmine/RedmineReminderEmails +* http://www.redmine.org/wiki/redmine/RedmineLDAP diff --git a/doc/UPGRADING b/doc/UPGRADING index a9b81d177..87f169c9d 100644 --- a/doc/UPGRADING +++ b/doc/UPGRADING @@ -1,4 +1,4 @@ -== Redmine upgrade procedure +== Redmine upgrade Redmine - project management software Copyright (C) 2006-2010 Jean-Philippe Lang @@ -8,26 +8,54 @@ http://www.redmine.org/ == Upgrading 1. Uncompress the program archive in a new directory - + 2. Copy your database settings (RAILS_ROOT/config/database.yml) - and SMTP settings (RAILS_ROOT/config/email.yml) - into the new config directory + and SMTP settings (RAILS_ROOT/config/email.yml) into the new + config directory + +3. Copy the RAILS_ROOT/files directory content into your new installation + This directory contains all the attached files. + +4. Copy the folders of the installed plugins and themes into new installation + +5. Generate a session store secret + + Redmine stores session data in cookies by default, which requires + a secret to be generated. Under the new application directory run: + rake generate_session_store + DO NOT REPLACE OR EDIT ANY OTHER FILES. -3. Generate a session store secret - Redmine stores session data in cookies by default, which requires - a secret to be generated. Run: - rake generate_session_store - -4. Migrate your database (please make a backup before doing this): - rake db:migrate RAILS_ENV="production" +6. Migrate your database -5. Copy the RAILS_ROOT/files directory content into your new installation - This directory contains all the attached files + If you are upgrading to Rails 2.3.5 as part of this migration, you + need to upgrade the plugin migrations before running the plugin migrations + using: + rake db:migrate:upgrade_plugin_migrations RAILS_ENV="production" + + Please make a backup before doing this! Under the new application + directory run: + rake db:migrate RAILS_ENV="production" + + If you have installed any plugins, you should also run their database + migrations using: + rake db:migrate_plugins RAILS_ENV="production" + +7. Clean up + + Clear the cache and the existing sessions by running: + rake tmp:cache:clear + rake tmp:sessions:clear + +8. Restart the application server (e.g. mongrel, thin, passenger) + +9. Finally go to "Administration -> Roles & permissions" to check/set permissions + for new features, if any == Notes -1. Rails 2.3.5 is required for version 0.9. +* Rails 2.3.5 is required for versions 0.9.x and 1.0.x. -2. When upgrading your code with svn update, don't forget to clear - the application cache (RAILS_ROOT/tmp/cache) before restarting. +== References + +* http://www.redmine.org/wiki/redmine/RedmineUpgrade From c087e6f89561df032f983212a2b023fac8d078be Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sun, 18 Jul 2010 15:49:24 +0000 Subject: [PATCH 13/34] Readme update. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3849 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- README.rdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rdoc b/README.rdoc index fb70acaac..10c170474 100644 --- a/README.rdoc +++ b/README.rdoc @@ -2,4 +2,4 @@ Redmine is a flexible project management web application written using Ruby on Rails framework. -More details can be found at http://www.redmine.org +More details can be found at in the doc directory or on the official website http://www.redmine.org From 854ba2a8d26e461923b909a036b6ebbb122dc1c7 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sun, 18 Jul 2010 16:35:37 +0000 Subject: [PATCH 14/34] Adding 1.0.0's release date. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3853 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- doc/CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index d6b81944d..4a100bfce 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -4,7 +4,7 @@ Redmine - project management software Copyright (C) 2006-2010 Jean-Philippe Lang http://www.redmine.org/ -== v1.0.0 (Release candidate) +== 2010-07-18 v1.0.0 (Release candidate) #443: Adds context menu to the roadmap issue lists #443: Subtasking From fa8d0c5c6fe036916eb49779e82d9d5cf05de315 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sun, 18 Jul 2010 16:35:43 +0000 Subject: [PATCH 15/34] Bump version to 1.0.0 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3854 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/version.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/redmine/version.rb b/lib/redmine/version.rb index 65aaf4bd5..5ea62f3e0 100644 --- a/lib/redmine/version.rb +++ b/lib/redmine/version.rb @@ -2,9 +2,9 @@ require 'rexml/document' module Redmine module VERSION #:nodoc: - MAJOR = 0 - MINOR = 9 - TINY = 6 + MAJOR = 1 + MINOR = 0 + TINY = 0 # Branch values: # * official release: nil From 4fef8b601d3b4095dc353d917828d09b297a17b1 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Tue, 20 Jul 2010 23:50:15 +0000 Subject: [PATCH 16/34] Added icon for the LDAP authentication menu item. #5775 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3859 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/views/admin/_menu.rhtml | 2 +- app/views/settings/_authentication.rhtml | 2 +- public/images/server_key.png | Bin 0 -> 746 bytes public/stylesheets/application.css | 2 ++ 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 public/images/server_key.png diff --git a/app/views/admin/_menu.rhtml b/app/views/admin/_menu.rhtml index 9b3bc66b4..4fc08d888 100644 --- a/app/views/admin/_menu.rhtml +++ b/app/views/admin/_menu.rhtml @@ -3,7 +3,7 @@
  • <%= link_to l(:label_project_plural), {:controller => 'admin', :action => 'projects'}, :class => 'projects' %>
  • <%= link_to l(:label_user_plural), {:controller => 'users'}, :class => 'users' %>
  • <%= link_to l(:label_group_plural), {:controller => 'groups'}, :class => 'groups' %>
  • -
  • <%= link_to l(:label_ldap_authentication), :controller => 'ldap_auth_sources', :action => 'index' %>
  • +
  • <%= link_to l(:label_ldap_authentication), {:controller => 'ldap_auth_sources', :action => 'index'}, :class => 'server_authentication' %>
  • <%= link_to l(:label_role_and_permissions), {:controller => 'roles'}, :class => 'roles' %>
  • <%= link_to l(:label_tracker_plural), {:controller => 'trackers'}, :class => 'trackers' %>
  • <%= link_to l(:label_issue_status_plural), {:controller => 'issue_statuses'}, :class => 'issue_statuses' %>
  • diff --git a/app/views/settings/_authentication.rhtml b/app/views/settings/_authentication.rhtml index 7e8e693df..da29bb704 100644 --- a/app/views/settings/_authentication.rhtml +++ b/app/views/settings/_authentication.rhtml @@ -20,7 +20,7 @@
    - <%= link_to l(:label_ldap_authentication), :controller => 'ldap_auth_sources', :action => 'index' %> + <%= link_to l(:label_ldap_authentication), {:controller => 'ldap_auth_sources', :action => 'index'}, :class => 'icon icon-server-authentication' %>
    <%= submit_tag l(:button_save) %> diff --git a/public/images/server_key.png b/public/images/server_key.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd517425f0cf0a573f091656a0c69e294b6197f GIT binary patch literal 746 zcmVR5;6} zlS@n!Q51&%dDs?eX$!L{YO$aaAT^% z8wrtxVNvT!(-=&NwM9+Zn#dzTR2m+|($3p^r?x7Vm6P0@nLFqI&VSCGVRT)`|6Kge zjaV!eR1{@UmSvtqkZ3GPl4zXp`~BxC0uqUYod_N{91g$PTn&+kplLAt5tmM<1L1J! zEP47D5Rb=CQn4Ti`>a+g<`U7ws?&F_ zfzvp|MzQqNH!H3#j~%}BVf-%##aZb_G6l4GJB;cj7tG=`j&}>Nw_Z7xnHjztyK`i@ z<3{><*+B_lKuBdOqW7yc^Z1f_jE;l*VQ=n3ZZU*Cw&q%gTbv4AZ5(1tfU;QqJva(_ zn7WS!r2xBk0P6N9ScH1;)qty~y}GH@J!&|h!zq1{)G}>Brx3Dtt?nj-%`oKk1+ZKO z44Z?gCIb|<@nc2g$}P}S;5e?>w@Rn3!6Yu>fc6sRS^`$SgVipF07*qoM6N<$f~LGuF8}}l literal 0 HcmV?d00001 diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 2067bf3db..60c50d2b2 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -64,6 +64,7 @@ h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; bord #admin-menu a.settings { background-image: url(../images/changeset.png); } #admin-menu a.plugins { background-image: url(../images/plugin.png); } #admin-menu a.info { background-image: url(../images/help.png); } +#admin-menu a.server_authentication { background-image: url(../images/server_key.png); } #main {background-color:#EEEEEE;} @@ -837,6 +838,7 @@ padding-bottom: 3px; .icon-report { background-image: url(../images/report.png); } .icon-comment { background-image: url(../images/comment.png); } .icon-summary { background-image: url(../images/lightning.png); } +.icon-server-authentication { background-image: url(../images/server_key.png); } .icon-file { background-image: url(../images/files/default.png); } .icon-file.text-plain { background-image: url(../images/files/text.png); } From a628b0f186cf4d182ce5cee1a497ad42c5246406 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sat, 24 Jul 2010 00:19:32 +0000 Subject: [PATCH 17/34] Force-clear the default value for migration from :string to :text. #5846 #5771 This is a special case for MySQL in Win32. Contributed by Holger Just. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3860 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/change.rb | 5 +++-- .../20100705164950_change_changes_path_length_limit.rb | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/change.rb b/app/models/change.rb index e5c1585b4..657652c9d 100644 --- a/app/models/change.rb +++ b/app/models/change.rb @@ -19,12 +19,13 @@ class Change < ActiveRecord::Base belongs_to :changeset validates_presence_of :changeset_id, :action, :path + before_save :init_path def relative_path changeset.repository.relative_path(path) end - def before_save - path ||= "" + def init_path + self.path ||= "" end end diff --git a/db/migrate/20100705164950_change_changes_path_length_limit.rb b/db/migrate/20100705164950_change_changes_path_length_limit.rb index 62ba4ec22..62b8644a4 100644 --- a/db/migrate/20100705164950_change_changes_path_length_limit.rb +++ b/db/migrate/20100705164950_change_changes_path_length_limit.rb @@ -1,6 +1,9 @@ class ChangeChangesPathLengthLimit < ActiveRecord::Migration def self.up + # these are two steps to please MySQL 5 on Win32 + change_column :changes, :path, :text, :default => nil, :null => true change_column :changes, :path, :text, :null => false + change_column :changes, :from_path, :text end From 90490c92a0648a7bb389665c37b2ba5f4a1b7a08 Mon Sep 17 00:00:00 2001 From: Azamat Hackimov Date: Sat, 24 Jul 2010 09:47:31 +0000 Subject: [PATCH 18/34] Translation updates * fr (#5912) * ru * zh (#5910) git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3863 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- config/locales/fr.yml | 20 ++++++++++---------- config/locales/ru.yml | 2 +- config/locales/zh.yml | 24 ++++++++++++------------ 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/config/locales/fr.yml b/config/locales/fr.yml index fe4f4daf5..305dee7c0 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -916,14 +916,14 @@ fr: enumeration_system_activity: Activité système label_board_sticky: Sticky label_board_locked: Verrouillé - error_unable_delete_issue_status: Unable to delete issue status - error_can_not_delete_custom_field: Unable to delete custom field - error_unable_to_connect: Unable to connect ({{value}}) - error_can_not_remove_role: This role is in use and can not be deleted. - error_can_not_delete_tracker: This tracker contains issues and can't be deleted. + error_unable_delete_issue_status: Impossible de supprimer le statut de demande + error_can_not_delete_custom_field: Impossible de supprimer le champ personnalisé + error_unable_to_connect: Connexion impossible ({{value}}) + error_can_not_remove_role: Ce rôle est utilisé et ne peut pas être supprimé. + error_can_not_delete_tracker: Ce tracker contient des demandes et ne peut pas être supprimé. field_principal: Principal - notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time + notice_failed_to_save_members: "Erreur lors de la sauvegarde des membres: {{errors}}." + text_zoom_out: Zoom arrière + text_zoom_in: Zoom avant + notice_unable_delete_time_entry: Impossible de supprimer le temps passé. + label_overall_spent_time: Temps passé global diff --git a/config/locales/ru.yml b/config/locales/ru.yml index cce123622..645db4de8 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1019,7 +1019,7 @@ ru: label_close_versions: Закрыть завершенные версии label_board_sticky: Прикреплена label_board_locked: Заблокирована - field_principal: Глава + field_principal: Имя text_zoom_out: Отдалить text_zoom_in: Приблизить notice_unable_delete_time_entry: Невозможно удалить запись журнала. diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 6fdb33f52..389707d5b 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -907,22 +907,22 @@ zh: label_board_sticky: 置顶 label_board_locked: 锁定 permission_export_wiki_pages: 导出 wiki 页面 - setting_cache_formatted_text: 缓存已格式化文字 + setting_cache_formatted_text: 缓存格式化文本 permission_manage_project_activities: 管理项目活动 error_unable_delete_issue_status: 无法删除问题状态 - label_profile: 配置概况 - permission_manage_subtasks: Manage subtasks - field_parent_issue: Parent task - label_subtask_plural: Subtasks - label_project_copy_notifications: Send email notifications during the project copy + label_profile: 简介 + permission_manage_subtasks: 管理子任务 + field_parent_issue: 父任务 + label_subtask_plural: 子任务 + label_project_copy_notifications: 复制项目时发送邮件通知 error_can_not_delete_custom_field: 不能删除自定义属性 error_unable_to_connect: 不能连接到 ({{value}}) error_can_not_remove_role: 该角色正在使用中, 不能删除. error_can_not_delete_tracker: 该跟踪标签包含问题, 不能删除. field_principal: Principal - label_my_page_block: My page block - notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time + label_my_page_block: 我的工作台模块 + notice_failed_to_save_members: "成员保存失败:{{errors}}。" + text_zoom_out: 缩小 + text_zoom_in: 放大 + notice_unable_delete_time_entry: 无法删除工时记录。 + label_overall_spent_time: 所有项目耗用工时 From 7f49f07e9a357a6290b05af79b75960e298bd41a Mon Sep 17 00:00:00 2001 From: Azamat Hackimov Date: Sat, 24 Jul 2010 10:26:53 +0000 Subject: [PATCH 19/34] Try to resolve bug #3922 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3864 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- config/locales/en-GB.yml | 2 +- config/locales/en.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 2c19c4f49..42f173b82 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -221,7 +221,7 @@ en-GB: field_tracker: Tracker field_subject: Subject field_due_date: Due date - field_assigned_to: Assigned to + field_assigned_to: Assignee field_priority: Priority field_fixed_version: Target version field_user: User diff --git a/config/locales/en.yml b/config/locales/en.yml index 3ab257825..4ba6df5c5 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -224,7 +224,7 @@ en: field_tracker: Tracker field_subject: Subject field_due_date: Due date - field_assigned_to: Assigned to + field_assigned_to: Assignee field_priority: Priority field_fixed_version: Target version field_user: User From a9a4e0d6b8f1c3c08e927a49d213f21931d4071f Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 25 Jul 2010 09:29:17 +0000 Subject: [PATCH 20/34] Moves code to controller. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3865 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/versions_controller.rb | 3 +++ app/views/versions/show.rhtml | 7 ++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb index 05c9743eb..a9470cb85 100644 --- a/app/controllers/versions_controller.rb +++ b/app/controllers/versions_controller.rb @@ -27,6 +27,9 @@ class VersionsController < ApplicationController helper :projects def show + @issues = @version.fixed_issues.find(:all, + :include => [:status, :tracker, :priority], + :order => "#{Tracker.table_name}.position, #{Issue.table_name}.id") end def new diff --git a/app/views/versions/show.rhtml b/app/views/versions/show.rhtml index 18bc6bc45..79de5984b 100644 --- a/app/views/versions/show.rhtml +++ b/app/views/versions/show.rhtml @@ -32,13 +32,10 @@ <%= render :partial => 'versions/overview', :locals => {:version => @version} %> <%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %> -<% issues = @version.fixed_issues.find(:all, - :include => [:status, :tracker, :priority], - :order => "#{Tracker.table_name}.position, #{Issue.table_name}.id") %> -<% if issues.size > 0 %> +<% if @issues.present? %>