ELMCIP now a public project on github

By steinmb, 8 September, 2017
Image
ELIT and ELMCIP

I hardly ever write anything about what about I spend my days working on. I cannot promise this will ever change, but here is your chance, ELMCIP. A project I have been involved with for many years, mainly as the back end developer and but also cat herder. It was started and created by professor Scott Rettberg, UiB that contracted me to help develop, scale and maintain it.

Electronic Literature as a Model of Creativity and Innovation in Practice (ELMCIP) is a collaborative research project funded by Humanities in the European Research Area (HERA) JRP for Creativity and Innovation.

ELMCIP development and issues have up to this day been a closed project on with its home at Github, and only approved collaborators, testers and students could follow the work this and report issues. The good news is, 8 September 2017, ELMCIP became a public project on Github.

Workflow

The development is managed by keeping everything in separate issues. Changes to the code also live in separate feature branches (git). This enable us to separately test changes before we move them in to development branch (master) https://github.com/elmcip/elmcip/branches. Our naming convention to branches is, issue_. The separate branches, that works as expected are merged, or, cherry-picked into the master branch test.elmcip is then re-built.

Test sites

Additional to production we also have test sites. https://test.elmcip.net. This is where all changes get tested (master branch). This is also where issues that needs review, get the final confirmation. This allow us to make sure changes coming from other branches do not create unwanted side effects.

https://beta.elmcip.net. This is where we preview and test out new ideas. Example, we have an idea, but we have not fully worked out how we can fully make it work, or, if it is at all a good idea. Beta, provide us a common playground to test it instead if commit it to master and having to revert everything if it turned out to be a bad idea.

Everyone with a ELMCIP user account are able to use these installations, create test content and alter existing. As soon as the servers get rebuilt everything in these sites get destroyed.

Development

The development is done locally, in a local environment. Changes to config get stored in multiple Features modules, allowing us to safely deploy and and test these changes by using git and a few deploy scripts. Using the Features module allow us to always verify that the the state of our sites are clean and identical to production or development. A positive side effect is that is allow us to disable all UI related modules, making the site faster, consume less memory and more secure.

Release cycle

We try, not always successfully, to release a new version of ELMCIP every 6-8 week. We bundle up releases by using the milestone functionality on github, example - https://github.com/elmcip/elmcip/milestone/10 and try to make a little more user friendly announcements at the web sites, example - https://elmcip.net/story/elmcip-v125-released.

The site store its data at Norstore, a service delivered by Uninett Sigma2, the Norwegian infrastructure for scientific data. The project exchange data with the CELL Project by using the OAI-PMH standard for data harvesting.

The Consortium on Electronic Literature (CELL) is an open access, non-commercial resource offering centralized access to literary databases, archives, and institutional programs in the literary arts and scholarship, with a focus on electronic literature.