-
Notifications
You must be signed in to change notification settings - Fork 230
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
drop support for obsolete hapi
package
#2691
Comments
I'm wrong about this being a "npm v8.6" difference. Using npm 8.10.0 locally I sometimes get the "extraneous" entries and sometimes not... depending on the exact |
Dependabot package-lock.json updates remove “extraneous” entries. Removing those entries results in |
In the team meeting, @estolfo suggested dropping testing of the obsolete "hapi" package for now, and defer dropping actual support for it until the next major. I think that sounds good. I will work on a PR to try that. If that works, I'll put this issue on the "next-major" milestone. |
The old 'hapi' package was itself deprecated about 2 years ago. The APM agent now deprecates instrumenting it. The instrumentation code remains, but it is no longer tested and will be removed in the next major. Note that '@hapi/hapi' is still supported, this is just about the old package name and versions. Any versions starting with 17.9.0, 18.2.0, 19 and later are the newer '@hapi/hapi'. Refs: #2691
And just make sure you document that the obsolete hapi package support is untested and deprecated so that users know they are using its instrumentation it at their own risk. |
Yup, that was done both in the changelog (https://github.com/elastic/apm-agent-nodejs/pull/2698/files#diff-cb0601935fcaac3fea29b215282428b964b8b6e1bd5a6b8c68e84d651633c9e3) and supported-technologies doc page (https://github.com/elastic/apm-agent-nodejs/pull/2698/files#diff-d2a92236665ca681fc14a4b85cb60e74bf3d25b42328ca2390fca53156100d25) of #2698 |
The old 'hapi' package was itself deprecated about 2 years ago. The APM agent now deprecates instrumenting it. The instrumentation code remains, but it is no longer tested and will be removed in the next major. Note that '@hapi/hapi' is still supported, this is just about the old package name and versions. Any versions starting with 17.9.0, 18.2.0, 19 and later are the newer '@hapi/hapi'. Refs: #2691
Resolved by #3541 on the "dev/4.x" branch, which will be the 4.x active branch soonish. |
feat!: the start of v4.x Significant and breaking changes: - Min supported Node.js is now 14.5.0 (up from 8.6). - Drop support for the obsolete "patch" context manager, i.e. the `contextManager: "patch"` config option. This was a limited async context management that predated the preferred `AsyncLocalStorage` core Node.js mechanism for context tracking. (#3529) - Config vars: - Remove `logUncaughtExceptions` config option, if the agent's `uncaughtException` handler is active it now *always* logs the error to the console. (#2412) - Remove `filterHttpHeaders` config option, see `sanitizeFieldNames` instead. (#3332) - Remove long deprecate `ELASTIC_APM_KUBERNETES_*` envvars, use `KUBERNETES_*` instead. (#2661) - The `useElasticTraceparentHeader` config option now defaults to `false`. This means the `elastic-apm-traceparent` HTTP header is now no longer sent by default. (#3555) - Drop erroneous `ELASTIC_SANITIZE_FIELD_NAMES` and `ELASTIC_IGNORE_MESSAGE_QUEUES` config envvars. - Instrumentations: - Drop instrumentation for old `hapi`, the current `@hapi/hapi` is still instrumented. (#2691) - APIs: - Ignore a `timer` option passed to `startTransaction()` and `startSpan()` APIs. (#2990) - Remove the deprecated `span.toString()` and `transaction.toString()` APIs. (#2348) - Change `apm.startTransaction()` API to return a noop transaction instead of null when the agent is not started. (#2429) - Remove `transaction.subtype` and `transaction.action` properties from the API. This also impacts <<apm-start-transaction>> and `transaction.setType(...)`, both of which now no longer accept `subtype` and `action` parameters. (#3557)
feat!: the start of v4.x Significant and breaking changes: - Min supported Node.js is now 14.5.0 (up from 8.6). - Drop support for the obsolete "patch" context manager, i.e. the `contextManager: "patch"` config option. This was a limited async context management that predated the preferred `AsyncLocalStorage` core Node.js mechanism for context tracking. (elastic#3529) - Config vars: - Remove `logUncaughtExceptions` config option, if the agent's `uncaughtException` handler is active it now *always* logs the error to the console. (elastic#2412) - Remove `filterHttpHeaders` config option, see `sanitizeFieldNames` instead. (elastic#3332) - Remove long deprecate `ELASTIC_APM_KUBERNETES_*` envvars, use `KUBERNETES_*` instead. (elastic#2661) - The `useElasticTraceparentHeader` config option now defaults to `false`. This means the `elastic-apm-traceparent` HTTP header is now no longer sent by default. (elastic#3555) - Drop erroneous `ELASTIC_SANITIZE_FIELD_NAMES` and `ELASTIC_IGNORE_MESSAGE_QUEUES` config envvars. - Instrumentations: - Drop instrumentation for old `hapi`, the current `@hapi/hapi` is still instrumented. (elastic#2691) - APIs: - Ignore a `timer` option passed to `startTransaction()` and `startSpan()` APIs. (elastic#2990) - Remove the deprecated `span.toString()` and `transaction.toString()` APIs. (elastic#2348) - Change `apm.startTransaction()` API to return a noop transaction instead of null when the agent is not started. (elastic#2429) - Remove `transaction.subtype` and `transaction.action` properties from the API. This also impacts <<apm-start-transaction>> and `transaction.setType(...)`, both of which now no longer accept `subtype` and `action` parameters. (elastic#3557)
To be clear, I'm talking about
hapi
, and not about dropping@hapi/hapi
.Starting with v17.9.0 and v18.2.0 the name changed from 'hapi' to '@hapi/hapi'.
hapi
(the old one) is deprecated, obsolete, unmaintained and has known major security issues. IIUC it is coming up on two years being so. hapijs/hapi#4114 provides some details. Anything before@hapi/hapi@20
is in this "deprecated, ..." group.There are maintenance and testing costs to continuing to support it. The monstrous .tav.yml block hints at some of the complexity:
apm-agent-nodejs/.tav.yml
Lines 408 to 464 in a289d44
Also, note there are lingering minor issues:
npm install
and older versions of hapi (versions that we do currently install and test in our TAV tests)open questions
The text was updated successfully, but these errors were encountered: