lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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