> What *should* happen if we add a parameter to a JSAPI function? Should we
> add it to the rust-mozjs equivalent at the same time, immediately breaking
> downstream users?

Generally you'd make a corresponding change to the Rust bindings
immediately and we'd have unit tests for them that ensured they
worked. This will only break downstream users if they are pointed
directly to the github repo as their dependency *and* they are not
pointed at a specific working revision.

Servo can then just update its dependency graph to include a new
version and make the corresponding changes to Servo for the new API.
We do this for other dependencies regularly even across breaking
changes, and it's been working well. I'm not sure how often breaking
changes are introduced in SpiderMonkey or the extent of the breakage,
so results may vary here, but I think the end result will be a
significant improvement over the current status quo.

A side question here is whether there are plans to make the JS API
more stable in the future (for our benefit and for other embedders)?

> Who's doing the "release engineering", and what's involved? Just bumping
> version numbers and running `cargo publish` from time to time?

Currently rust-mozjs is not published to crates.io, so keeping it
compiling and writing some unit tests and ensuring those are part of
normal js automation is probably all that is needed right now. If we
wanted to publish to crates.io we'd need to occasionally update the
version info and do a cargo publish at some regular cadence.

The Servo team doesn't have any experience with Gecko automation, but
we can certainly create unit tests and other things that are missing.

jack.
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to