-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Hi everyone,
CGit 0.10 has been another huge release cycle, containg quite a few major new
features, including the much anticipated authentication support and Lua
scripting, as well as extensive under-the-hood changes and fixes: we're moving
very close to git's codebase, integrating with its build system and using more
and more of its internal classes.
== CGit on the Web ==
+ homepage: http://git.zx2c4.com/cgit/about/
+ git repository: http://git.zx2c4.com/cgit/
+ git clone: git://git.zx2c4.com/cgit
+ mailing list: cgit@lists.zx2c4.com
+ mailing list subscribe: http://lists.zx2c4.com/mailman/listinfo/cgit
== ChangeLog v0.10 ==
64 files changed, 2214 insertions(+), 991 deletions(-)
Features:
+ **Lua scripting support**:
This is huge! Before, filters would do a fork() and an exec() on each
invocation of the shell script or external program. This meant that for
filters that are called many times during cgit's excution (such as the
email-filter, below), performance would drop drastically. So, we've
integrated support for Lua scripts with a built-in interpreter that can use
either mainline Lua or LuaJIT. We also ship with a few sample Lua scripts.
No forking is required, as these run right inside cgit. A Lua script can be
specified in the config by prefixing it with "lua:", as opposed to the older
"exec:" scripts.
+ **Authentication support**:
This also is huge! Now repositories can be password protected. In fact, it's
not just "repositories" and it's not just "password protected". The new
authentication infrastructure uses our shiny new Lua scripting engine, which
means you can restrict access to any cgit resource -- be it a repo, a tag,
anything -- using any form of authentication -- passwords, tokens, oauth.
The system is very modular. We've written filters/simple-authentication.lua
which should cover most simple needs for basic password authentication, but
this script can easily be modified for a very wide variety of needs. The new
"auth-filter" option handles this.
+ **Email filter support**:
At many places in cgit, we display an author or tagger name, and these names
are always connected to an email address. We therefore have a new email
filter, which filters the display of this text and receives the author's
email address as an argument. This makes it possible to add features like
Gravatars (see filters/email-gravatar.lua). It was requested by the
kernel.org sysadmins for connecting cgit to a new key platform they're
developing based on commit authors.
+ filter infrastructure revamp:
Filters can now return values, can persist throughout the execution of
cgit, can be constructed and destructed lazily, and in general received
essentially a complete rewrite and rearchitecting. We now do things like
hook libc's write() so that we can give certain outputs directly from git to
various in-memory or out-of-process filters, depending on our needs.
+ support "rawdiff" command:
This can be used to generate raw diffs between arbitrary revisions using
something like: http://git.zx2c4.com/cgit/rawdiff/?id=v0.9.2&id2=v0.10
+ likewise, the "patch" command now supports taking an id2:
This allows for specifying a revision range using the id2 parameter of
/patch/. The output that is produced is similar to
$ git format-patch --stdout id2..id
+ enable caching for rendered about pages with the cache-about-ttl option
+ move about tab to the left to highlight its new importance
+ the owner column in the repo list is now clickable to initiate a search of
all repos with that owner, requested by repo.or.cz
+ largely expanded test suite, with support for patches, filters, and valgrind
Valgrind can be run with the test suite using the new option:
$ make test CGIT_TEST_OPTS=--valgrind
+ we now ship with a favicon
+ disallow snapshots from search engines
+ upgrade to git 1.8.5
+ use git's strbuf many places, such as reading config files
+ use git's array helper classes in many places
+ use git's prefixcmp and suffixcmp functions instead of strncmp
+ support latest highlight binaries in highlight.sh
+ much improved syntax-highlighting.py in terms of autodetection of file
format
Behavior changes:
+ by default, the package prefix is now /usr/local:
Package managers should take note of this and adjust accordingly.
+ we now disallow undocumented snapshot delminators:
Since the introduction of selective snapshot format configuration in
dc3c9b5 (allow selective enabling of snapshots, 2007-07-21), we allowed
seven different delimiters for snapshot formats, while the documentation
has always been clear about spaces being the only valid delimiter:
The value is a space-separated list of zero or more of the values
"tar", "tar.gz", "tar.bz2", "tar.xz" and "zip".
Supporting the undocumented delimiters makes the code unnecessarily complex.
+ due to bugs in pygments, synta