Skip to content

Conversation

@Cecca
Copy link
Contributor

@Cecca Cecca commented May 2, 2015

This commit deals with the problems of caching LilyPond versions between
Travis-CI builds reported in #111. Specifically, it turned out that
there is not a separate cache per build-matrix entry (since LilyPond is
not a supported language), but only a dedicated cache per branch.

The issue was then that only one version of LilyPond was actually used
to run the tests, since the installation path was identical for all
versions.

The solution introduced in this commit is to have an explicit cache
management mechanism:

  • Each LilyPond version is installed in its own folder under the
    $HOME/.lilypond cache directory, for instance

     $HOME/.lilypond/linux-64/2.18.2-1
    
  • Every time a cached LilyPond version is used, the timestamp is
    written to a file in the cache, for later retrieval

  • After all the tests have been run, the cache is cleaned: LilyPond
    versions that have not been used for more than one day (this is
    configurable) are removed from the cache. Note that since this
    cleanup phase is run after the tests have been run, all the LilyPond
    versions that have actually been used in the last test run are kept
    in the cache

Cecca added 3 commits May 2, 2015 17:25
This commit deals with the problems of caching LilyPond versions between
Travis-CI builds reported in #111. Specifically, it turned out that
there is not a separate cache per build-matrix entry (since LilyPond is
not a supported language), but only a dedicated cache per branch.

The issue was then that only one version of LilyPond was actually used
to run the tests, since the installation path was identical for all
versions.

The solution introduced in this commit is to have an explicit cache
management mechanism:

 - Each LilyPond version is installed in its own folder under the
   $HOME/.lilypond cache directory, for instance

     $HOME/.lilypond/linux-64/2.18.2-1

 - Every time a cached LilyPond version is used, the timestamp is
   written to a file in the cache, for later retrieval
 - After all the tests have been run, the cache is cleaned: LilyPond
   versions that have not been used for more than one day (this is
   configurable) are removed from the cache. Note that since this
   cleanup phase is run after the tests have been run, all the LilyPond
   versions that have actually been used in the last test run are kept
   in the cache
The package python-dateutil is used for the management of timestamps in
the cache of LilyPond versions
When using pip, --user installs are not enabled on Travis-CI
@Cecca
Copy link
Contributor Author

Cecca commented May 2, 2015

The errors reported by Travis are not related to the changes introduced in this PR, but to an issue with the Arnold font on LilyPond 2.19.17

uliska added a commit that referenced this pull request May 2, 2015
test: Fix caching issues (fixes #111)

Thank you for picking up this issue!

The Arnold font is not yet part of the distribution from fonts.openlilylib.org. So the fail doesn't indicate anything (simply to confirm Matteo's statement).

I simply skimmed the code (can't do more, as I'm on a Schubert-only weekend) and looked at the build-test log. So I think this can be merged.
@uliska uliska merged commit 10825a4 into master May 2, 2015
@uliska
Copy link
Contributor

uliska commented May 2, 2015

Thank you for picking up this issue!

The Arnold font is not yet part of the distribution from fonts.openlilylib.org. So the fail doesn't indicate anything (simply to confirm Matteo's statement).

I simply skimmed the code (can't do more, as I'm on a Schubert-only weekend) and looked at the build-test log. So I think this can be merged.

@uliska uliska deleted the fix-test-cache branch July 7, 2015 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants