Hello everyone,
I took the time to add release notes to the Ledger releases available
on github: https://github.com/ledger/ledger/releases
the information is copied from the doc/NEWS file.

For all releases using utfcppน (i.e. Ledger 3.0 and onward) I've added
a ledger-utfcpp.zip download, which includes the thirdparty files
required to build Ledger from a source archive (e.g.: .zip, .tar.gz)
and a note on how to install those into the source tree.

Currently the files residing below lib/utfcpp are included via
a git submodule from https://github.com/ledger/utfcpp.
That repository has diverged from the upstream utfcpp repositoryน
and I'd like to use the last stable version of utfcpp (2.3.4) with Ledger.

Since using a complete mirror, e.g. https://github.com/svn2github/utfcpp
would include large test data (~20MB) and increase Ledger's release archive
size significantly I think a 'partial' git subtree is a good choice.

Using git-subtreeฒ to manage the utfcpp files instead of a git submodule
has the advantage of those files residing in the source tree (as opposed
to a 'reference' to them with submodule) and they are therefore
available in archives, making it easier to build Ledger from a
downloaded source archive.  The package maintainers will thank us for it!

The effort to keep utfcpp up-to-date is negligible since the project
has seen very few updates in the past (2.3.4 was released Februrary 17th, 2013).

See my proposal in https://github.com/ledger/ledger/pull/365
which includes the changes from the following steps:

  ## Remove the utfcpp submodule
  % git checkout -b wip/utfcpp_subtree
  % git submodule deinit lib/utfcpp
  % git rm lib/utfcpp
  % git commit -m 'Remove utfcpp submodule'
  
  ## Add the utfcpp subtree to git
  % git remote add -f subtree/utfcpp [email protected]:svn2github/utfcpp.git 
  % git subtree add --prefix lib/utfcpp subtree/utfcpp master --squash
  % du -sm lib/utfcpp
  21      lib/utfcpp # Whoa!

  ## Remove utfcpp files irrelevant for Ledger
  % git rm -r lib/utfcpp/v3_0/ lib/utfcpp/v2_0/doc lib/utfcpp/v2_0/test_d\*
  % du -sm lib/utfcpp
  1       lib/utfcpp # Much better.
  % git commit -m 'Remove needless utfcpp subtree files'

  ## Update the path to the utfcpp source since it has changed
  % sed -i '' -e 's!utfcpp!&/v2_0!' CMakeLists.txt 
  % git commit -m 'Change include path to utfcpp' CMakeLists.txt

  ## Build and test Ledger
  % ninja -Cbuild clean rebuild_cache  # or your equivalent of it
  % ninja -Cbuild ledger               #           -"-
  % ninja -Cbuild test                 #           -"-

  ## Let's squash all the changes above into a single commit
  % git checkout -b pull/utfcpp_subtree origin/next
  % git merge --squash wip/utfcpp_subtree
  % git commit  # Write a nice commit message
  
  ## Verify that the sub tree files are included
  % git archive --format tar HEAD | tar tf - lib/utfcpp


Any objections?

Cheers,
Alexis


น http://utfcpp.sourceforge.nethttp://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/
  https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to