Skip to content
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

ui: require yarn >= 1.7.0 #27262

Merged
merged 1 commit into from
Jul 10, 2018
Merged

ui: require yarn >= 1.7.0 #27262

merged 1 commit into from
Jul 10, 2018

Conversation

tbg
Copy link
Member

@tbg tbg commented Jul 8, 2018

Builds before the upgrade failed mysteriously.
@benesch (cc) suspects a bug in older versions of yarn.

$ make build
Running make with -j8
GOPATH set to /Users/tschottdorf/go
build/node-run.sh -C pkg/ui yarn install --offline
(echo "// Code generated by goyacc. DO NOT EDIT."; \
     echo "// GENERATED FILE DO NOT EDIT"; \
     cat pkg/sql/parser/gen/sql.go.tmp | \
     sed -E 's/^const ([A-Z][_A-Z0-9]*) =.*$/const \1 = lex.\1/g') > pkg/sql/parser/sql.go.tmp || rm pkg/sql/parser/sql.go.tmp
(echo "// Code generated by make. DO NOT EDIT."; \
     echo "// GENERATED FILE DO NOT EDIT"; \
     echo; \
     echo "package lex"; \
     echo; \
     grep '^const [A-Z][_A-Z0-9]* ' pkg/sql/parser/gen/sql.go.tmp) > pkg/sql/lex/tokens.go.tmp || rm pkg/sql/lex/tokens.go.tmp
mv -f pkg/sql/lex/tokens.go.tmp pkg/sql/lex/tokens.go
mv -f pkg/sql/parser/sql.go.tmp pkg/sql/parser/sql.go
yarn install v1.6.0
(node:50064) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[1/5] Validating package.json...
go install -v docgen
bin/prereqs ./pkg/cmd/docgen > bin/docgen.d.tmp
[2/5] Resolving packages...
mv -f bin/docgen.d.tmp bin/docgen.d
[3/5] Fetching packages...
build/node-run.sh pkg/ui/bin/gen-protobuf-cli-deps.js > pkg/ui/node_modules/protobufjs/cli/package.json
bash: pkg/ui/node_modules/protobufjs/cli/package.json: No such file or directory
make: *** [pkg/ui/yarn.installed] Error 1
make: *** Waiting for unfinished jobs....

Release note (general change): the build now requires yarn at version
1.7.0 or above, to work around yarnpkg/yarn#5761.

@tbg tbg requested a review from a team July 8, 2018 19:21
@cockroach-teamcity
Copy link
Member

This change is Reviewable

@benesch
Copy link
Contributor

benesch commented Jul 8, 2018 via email

@tbg
Copy link
Member Author

tbg commented Jul 8, 2018

I think we also need to build a new builder image -- at least all of CI is red because of the version bump. I won't get to this tonight, so do with this PR what you please!

@benesch
Copy link
Contributor

benesch commented Jul 8, 2018 via email

@couchand
Copy link
Contributor

couchand commented Jul 9, 2018

LGTM pending the builder and mailing list updates. Thanks fellas!

@tbg
Copy link
Member Author

tbg commented Jul 10, 2018

Sent an update to the mailing list and will bors it when teamcity looks happy.

@vilterp
Copy link
Contributor

vilterp commented Jul 10, 2018

Thanks Tobi, mind tacking on this patch?

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1b961596c..f791f3cae 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -43,7 +43,7 @@ new engineers.
      - GNU Make (3.81+ is known to work)
      - CMake 3.1+
      - Autoconf 2.68+
-     - NodeJS 6.x and Yarn 1.0+
+     - NodeJS 6.x and Yarn 1.7+
 
    Note that at least 4GB of RAM is required to build from source and run tests.
 
diff --git a/pkg/ui/README.md b/pkg/ui/README.md
index a33cb71c1..23c978ebe 100644
--- a/pkg/ui/README.md
+++ b/pkg/ui/README.md
@@ -16,7 +16,7 @@ you'll be able to access the UI at <http://localhost:8080>.
 Our UI is compiled using a collection of tools that depends on
 [Node.js](https://nodejs.org/) and are managed with
 [Yarn](https://yarnpkg.com), a package manager that offers more deterministic
-package installation than NPM. NodeJS 6.x and Yarn 0.22.0 are known to work.
+package installation than NPM. NodeJS 6.x and Yarn 1.7.0 are known to work.
 [Chrome](https://www.google.com/chrome/), Google's internet browser. Unit tests
 are run using Chrome's "Headless" mode.

Also @benesch are the versions of Node and Yarn actually pinned in the Dockerfile? I just see this

so how do you know that we'll get 1.7.0?

Builds before the upgrade failed mysteriously.
@benesch (cc) suspects a bug in older versions of yarn.

```
$ make build
Running make with -j8
GOPATH set to /Users/tschottdorf/go
build/node-run.sh -C pkg/ui yarn install --offline
(echo "// Code generated by goyacc. DO NOT EDIT."; \
     echo "// GENERATED FILE DO NOT EDIT"; \
     cat pkg/sql/parser/gen/sql.go.tmp | \
     sed -E 's/^const ([A-Z][_A-Z0-9]*) =.*$/const \1 = lex.\1/g') > pkg/sql/parser/sql.go.tmp || rm pkg/sql/parser/sql.go.tmp
(echo "// Code generated by make. DO NOT EDIT."; \
     echo "// GENERATED FILE DO NOT EDIT"; \
     echo; \
     echo "package lex"; \
     echo; \
     grep '^const [A-Z][_A-Z0-9]* ' pkg/sql/parser/gen/sql.go.tmp) > pkg/sql/lex/tokens.go.tmp || rm pkg/sql/lex/tokens.go.tmp
mv -f pkg/sql/lex/tokens.go.tmp pkg/sql/lex/tokens.go
mv -f pkg/sql/parser/sql.go.tmp pkg/sql/parser/sql.go
yarn install v1.6.0
(node:50064) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[1/5] Validating package.json...
go install -v docgen
bin/prereqs ./pkg/cmd/docgen > bin/docgen.d.tmp
[2/5] Resolving packages...
mv -f bin/docgen.d.tmp bin/docgen.d
[3/5] Fetching packages...
build/node-run.sh pkg/ui/bin/gen-protobuf-cli-deps.js > pkg/ui/node_modules/protobufjs/cli/package.json
bash: pkg/ui/node_modules/protobufjs/cli/package.json: No such file or directory
make: *** [pkg/ui/yarn.installed] Error 1
make: *** Waiting for unfinished jobs....
```

Release note (general change): the build now requires yarn at version
1.7.0 or above.
@tbg
Copy link
Member Author

tbg commented Jul 10, 2018

Done.

@benesch
Copy link
Contributor

benesch commented Jul 10, 2018

The version of Node is pinned by Ubuntu, but Yarn is not. We get whatever the latest version of Yarn is at the time the builder image is built. This works well enough since we don't enforce a maximum version of Yarn.

@tbg
Copy link
Member Author

tbg commented Jul 10, 2018

bors r=benesch,vilterp

craig bot pushed a commit that referenced this pull request Jul 10, 2018
27262: ui: require yarn >= 1.7.0 r=benesch,vilterp a=tschottdorf

Builds before the upgrade failed mysteriously.
@benesch (cc) suspects a bug in older versions of yarn.

```
$ make build
Running make with -j8
GOPATH set to /Users/tschottdorf/go
build/node-run.sh -C pkg/ui yarn install --offline
(echo "// Code generated by goyacc. DO NOT EDIT."; \
     echo "// GENERATED FILE DO NOT EDIT"; \
     cat pkg/sql/parser/gen/sql.go.tmp | \
     sed -E 's/^const ([A-Z][_A-Z0-9]*) =.*$/const \1 = lex.\1/g') > pkg/sql/parser/sql.go.tmp || rm pkg/sql/parser/sql.go.tmp
(echo "// Code generated by make. DO NOT EDIT."; \
     echo "// GENERATED FILE DO NOT EDIT"; \
     echo; \
     echo "package lex"; \
     echo; \
     grep '^const [A-Z][_A-Z0-9]* ' pkg/sql/parser/gen/sql.go.tmp) > pkg/sql/lex/tokens.go.tmp || rm pkg/sql/lex/tokens.go.tmp
mv -f pkg/sql/lex/tokens.go.tmp pkg/sql/lex/tokens.go
mv -f pkg/sql/parser/sql.go.tmp pkg/sql/parser/sql.go
yarn install v1.6.0
(node:50064) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[1/5] Validating package.json...
go install -v docgen
bin/prereqs ./pkg/cmd/docgen > bin/docgen.d.tmp
[2/5] Resolving packages...
mv -f bin/docgen.d.tmp bin/docgen.d
[3/5] Fetching packages...
build/node-run.sh pkg/ui/bin/gen-protobuf-cli-deps.js > pkg/ui/node_modules/protobufjs/cli/package.json
bash: pkg/ui/node_modules/protobufjs/cli/package.json: No such file or directory
make: *** [pkg/ui/yarn.installed] Error 1
make: *** Waiting for unfinished jobs....
```

Release note (general change): the build now requires yarn at version
1.7.0 or above, to work around yarnpkg/yarn#5761.

27307: storage: return TransactionRetryError from QueryIntent on pushed intent r=nvanbenschoten a=nvanbenschoten

Extracted from #26599.

This change adjusts how QueryIntent handles pushed intents. First, it
changes how pushed intents interact with SNAPSHOT transactions. Next,
it makes sure to update the response transaction in the case of pushed
intents. Finally, it returns a RETRY_SERIALIZABLE TransactionRetryError
for SERIALIZABLE transactions who observe a pushed intent with the
RETURN_ERROR behavior.

Release note: None

27329: log: use fake stacktrace when test-exiting r=benesch a=tschottdorf

Having stack traces littered across tests has been a long-standing pet
peeve of mine (and presumably others). We search through logs more often
than we would like to admit, and having to skip a number of intentional
stack traces is annoying.

Make it so that whenever the logging exit func is mocked, the stack
trace indicates that.

Release note: None

27348: engine: fix RocksDBBatchReader example comment r=nvanbenschoten a=nvanbenschoten

Release note: None

Co-authored-by: Tobias Schottdorf <tobias.schottdorf@gmail.com>
Co-authored-by: Nathan VanBenschoten <nvanbenschoten@gmail.com>
@craig
Copy link
Contributor

craig bot commented Jul 10, 2018

Build succeeded

@craig craig bot merged commit 013febe into cockroachdb:master Jul 10, 2018
@tbg tbg deleted the fix/yarn-bump branch July 26, 2018 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants