Hi all, On the PHP PR, @rr [commented] [1]:
> The built in packages are convenient - less zip files for the initial ramp > up. But it creates a maintenance issue: when do you pick up updates to the > packages (minor/patch level only?) and not break existing actions using the > "kind". That is: is the kind itself semantically versioned? This applies to all kinds and so probably should be discussed project level and ideally we should document how this is handled. There are two things here: 1. The language runtimes release patch updates for minor versions. e.g. PHP `7.1.7` will become `7.1.8` next month with a small number of bug fixes including crashers and possibly security fixes. 2. Each kind bindles a number of packages via the language's standard package management system: Swift Package Manager for Swift, NPM for NodeJs, etc. The projects that produce these packages update them with new versions minor and patch versions. The tension is obviously between keeping updated for fixes vs the risk of breaks due to a project's inability to keep BC between patch versions. e.g. the NodeJS kind comes with the `async v2.1.4` package. However `v2.1.5` of that package fixes a stack overflow issue. Should our actions have that fix? Closer to home, the NodeJS kind ships with `OpenWhisk v3.3.2`, but the latest is `v3.6.0` which is needed for non-experimental API Gateway support… Some questions: 1. Should we update the language runtime for a kind for a patch level change (e.g. update the current NodeJS:6 kind from `6.9.1` to the latest `6.9.5`? 2. Should we ever update the language runtime for a kind for a minor level change (e.g. update the current NodeJS:6 kind from `6.9.1` to the latest `6.11.1`? 3. Should we ever update the packages in a kind to the latest patch level or minor level? 4. What's our policy when a security issue is published for a language or a package that we ship in a non-deprecated kind? Whatever the answers are, I think we should document them clearly somewhere. Also, I've started this conversation as a mailing list topic as it's a "policy" thing. Given my previous comments on mailing lists, should I also create a GitHub issue prefixed with "Discussion" to provide more visibility in order to garner wider community input? Regards, Rob... [1]: https://github.com/apache/incubator-openwhisk/pull/2415#issuecomment-314716101 <https://github.com/apache/incubator-openwhisk/pull/2415#issuecomment-314716101>