Age | Commit message (Collapse) | Author |
|
I was already using .sh to refer to shell scripts. When I added .bash, I didn't
realize that the linter was set to act on .sh files and not .bash files, so all
of these bash scripts escaped the linter.
This commit renames them to .sh, removes the .bash extension support from
Biz.Namespace, and fixes all the reported shellcheck errors.
|
|
nixfmt is the soon-to-be official formatter for Nix code, as per the NixOS
GitHub group. So I figure I should just adopt it without worrying too much about
the specifics of the formatting. I just formatted everything in one go, hence
the huge diff, oh well.
|
|
I (finally) switched my ISP account from my parents into my name, and they had
to restart my modem (ONT box?) to process this. So I got a new IP address.
|
|
By default, nix will use the maximum amount of cores available to the machine.
On my machine it was maxxing out the CPUs and then actually running out of RAM
when compiling JavaScriptCore and literally shutting down my machine. So, I need
to be able to control the concurrency and parallelism.
The default settings I chose should reserve 4 cores for the user.
I also changed --json to --plan because -j makes more sense for --jobs, as its
used this way in other tools like make and nix-build.
|
|
There are just too many packages that I need that are in nixpkgs unstable and
aren't in the release branches. Using it as an overlay like this means I can
just refer to the packages I want from unstable without pulling in all the
changes.
|
|
These just helped me when I tried to use it again and it didn't work and I
wasn't immediately sure why.
|
|
|
|
This should probably be enabled everywhere... oh well.
|
|
I couldn't get my monitor to work properly in xmonad, so decided to use gnome
for a while because I'll be away and will be using it headless from my macbook
anyway.
|
|
This was leftover from work on the previous commit. I don't think its actually
needed to get my stuff working, but these headers are recommended in the docs
and the latest version supposedly has some relevant bug fixes, so I decided to
commit this.
- https://github.com/Kozea/Radicale/issues/838
- https://github.com/Kozea/Radicale/issues/954
- https://github.com/Kozea/Radicale/issues/1247
|
|
This will allow me to create a public calendar to share with people instead of
using my iCloud calendar.
|
|
I need this to get gradio, I think.
|
|
These stopped working with the Lets Encrypt integration and I don't know why.
Just got a 404 when trying to check the .well-known endpoint. Also I don't know
how to debug this. So I guess just disable and try to fix later?
|
|
Added BILD_ARGS and removed the unused 'while read' so you can just call it
directly without having to supply arguments.
|
|
Even though I have 64 cpus, when I use them all for compilation, the UI still
lags, so that's annoying. Until I start using this for inference full-time,
offload the UI stuff to the GPU.
|
|
Just for my daily usage.
|
|
I'd much rather use GPG for key infrastructure. I'm not ready yet to fully
switch over all of these keys, but this works well so far in the gitolite-admin
repo so I'll test it out for a while before removing the old keys.
|
|
I don't really want my code to be discoverable, I only want people looking at it
if I have explicitly told them about it.
I tested it like so:
ϟ curl -v https://simatime.com/git/ 2>&1 | rg x-robots
< x-robots-tag: noindex, follow
|
|
The gitolite documentation is a bit of a labyrinth, but this should allow me to
set 'gitweb.description' and whatever other git-config settings in the
gitolite.conf file directly.
I'm also disabling gerrit, because I'm not using it and the service fails to
startup for some reason.
Some relevant gitolite docs:
- https://gitolite.com/gitolite/gitweb-daemon.html#gitweb
- https://gitolite.com/gitolite/conf.html
- https://gitolite.com/gitolite/git-config
|
|
BIZ_ROOT was too specific. CODEROOT allows for other (non-biz) projects to live
in the root of the repo. I didn't want to call it GIT_ROOT because maybe someday
I won't want to use git. But I'll never not use code.
|
|
After using this for a while, I've decided that git-branchless will be the
default tool for doing trunk-based development in the omnirepo.
|
|
I finally got everything setup for the new dev machine, but I ran into a
networking problem: I can't tell my home router to expose the ssh port 22 to
multiple hosts. I could have made beryllium use a different port, but instead I
decided to use tailscale, and this seems to work well. I still don't have
hostname routing working, but maybe that's a simple config in tailscale
somewhere.
Eventually I will get all intra-networking stuff to use a vpn, but for now just
using it for beryllium is fine.
|
|
Getting beryllium setup with the omnirepo showed that a few things
needed fixed.
|
|
Setting '--time 0' will disable the timeout mechanism altogether. This
is necessary because the initial bootstrap build (without access to any
cached dependencies) takes *hours* mostly because of cuda and opencv and
things like that.
|
|
Previously, if there was a problem with the inputs and bild failed to
determine the namespace, 'fromPath' would return 'Nothing' and then
'catMaybes' would drop the error-causing input altogether. In the one
time that I had a bad input, this made debugging incredibly difficult.
It's always a bad idea to swallow errors silently, so instead lets just
kill the program if we have bad inputs.
|
|
This allows me to specify runtime dependencies, not just system or
language deps.
|
|
BIZ_ROOT was too specific. CODEROOT allows for other (non-biz) projects to live
in the root of the repo. I didn't want to call it GIT_ROOT because maybe someday
I won't want to use git. But I'll never not use code.
|
|
A build should never take more than 10 minutes. If it does, then force the
programmer to make stuff faster. This should be a forcing function to either
delete unneeded code, or improve the build system.
|
|
This implements a prototype Mynion, my chatbot which will eventually
help me write code here. In fact he's already helping me, and works
pretty well over xmpp.
The prompt is currently not checked in because I'm experimenting with it
a lot, and it should probably be a runtime parameter anyways.
In the course of writing this I added some helper libraries to get me
going, configured black (didn't even know that was possible), and added
'outlines' and its dependencies even though I didn't end up using it.
I'll keep outlines around for now, but I'm not sure how useful it really
is because afaict its just pre-defining some stop conditions. But it
took a while to get it working so I'll just keep it in for now.
|
|
Deadnix was printing a bunch of unicode characters so it could draw lines to the
source location of an error, and it would mess up my output. Anyway I didn't
find that feature useful. Now I just get the json output and print the line
number and error message for the lint failure.
Also did some refactoring where I saw fit: added a log message so you know what
linter is currently running, and cleaned up some syntax.
|
|
This is one of those things that's hard to get right because it depends
on the state of the git repo to exercise all code paths.
|
|
Previously I would lint every file individually, in serial. This took
forever. Now I group the files by extension (by first getting the Namespace) and
run each linter on all relevant files at once. This is so much faster its
stupid.
Also I added formatters back into the dev env because my editor needs them to
autoformat.
|
|
I only just now learned about watch_file.
|
|
Ruff is like a million times faster, and I mostly ignored pylint's suggestions
anyway.
I also took this opportunity to move lint tools into a runtime dependency on
Lint.hs, which meant adding a wrapper to the Haskell builder, which was easy
enough. This paves the way for proper rundeps in bild.
|
|
Turns out that gitlint by default enforces the exact commit-msg format that I
like to use. I'm enabling this because even I write poor commit messages
sometimes, and looking back on my commits from even a few days ago is sometimes
not very helpful.
I also made some minor comment and nix changes that I noticed while reviewing my
work from the last few days.
|
|
|
|
|
|
Lots of changes here but the code is much improved. The nix code is clearer and
structured better.
The Haskell code improved in response to the nix changes. I needed to use a
qualified path instead of the abspath because the BIZ_ROOT changes based on
whether bild runs in nix or runs in the user environment.
Rather than passing every argument into Builder.nix, now I just pass the json
from bild and deconstruct it in nix. This is obviously a much better design and
it only came to be after sleeping on it the other night.
|
|
Bild does not link libraries, and idk if it ever will, so just delete this for
now.
|
|
|
|
|
|
This is working with libsodium as an example. Its unfortunate that we need the
extra ':arg -lsodium' but how else can I get the name of the library for
linking? Is that something in the nix attr metadata? Anyway, an optimization for
another day.
|
|
Not getting deps yet but thats okay, I basically need to do a bunch of annoying
nix work to get rustPackages into a thing like pythonPackages.
|
|
|
|
|
|
|
|
|
|
|
|
I added 'black' to Biz/Lint.hs, but not the others because they rely on
dependencies being in the PYTHONPATH to work, so they are only relevant
in nix builds and repls.
I also made some other tweaks to the python checkPhase and linted all
the files. Everything should be building and linting correctly now.
|
|
The main change here is 'puts' now returns a value, this enables me to
collect the value from the conduit source while also doing stuff with
it, like printing or logging it as I want.
Previously I was running conduit over the source, *and then* kicking off
the concurrent processes to wait for the process and collect the output.
This would (I think) drain the source before it got to the 'puts'
conduit run, and so I wouldn't be able to get the output streamed in
real time.
It took a lot of refactoring and exploratory programming to get to this
relatively-small diff, but now puts works correctly. At least I think it
does... it seems to work more reliably from ghci than from the shell.
Maybe the shell or TERM is causing nix-store to do some buffering? Maybe
I need to use the threaded runtime in GHC? Not sure, but I will look out
for this issue and try to identify and fix.
Update: yep it was the threaded runtime. I enabled that and now it works
in the shell. I squashed that commit into this one.
|