2019-02-23 00:39:39 UTC - Roberto Diaz: I'm quite confusing... according to this document, this is for runtimes but according to @Michele Sciabarra I should use the actionloop approach for Rust.
As I understand, the actionloop is included in a runtime and the actionloop is just the part that execute the function reading from stdin and writing into fd3 in a continuous loop. I suppose that this runtime prepares all the thing for you, I mean, expose the `init` and `execute` end point to the system and also storage the code for you. I still have some questions about the compiling because in dome point I should add some code to compile the code on the fly (I understand that this is done by the proxy, correct me if I'm in a mistake). I was asking about a "sample runtime" or whatever that allows me to insert my own actionloop and where I can do some tests during the development process https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550882379051200 ---- 2019-02-23 00:57:28 UTC - Rodric Rabbah: Sorry - might not be following yet. Do you mean you want to send a init and run request manually to a runtime container you’re developing? https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550883448052700 ---- 2019-02-23 01:00:31 UTC - Rodric Rabbah: I’m not sure if I’m helping or adding to the confusion with these: This is the python runtime using action loop as the base <https://github.com/apache/incubator-openwhisk-runtime-python/tree/master/core/pythonActionLoop> You can see how the dockerfile extends the actionloop https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550883631054400 ---- 2019-02-23 01:01:12 UTC - Rodric Rabbah: This script <https://github.com/apache/incubator-openwhisk/blob/master/tools/actionProxy/invoke.py> is handy for sending init and run requests to the container that you build and run manually to test its behavior https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550883672055300 ---- 2019-02-23 01:22:42 UTC - Carlos Santana: @Roberto Diaz if you can give me a rust file and a command to compile an executable I can try build a skeleton runtime. https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550884962056400 ---- 2019-02-23 01:23:25 UTC - Carlos Santana: A rust file that loops over stdin, readline, and writes a line to fd3 device. https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885005057500 ---- 2019-02-23 01:24:05 UTC - Roberto Diaz: I'm just starting to explore the solutions https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885045057800 ---- 2019-02-23 01:24:32 UTC - Roberto Diaz: because I'm thinking about how to deal with dependencies https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885072058800 ---- 2019-02-23 01:24:41 UTC - Carlos Santana: Then is a small python script that does the compile https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885081059200 ---- 2019-02-23 01:26:31 UTC - Carlos Santana: For example in swift takes a directory input where all the swift files are and a package.swift that declares the dependencies the single command “swift build” downloads the dependencies and compiles a binary https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885191062000 ---- 2019-02-23 01:30:09 UTC - Roberto Diaz: in rust with cargo you normally have a project structure with a top level project file including all the dependencies and your code under the src directory https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885409063100 ---- 2019-02-23 01:30:40 UTC - Roberto Diaz: I suppose that this will be managed uploading a zip file https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885440063700 ---- 2019-02-23 01:30:56 UTC - Carlos Santana: That becomes your input directory zipped https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885456064100 ---- 2019-02-23 01:31:41 UTC - Carlos Santana: And the actionloop unzips into a directory for the python script to compile what’s in that directory into an executable https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885501065400 ---- 2019-02-23 01:33:22 UTC - Roberto Diaz: ok!! it makes sense! +1 : Carlos Santana https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550885602065800 ---- 2019-02-23 07:26:28 UTC - Michele Sciabarra: I am writing a tutorial this weekend https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550906788066700 ---- 2019-02-23 07:28:32 UTC - Roberto Diaz: that would be awesome! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550906912066900 ---- 2019-02-23 07:29:23 UTC - Roberto Diaz: I have started today downloading the go runtime and I'm getting familiar with it https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550906963067800 ---- 2019-02-23 07:35:47 UTC - Michele Sciabarra: The key thing is to write a version of the launcher.go in rust https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907347068500 ---- 2019-02-23 07:36:01 UTC - Michele Sciabarra: This is something I cannot do without learning https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907361069000 ---- 2019-02-23 07:36:25 UTC - Michele Sciabarra: For the rest I can help and very quickly https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907385069600 ---- 2019-02-23 07:37:01 UTC - Roberto Diaz: yes! also we need to deal with the dependencies management using cargo https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907421070200 ---- 2019-02-23 07:37:27 UTC - Michele Sciabarra: Yup but I did something similar for swift https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907447070800 ---- 2019-02-23 07:37:47 UTC - Michele Sciabarra: So probably the best starting point is the swift42 https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907467071700 ---- 2019-02-23 07:38:12 UTC - Michele Sciabarra: That also supports the swift packaging tool https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907492072600 ---- 2019-02-23 07:39:35 UTC - Roberto Diaz: I was thinking about implement the functions as a library providing a default implementation and call that library from the launcher https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907575073800 ---- 2019-02-23 07:39:56 UTC - Michele Sciabarra: <https://github.com/apache/incubator-openwhisk-runtime-swift/tree/master/core/swift42Action> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907596074200 ---- 2019-02-23 07:40:00 UTC - Michele Sciabarra: Check here https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907600074500 ---- 2019-02-23 07:40:56 UTC - Roberto Diaz: because I think that we will need to deal with two different user cases: 1) the case where the users provide just a function without any dependencies 2) the case where the users provide a complete project including dependencies https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907656075900 ---- 2019-02-23 07:41:10 UTC - Michele Sciabarra: Indeed https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907670076500 ---- 2019-02-23 07:41:34 UTC - Roberto Diaz: or just use only one case... and upload always a zip including a complete library implementation https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907694077600 ---- 2019-02-23 07:42:46 UTC - Michele Sciabarra: this is why I have to write the tutorial https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907766078000 ---- 2019-02-23 07:42:54 UTC - Michele Sciabarra: anyway it works this way https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907774078300 ---- 2019-02-23 07:43:02 UTC - Michele Sciabarra: if you upload a single file https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907782078700 ---- 2019-02-23 07:43:28 UTC - Michele Sciabarra: you find it in src/exec so you have to copy it to something like src/main.rs https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907808079300 ---- 2019-02-23 07:43:38 UTC - Michele Sciabarra: add a launcher src/main/launcher.rs https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907818079600 ---- 2019-02-23 07:43:49 UTC - Michele Sciabarra: and compile everything to bin/exec https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907829079900 ---- 2019-02-23 07:43:59 UTC - Michele Sciabarra: if you provide a zip file https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907839080100 ---- 2019-02-23 07:44:06 UTC - Michele Sciabarra: you find the contents in src/ https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907846080400 ---- 2019-02-23 07:44:22 UTC - Michele Sciabarra: then you compile it in some way and place the result in bin/exec https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907862080900 ---- 2019-02-23 07:45:04 UTC - Roberto Diaz: cool, makes sense https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907904081900 ---- 2019-02-23 07:45:06 UTC - Michele Sciabarra: actionloop takes you input, unpack in a directory and invoke the compiler scrippt with https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907906082000 ---- 2019-02-23 07:45:20 UTC - Michele Sciabarra: compile <main> <srcdir> <bindir> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907920082400 ---- 2019-02-23 07:45:50 UTC - Michele Sciabarra: I normally copy the exec file to exec__.go add a main__.go and compile it all https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907950083000 ---- 2019-02-23 07:46:02 UTC - Michele Sciabarra: I use the final "__" to avoid clashes https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550907962083300 ---- 2019-02-23 07:46:41 UTC - Michele Sciabarra: however you must NOT assume the src/exec is there, if the user uploaded a zip file it will not be there https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908001084000 ---- 2019-02-23 07:47:00 UTC - Michele Sciabarra: if the user uploaded a single file then it is src/exec https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908020084400 ---- 2019-02-23 07:47:31 UTC - Michele Sciabarra: but on all those things I can help the "hard" part is to write a launcher.go https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908051085000 ---- 2019-02-23 07:48:05 UTC - Roberto Diaz: ok! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908085085800 ---- 2019-02-23 07:48:43 UTC - Roberto Diaz: my main milestone now is get an environment to make my tests https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908123086400 ---- 2019-02-23 07:49:23 UTC - Roberto Diaz: but from the swift actionloop I have seen that there is a dockerfile using an `actioloop` image https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908163087400 ---- 2019-02-23 07:49:28 UTC - Michele Sciabarra: I think the simplest example is the python one https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908168087500 ---- 2019-02-23 07:49:33 UTC - Michele Sciabarra: yes there is https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908173087700 ---- 2019-02-23 07:49:53 UTC - Michele Sciabarra: you use that to get the proxy and copy in your container https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908193088400 ---- 2019-02-23 07:49:56 UTC - Michele Sciabarra: ``` env = os.environ out = fdopen(3, "wb") while True: line = stdin.readline() if not line: break args = json.loads(line) payload = {} for key in args: if key == "value": payload = args["value"] else: env["__OW_%s" % key.upper()]= args[key] res = {} try: res = main(payload) except Exception as ex: print(traceback.format_exc(), file=stderr) res = {"error": str(ex)} out.write(json.dumps(res, ensure_ascii=False).encode('utf-8')) out.write(b'\n') stdout.flush() stderr.flush() out.flush() ``` https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908196088600 ---- 2019-02-23 07:50:15 UTC - Roberto Diaz: awesome! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908215088900 ---- 2019-02-23 07:50:32 UTC - Michele Sciabarra: so https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908232089500 ---- 2019-02-23 07:50:48 UTC - Roberto Diaz: I need this in order to see what I can get from a rust launcher and how I get the parameters etc... https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908248090100 ---- 2019-02-23 07:51:14 UTC - Michele Sciabarra: the simplest code to translate is the python one I think https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908274090500 ---- 2019-02-23 07:51:18 UTC - Michele Sciabarra: the one I pasted https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908278090700 ---- 2019-02-23 07:52:06 UTC - Roberto Diaz: yes that code is clear! it is much clearer than go (I have no idea about go :P) https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908326091900 ---- 2019-02-23 07:52:21 UTC - Michele Sciabarra: indeed this is why I pasted it here https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908341092200 ---- 2019-02-23 07:52:44 UTC - Michele Sciabarra: this is actually the python code of the Python3.7 runtime that uses ActionLoop https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908364093000 ---- 2019-02-23 07:52:54 UTC - Roberto Diaz: cool https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908374093500 ---- 2019-02-23 07:53:03 UTC - Michele Sciabarra: if you can translate that one https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908383093700 ---- 2019-02-23 07:53:07 UTC - Michele Sciabarra: in rust https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908387093900 ---- 2019-02-23 07:53:17 UTC - Michele Sciabarra: then the rest is easy https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908397094400 ---- 2019-02-23 07:53:49 UTC - Michele Sciabarra: your Dockerfile shoud be https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908429094700 ---- 2019-02-23 07:53:50 UTC - Michele Sciabarra: ``` FROM openwhisk/actionloop:latest as builder FROM rust:1.31 COPY --from=builder /bin/proxy /bin/proxy ADD rustbuild.py /bin/compile ADD rustbuild.py.launcher.rust /bin/compile.launcher.rust ENV OW_COMPILER=/bin/compile ``` https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908430094900 ---- 2019-02-23 07:54:22 UTC - Michele Sciabarra: if you write the rustbuild.py.launcher.rust https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908462095300 ---- 2019-02-23 07:54:56 UTC - Michele Sciabarra: well so far carlos rob and justin where able to write the compiler script just tweaking my python code https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908496096100 ---- 2019-02-23 07:57:13 UTC - Michele Sciabarra: this one<https://github.com/sciabarracom/incubator-openwhisk-runtime-actionloop/blob/master/swift4.2.1/swiftbuild.py> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908633097100 ---- 2019-02-23 07:57:24 UTC - Michele Sciabarra: I think it is the closer to the cargo thing https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908644097400 ---- 2019-02-23 07:57:27 UTC - Roberto Diaz: awesome! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908647097500 ---- 2019-02-23 07:57:33 UTC - Michele Sciabarra: so to recap https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908653097800 ---- 2019-02-23 07:57:43 UTC - Roberto Diaz: thank you! this is very helpful! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908663098300 ---- 2019-02-23 07:57:44 UTC - Michele Sciabarra: 1. use the Dockerfile as a starting point https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908664098400 ---- 2019-02-23 07:58:12 UTC - Michele Sciabarra: 2. use the swiftbuild.py as a starting point for the compiler script <https://github.com/sciabarracom/incubator-openwhisk-runtime-actionloop/blob/master/swift4.2.1/swiftbuild.py> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908692099100 ---- 2019-02-23 07:58:50 UTC - Michele Sciabarra: 3. use the python launcher as a starting point for the launcher.rust <https://github.com/sciabarracom/incubator-openwhisk-runtime-actionloop/blob/master/python3.7/pythonbuild.py.launcher.py> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908730099900 ---- 2019-02-23 07:59:03 UTC - Roberto Diaz: perfect!! a clear path! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908743100100 ---- 2019-02-23 07:59:06 UTC - Roberto Diaz: thanks! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908746100300 ---- 2019-02-23 07:59:11 UTC - Michele Sciabarra: another thing https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908751100600 ---- 2019-02-23 07:59:31 UTC - Michele Sciabarra: I normally build the docker image https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908771101000 ---- 2019-02-23 07:59:34 UTC - Michele Sciabarra: then I do https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908774101200 ---- 2019-02-23 08:00:17 UTC - Michele Sciabarra: docker run -ti -v $PWD:/bin <image> bash https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908817102000 ---- 2019-02-23 08:00:36 UTC - Michele Sciabarra: uhm no wait https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908836102200 ---- 2019-02-23 08:01:17 UTC - Michele Sciabarra: this way you need to put the proxy in another directory https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908877103000 ---- 2019-02-23 08:02:07 UTC - Michele Sciabarra: oh well https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908927103400 ---- 2019-02-23 08:02:49 UTC - Michele Sciabarra: ``` docker run -ti -p 8080:8080 -v $PWD:/mnt -e OW_COMPILER=/mnt/compile bash ``` https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550908969104300 ---- 2019-02-23 08:03:27 UTC - Michele Sciabarra: this way you can have your code in your directory https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909007104900 ---- 2019-02-23 08:03:37 UTC - Michele Sciabarra: and a bash in docker https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909017105200 ---- 2019-02-23 08:03:45 UTC - Roberto Diaz: yep https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909025105700 ---- 2019-02-23 08:03:53 UTC - Michele Sciabarra: if will use the compiler /mnt/compile https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909033105900 ---- 2019-02-23 08:04:05 UTC - Michele Sciabarra: start the proxy with https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909045106100 ---- 2019-02-23 08:04:23 UTC - Michele Sciabarra: ``` /bin/proxy -debug ``` https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909063106400 ---- 2019-02-23 08:05:04 UTC - Michele Sciabarra: and you will have a lot of debug messages https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909104106800 ---- 2019-02-23 08:05:13 UTC - Roberto Diaz: perfect! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909113107300 ---- 2019-02-23 08:05:15 UTC - Michele Sciabarra: then use the invoke.py to test https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909115107400 ---- 2019-02-23 08:05:31 UTC - Michele Sciabarra: each time the compilation fails https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909131107800 ---- 2019-02-23 08:05:40 UTC - Michele Sciabarra: just controlc https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909140108100 ---- 2019-02-23 08:05:49 UTC - Michele Sciabarra: and do find action https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909149108500 ---- 2019-02-23 08:06:10 UTC - Michele Sciabarra: you will see stuff like action/1/src action/2/src etc https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909170109000 ---- 2019-02-23 08:06:28 UTC - Michele Sciabarra: so you can check what your compiler did https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909188109400 ---- 2019-02-23 08:06:51 UTC - Roberto Diaz: awesome! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909211109900 ---- 2019-02-23 08:07:06 UTC - Michele Sciabarra: I normally have a <http://main.rs|main.rs> then do an invoke.py init <http://main.rs|main.rs> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909226110300 ---- 2019-02-23 08:07:12 UTC - Michele Sciabarra: to see that the proxy does https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909232110600 ---- 2019-02-23 08:07:43 UTC - Michele Sciabarra: this is what other people used to write their runtimes https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909263111100 ---- 2019-02-23 08:07:52 UTC - Roberto Diaz: I see https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909272111300 ---- 2019-02-23 08:09:09 UTC - Michele Sciabarra: <https://github.com/apache/incubator-openwhisk/blob/master/tools/actionProxy/invoke.py> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909349111500 ---- 2019-02-23 08:09:14 UTC - Michele Sciabarra: the invoke.py is here https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909354111700 ---- 2019-02-23 08:09:27 UTC - Michele Sciabarra: this will simulate a wsk action create https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909367112100 ---- 2019-02-23 08:09:45 UTC - Michele Sciabarra: invoke.py init <http://main.rs|main.rs> will post to localhost:8080 https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909385112500 ---- 2019-02-23 08:10:08 UTC - Michele Sciabarra: note you can invoke init only once https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909408112800 ---- 2019-02-23 08:10:20 UTC - Michele Sciabarra: then you have to ^c and restart the proxy https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909420113200 ---- 2019-02-23 08:10:26 UTC - Roberto Diaz: oki https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909426113400 ---- 2019-02-23 08:10:49 UTC - Michele Sciabarra: but it will not remove the sources (if you used -debug) https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909449113800 ---- 2019-02-23 08:11:06 UTC - Michele Sciabarra: you will find in action/1 action/2 and so on https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909466114200 ---- 2019-02-23 08:11:15 UTC - Michele Sciabarra: the latest is the higher https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909475114500 ---- 2019-02-23 08:11:36 UTC - Michele Sciabarra: ok I dumped my memory for everything else just ask https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909496114900 ---- 2019-02-23 08:13:20 UTC - Michele Sciabarra: I use this discussion for the tutorial :slightly_smiling_face: but basically this is what should be the content https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909600115500 ---- 2019-02-23 08:15:28 UTC - Roberto Diaz: awesome! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909728115700 ---- 2019-02-23 08:15:52 UTC - Roberto Diaz: if you need feedback for the tutorial do not hesitate to contact me https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909752116300 ---- 2019-02-23 08:16:23 UTC - Roberto Diaz: I'm totally newbie and I could work as a mvp for the tutorial :stuck_out_tongue: https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550909783117000 ---- 2019-02-23 08:30:07 UTC - Michele Sciabarra: no worries as I said if you can write the <http://launcher.rs|launcher.rs> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910607117400 ---- 2019-02-23 08:30:19 UTC - Michele Sciabarra: I can easily help you with the rest https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910619117800 ---- 2019-02-23 08:30:29 UTC - Michele Sciabarra: I usually need 1 hour to write a runtime :smile: https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910629118100 ---- 2019-02-23 08:30:47 UTC - Michele Sciabarra: when I have the launcher https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910647118500 ---- 2019-02-23 08:31:43 UTC - Michele Sciabarra: I found an example here <https://github.com/joewalnes/websocketd/blob/master/examples/rust/greeter.rs> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910703118800 ---- 2019-02-23 08:31:52 UTC - Michele Sciabarra: that is very close https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910712119100 ---- 2019-02-23 08:32:05 UTC - Michele Sciabarra: but I do not know how to decode and encode in json in rust https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910725119500 ---- 2019-02-23 08:32:39 UTC - Michele Sciabarra: probably using serde https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910759119900 ---- 2019-02-23 08:33:31 UTC - Michele Sciabarra: normally we pass as parameter to main functions something closer to a map https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910811121000 ---- 2019-02-23 08:33:47 UTC - Michele Sciabarra: in go it is a map[string]interface{} https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910827121500 ---- 2019-02-23 08:33:56 UTC - Michele Sciabarra: in java is Gson object https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910836121800 ---- 2019-02-23 08:34:41 UTC - Michele Sciabarra: in rust maybe it is a HashMap<String,?> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910881122400 ---- 2019-02-23 08:35:19 UTC - Michele Sciabarra: you tell me https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550910919122900 ---- 2019-02-23 14:03:08 UTC - Michele Sciabarra: I remember there was a document describing how to impement a runtime https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550930588123500 ---- 2019-02-23 14:03:12 UTC - Michele Sciabarra: where is it? https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550930592123800 ---- 2019-02-23 14:04:13 UTC - Rodric Rabbah: <https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-new.md>? https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550930653124000 ---- 2019-02-23 14:09:08 UTC - Michele Sciabarra: great https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550930948124200 ---- 2019-02-23 14:28:59 UTC - Michele Sciabarra: with that name is very easy to miss it - it is actions-java actions-nodejs etc https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932139124900 ---- 2019-02-23 14:29:03 UTC - Michele Sciabarra: and it is not linked https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932143125100 ---- 2019-02-23 14:34:38 UTC - Carlos Santana: Yes change the name !! https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932478125400 ---- 2019-02-23 14:35:08 UTC - Michele Sciabarra: ok, will do, I am writing a doc on actionloop tada : Carlos Santana, Roberto Diaz yay : Roberto Diaz https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932508126400 ---- 2019-02-23 14:35:18 UTC - Carlos Santana: actions-new-runtime.md https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932518126800 ---- 2019-02-23 14:35:33 UTC - Carlos Santana: Link from readme and main index doc https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932533127300 ---- 2019-02-23 14:35:46 UTC - Michele Sciabarra: yup agreed https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932546127800 ---- 2019-02-23 14:36:45 UTC - Rodric Rabbah: It is linked https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932605128000 ---- 2019-02-23 14:36:53 UTC - Rodric Rabbah: But maybe not so prominently https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932613128400 ---- 2019-02-23 14:36:56 UTC - Michele Sciabarra: where https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932616128800 ---- 2019-02-23 14:37:01 UTC - Rodric Rabbah: In this paragraph: Longer tutorials that are specific to a language of your choice are listed below. We recommend reading the basics in this document first, which are language agnostic, before getting deeper into a language-specific tutorial. If your preferred language isn't supported directly, you may find the Docker action or native binary paths more suitable. Or, you can create a new runtime. https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932621129200 ---- 2019-02-23 14:37:15 UTC - Carlos Santana: Just lies @Rodric Rabbah just lies https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932635129300 ---- 2019-02-23 14:37:19 UTC - Rodric Rabbah: <https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#languages-and-runtimes> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932639129600 ---- 2019-02-23 14:37:23 UTC - Carlos Santana: You just merged that now https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932643129900 ---- 2019-02-23 14:37:31 UTC - Rodric Rabbah: :joy::man-shrugging: https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932651130100 ---- 2019-02-23 14:37:35 UTC - Carlos Santana: LOL https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932655130400 ---- 2019-02-23 14:37:36 UTC - Rodric Rabbah: You approved it https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932656130500 ---- 2019-02-23 14:37:54 UTC - Rodric Rabbah: +1 make it better https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932674131000 ---- 2019-02-23 14:38:04 UTC - Carlos Santana: Good Morning :sunny: everyone heart : Rodric Rabbah https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932684131300 ---- 2019-02-23 14:39:01 UTC - Michele Sciabarra: I will add a section "Developing Runtimes" with your doc and my actionloop doc +1 : Rodric Rabbah, Carlos Santana https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550932741132400 ---- 2019-02-23 15:06:10 UTC - Carlos Santana: <https://twitter.com/chrismunns/status/1099096415043833856?s=21> https://openwhisk-team.slack.com/archives/C3UDXSFA6/p1550934370133200 ----