This picks up from #22837 and strives to answer the question of how we handle synthetics deps.
There are two situations here:
- The user is running an inline script, (no package.json), and uses the globally installed synthetics version
- The user is running a suite (like our TODOS example), and has a package.json.
The proposal this issue sets forth is that:
- For
inline scripts we bundle the latest version of synthetics available at build time for the release, and use that for all runs unless the synthetics.version config variable is set to a specific value.
- If a value is set it will be interpolated into the npm command
npm install '@elastic/synthetics@${synthetics.version} letting users use semver syntax like ^1.0.0 if they so desire.
- Heartbeat will ensure that the installed version does not exceed its most recent compatible major version (initially no major greater than 1.0 using
npm list -g @elastic/synthetics
- For suites, users already have a package.json which inherently handles setting deps with semver
- We will ensure using
npm list @elastic/synthetics that the major version of synthetics does not exceed version 1.
- We will run an
npm i on each update of the suite code to ensure deps are installed
This picks up from #22837 and strives to answer the question of how we handle synthetics deps.
There are two situations here:
The proposal this issue sets forth is that:
inlinescripts we bundle the latest version of synthetics available at build time for the release, and use that for all runs unless thesynthetics.versionconfig variable is set to a specific value.npm install '@elastic/synthetics@${synthetics.version}letting users use semver syntax like^1.0.0if they so desire.npm list -g @elastic/syntheticsnpm list @elastic/syntheticsthat the major version of synthetics does not exceed version 1.npm ion each update of the suite code to ensure deps are installed