-
Notifications
You must be signed in to change notification settings - Fork 214
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
8605 a3p integration #8635
8605 a3p integration #8635
Changes from all commits
eee7bfa
845ba0d
edcf2f4
23ecf28
d8b8410
fea3198
d8690bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# build in CI | ||
Dockerfile | ||
upgrade-test-scripts | ||
|
||
# Yarn (https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored) | ||
proposals/*/.pnp.* | ||
proposals/*/.yarn/* | ||
proposals/*/!.yarn/patches | ||
proposals/*/!.yarn/plugins | ||
proposals/*/!.yarn/releases | ||
proposals/*/!.yarn/sdks | ||
proposals/*/!.yarn/versions |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Integration with agoric-3 synthetic test chain | ||
|
||
The test runner is `@agoric/synthetic-chain`. This package depends on that so that you can run, | ||
``` | ||
yarn synthetic-chain append | ||
yarn synthetic-chain test | ||
yarn synthetic-chain test --debug | ||
``` | ||
|
||
# Package management | ||
|
||
This directory hierarchy, while it contains packages, is not part of the agoric-sdk workspace. This is to isolate it from tooling that expects a public package published to NPM. | ||
|
||
For each proposal, their package.json is also separate but it can't access the SDK code. Instead you must either source a published version of `@agoric/synthetic-chain` (e.g. a `dev` version published on each master commit) or pack a tarball and source that. | ||
|
||
``` | ||
cd packages/synthetic-chain | ||
yarn pack | ||
TARBALL=`ls *.tgz` | ||
cd - | ||
mv packages/synthetic-chain/$TARBALL a3p-integration/proposals/c:myproposal/ | ||
# .tgz are gitignored at the root but a closer .gitignore makes an exception for this package's tarball | ||
git add a3p-integration/proposals/c:myproposal/$TARBALL | ||
yarn add @agoric/synthetic-chain@file:$TARBALL | ||
``` | ||
|
||
# Troubleshooting | ||
|
||
## no match for platform | ||
|
||
If you get an error like this, | ||
``` | ||
ERROR: failed to solve: ghcr.io/agoric/agoric-3-proposals:main: no match for platform in manifest sha256:83321abda66fa94915f1ae20d651b66870f2d1aac17b71449c04ecd46b6b1b96: not found | ||
``` | ||
it's because our CI only builds x64 yet and you're on some other machine, probably a Mac. | ||
|
||
There is some effort to make CI build multiplatform: https://github.com/Agoric/agoric-3-proposals/pull/32 | ||
|
||
Meanwhile you can build the `main` image locally: | ||
|
||
```sh | ||
cd agoric-3-proposals | ||
./node_modules/.bin/synthetic-chain build | ||
|
||
# build the default entrypoint and tag it so the `append` command finds it | ||
docker buildx build --tag ghcr.io/agoric/agoric-3-proposals:main . | ||
``` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"private": true, | ||
"scripts": { | ||
"build": "echo Use synthetic-chain to build proposal images", | ||
"test": "echo Use synthetic-chain to test proposal images" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can't this run There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, I just thought it better to train people on the tool rather than creating another level of abstraction. |
||
}, | ||
"dependencies": { | ||
"@agoric/synthetic-chain": "^0.0.2-0", | ||
"tsx": "^4.7.0" | ||
}, | ||
"license": "Apache-2.0" | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
nodeLinker: node-modules |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"agoricProposal": { | ||
"releaseNotes": "TBD", | ||
"sdkImageTag": "latest", | ||
"planName": "UNRELEASED_UPGRADE", | ||
"type": "Software Upgrade Proposal" | ||
}, | ||
"type": "module", | ||
"license": "Apache-2.0", | ||
"dependencies": { | ||
"@agoric/synthetic-chain": "^0.0.2-0", | ||
"ava": "^5.3.1", | ||
"better-sqlite3": "^9.2.2", | ||
"execa": "^7.2.0" | ||
}, | ||
"scripts": { | ||
"agops": "yarn --cwd /usr/src/agoric-sdk/ --silent agops" | ||
}, | ||
"packageManager": "[email protected]" | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/** | ||
* @file Sanity checks of master branch | ||
* | ||
* This 'upgrade-next' test is a dummy on this branch since there is no upgrade to be tested. | ||
* This file serves as a starting point for tests on release branchs. | ||
*/ | ||
import test from 'ava'; | ||
|
||
import { agd } from '@agoric/synthetic-chain/src/lib/cliHelper.js'; | ||
import { getIncarnation } from '@agoric/synthetic-chain/src/lib/vat-status.js'; | ||
|
||
test('MaxBytes param', async t => { | ||
const { value: rawParams } = await agd.query( | ||
'params', | ||
'subspace', | ||
'baseapp', | ||
'BlockParams', | ||
); | ||
const blockParams = JSON.parse(rawParams); | ||
t.is(blockParams.max_bytes, '5242880'); | ||
}); | ||
|
||
test(`Ensure Zoe Vat is at 0`, async t => { | ||
const incarnation = await getIncarnation('zoe'); | ||
t.is(incarnation, 0); | ||
}); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
#!/bin/bash | ||
source /usr/src/upgrade-test-scripts/env_setup.sh | ||
|
||
yarn ava |
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,5 @@ | ||||||||||||||
#!/bin/bash | ||||||||||||||
|
||||||||||||||
# UNTIl this is upstream https://github.com/Agoric/agoric-3-proposals/issues/40 | ||||||||||||||
# Set to zero so tests don't have to pay gas (we're not testing that) | ||||||||||||||
sed --in-place=.bak s/'minimum-gas-prices = ""'/'minimum-gas-prices = "0ubld,0uist"'/ ~/.agoric/config/app.toml | ||||||||||||||
Comment on lines
+3
to
+5
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Sound like you think that would read better. I'll make those changes.
Your version like on your Mac? IIRC it didn't work in Ubuntu, where this line runs. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Yeah. nothing special, just what's here. |
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.
Is this comment obsolete?
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.
Nope. That script is a wrapper for
test-docker-build
which is still part of CI for building the SDK image. This PR doesn't have anything do with that.