2019-08-08 00:27:01 UTC - Dominic Kim: Current `CouchDBRestStore` does not allow to fetch action information with old revision, but we can actually fetch old revision of data with CouchDB. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565224021444800 ---- 2019-08-08 00:27:22 UTC - Dominic Kim: I am curious whether this is intended or not. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565224042445400 ---- 2019-08-08 03:52:56 UTC - Rodric Rabbah: I haven’t looked at that code in a while, but the invoker does need to fetch an action by revision which might not be the most current. This was supported at some point/dont recall that we changed this. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236376448000 ---- 2019-08-08 03:55:29 UTC - Dominic Kim: ok, so it's not intended. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236529448400 ---- 2019-08-08 03:56:06 UTC - Dominic Kim: It might be because of the semantic changes on CouchDB as the version of CouchDB is increased. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236566449000 ---- 2019-08-08 03:56:31 UTC - Dominic Kim: Currently `CouchDbRestClient` fetch actions with `revHeader` only. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236591449500 ---- 2019-08-08 03:56:34 UTC - Dominic Kim: ``` def getDoc(id: String, rev: String): Future[Either[StatusCode, JsObject]] = requestJson[JsObject](mkRequest(HttpMethods.GET, uri(db, id), headers = baseHeaders ++ revHeader(rev))) ``` https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236594449700 ---- 2019-08-08 03:57:28 UTC - chetanm: From bvarious threads [1][2] it appears that reading at old revision is not stable and is dependent on compaction and replication [1] <https://github.com/apache/couchdb-fauxton/issues/1069> [2] <https://stackoverflow.com/questions/9730299/are-old-data-accessible-in-couchdb> https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236648450900 ---- 2019-08-08 03:57:58 UTC - Dominic Kim: But when we need to fetch old data with the specific revision, we need `rev` argument. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236678451700 ---- 2019-08-08 03:58:07 UTC - Dominic Kim: <https://docs.couchdb.org/en/stable/api/document/common.html#obtaining-a-specific-revision> https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236687452000 ---- 2019-08-08 03:58:07 UTC - chetanm: Currently code only uses rev for doing `If-Match` call and not reads at old revision https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236687452100 ---- 2019-08-08 03:58:13 UTC - Dominic Kim: @chetanm Yes. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236693452300 ---- 2019-08-08 03:58:55 UTC - Dominic Kim: But if a user updates an action before invokers fetch the old action, it will induce `Boxed Error`. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236735453400 ---- 2019-08-08 03:59:38 UTC - chetanm: Yes that would happen. While implementing the CosmosDB store I was curious on how its handled and saw we do not do that https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236778454600 ---- 2019-08-08 03:59:53 UTC - chetanm: And CosmosDB does not support such sematics either … so was good :slightly_smiling_face: https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236793455200 ---- 2019-08-08 04:00:10 UTC - Dominic Kim: It's highly unlikely to happen in a normal situation because activation is quite quickly passed, but in some cases, it would happen. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236810455400 ---- 2019-08-08 04:00:40 UTC - Dominic Kim: I feel it implies the need for the action versioning feature at OpenWhisk layer rather than DB layer.. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236840456100 ---- 2019-08-08 04:01:19 UTC - chetanm: Yes … Lambda supports this via explicit version support <https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestSyntax> +1 : Dominic Kim https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236879456500 ---- 2019-08-08 04:02:52 UTC - Dominic Kim: It would require a long discussion, in the meantime, I would open a PR to fetch old action with a specific revision in CouchDB. Though it's not stable, anyway it would be better than nothing. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565236972458600 ---- 2019-08-08 04:03:23 UTC - chetanm: Internally model does has support for `version` (as a `SemVer`) but its not currently used much apart form helping in distinguishing changed entities https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565237003459200 ---- 2019-08-08 04:06:48 UTC - Rodric Rabbah: There’s a history of discussions around versioning in the issues on GitHub. iirc it comes down to does the system enforce semver or leave it to the user. To mimic aws lambda versions could be done a user level for the most part, and the api would allow an alias for “latest” (by user level I mean you make it part of the action name) https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565237208462600?thread_ts=1565237208.462600&cid=C3TPCAQG1 ---- 2019-08-08 04:11:48 UTC - chetanm: Thats the approach being currently used by some of our teams. > the api would allow an alias for “latest” Is that currently supported? I thought people are doing this by way of sequences in some cases https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565237508463600?thread_ts=1565237508.463600&cid=C3TPCAQG1 ---- 2019-08-08 04:12:32 UTC - chetanm: This scheme also leaves gc of old action to user. Worst cases it can bloat up storage a bit … so for not that big issue https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565237552464400?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 04:23:00 UTC - Rodric Rabbah: Nope, there’s no support today https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565238180465300?thread_ts=1565237508.463600&cid=C3TPCAQG1 ---- 2019-08-08 04:23:37 UTC - Rodric Rabbah: Indeed. At user level means you have to clean up at user level also. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565238217466100?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 04:24:41 UTC - chetanm: and currently there is no quota on user storage. So for now user has no incentive to clean up! https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565238281466300?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 04:25:40 UTC - Rodric Rabbah: yep that’s true https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565238340466700?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 04:55:00 UTC - Dominic Kim: I believe it would be useful to have various deployment methods such as blue-green, canary, and so on, just like what K8S does with istio. And this would require two different versions of actions for one invocation URL. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565240100466900?thread_ts=1565237208.462600&cid=C3TPCAQG1 ---- 2019-08-08 04:56:20 UTC - Dominic Kim: Currently, the action deployment is too easy, with those options, users can safely deploy their actions while their actions are still being invoked in the production systems. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565240180467100?thread_ts=1565237208.462600&cid=C3TPCAQG1 ---- 2019-08-08 04:57:13 UTC - Dominic Kim: I think we can define some default limits such as 10 recent versions though there ist still no quota in a namespace. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565240233467300?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 04:58:29 UTC - Dominic Kim: Users can benefit from SCMs to manage the versioning of their actions, but I think it would be much useful if the platform itself supports the versioning. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565240309467600?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 05:27:46 UTC - Dharmesh Singhal: i have recently start learning web sraping and not able to find how to get description of a web page where i use cheerio and the description i want is in element head meta with attribute name:" description" if u know any thing pls help me out https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565242066467900?thread_ts=1565184701.441900&cid=C3TPCAQG1 ---- 2019-08-08 08:02:52 UTC - James Thomas: I would love versioning and have wanted this for a while. +1 : Dominic Kim https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565251372468300?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 08:27:37 UTC - chetanm: @Dominic Kim It would be good to open an issue and record the requirements. Then others can also add there usecases. We can also record the approach which Rodric mentioned there which can be used as a workaround +1 : Dominic Kim, James Thomas https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565252857468500?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 08:33:35 UTC - Dominic Kim: @chetanm Sounds great to me. I would open an issue. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565253215468800?thread_ts=1565237552.464400&cid=C3TPCAQG1 ---- 2019-08-08 10:14:10 UTC - James Thomas: Been playing with loading WebAssembly Modules from OpenWhisk Node.js actions -> <https://dev.to/ibmdeveloper/serverless-functions-with-webassembly-modules-343e> it works really well! tada : Roberto Diaz, chetanm, Dominic Kim, Jiang PengCheng boom : Roberto Diaz https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565259250470700 ---- 2019-08-08 10:28:12 UTC - Rob Allen: I've not used Cheerio, but looking at their docs, I'd try something like `$('meta[name=description]').text()` https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1565260092470800?thread_ts=1565184701.441900&cid=C3TPCAQG1 ----