Are there any good #web conferences / meetups with an #RFP open in the #BayArea or virtual?
There are a few projects I've been working on which I'd love to give talks about and share with the community (not Angular related). Could be talking about any/all of:
1. #HydroActive - A different take on hydration in an HTML-first world. https://github.com/dgp1130/HydroActive/
2. #rules_prerender - A #Bazel ruleset serving as a fast and scalable #StaticSiteGenerator. https://github.com/dgp1130/rules_prerender/
3. #HTMLFragments - A no-tooling, web standard-based approach to HTML over the wire. https://blog.dwac.dev/posts/html-fragments/
Greatly appreciate boosts for reach!
#web #rfp #bayarea #hydroactive #rules_prerender #bazel #staticsitegenerator #htmlfragments
#bazel really cooking my goose. trying to stamp #golang builds but the x_defs don't seem to be receiving values from the workspace script
$ bazel build --stamp --workspace_status_script=./tools/git-desc.sh //cmd/echo:echo
...output elided...
$ ./dist/bin/cmd/echo/echo_/echo -version
@
$
https://code.ndumas.com/ndumas/gomud/src/branch/stamping
once i got this working, i'll be able to drop another article
Spent the last month working with #bazel to revamp my #Golang builds and make deploying OCI images easier. I've still got a long way to go, I need to cross-compile binaries for a variety of popular OSes and then...I think I might have to write custom rules for publishing artifacts to gitea.
Really exciting tool and the slack community has been really helpful, pushing out new versions within hours of my questions about bugs.
https://blog.ndumas.com/2023/08/beautiful-builds-with-bazel/
@raiderrobert I learned more than I ever wanted to know about how you can build #Python wheels using #Bazel
...the elusive `ENAMETOOLONG` error code made multiple appearances 🤦
Little #Git / #Bazel trick for you. When you have a branch will multiple commits and want to make sure none of them introduce any test breakages, run:
$ git rebase main --exec "bazel test //..."
This will checkout every commit since `main` and run `bazel test //...`, stopping if any tests fail.
You can do this with any test command, but what's awesome about Bazel is that the build cache is still valid between commits. Anything which didn't change will be cached.
This means you can easily run *all* tests for *every* commit on a branch with dozens of commits in only a few seconds. The cacheability is *amazing* here. It's an excellent way to verify a every step of a large change.
Hey kids wanna see something cursed #bazel #python https://gist.github.com/arrdem/05d32cc8870e87f1d6fa07df31586d19
@ianthetechie God speed. Not sure if it is an option, but have you given #Bazel a try? https://github.com/bazelbuild/rules_apple/blob/master/doc/tutorials/ios-app.md
My #softwareengineering discovery of the year has been without a doubt the #bazel build system.
Once you get used to the extremely fast incremental builds, shared cache, extensibility etc. there is no going back. I really recommend it, at least for #cpp
#softwareengineering #bazel #cpp
Even after all this time I'm still not a fan of #gradle. I use it because that's where the support is for #android development, but, on a purely build bases, #bazel and #buck are, in my experience, more robust build tools.
Today's "Nope, still don't like it" trigger was having a gradle build fail with "Gradle build daemon disappeared unexpectedly..." when the build has been specified as to not use a daemon. That's either poor parameter naming, or documented parameters being ignored.
#bazel build --platforms=//:linux_aarch64 --incompatible_enable_cc_toolchain_resolution
@thePunderWoman That's a #Bazel thing, and not really a common term. I think many Nooglers get just as confused regardless of background.
Even the internal Bazel docs concede that it's a misnomer. It's just called that to algin with `go_binary`, `java_binary`, etc.
I'm kind of impressed that every single tool or plugin meant to work with #bazel is AT MOST half-baked.
wish the #bazel rules_python upstream would notice my PR one way or another but hey. corporate OSS project not the community projects I'm used to. either way about to get shmoovin
One of the things I learned that I didn’t know while developing this feature: #Bazel. First and foremost, I don’t have a good mental model of how it works, especially when it comes to looking up compilers and setting options for compilers. #FormaK benefits by being able to easily zip together Python, C++ and generated C++ in Bazel, but working on improving the C++ integration feels like stumbling in the dark hoping I find a light switch
So here's my #bazel review. Good theoretical model. When it works it may as well be alien technology. But it's horrendously underdocumented and obviously not designed for consumption by people who haven't already learned on Blaze. And the OSS rules are pretty low quality. And half the stuff you beed to make it work - cache management, bad action purging, analysis cache persistence, ... happens to not be OSS.
Finally found the time to start transforming my #NixOS config into a flake. Still some impurities left, but I already find flakes amazing.
At the same time, we're moving our build system, CI and dev tooling to #bazel at work. Really interesting to learn both systems side by side.
Shout out to `bazel query --output graph` and https://dreampuf.github.io/ for visualizing it. Debugged some tricky dependency graphs today and I'm not sure I could have done it without those tools.
#Bazel is the quintessence of Google bad software:
- Bloated: Hello JVM to compile C++
- Over complex: CLI so stupidly complex you need an overlay CLI (bazelisk) in npm over it.
- Reinvented: they defined half baked config language.
- Partial: try to provide reproducible builds but is not reproducible. Specially compared to Nix.
- Google centric: Made for Monorepo
And forced over the world: Because if Google use it, it should be good for us too right ? Spoiler: No