| Age | Commit message (Collapse) | Author | 
 | 
- print results sequentially instead of all at once at the end
- don't try and run all linters concurrently
- filter out directories (can't lint those)
 | 
 | 
 | 
 | 
Also improved the test situation, did some refactors, and now listing the user's
past analyses on their account page.
 | 
 | 
- structured log messages
- compact logs rewrite the line on bild completion
- using conduit for streaming output (although I think this isn't working quite
  right)
- new Proc type for running subprocesses
- general code cleanup and refactoring
 | 
 | 
 | 
 | 
Keep Analysis runs, with a unique id, and index them based on ID, which user
asked for the analysis, and commit sha.
 | 
 | 
 | 
 | 
 | 
 | 
The footer is just a copyright for now. The header is full width, main and
footer max out at 900px. This seems like a reasonable default, so I put it in
the base Biz/Look.hs.
 | 
 | 
 | 
 | 
I really could use those structured logs.
 | 
 | 
I'm borrowing heavily from Basecamp.com, but I figure after enough itreation I
will settle on something more unique. Anyway, copying Basecamp isn't so bad --
they are a great company after all!
 | 
 | 
 | 
 | 
My qutebrowser dark filter messed up my colors. Also now I'm using  header and
main HTML elements.
 | 
 | 
Part of a larger effort, but doing this iteratively in smaller chunks.
 | 
 | 
 | 
 | 
 | 
 | 
This makes scanning logs *much* easier. I figure keep it as simple as possible,
just red, yellow, and green.
I also added two spaces between labels in the log messages. It would be nice to
have a more structured logging system, but for now this works.
 | 
 | 
 | 
 | 
This argument will run the tests for an output after building. It's active in
'ci' so running that will ensure tests are passing. This way testing a
namespace and building a namespace are as close together as possible, so
presumably it will be that much easier to write good tests.
 | 
 | 
Also changes the --test option to a 'test' command. This is because running the
tests for a namespace/exe should never be combined with anything else: you
either want to run the tests, or not.
 | 
 | 
Wraps docopt rather nicely. It's much nicer than optparse-applicative and runs
tests with the --test argument automatically. Next I just need to implement a
test framework.
 | 
 | 
 | 
 | 
It was always showing 0 because of annoying numeric type conversion stuff. This
is my least favorite part of Haskell.
 | 
 | 
This necessitated adding a few more paths for clarity and such, and a type for
the analysis page. There seem to be some bugs with session handling I think, but
I'll suss those out later. Also I'm running into many uncaught exceptions so
eventually I will need to tackle those as well.
 | 
 | 
 | 
 | 
Auth was broken without the xsrf thing disabled. Anyway, its best to have
well-defined live and test settings. I will re-enable xsrf when I figure out the
js snippet I need.
 | 
 | 
 | 
 | 
Using lib.pipe for readability. Moved analyze into the public functions so I can
debug things easier by calling bild.analyze from the nix repl.
 | 
 | 
There is a bug in nixpkgs where lib.strings.splitString overflows on long lines.
builtins.split performs better, but needs the extra filter for some reason.
https://github.com/NixOS/nixpkgs/issues/68951
 | 
 | 
Boy that was harder than I thought, but the code is pretty clean now. I still
need to fixup the error handling, and maybe move all the extra args into an app
monad, but I think otherwise I have it in a good place.
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Every key is just a new line in the $USER.pub file. This is not automatically
reflected to gitolite, which uses a separate config, so I'll need to come up
with a way to replace gitolite someday.
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Now bild knows how to determine between modules that require ghcjs and ghc. It
also knows what *not* to build, meaning it won't try to build non-buildable nix
targets, for example (unfortunately this is just hardcoded for now), but it also
won't build scm or py targets that I haven't implemented yet. It just silently
fails, which is fine, because it means I can do `bild **/*` and everything just
works.
Of course, if I want to build scm code then I will have to implement that, but
that's not a priority right now.
 | 
 | 
 | 
 | 
 | 
 | 
I had to refactor Biz/Bild/Rules.nix. I also had to checkin my patched
hoogle.nix file, but I also upstreamed the patch to nixpkgs-dev so it shouldn't
stick around for too long.
 | 
 | 
 | 
 | 
 | 
 | 
 |