-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better runner compatibility with testnet #44
Conversation
4961771
to
afdc022
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
The only stylistic issue I have is that you're using ==
and !=
, which the team has vowed never to do (except as an accident). I can understand that maybe it's a terse way to express what you want, but I would be more comfortable if you wrote things out explicitly using ===
or !==
. I can't really tell what your intent is with the double-equals forms.
Interesting. If that's the case we probably should have the corresponding eslint rule enabled. I've been following the |
Even more interesting, the "require triple-equals" rule has exceptions for
That's a good enough reason for me. I don't want to block landing this change, but I do want to be sure @erights is aware of these deviations from Jessie: For context, this is the |
Oh yeah this is definitely node specific code. And I know I don't always strictly follow ocap for threading powers. I also wasn't able to be strict about nested await. Might be interesting to do a pass later to see what could be done about all those deviations, but I'd rather not block these PR on that. |
Where are these |
(That link doesn't work. After expanding |
Object.values(stats.cycles).reduce( | ||
(max, cycleStats) => | ||
cycleStats && | ||
cycleStats.duration != null && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it is worth it. Please expand to test both null
and undefined
if that's the semantics you want. My reasoning:
Experienced JS and Node programmers will know the idiom. To any readers both unfamiliar with the idiom and with JS's truly bizarre ==
coercion rules, this is a barrier to understanding. One of my favorite Carl Hewitt quotes:
A program should not only work, it should appear to work
This code does not say what it means. Code should be read more often than it is written. The expertise required to read a piece of code and basically puzzle it out should be less than the expertise needed to write that code.
If you did want to keep the idiom, I'd say you must annotate each occurrence with an explanatory comment, which kinda defeats the purpose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for bringing this to my attention.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it works, I'm happy with it :)
1e66f9e
to
2e870bc
Compare
Runner: fallback to node 14 for older SDKs
Backup storage in background Force storage save on error
@erights I'd like to merge this PR as-is. This is in the loadgen runner, and orchestrator cli, which is probably the furthest away from the chain you can get. If disallowing |
Query client address status in setup step
Remove loadgen git dependency
58cd8be
to
ceb913f
Compare
This PR updates the runner with a grab bag of fixes I did while making the stats generation more robust, and working on moving the provisioning check of the client for a testnet chain to the setup phase.
Checking earlier allows the testnet loadgen to pause before starting and wait until the client is provisioned, instead of requiring action after the start, which may be a while when catching up to an existing chain. I originally started adding the ability to auto provision a client for a local testnet (based on the keys and the same logic as a local-chain), but reverted course and moved that functionality into a separate script used by the integration test (see Agoric/agoric-sdk#4256).
List of various fixes:
agoric-servers
project inlocal-chain
tests. Removes loadgen projectgit
dependency.Stack on top of other compatibility fixes (#37).
As always, best reviewed commit-by-commit.