Notes on git-buildpackage and new releases
------------------------------------------

For a new release, gbp suggests merging the new tags in the debian
branch.  For Enlightenment projects, the upstream releases make this
painful - releases of the previous stable branch often conflict with
the next stable branch's release.  Solution:

$ git checkout debian/sid
$ git merge --strategy recursive --strategy-option theirs <next>

This should produce a tree matching <next>, plus the existing debian/
subdir.  Sometimes it fails, but since gbp builds the orig.tar.gz file
from the upstream tag, dpkg-buildpackage will catch the difference,
complain, and stop.  Solution:

## begin with previous upstream tag, merge new tag
$ git checkout <prev>
$ git merge --strategy recursive --strategy-option patience <next>

## remove files deleted in new release:
$ git status -s | grep ^UD | awk '{print $2}' | xargs git rm

## resolve remaining conflicts in favor of new release:
$ for i in $(git status -s | grep ^UU | awk '{print $2}'); do
  git checkout --theirs $i
  git add $i
done
$ git commit

## save a diff between upstream release and git merge results:
$ git diff ..<next> > ../merge-fixup.diff

## switch to debian branch, and use diff to fix git merge results:
$ git checkout debian/sid
$ git merge --strategy recursive --strategy-option patience --no-commit <next>
$ patch -p1 < ../merge-fixup.diff
$ git commit
$ gbp dch --since=<prev-debian> --new-version=<next-debian> debian/

 -- Ross Vandegrift <ross@kallisti.us>, Sun, 27 Mar 2016 11:11:56 -0400


Note on eolian-generated symbols
--------------------------------

Symbols for EFL are not declared statically, as one might expect for C
libraries.  They are automatically generated by eolian, which itself
is a component of EFL.  This will offer a bunch of cool features,
including auto-generation of bindings for various languages.  More
details can be found in thie presentation:
https://download.tizen.org/misc/media/conference2014/slides/tdc2014-core-object-model-eo-efl.pdf

Today, eolian is required for elementary and apps that use it.  But
since it isn't yet marked as stable by upstream, the symbols files
have been modified to include the version of eolian used to generate
them.

 -- Ross Vandegrift <ross@kallisti.us>, Sun, 20 Dec 2015 12:06:43 -0500
