diff --git a/.travis.yml b/.travis.yml
index 22f59ef..02e2fbb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,19 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 # https://docs.travis-ci.com/user/languages/python/
 language: python
diff --git a/scancode/ASF-Release.cfg b/scancode/ASF-Release.cfg
index 8a5f59a..0ccfdb5 100644
--- a/scancode/ASF-Release.cfg
+++ b/scancode/ASF-Release.cfg
@@ -73,27 +73,34 @@
 .gogradle
 vendor
 
-# Exclude from incubator-openwhisk
-# Jenkins/test generated reports
-# Test data.
-# Generated binary artifacts
-tests/build/reports
-tests/dat/actions
-docs/images
-bin
+# incubator-openwhisk: exclude empty test (empty.js), and symbolic links (wskadmin, wskdev)
+bin/wskadmin
+bin/wskdev
+tests/dat/actions/empty.js
 
-# incubator-openwhisk-apigateway test dependency exclusions
-lua_install
-tests/lua_modules
+# incubator-openwhisk-apigateway: test dependency exclusions
+tests/fakengx.lua
+tests/fakeredis.lua
 
-# incubator-openwhisk-client-go, incubator-openwhisk-wskdeploy autogenerated Go files
-# NOTE: we SHOULD make this more granular, there are many .go files that can have
-# ASF license headers
-incubator-openwhisk-wskdeploy/specification/images
-wski18n
+# incubator-openwhisk-client-go, incubator-openwhisk-wskdeploy GoLang autogenerated i18n files
+specification/images
+wski18n/i18n_resources.go
+
+# incubator-openwhisk-runtime-nodejs
+node_modules
+
+# incubator-openwhisk-composer
+bin/compose.js
+bin/deploy.js
 
 # Exclude scancode tests that test for bad license headers
-incubator-openwhisk-utilities/scancode/tests/exclude
+# compat.py, gitwildmatch.py, pathspec.py, pattern.py and util.py are mozilla licensed files
+scancode/tests/exclude
+scancode/lib/compat.py
+scancode/lib/gitwildmatch.py
+scancode/lib/pathspec.py
+scancode/lib/pattern.py
+scancode/lib/util.py
 
 [Options]
 # Not all code files allow licenses to appear starting at the first character
diff --git a/scancode/test.sh b/scancode/test.sh
index f7c991f..67ef529 100755
--- a/scancode/test.sh
+++ b/scancode/test.sh
@@ -1,6 +1,20 @@
 #!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 # set -x #echo on
 
diff --git a/scancode/tests/exclude/mixed/good-ibm-copyright.go b/scancode/tests/exclude/mixed/good-ibm-copyright.go
deleted file mode 100644
index 311d314..0000000
--- a/scancode/tests/exclude/mixed/good-ibm-copyright.go
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2015-2016 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import "fmt"
-
-func main() {
-    fmt.Printf("IBM header.\n")
-}
diff --git a/scancode/tests/exclude/mixed/good-ibm-copyright.scala b/scancode/tests/exclude/mixed/good-ibm-copyright.scala
deleted file mode 100644
index 68cb264..0000000
--- a/scancode/tests/exclude/mixed/good-ibm-copyright.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2015-2016 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-  object HelloWorld {
-    def main(args: Array[String]) {
-      println("Hello, world!")
-    }
-  }
diff --git a/scancode/tests/include/good_hello.js b/scancode/tests/include/good_hello.js
index d0f6ee9..ad0304c 100644
--- a/scancode/tests/include/good_hello.js
+++ b/scancode/tests/include/good_hello.js
@@ -1,5 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor
-// license agreements; and to You under the Apache License, Version 2.0.
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 // Hello, world.
 function main(params) {
diff --git a/scancode/utils/clone_all.sh b/scancode/utils/clone_all.sh
index cc75383..ef8f77f 100755
--- a/scancode/utils/clone_all.sh
+++ b/scancode/utils/clone_all.sh
@@ -1,6 +1,20 @@
 #!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 USAGE=$"USAGE: clone_all <repo-list.txt> <ORIGIN> <UPSTREAM>\n"
 
diff --git a/scancode/utils/release-repos.txt b/scancode/utils/release-repos.txt
index 19ffd20..8679c9b 100644
--- a/scancode/utils/release-repos.txt
+++ b/scancode/utils/release-repos.txt
@@ -3,11 +3,18 @@
 incubator-openwhisk-catalog
 incubator-openwhisk-cli
 incubator-openwhisk-client-go
+incubator-openwhisk-composer
 incubator-openwhisk-deploy-kube
+incubator-openwhisk-package-alarms
+incubator-openwhisk-package-cloudant
+incubator-openwhisk-package-kafka
 incubator-openwhisk-runtime-docker
+incubator-openwhisk-runtime-dotnet
+incubator-openwhisk-runtime-go
 incubator-openwhisk-runtime-java
 incubator-openwhisk-runtime-nodejs
 incubator-openwhisk-runtime-php
 incubator-openwhisk-runtime-python
+incubator-openwhisk-runtime-ruby
 incubator-openwhisk-runtime-swift
 incubator-openwhisk-wskdeploy
diff --git a/scancode/utils/repo_clone.sh b/scancode/utils/repo_clone.sh
index 8cd8873..aa56254 100755
--- a/scancode/utils/repo_clone.sh
+++ b/scancode/utils/repo_clone.sh
@@ -1,6 +1,20 @@
 #!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 USAGE="repo_clone <repo. name> <ORIGIN> <UPSTREAM>"
 
diff --git a/scancode/utils/scan_all.sh b/scancode/utils/scan_all.sh
index aa5ba25..7b194a4 100755
--- a/scancode/utils/scan_all.sh
+++ b/scancode/utils/scan_all.sh
@@ -1,6 +1,20 @@
 #!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 if [ $1 ]
 then
diff --git a/scancode/utils/update_all.sh b/scancode/utils/update_all.sh
index 6374e3e..58edb4d 100755
--- a/scancode/utils/update_all.sh
+++ b/scancode/utils/update_all.sh
@@ -1,6 +1,20 @@
 #!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 if [ $1 ]
 then
