Hi to all git users,
Since PKP is not doing patch upgrades anymore, I am planning to move our production serve to use git. There are some instructions on how to use git in the pkp wiki, but these are more from the viewpoint of development (the instructions there actually do not mention the use branches at all, which for me is the easiest way to manage my pr’s http://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/).
What I would like to scratch together are simple instructions on how to maintain and upgrade production OJS site with git. This is what I have so far.
I would like to hear if someone is already running a production with git and maybe some experiences on good workflows or suggestions/answers to the workflow described below?
Installing and running production OJS with git
Installing git and composer
Git
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
Composer
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Installing OJS
Clone OJS, fetch pkp-lib and checkout the most recent stable branch
git clone https://github.com/pkp/ojs.git
# creates a new folder calls “ojs”, you should rename this (for example public_html) or edit server settings to correspond to this folder
cd ojs
git submodule update --init --recursive
git checkout ojs-some-stable-branch
Get composer dependencies and checkout the same branch from pkp-lib as above
cd lib/pkp
composer update
git checkout ojs-some-stable-branch
cd ../..
Create config.inc
cp config.TEMPLATE.inc.php config.inc.php
Change ownership for some folders/files
chown -R apache:apache public
# apache:apache part depends on the os
chown -R apache:apache cache
chown apache:apache config.inc.php
Create files dir
cd ..
# move outside the ojs folder
mkdir files
chown apache:apache files
Visit the site with a borwser and install OJS
Questions:
- Have you first created an own fork, or do you just clone the ojs.git from PKP?
- Do you have your repository in Github?
Upgrading OJS
This is all I have right now and this is the part that is also not documented at the moment.
git rebase --onto <new-release-tag> <previous-release-tag>
php tools/upgrade.php upgrade
Questions:
- How do you handle config.inc.php, public-folder contents, own plugins, changes in the core code? Is using rebase enough?