HN user

jingwen

620 karma

https://twitter.com/jin_

I work on the Bazel build system at Google.

Posts33
Comments46
View on HN
bazel.build 4y ago

New Bazel docs experience and infrastructure

jingwen
3pts0
twitter.com 5y ago

Android Platform is moving to Bazel

jingwen
1pts0
opensourcelive.withgoogle.com 5y ago

BazelCon 2020: November 12-13

jingwen
1pts0
bazel.build 5y ago

Bazel Docs Style Guide

jingwen
1pts0
medium.com 6y ago

How Tokopedia Achieved 1000% Faster iOS Build Time

jingwen
2pts0
www.outpost9.com 6y ago

The New Hacker's Dictionary

jingwen
2pts0
www.csc.gov.sg 6y ago

Attracting Tech Talent: Start with Culture Redesign

jingwen
2pts1
www.csc.gov.sg 6y ago

How to Build Good Software

jingwen
1016pts239
github.com 7y ago

The Starlark Configuration Language

jingwen
2pts0
blog.bazel.build 7y ago

Dynamic scheduling for faster remote builds with Bazel

jingwen
1pts0
ruudvanasseldonk.com 7y ago

Build system insights

jingwen
1pts0
docs.bazel.build 7y ago

Vision of the Bazel Build System

jingwen
2pts0
github.com 8y ago

The Skylark configuration language

jingwen
3pts0
awesomebazel.com 8y ago

Awesome Bazel

jingwen
4pts0
blog.bazel.build 8y ago

How Android Builds Work in Bazel

jingwen
3pts0
www.youtube.com 8y ago

SpaceX: Building Real-Time Systems with Bazel (Bazel Conference 2017)

jingwen
4pts0
raytracer.crypt.sg 8y ago

Show HN: Raytracer built with Typescript and GPU.js

jingwen
3pts0
github.com 8y ago

Awesome Bazel – A curated list of Bazel rules, tooling and resources

jingwen
3pts0
www.bloomberg.com 8y ago

Kubernetes on Bloomberg Businessweek

jingwen
4pts0
chromelens.xyz 9y ago

ChromeLens – a DevTools extension to develop for the visually impaired

jingwen
3pts0
www.youtube.com 9y ago

Pokémon Red INSIDE Minecraft – An Interview with the Creator, “Mr. Squishy”

jingwen
2pts0
github.com 9y ago

Notes to Computer Science Freshmen from the Future

jingwen
4pts2
jin.crypt.sg 9y ago

Tips for potential Computer Science undergraduates (in Singapore)

jingwen
1pts0
news.ycombinator.com 9y ago

Ask HN: What device do you use to read academic papers with?

jingwen
135pts138
cheng.staff.shef.ac.uk 9y ago

How to write proofs: a quick guide [pdf]

jingwen
3pts0
mindfulcommute.org 9y ago

The Mindful Commute

jingwen
3pts1
raytracer.crypt.sg 10y ago

Show HN: A parallel raytracer written in TypeScript and running on WebGL

jingwen
5pts0
rubybib.org 10y ago

The Ruby Bibliography

jingwen
2pts0
nodejs.org 10y ago

Node.js clustering

jingwen
3pts0
bar.foo 10y ago

bar.foo

jingwen
246pts116
Bazel 2.0 7 years ago

The net result is a Bazel (and Blaze) that are less burdened by the baggage of legacy, but the cost is a faster treadmill to keep pace with changes.

(I work on Bazel.)

This is accurate. A few of the biggest breaking change themes are:

1) Converting functionality linked within the Bazel binary into the extensibility mechanism implemented in Starlark. An example includes converting the native Java, C++, Android, Python, Protobuf, Obj-C and packaging rules into rules_java, rules_cc, etc. Many languages now are already implemented exclusively in Starlark. See rules_scala, rules_rust, rules_go and rules_haskell.

2) Starlark and Build API cleanups that accumulated over organic growth and development within Google for the past decade.

3) New build system features to support seamless integration with other build systems and package managers.

Bazel 2.0 7 years ago

There are many layers of caching within Bazel (remote/local, inmemory/disk), but the central functional incremental engine is called Skyframe [1]. Almost every computation within Bazel that can be incrementally executed is managed in this engine.

[1] https://bazel.build/designs/skyframe.html

Bazel 1.0 7 years ago

Yes. 1.0 indicates the beginning of semantic versioning, which was not in place during the alpha and beta phases.

This is one part of a _very_ big answer, but Bazel (internally Blaze) lets you do reverse dependency querying [0] with the query language, i.e. "Bazel, give me the list of targets that depend on this target that I've just modified"

$ bazel query 'rdeps(//foo/my:target, //...)'

Of course, this query in the monorepo will take a long time or not work, because the target universe of "//..." is far too large. This is where other systems come in.

[0] https://docs.bazel.build/versions/master/query.html#rdeps

Vim after 15 Years 9 years ago

Switched to i3 a few weeks back and I absolutely love it. Switching between applications and workspaces is incredibly fast, and the _only_ time I need the mouse is for web browsing. It's amazing.