[Xmonad] darcs patch: make square work with new doLayout. (and 3
Donald Bruce Stewart
dons at cse.unsw.edu.au
Wed Jun 13 00:54:43 EDT 2007
> >David, please do not read my word as a critique. I'm just thinking
> >about the casual user, possibly a member of the haskell community, who
> >read about xmonad, its solid design, a project headed for it 0.3
> I did ask sjanssen about this originally, asking why not have exactly
> one repo for contrib and normal stuff. The answer I got back was that
> its harder to tell if a patch touches the core section if they are in
> one repo. While that is a perfectly sensible answer, perhaps a simple
> grep command could be written which checks this property
> automatically, and then have an apply-contrib shell script which stops
> if any modification is made to the core xmonad.
We really do want to keep contrib stuff in its own repository, since the
core team wants to clearly delimit responsibility for that code away
from xmonad's core team :-)
So, we try to find a middle ground between:
* dwm-style patches, where people host their own diffs
* full integration of patches we don't have the time to test or verify
The compromise is to provide central hosting, and a single point of
access for all these cool extensions, but with the caveat that they're
not tested or audited to the level the core is.
Now, currently they're literally unchecked, and since contribs are all
fairly loosely decoupled, its generally safe to apply them -- they won't
kill xmonad if we apply a contrib extension that doesn't compile.
However, we can go one better pretty cheaply. I'm writing a script that
will double check all contrib modules type check, so we'll at least know
the modules are in a sane state. That, along with a page i'm preparing
stating who is responsible for each contrib module, so we have a person
to `blame' or direct queries to, should help keep the quality high, I
So the strategy is:
* continue providing a single, centralised point for extensions
* but add automatic checking to ensure they're type correct
* and public naming of authors, to ensure responsibility is clear
> The other answer is that by having one repo makes people strive for a
> higher standard for contrib - perhaps that isn't the end of the world.
> Also Pugs have been very liberal about letting people add stuff, so as
> long as you are welcoming and friendly (something I don't think we
> need to worry about!) I think people should be able to freely send
> patches to the main repo.
Right, the main issue is that main repo stuff needs to be audited, which
is quite time consuming. There's nearly twice as much code in the
contrib library now, as in the core, and we literally don't have the
resources to audit it. So it won't be moved into the core.
> Once you've moved to having only one repo, perhaps you could augment
> your tests to ensure that all the contrib modules at least compile
> when a patch is applied. This will make you think twice about changing
Right, but we can do that anyway, without literally storing the
extensions in the core repo, and still ensure 'bare xmonad' is a simple
clean, system the core team fully understands.
> the API (not a bad thing), and will ensure that code at least always
> compiles. For Haskell code, the fact that it compiles is probably
> enough to have a reasonable degree of faith that it still probably
> As a side note, my Haskell folder now has more XMonad stuff flowing
> into it per day than cabal-devel, hugs-bugs, hugs-users, ghc-bugs,
> ghc-users, ghc-cvs, hugs-cvs, haskell, haskell-cafe, hat, hoogle,
> generics and a few others!
Very cool. I noticed there were 46 guys on #xmonad today, a new high score.
There's 75 guys in #ion though.
Some fun stats:
mailing list traffic:
* xmonad http://gmane.org/plot-rate.php?group=gmane.comp.lang.haskell.xmonad
* dwm http://gmane.org/plot-rate.php?group=gmane.comp.window-managers.dwm
* wmii http://gmane.org/plot-rate.php?group=gmane.comp.window-managers.wmii
* ion http://gmane.org/plot-rate.php?group=gmane.comp.window-managers.ion.general
More information about the Xmonad