Certainly. FOG and Glean, like Firefox Desktop Telemetry before them, depend on codegen to work: we use it to generate APIs and structures and constants and stuff to support instrumentation. However, not all our developers compile as part of their desired workflow, preferring artifact builds. So FOG, wanting to still support these developers' instrumentation needs like Firefox Desktop Telemetry before it, needs to do some (expensive) work to support new or changed JS instrumentation that is registered not at compile-time, but at run-time. The subsystem that does this work for FOG is called [Runtime Metric Definition Subsystem JOG](https://firefox-source-docs.mozilla.org/toolkit/components/glean/dev/jog.html). We want to only do this expensive work in cases where it's necessary. So what we're in the market for is some means to know, preferably at compile time, that a given build is or isn't A Developer's Build in Artifact Mode (or CI's artifact builds, which have similar needs). We never want to run the expensive work on a released build. Is that sufficient context?
Bug 1820241 Comment 13 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Certainly. FOG and Glean, like Firefox Desktop Telemetry before them, depend on codegen to work: we use it to generate APIs and structures and constants and stuff to support instrumentation. However, not all our developers compile as part of their desired workflow, preferring artifact builds. So FOG, wanting to still support these developers' instrumentation needs like Firefox Desktop Telemetry before it, needs to do some (expensive) work to support new or changed JS instrumentation that is registered not at compile-time, but at run-time. The subsystem that does this work for FOG is called [Runtime Metric Definition Subsystem JOG](https://firefox-source-docs.mozilla.org/toolkit/components/glean/dev/jog.html). We want to only do this expensive work in cases where it's necessary. So what we're in the market for is some means to know, preferably at compile time and in C++, that a given build is or isn't A Developer's Build in Artifact Mode (or CI's artifact builds, which have similar needs). We never want to run the expensive work on a released build. Is that sufficient context?