Skip to content

Releases: gvvaughan/slingshot

[ANN] Slingshot 8.0.0 released

01 Jan 14:52
Compare
Choose a tag to compare

A framework for automatic rockspecs creation and simplified release thereof.

I am happy to announce release 8.0.0 of Slingshot.

Slingshot's home page is at http://github.com/gvvaughan/slingshot

With this release slingshot is moving to semantic versioning. Among many, many incremental improvements to the release process and integration with Travis CI, this release also supports Lua 5.3, thus enabling support for Lua 5.3 from the rest of my Lua projects.

The recommended way to use Slingshot is as a git submodule tracking the slingshot repository, so these releases are not really designed to be dropped in (though there's no technical reason that would prevent it from working that way), and are more for the purposes of keeping track of what features and changes are being made.

Noteworthy changes in release 8.0.0 (2014-12-31) [stable]

New Features:

  • Libtool built Lua modules should be appended to luaexec_LTLIBRARIES, where non LuaRocks users will receive them in the correct directory (likely already in their LUA_CPATH) after sudo make install.

  • Slingshot now supports the slack.com Travis Integration. Add a .slackid file to the root of your project, containing your slack token on a single line -- a notification section containing that id will be appended to your .travis.yml at configure time.

  • Various build related directories are added to SPECL_ENV by default, so that package.path and package.cpath settings can be set in your spec_helper.lua to enforce loading from the build tree instead of accidentally falling back to the system module paths -- especially during the VPATH make check performed during make distcheck. You might want to write something like this in spec_helper.lua:

        local std = require "specl.std"
    
        local builddir = os.getenv "top_builddir" or "."
        local srcdir = os.getenv "top_srcdir" or "."
    
        package.path = std.package.normalize (
                         top_builddir .. "/lib/mymodule/?.lua",
                         top_srcdir .. "/lib/mymodule/?.lua",
                         package.path)
    
        mymodule = require "mymodule"

    This ensures that, no matter what LuaRocks does to the package paths, nor whether you run specl by hand with auto-discovery, or via the make check or make distcheck rules... by the time you require your module from the development tree, the package path has the right directories at the front.

  • Unused libtool .la files for Lua modules are no longer installed.

  • Update to latest upstream ax_lua.m4.

  • Update to latest upstream bootstrap.

  • Travis CI overhaul: Uses latest LuaRocks 2.2.0 with each of Lua 5.3.0(rc2), 5.2.3, 5.1.5 and luajit-2.0.3, only building the Lua version needed in each run. We also run make syntax-check on the CI server after successful tests.

  • Instead of overwriting .travis.yml unconditionally, show a warning explaining how to update it when it changes, like bootstrap.

  • Markdown format NEWS and announcements.

Incompatible Changes:

  • SPECL_ENV is now set (to empty) by default, and should be augmented with += in local.mk.
  • SS_CONFIG_TRAVIS is no longer supported. Any additional travis rocks you were passing there should now be listed in a travis_extra_rocks variable in bootstrap.conf instead.

Bug Fixes:

  • We no longer assume autotooled installations will put modules in --libdir (although that will continue to work), but also set luaexecdir at install-time for ax_lua.m4 compatibility.
  • Version comparison in build-aux/do-release-commit-and-tag now works correctly.
  • bootstrap now updates only gnulib and slingshot git submodules as expected.
  • Slingshot bootstrap really does perform an automatic out of date check of client bootstrap against latest slingshot submodule bootstrap script now - after updating to this version!

Install it with LuaRocks, using:

luarocks install slingshot 8.0.0

[ANN] slingshot 7 released

31 Jul 14:54
Compare
Choose a tag to compare

Slingshot releases rocks!

I am happy to announce the release of Slingshot version 7.

Slingshot's home page is at http://github.com/gvvaughan/slingshot

The idea of Slingshot is to provide a common infrastructure to
build and release luarocks from Lua packages on github, automating
administrative project tasks such as:

  • managing a separate github release branch
  • generating rockspec files
  • making luarocks uploads
  • emailing release announcements
  • bootstrapping autotools
  • launching Specl checks

This is the first public release of Slingshot, though I have been
using it to manage releases of stdlib, luaposix, lyaml, Specl, Zile
and others for more than a year now, where it has saved me a metric
bucket-load of time. I'd be delighted if it can help improve your
workflows too.

Feedback, especially in the form of patches, always welcome!

Noteworthy changes in release 7 (2014-07-31) [stable]

New Features:

  • Slingshot now requires a LuaRocks binary that supports the
    upload command (such as the 2.2.0 beta release) and uses that to
    upload rockspecs directly to the moonrocks repository, rather
    than emailing the luarocks-developer list with an upload request.

  • mkrockspecs accepts a new --branch option for generating a
    git/scm rockspec that pulls that branch instead of master.

  • mkrockspecs accepts a new --repository option to cope with
    releasing a LuaRock from a repository with a different name, e.g:
    stdlib-36-1.rockspec from http://github.com/rrthomas/lua-stdlib.

  • Slingshot bootstrap will check rockspecs listed in $buildreq,
    according to the URL part of a specification-triple ending in
    .rockspec. So that we don't have to install, say, LDoc twice for
    Travis (once in the system rocks tree so that bootstrap won't bomb
    out with a missing rockspec error, and then again in the project
    rocks tree after luarocks-config.ld has been built by make), the
    rockspec version checks can be short-circuited by setting an APPVAR
    in bootstrap's environment, e.g:

    LDOC=pwd/luarocks/bin/ldoc ./bootstrap

  • Slingshot bootstrap accepts a new --luarocks-tree option to
    check a particular tree for prerequisite rocks.

  • build-aux/merge-sections has a new --verbose flag that reports
    progress to stderr in real time.

  • Remove m4/ax_compare_version.m4 and dependencies, resulting in a
    slightly faster and smaller configure.

Bugs fixed:

  • bootstrap now has slingshot_copy merged in correctly.
  • mkrockspecs generates build.modules keys correctly for the
    foo/bar/init.lua pattern.

Install it with LuaRocks, using:

luarocks --server=http://rocks.moonscript.org install slingshot 7

Or, with a recent enough luarocks binary:

luarocks install slingshot 7

If the latest rocks are not yet available from the official repositories,
you can install directly from the slingshot release branch, with:

$ luarocks install
https://raw.githubusercontent.com/gvvaughan/slingshot/release-v7/slingshot-7-1.rockspec