dev: introduce a general purpose dev-tool for crdb engineers#56965
dev: introduce a general purpose dev-tool for crdb engineers#56965craig[bot] merged 4 commits intocockroachdb:masterfrom
Conversation
|
@petermattis, @otan, @knz, @jlinder: what do youse think of this? |
|
before I can build an opinion, can you include in the PR description a table that maps side by side some of our key make invocations and the new invocation I'd like to see at least:
|
|
@knz: Done (they were previously included in the help text for each of the subcommands). |
|
ok sure that works for me 👍 |
petermattis
left a comment
There was a problem hiding this comment.
I'm 👍 on doing this. One suggestion, which you're sort of following below: we want to replicate the functionality of the make targets, but we shouldn't constrain ourselves to make this tool behave identically. For instance, larva test should not take a PKG and TESTS flags. Possibly it shouldn't take --pkg either, but allow packages to be specified as positional parameters. That means there will necessarily be some amount of bikeshedding on what the UX is for these commands. So be it.
I'm not keen on the name larva. I had a similar wrapper tool around blaze at Google and named it b as building is one of the most common operations a developer does. This is another good bikeshed topic.
Reviewable status:
complete! 0 of 0 LGTMs obtained
|
I think the name of the program does not matter (too) much because every user can use Generally single-letter commands have a higher risk of colliding with whatever alias folk alrady have defined in their workflow. I don't know about |
|
Heh liking it! Few things:
|
|
This is a bikeshedding friendly PR, so keep 'em coming. I'll drop (for posterity my other names were |
|
ooh I now get it 💡 I did not previously understand "larva" was a followup on "cockroach" I do not dislike the idea but then let's make it a bit more grammatically intuitive: the command is the agent that "makes" the cockroach, it's not a command that forks into a cockroach process. So I'd be more inclined to go for "lay", "grow", "infest" or whatever. |
|
or "hatch" |
|
Sweet! Names that popped out for me: I don't think it should be any of these:
|
6ffa600 to
f762d40
Compare
|
Since we're bikeshedding here...I will add that we could do without some of the gross verbs associated with cockroach reproduction. |
|
@irfansharif I understand this is a pretty barebones PR, but can we get it merged anyway? Can't start iterating/improving on this until it's checked in :) |
|
yup, mind stamping it as is? |
|
you'll need to rebase though |
Our Makefile UX has grown organically over the last six years, and is now home to various scripts that are orthogonal to simply building the crdb binary. These include the ability to run linters, building various useful binaries (such as roachprod, roachtest), running different kinds of tests (unit tests, logic tests, acceptance tests), and much more. Now that we're exploring a move towards Bazel for our build system (cockroachdb#55687), we have a chance to tuck away Bazel specific under a general purpose dev-tool. The intent here is to house all day-to-day dev operations under this tool, written in Go. This will be the component that actually replaces our Makefile in its entirety. It'll be (predictably) powered by bazel underneath, but with much nicer UX. It should capturing all common usage patterns in high-level docs. This diff only introduces the scaffolding for this CLI. Release note: None
This is still pretty bare-bones, but better something than nothing. Release note: None
This is still pretty bare-bones, but better something than nothing. Release note: None
This is still pretty bare-bones, but better something than nothing. Release note: None
24e6807 to
a04c929
Compare
|
TFTR! I had a few more (unpolished) commits locally that fleshed out bors r+ |
|
Build failed: |
|
bors r+ |
|
Build succeeded! And happy new year! 🎉 |
Our Makefile UX has grown organically over the last six years, and is
now home to various scripts that are orthogonal to simply building the
crdb binary. These include the ability to run linters, building various
useful binaries (such as roachprod, roachtest), running different kinds
of tests (unit tests, logic tests, acceptance tests), and much more.
Now that we're exploring a move towards Bazel for our build system
(#55687), we have a chance to tuck away Bazel specific under a general
purpose dev-tool, larva.
The intent here is to house all day-to-day dev operations under this
tool, written in Go. This will be the component that actually replaces
our Makefile in its entirety. It'll be (predictably) powered by bazel
underneath, but with much nicer UX. It should capturing all common usage
patterns in high-level docs.
Strawman UX (I've only really deliberated on the
testsubcommand):Aside: The naming here is cause of this tool's infancy, relation to
cockroaches, and it starting with the letter "l" (which is featured
prominently in "bazel"/"blaze"). Whatever.
Release note: None