Sounds all sensible to me.

To 1: Sounds like the right thing to do, if versions are common enough? Like 
major bumps could probably use different repos but I guess we can just try and 
find out what works. As a starter, the list you posted sounds sensible to me!

2. By Integration Tests I meant: Do the repos need to standup a whole OpenWhisk 
system and then run integrations tests or can we get away with just unit tests. 
I think, the best would be the latter since its the most agile but we might not 
be quite there yet. Again something we should just try and will discover on the 
way I think!

3. Yep, it's probably just build and push the images on each commit just like 
we do for master.

One more thing (hehe): Do we support independent tags of runtime images vs. the 
deployed system? Today we use the same tag that we use to deploy the system to 
pull the runtime images. There might be something left to do here like: Do we 
need a specific version for each runtime (most flexible) or can we get away 
with just using latest for each runtime (easiest to maintain). Versioning might 
be needed to be able to make breaking changes but still pin versions and to 
keep production systems stable that way (otherwise they might pull an 
incompatible image while in action). Thinking about it: We need independent 
versioning per runtime.

Am 12. September 2017 um 21:56 schrieb Rodric Rabbah <[email protected]>:

+1 good points Tyson.

-r

On Sep 12, 2017, at 1:25 PM, Tyson Norris <[email protected]> wrote:

+1 in general


Tasks we'd need to do:
1. Setup a repo per runtime.

Maybe repo per runtime-type, instead of literally each runtime - specifically 
names like: openwhisk-action-nodejs, openwhisk-action-java, 
openwhisk-action-dockerskeleton, openwhisk-action-php, openwhisk-action-python, 
openwhisk-action-swift
(Since each type should share much of the same tests, I think.)

2. Move the runtime build + tests there (testwise I would rather copy and own some 
dependencies than trying to go DRY. The current setup for dependent repos needs quite 
some cleanup and is super hard to maintain for updates in the main repo). We can discuss 
if we need Integration Tests for each of the runtimes or if the "unit" tests we 
have are sufficient here.

We can DRY it *later* if wanted by releasing mvn artifacts of test base classes 
(or all of tests) from core, or something like that, but until that is 
implemented, agree that copying is better.

By “Integration Tests” do you mean to run as part of core tests? I think something 
minimal would be good like “test that at least nodejs runtime works” (e.g. health 
check), but not “test every runtime as part of core integration tests"

3. Implement a release process for the runtime images to Dockerhub.


This should be the same as the release process for core images right?

Thanks
Tyson


The runtimes update fairly rarely so I wouldn't really bother with too strict 
of a versioning there, at least not for the first shot. Process wise it does 
seem straightforwardly doable.

What do you think?

Cheers
Markus

Reply via email to