Ginger
This is the Ginger Zotonic edition. This repository contains:
- (most) Ginger modules
- Docker configuration
- shell scripts
Documentation
- Docker development environment
- Guidelines
- Why Ginger is a single Git repository
- Releases
- Browser tests
- Templates
- Anymeta import
Getting started
Clone this repository and install Docker.
Then open a terminal in the Ginger directory and start the containers:
$ make up
To open a Zotonic shell:
$ make shell
To run Gulp in the Ginger directory:
$ make gulp site=your_site_name
To run the tests for a module, e.g. mod_ginger_collection:
$ docker-compose run zotonic bin/zotonic runtests mod_ginger_collection
If you want to run tests repeatedly, it may be easier to open a shell in a clean Zotonic container:
$ make prompt
and then make and run the tests:
$ make && bin/zotonic runtests mod_ginger_collection
For more, see the Docker doc chapter.
Sites overview
- The Zotonic status site is available at http://localhost. Log in with empty password.
- Make sure to add the hostnames of individual sites (e.g.
yoursite.docker.test
) to your/etc/hosts
file.
Checking out sites
- Check out your Zotonic site in the
sites/
directory. - Start the site from the status site: http://localhost.
- Login and go to the modules page
- Deactive site module and activate it again
- Now the site should work properly
Adding modules
Place custom modules in modules/
(no symlinks needed).
Fetching changes
$ git fetch
$ git rebase
Making changes
Commit messages
Please follow the Driebit guidelines for commit messages. Additionally, prefix your message with the module that your change applies to. For instance:
[admin] Fix login form styling
[foundation] Add carousel template
Bugfixes to the release branch
When you are fixing a bug in the current release branch (as it is published on ginger-test or ginger-acceptatie):
- Fetch changes:
$ git fetch
. - View branches:
$ git branch -a
. - Switch to the latest release branch:
$ git checkout release-0.1.0
. - Make, commit and push your changes.
- Optionally, update ginger-test with the your changes to the release branch:
$ ssh ginger-test.driebit.net
$ cd /srv/zotonic/
$ z git pull
$ z zotonic shell
$ z:m().
- Optionally, the release branch to master:
git checkout master
git pull
git merge release-0.#.0 (latest release branch)
git push
Feature developments
When working on (larger) features and fixes that should not be part of the current release:
- Fetch changes:
$ git fetch
. - Switch to master:
$ git checkout master
. - Make, commit and push your changes.
Deploying sites
To deploy a site, log in to the proper server (ginger-test.driebit.net
,
ginger-acceptatie.driebit.net
or ginger01.driebit.net
):
$ ssh ginger-test.driebit.net
$ cd /srv/zotonic/sites/[site name]
Check the current Git branch, then pull the latest changes:
$ z git pull
Then compile the changes and flush the site:
$ z zotonic shell
$ z:compile(), z:flush([site name]).
License
Ginger is released under the Apache 2.0 License. See the included LICENSE file for more information.