Install Redmine Plugins - Part I

Bookmark and Share

후속이 있을지는 예측하기 어렵지만 일단 이름은 그렇게 잡아봤다. 레드마인 플러그인 제 1 부다.

플러그인 선택

불과 얼마 전까지만 해도 플러그인 목록이 꽤 약했었던 기억인데, 정리가 잘 된 것인지 더 늘어난 것인지 쓸만한 것들이 늘었다. 플러그인 목록을 바탕으로 일단 oss/cc에 일부 적용한 것을 다시 선별하였다.

이번에 설치할 플러그인은 다음과 같다.

의도적으로, github의 것만 골랐다. (사실, 대부분이 github에서 호스팅되고 있기도 하고)

전체 목록은 여기서 : http://www.redmine.org/wiki/redmine/Plugin_List

플러그인 설치

Scremdashboard 플러그인

일단, github에서 forking을 하고 forking한 트리를 받았다.

sio4@km:/opt/redmine/vendor/plugins$ scp heavy:~/.ssh/github* ~/.ssh
...
sio4@km:/opt/redmine/vendor/plugins$ vi ~/.ssh/config
sio4@km:/opt/redmine/vendor/plugins$ git clone git@github.com:sio4/redmine-scrumdashboard-plugin.git redmine_scrumdashboard
Initialized empty Git repository in /opt/redmine/vendor/plugins/redmine_scrumdashboard/.git/
remote: Counting objects: 90, done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 90 (delta 34), reused 0 (delta 0)
Receiving objects: 100% (90/90), 32.06 KiB, done.
Resolving deltas: 100% (34/34), done.
sio4@km:/opt/redmine/vendor/plugins$

다음은 DB Migration

sio4@km:/opt/redmine$ export PATH=$PATH:/home/sio4/.gem/ruby/1.8/bin
sio4@km:/opt/redmine$ rake db:migrate_plugins RAILS_ENV=production
(in /opt/redmine)
Migrating engines...
Migrating acts_as_activity_provider...
Migrating acts_as_attachable...
Migrating acts_as_customizable...
Migrating acts_as_event...
Migrating acts_as_list...
Migrating acts_as_searchable...
Migrating acts_as_tree...
Migrating acts_as_versioned...
Migrating acts_as_watchable...
Migrating awesome_nested_set...
Migrating classic_pagination...
Migrating coderay-0.7.6.227...
Migrating gravatar...
Migrating open_id_authentication...
Migrating redmine_scrumdashboard...
==  ScrumdashboardSetup: migrating ============================================
-- create_table("dashboards", {:force=>true})
   -> 0.0834s
-- create_table("dashboard_trackers", {:force=>true})
   -> 0.0081s
==  ScrumdashboardSetup: migrated (0.8030s) ===================================

==  Dashboardstatuses: migrating ==============================================
-- create_table("dashboard_statuses", {:force=>true})
   -> 0.0116s
==  Dashboardstatuses: migrated (0.2394s) =====================================

==  MoreMaintrackers: migrating ===============================================
-- add_column(:dashboard_trackers, :maintracker, :integer, {:default=>0})
   -> 0.0484s
-- remove_column(:dashboards, :maintracker_id)
   -> 0.0165s
==  MoreMaintrackers: migrated (0.0653s) ======================================

==  AddColorFields: migrating =================================================
-- add_column(:dashboard_trackers, :bgcolor, :string, {:default=>"#FFFF00"})
   -> 0.0306s
-- add_column(:dashboard_trackers, :textcolor, :string, {:default=>"#2A5685"})
   -> 0.0315s
==  AddColorFields: migrated (0.0628s) ========================================

Migrating rfpdf...
Migrating ruby-net-ldap-0.0.4...
sio4@km:/opt/redmine$ 
sio4@km:/opt/redmine$ /etc/init.d/redmine start
 * Starting redmine......                                                [ OK ] 
sio4@km:/opt/redmine$

동작은 확인되었으나, 언어 파일이 없어서 화면이 밉게 나온다. (이건 이럴 수 밖에 없는 것인가? ko.yml이 없으면 그냥 en.yml로 대체하도록 할 수 없는 것인가?) 어쨌든 한글화 작업을 진행한다.

sio4@km:/.../redmine_scrumdashboard$ cp config/locales/en.yml config/locales/ko.yml
sio4@km:/.../redmine_scrumdashboard$ vi config/locales/ko.yml 
sio4@km:/.../redmine_scrumdashboard$ /etc/init.d/redmine stop
 * Stopping redmine......                                                       Sending TERM to Mongrel at PID 9349...Done.
                                                                         [ OK ]
sio4@km:/.../redmine_scrumdashboard$ /etc/init.d/redmine start
 * Starting redmine......                                                [ OK ] 
sio4@km:/.../redmine_scrumdashboard$

이제 번역 결과를 올리자. 먼저 로컬 clone에 반영:

sio4@km:/.../redmine_scrumdashboard$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    config/locales/ko.yml
nothing added to commit but untracked files present (use "git add" to track)
sio4@km:/.../redmine_scrumdashboard$ git add config/locales/ko.yml 
sio4@km:/.../redmine_scrumdashboard$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   config/locales/ko.yml
#
sio4@km:/.../redmine_scrumdashboard$

이제 github에 반영:

sio4@km:/.../redmine_scrumdashboard$ git commit -m "add korean translation"
Created commit 3f69128: add korean translation
 1 files changed, 33 insertions(+), 0 deletions(-)
 create mode 100644 config/locales/ko.yml
sio4@km:/.../redmine_scrumdashboard$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
sio4@km:/.../redmine_scrumdashboard$ 
sio4@km:/.../redmine_scrumdashboard$ git push origin master
Counting objects: 8, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 978 bytes, done.
Total 5 (delta 1), reused 0 (delta 0)
To git@github.com:sio4/redmine-scrumdashboard-plugin.git
   f671be9..3f69128  master -> master
sio4@km:/.../redmine_scrumdashboard$

이렇게 플러그인 하나 정리. (꽤 오래 걸리네…)

알구야… 이것도 하나 더…

$ cp lang/en.yml lang/ko.yml
$ vi lang/ko.yml 
$ git add lang/ko.yml
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   lang/ko.yml
#
$ git commit -m "add korean translation for old version."
Created commit 1e2da93: add korean translation for old version.
 1 files changed, 32 insertions(+), 0 deletions(-)
 create mode 100644 lang/ko.yml
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
$ git push origin master
Counting objects: 6, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 951 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To git@github.com:sio4/redmine-scrumdashboard-plugin.git
   3f69128..1e2da93  master -> master
$

아마도 0.8 버전 이전에 쓰이던 것이라고… 약간 기억하고 약간 추측한다.

Kanban

위의 ScrumDashBoard와 유사한 성격의 플러그인이다. 약간 방향은 다른데… 써보고 선택하거나 병행해서 사용하면 될 것 같다. 먼저 github에서 forking을 한 후,

sio4@km:/opt/redmine/vendor/plugins$ git clone git@github.com:sio4/redmine_kanban.git
Initialized empty Git repository in /opt/redmine/vendor/plugins/redmine_kanban/.git/
remote: Counting objects: 1248, done.
remote: Compressing objects: 100% (685/685), done.
remote: Total 1248 (delta 619), reused 857 (delta 422)
Receiving objects: 100% (1248/1248), 178.08 KiB | 130 KiB/s, done.
Resolving deltas: 100% (619/619), done.
sio4@km:/opt/redmine/vendor/plugins$ 
...
sio4@km:/opt/redmine$ rake db:migrate_plugins RAILS_ENV=production
(in /opt/redmine)
Migrating engines...
Migrating acts_as_activity_provider...
Migrating acts_as_attachable...
Migrating acts_as_customizable...
Migrating acts_as_event...
Migrating acts_as_list...
Migrating acts_as_searchable...
Migrating acts_as_tree...
Migrating acts_as_versioned...
Migrating acts_as_watchable...
Migrating awesome_nested_set...
Migrating classic_pagination...
Migrating coderay-0.7.6.227...
Migrating gravatar...
Migrating open_id_authentication...
Migrating redmine_kanban...
==  CreateKanbanIssues: migrating =============================================
-- create_table(:kanban_issues)
   -> 0.1054s
-- add_index(:kanban_issues, :user_id)
   -> 0.0041s
-- add_index(:kanban_issues, :issue_id)
   -> 0.0035s
-- add_index(:kanban_issues, :state)
   -> 0.0064s
==  CreateKanbanIssues: migrated (0.1205s) ====================================

Migrating redmine_scrumdashboard...
Migrating rfpdf...
Migrating ruby-net-ldap-0.0.4...
sio4@km:/opt/redmine$

깜빡 했는데, 이거 해줘야 한다. 그런데 이게 뭐하는 gem일까?

$ gem install rubyist-aasm --source http://gems.github.com
WARNING:  Installing to ~/.gem since /var/lib/gems/1.8 and
      /var/lib/gems/1.8/bin aren't both writable.
Successfully installed rubyist-aasm-2.1.1
1 gem installed
Installing ri documentation for rubyist-aasm-2.1.1...
Installing RDoc documentation for rubyist-aasm-2.1.1...
$

단번에 번역까지? 그리고 github에 동기화하고 끝내자.

sio4@km:/.../redmine_kanban$ cp config/locales/en.yml config/locales/ko.yml
sio4@km:/.../redmine_kanban$ vi config/locales/ko.yml
sio4@km:/.../redmine_kanban$ cp lang/en.yml lang/ko.yml
sio4@km:/.../redmine_kanban$ vi lang/ko.yml
sio4@km:/.../redmine_kanban$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    config/locales/ko.yml
#    lang/ko.yml
nothing added to commit but untracked files present (use "git add" to track)
sio4@km:/.../redmine_kanban$ git add config/locales/ko.yml lang/ko.yml
sio4@km:/.../redmine_kanban$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   config/locales/ko.yml
#    new file:   lang/ko.yml
#
sio4@km:/.../redmine_kanban$ git commit -m "add korean translation"
Created commit f641c96: add korean translation
 2 files changed, 62 insertions(+), 0 deletions(-)
 create mode 100644 config/locales/ko.yml
 create mode 100644 lang/ko.yml
sio4@km:/.../redmine_kanban$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
sio4@km:/.../redmine_kanban$ git push origin master
Counting objects: 11, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 1.42 KiB, done.
Total 7 (delta 2), reused 0 (delta 0)
To git@github.com:sio4/redmine_kanban.git
   200c6b2..f641c96  master -> master
sio4@km:/.../redmine_kanban$ git status
# On branch master
nothing to commit (working directory clean)
sio4@km:/.../redmine_kanban$

벌크로다가, Bulk Time Entry and

sio4@km:/opt/redmine/vendor/plugins$ git clone git@github.com:sio4/redmine-bulk_time_entry_plugin.git bulk_time_entry_plugin
Initialized empty Git repository in /opt/redmine/vendor/plugins/bulk_time_entry_plugin/.git/
remote: Counting objects: 604, done.
remote: Compressing objects: 100% (436/436), done.
Receiving objects: 100% (604/604), 69.01 KiB | 114 KiB/s, done.
remote: Total 604 (delta 287), reused 279 (delta 122)
Resolving deltas: 100% (287/287), done.
sio4@km:/opt/redmine/vendor/plugins$ cp bulk_time_entry_plugin/config/locales/en.yml bulk_time_entry_plugin/config/locales/ko.yml
sio4@km:/opt/redmine/vendor/plugins$ vi bulk_time_entry_plugin/config/locales/ko.yml
sio4@km:/opt/redmine/vendor/plugins$ cp bulk_time_entry_plugin/lang/en.yml bulk_time_entry_plugin/lang/ko.yml
sio4@km:/opt/redmine/vendor/plugins$ vi bulk_time_entry_plugin/lang/ko.yml 
...
sio4@km:/opt/redmine/vendor/plugins$ git clone git@github.com:sio4/redmine-todos-scrum-plugin.git redmine_todos_plugin
Initialized empty Git repository in /opt/redmine/vendor/plugins/redmine_todos_plugin/.git/
remote: Counting objects: 388, done.
remote: Compressing objects: 100% (346/346), done.
remote: Total 388 (delta 182), reused 0 (delta 0)
Receiving objects: 100% (388/388), 279.35 KiB | 109 KiB/s, done.
Resolving deltas: 100% (182/182), done.
sio4@km:/opt/redmine$ rake db:migrate_plugins RAILS_ENV=production
(in /opt/redmine)
Migrating engines...
Migrating acts_as_activity_provider...
Migrating acts_as_attachable...
Migrating acts_as_customizable...
Migrating acts_as_event...
Migrating acts_as_list...
Migrating acts_as_searchable...
Migrating acts_as_tree...
Migrating acts_as_versioned...
Migrating acts_as_watchable...
Migrating awesome_nested_set...
Migrating bulk_time_entry_plugin...
Migrating classic_pagination...
Migrating coderay-0.7.6.227...
Migrating gravatar...
Migrating open_id_authentication...
Migrating redmine_kanban...
Migrating redmine_scrumdashboard...
Migrating redmine_todos_plugin...
==  CreateTodos: migrating ====================================================
-- create_table(:todos)
   -> 0.0238s
==  CreateTodos: migrated (0.0242s) ===========================================

==  AddDoneToTodos: migrating =================================================
-- add_column(:todos, :done, :boolean)
   -> 0.0485s
==  AddDoneToTodos: migrated (0.0487s) ========================================

==  AddCompletedAtToTodos: migrating ==========================================
-- add_column(:todos, :completed_at, :datetime)
   -> 0.0375s
==  AddCompletedAtToTodos: migrated (0.0378s) =================================

==  AddPositionToTodos: migrating =============================================
-- add_column(:todos, :position, :integer)
   -> 0.0407s
==  AddPositionToTodos: migrated (0.0409s) ====================================

Migrating rfpdf...
Migrating ruby-net-ldap-0.0.4...
sio4@km:/opt/redmine$ cd -
/opt/redmine/vendor/plugins

Bookmark and Share


따로 명시하지 않는 한에서 이 사이트의 모든 콘텐츠는 다음의 라이선스를 따릅니다: Creative Commons Attribution-NonCommercial 3.0 License