wiki:how-to/roundcube-upgrade

Version 2 (modified by Jamie McClelland, 7 years ago) (diff)

--

How to Upgrade Roundcube

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

We have both a /srv/roundcube-dev (accessible via https://roundcube.dev.mayfirst.org) and /srv/roundcube (https://roundcube.mayfirst.org).

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:
    mkdir roundcube
    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 https://github.com/roundcube/roundcubemail
    0 jamie@animal:roundcube$ git remote add mfpl gitosis@git.mayfirst.org:mfpl/roundcube
    0 jamie@animal:roundcube$ git remote add mfpl-live roundcube-code@stallman.mayfirst.org:/srv/roundcube
    0 jamie@animal:roundcube$ git remote add mfpl-dev roundcube-code@stallman.mayfirst.org:/srv/roundcube-dev
    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.
    From https://github.com/roundcube/roundcubemail
     * [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
    From https://github.com/roundcube/roundcubemail
     * [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 mfpl
    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.
    From git.mayfirst.org:mfpl/roundcube
     * [new branch]      master     -> mfpl/master
     * [new branch]      mfpl       -> mfpl/mfpl
    Fetching mfpl-live
    remote: Counting objects: 47, done.
    remote: Compressing objects: 100% (26/26), done.
    remote: Total 26 (delta 15), reused 0 (delta 0)
    Unpacking objects: 100% (26/26), done.
    From stallman.mayfirst.org:/srv/roundcube
     * [new branch]      master     -> mfpl-live/master
     * [new branch]      mfpl       -> mfpl-live/mfpl
     * [new branch]      release-0.7 -> mfpl-live/release-0.7
     * [new branch]      release-0.8 -> mfpl-live/release-0.8
    Fetching mfpl-dev
    remote: Counting objects: 28, done.
    remote: Compressing objects: 100% (20/20), done.
    remote: Total 20 (delta 11), reused 0 (delta 0)
    Unpacking objects: 100% (20/20), done.
    From stallman.mayfirst.org:/srv/roundcube-dev
     * [new branch]      master     -> mfpl-dev/master
     * [new branch]      mfpl       -> mfpl-dev/mfpl
     * [new branch]      release-0.7 -> mfpl-dev/release-0.7
     * [new branch]      release-0.8 -> mfpl-dev/release-0.8
    0 jamie@animal:roundcube$
    
  • Now, checkout (and create a branch) for the mfpl branch of the mfpl remote (yes, confusing to have the same name for both).
    0 jamie@animal:roundcube$ git checkout -b mfpl mfpl/mfpl
    Branch mfpl set up to track remote branch mfpl from mfpl.
    Switched to a new branch 'mfpl'
    0 jamie@animal:roundcube$
    
  • If you run git log you'll see several commits made by MF/PL support team members. We want to keep these commits on top, so next we will rebase the tag we want to upgrade to:
    0 stallman:/srv/roundcube#  git rebase origin/release-0.8
    First, rewinding head to replay your work on top of it...
    Applying: Reducing the min-width. Addresses https://support.mayfirst.org/ticket/6599. Upstream commit id e8b9176031926532a764582812047281e4401352.
    Applying: Adding two plugins: import_horde_contacts, import_horde_identities
    Applying: (fetch_identity_objects): avoid redundant call to unserialize
    0 stallman:/srv/roundcube#
    
  • Now merge with the mfpl branch of the mfpl remote and then push:
    git merge mfpl/mfpl
    git push mfpl mfpl
    
  • Now, test in /srv/roundcube-dev/
    git pull mfpl mfpl
    
  • Test via: https://roundcube.dev.mayfirst.org/
  • If all works fine, pull into the live server by running, in /srv/roundcube:
    git pull mpl mfpl