Version 6 (modified by Daniel Kahn Gillmor, 6 years ago) (diff)


How to Upgrade Roundcube

Roundcube is being maintained via git on in the /srv directory.

We have both a /srv/roundcube-dev (accessible via and /srv/roundcube (

Both installations are maintained via git. In addition, there is a roundcube-code user that owns the code. Be sure to add your monkeysphere user id to /home/roundcube-code/.monkeysphere/authorized_user_ids and run (as root): monkeysphere-authentication update-users roundcube-code then login as the roundcube-code user when making all changes.

Please follow these directions when upgrading.

  • Create a roundcube directory on your local machine, initialize git and set your various remotes:
    0 jamie@animal:mfpl$ mkdir roundcube
    0 jamie@animal:mfpl$ cd roundcube/
    0 jamie@animal:roundcube$ git init
    Initialized empty Git repository in /home/jamie/projects/mfpl/roundcube/.git/
    0 jamie@animal:roundcube$ git remote add origin
    0 jamie@animal:roundcube$ git remote add gmo
    0 jamie@animal:roundcube$ git remote update
    Fetching origin
    remote: Counting objects: 60301, done.
    remote: Compressing objects: 100% (15914/15914), done.
    remote: Total 60301 (delta 43892), reused 59892 (delta 43566)
    Receiving objects: 100% (60301/60301), 16.07 MiB | 1.71 MiB/s, done.
    Resolving deltas: 100% (43892/43892), done.
     * [new branch]      dev-advanced-ldap-groups -> origin/dev-advanced-ldap-groups
     * [new branch]      devel-ldap-refactoring -> origin/devel-ldap-refactoring
     * [new branch]      keep-alive -> origin/keep-alive
     * [new branch]      master     -> origin/master
     * [new branch]      release-0.6 -> origin/release-0.6
     * [new branch]      release-0.7 -> origin/release-0.7
     * [new branch]      release-0.8 -> origin/release-0.8
     * [new branch]      release-0.9 -> origin/release-0.9
     * [new branch]      schema_upgrades -> origin/schema_upgrades
     * [new branch]      session_backport -> origin/session_backport
     * [new branch]      topics/composer -> origin/topics/composer
     * [new tag]         v0.1-beta2 -> v0.1-beta2
     * [new tag]         v0.7.3     -> v0.7.3
     * [new tag]         v0.8-rc    -> v0.8-rc
     * [new tag]         v0.8.0     -> v0.8.0
     * [new tag]         v0.8.1     -> v0.8.1
     * [new tag]         v0.8.2     -> v0.8.2
     * [new tag]         v0.8.3     -> v0.8.3
     * [new tag]         v0.8.4     -> v0.8.4
     * [new tag]         v0.8.5     -> v0.8.5
     * [new tag]         v0.9-beta  -> v0.9-beta
     * [new tag]         v0.9-rc    -> v0.9-rc
    Fetching gmo 
    remote: Counting objects: 4182, done.
    remote: Compressing objects: 100% (1135/1135), done.
    remote: Total 3429 (delta 2507), reused 3142 (delta 2287)
    Receiving objects: 100% (3429/3429), 972.47 KiB | 1.47 MiB/s, done.
    Resolving deltas: 100% (2507/2507), completed with 347 local objects.
     * [new branch]      master     -> mfpl/master
     * [new branch]      mfpl       -> mfpl/mfpl
    0 jamie@animal:roundcube$
  • Now, checkout (and create a branch) for the mfpl branch of the gmo remote.
    0 jamie@animal:roundcube$ git checkout -b mfpl gmo/mfpl
    Branch mfpl set up to track remote branch mfpl from gmo.
    Switched to a new branch 'mfpl'
    0 jamie@animal:roundcube$

We're leaning toward rebasing as a matter of common practice, and leaving a trail of signed tags:

  • start by rebasing, inspecting, verifying, signing a tag, and then pushing to
    git rebase 0.8.6
    # examine the changelog and the git history; make sure things look sane.
    git tag -s -m 'Tagging roundcube with MF/PL changes version 0.8.6' roundcube-mfpl-0.8.6
    git push gmo --tags
  • Now, as, verify the tag and check it out if it looks reasonable:
    cd /srv/roundcube-dev
    git remote update
    git tag -v roundcube-mfpl-0.8.6
    git checkout roundcube-mfpl-0.8.6
  • Test via:
  • If all works fine, pull into the live server via
    cd /srv/roundcube
    git remote update
    git tag -v roundcube-mfpl-0.8.6
    git checkout roundcube-mfpl-0.8.6
  • and test it one last time at