17417: Merge branch 'main' into 17417-add-arm64
authorWard Vandewege <ward@curii.com>
Fri, 7 Jan 2022 19:52:31 +0000 (14:52 -0500)
committerWard Vandewege <ward@curii.com>
Fri, 7 Jan 2022 19:52:31 +0000 (14:52 -0500)
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

12 files changed:
apps/workbench/app/controllers/actions_controller.rb
apps/workbench/app/controllers/application_controller.rb
apps/workbench/app/controllers/user_agreements_controller.rb
doc/_includes/_branchname.liquid
doc/install/salt-vagrant.html.textile.liquid
doc/user/cwl/cwl-extensions.html.textile.liquid
sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml
sdk/cwl/arvados_cwl/arv-cwl-schema-v1.1.yml
sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml
sdk/cwl/arvados_cwl/arvcontainer.py
sdk/cwl/tests/test_container.py

index b0b7a0b64de19135ff084fac61ad44fc2c32d835..3667d8acaa5975fdb9c2bec62e1572667f13e680 100644 (file)
@@ -49,7 +49,7 @@ class ActionsController < ApplicationController
         return self.send(param)
       end
     end
-    redirect_to :back
+    redirect_back(fallback_location: root_path)
   end
 
   expose_action :copy_selections_into_project do
index 04055f84852ed4628aaf5a9d32ea79d72c59907f..5312e733f41eb992131752ccf782e112b8c5af2e 100644 (file)
@@ -417,7 +417,11 @@ class ApplicationController < ActionController::Base
       respond_to do |f|
         f.json { render json: @object }
         f.html {
-          redirect_to(params[:return_to] || :back)
+          if params[:return_to]
+            redirect_to(params[:return_to])
+          else
+            redirect_back(fallback_location: root_path)
+          end
         }
         f.js { render }
       end
@@ -519,7 +523,7 @@ class ApplicationController < ActionController::Base
       redirect_to arvados_api_client.arvados_login_url(return_to: strip_token_from_path(request.url))
     else
       flash[:error] = "Either you are not logged in, or your session has timed out. I can't automatically log you in and re-attempt this request."
-      redirect_to :back
+      redirect_back(fallback_location: root_path)
     end
     false  # For convenience to return from callbacks
   end
index bdfaa240335922e3b616bf4c10d791f34ded70ac..5e530a657e6e9474c661a0479cd60a245dd2b1d2 100644 (file)
@@ -9,7 +9,11 @@ class UserAgreementsController < ApplicationController
 
   def index
     if unsigned_user_agreements.empty?
-      redirect_to(params[:return_to] || :back)
+      if params[:return_to]
+        redirect_to(params[:return_to])
+      else
+        redirect_back(fallback_location: root_path)
+      end
     end
   end
 
@@ -24,6 +28,10 @@ class UserAgreementsController < ApplicationController
       end
     end
     current_user.activate
-    redirect_to(params[:return_to] || :back)
+    if params[:return_to]
+      redirect_to(params[:return_to])
+    else
+      redirect_back(fallback_location: root_path)
+    end
   end
 end
index 44707e3f9a0fef83f097bee336ca4b6fb6ad3cd8..f1d869ba9f8beef5be851afef54f0736d47b8cd0 100644 (file)
@@ -5,7 +5,7 @@ SPDX-License-Identifier: CC-BY-SA-3.0
 {% endcomment %}
 
 {% if site.current_version and site.current_version != 'main' %}
-{% assign branchname = site.current_version | slice: 0, 3 | append: '-dev' %}
+{% assign branchname = site.current_version | slice: 1, 3 | append: '-release' %}
 {% else %}
 {% assign branchname = 'main' %}
 {% endif %}
index 8ba4b324e56632a98d81240605673cbf1a2ace23..19a2cd5100550e297a62eb57a6ceeb64c16ef0ca 100644 (file)
@@ -18,7 +18,9 @@ SPDX-License-Identifier: CC-BY-SA-3.0
 
 h2(#vagrant). Vagrant
 
-This is a package-based installation method. The Salt scripts are available from the "tools/salt-install":https://github.com/arvados/arvados/tree/main/tools/salt-install directory in the Arvados git repository.
+{% include 'branchname' %}
+
+This is a package-based installation method. Start by cloning the @{{ branchname }}@ branch from "https://git.arvados.org/arvados.git":https://git.arvados.org/arvados.git . The Salt scripts are available in the @tools/salt-install@ directory.
 
 A @Vagrantfile@ is provided to install Arvados in a virtual machine on your computer using "Vagrant":https://www.vagrantup.com/.
 
index dcddace14819326459d2efed9a4f9cfcdd0ef74a..0580dca289f431a10ebaab322833368ddd3ef107 100644 (file)
@@ -59,10 +59,10 @@ hints:
       property2: $(inputs.value2)
 
   arv:CUDARequirement:
-    minCUDADriverVersion: "11.0"
-    minCUDAHardwareCapability: "9.0"
-    minDeviceCount: 1
-    maxDeviceCount: 1
+    cudaVersionMin: "11.0"
+    cudaComputeCapabilityMin: "9.0"
+    deviceCountMin: 1
+    deviceCountMax: 1
 {% endcodeblock %}
 
 h2(#RunInSingleContainer). arv:RunInSingleContainer
@@ -159,10 +159,10 @@ Request support for Nvidia CUDA GPU acceleration in the container.  Assumes that
 
 table(table table-bordered table-condensed).
 |_. Field |_. Type |_. Description |
-|minCUDADriverVersion|string|Required.  The CUDA SDK version corresponding to the minimum driver version supported by the container (generally, the SDK version 'X.Y' the application was compiled against).|
-|minCUDAHardwareCapability|string|Required.  The minimum CUDA hardware capability (in 'X.Y' format) required by the application's PTX or C++ GPU code (will be JIT compiled for the available hardware).|
-|minDeviceCount|integer|Minimum number of GPU devices to allocate on a single node. Required.|
-|maxDeviceCount|integer|Maximum number of GPU devices to allocate on a single node. Optional.  If not specified, same as @minDeviceCount@.|
+|cudaVersionMin|string|Required.  The CUDA SDK version corresponding to the minimum driver version supported by the container (generally, the SDK version 'X.Y' the application was compiled against).|
+|cudaComputeCapabilityMin|string|Required.  The minimum CUDA hardware capability (in 'X.Y' format) required by the application's PTX or C++ GPU code (will be JIT compiled for the available hardware).|
+|deviceCountMin|integer|Minimum number of GPU devices to allocate on a single node. Required.|
+|deviceCountMax|integer|Maximum number of GPU devices to allocate on a single node. Optional.  If not specified, same as @minDeviceCount@.|
 
 h2. arv:dockerCollectionPDH
 
index df5866d67db3132dd5551ada3ddb101a2bd95a3c..c3848b2629188c9cf687e8b69f054237b9e5b77e 100644 (file)
@@ -251,7 +251,7 @@ def add_arv_hints():
         "http://arvados.org/cwl#ClusterTarget",
         "http://arvados.org/cwl#OutputStorageClass",
         "http://arvados.org/cwl#ProcessProperties",
-        "http://arvados.org/cwl#CUDARequirement"
+        "http://commonwl.org/cwltool#CUDARequirement"
     ])
 
 def exit_signal_handler(sigcode, frame):
index 6f5e7980dbb7576918b97e736abbdf4240e91748..d5efa31a00c735b5380a63083d4789088d59d563 100644 (file)
@@ -331,29 +331,41 @@ $graph:
         mapPredicate: propertyValue
 
 
-- name: CUDARequirement
+- name: cwltool:CUDARequirement
   type: record
   extends: cwl:ProcessRequirement
   inVocab: false
   doc: |
-    Require support for Nvidia CUDA (GPU hardware acceleration).
+    Require support for NVIDA CUDA (GPU hardware acceleration).
   fields:
     class:
       type: string
-      doc: 'arv:CUDARequirement'
+      doc: 'cwltool:CUDARequirement'
       jsonldPredicate:
         _id: "@type"
         _type: "@vocab"
-    minCUDADriverVersion:
+    cudaVersionMin:
       type: string
-      doc: Minimum CUDA driver version to run the software, in X.Y format of the associated CUDA SDK release.
-    minCUDAHardwareCapability:
+      doc: |
+        Minimum CUDA version to run the software, in X.Y format.  This
+        corresponds to a CUDA SDK release.  When running directly on
+        the host (not in a container) the host must have a compatible
+        CUDA SDK (matching the exact version, or, starting with CUDA
+        11.3, matching major version).  When run in a container, the
+        container image should provide the CUDA runtime, and the host
+        driver is injected into the container.  In this case, because
+        CUDA drivers are backwards compatible, it is possible to
+        use an older SDK with a newer driver across major versions.
+
+        See https://docs.nvidia.com/deploy/cuda-compatibility/ for
+        details.
+    cudaComputeCapabilityMin:
       type: string
       doc: Minimum CUDA hardware capability required to run the software, in X.Y format.
-    minDeviceCount:
+    deviceCountMin:
       type: int?
       default: 1
-      doc: Minimum number of GPU devices to request, or 1.
-    maxDeviceCount:
+      doc: Minimum number of GPU devices to request, default 1.
+    deviceCountMax:
       type: int?
-      doc: Maximum number of GPU devices to request.  If not specified, same as `minDeviceCount`.
+      doc: Maximum number of GPU devices to request.  If not specified, same as `deviceCountMin`.
index 5dbb838f1a2e4a81bd9ad196a5e203743cdc3ef7..4a6b6947ff4c6c05487be4e00a6ac734a52ff33f 100644 (file)
@@ -274,29 +274,41 @@ $graph:
         mapPredicate: propertyValue
 
 
-- name: CUDARequirement
+- name: cwltool:CUDARequirement
   type: record
   extends: cwl:ProcessRequirement
   inVocab: false
   doc: |
-    Require support for Nvidia CUDA (GPU hardware acceleration).
+    Require support for NVIDA CUDA (GPU hardware acceleration).
   fields:
     class:
       type: string
-      doc: 'arv:CUDARequirement'
+      doc: 'cwltool:CUDARequirement'
       jsonldPredicate:
         _id: "@type"
         _type: "@vocab"
-    minCUDADriverVersion:
+    cudaVersionMin:
       type: string
-      doc: Minimum CUDA driver version to run the software, in X.Y format of the associated CUDA SDK release.
-    minCUDAHardwareCapability:
+      doc: |
+        Minimum CUDA version to run the software, in X.Y format.  This
+        corresponds to a CUDA SDK release.  When running directly on
+        the host (not in a container) the host must have a compatible
+        CUDA SDK (matching the exact version, or, starting with CUDA
+        11.3, matching major version).  When run in a container, the
+        container image should provide the CUDA runtime, and the host
+        driver is injected into the container.  In this case, because
+        CUDA drivers are backwards compatible, it is possible to
+        use an older SDK with a newer driver across major versions.
+
+        See https://docs.nvidia.com/deploy/cuda-compatibility/ for
+        details.
+    cudaComputeCapabilityMin:
       type: string
       doc: Minimum CUDA hardware capability required to run the software, in X.Y format.
-    minDeviceCount:
+    deviceCountMin:
       type: int?
       default: 1
-      doc: Minimum number of GPU devices to request, or 1.
-    maxDeviceCount:
+      doc: Minimum number of GPU devices to request, default 1.
+    deviceCountMax:
       type: int?
-      doc: Maximum number of GPU devices to request.  If not specified, same as `minDeviceCount`.
+      doc: Maximum number of GPU devices to request.  If not specified, same as `deviceCountMin`.
index 5fbe5bd7f7c5327e41078014ed77b30729b84b8f..e95b6543fdb5529ef03e41318c54e49935db0fc7 100644 (file)
@@ -276,29 +276,41 @@ $graph:
         mapPredicate: propertyValue
 
 
-- name: CUDARequirement
+- name: cwltool:CUDARequirement
   type: record
   extends: cwl:ProcessRequirement
   inVocab: false
   doc: |
-    Require support for Nvidia CUDA (GPU hardware acceleration).
+    Require support for NVIDA CUDA (GPU hardware acceleration).
   fields:
     class:
       type: string
-      doc: 'arv:CUDARequirement'
+      doc: 'cwltool:CUDARequirement'
       jsonldPredicate:
         _id: "@type"
         _type: "@vocab"
-    minCUDADriverVersion:
+    cudaVersionMin:
       type: string
-      doc: Minimum CUDA driver version to run the software, in X.Y format of the associated CUDA SDK release.
-    minCUDAHardwareCapability:
+      doc: |
+        Minimum CUDA version to run the software, in X.Y format.  This
+        corresponds to a CUDA SDK release.  When running directly on
+        the host (not in a container) the host must have a compatible
+        CUDA SDK (matching the exact version, or, starting with CUDA
+        11.3, matching major version).  When run in a container, the
+        container image should provide the CUDA runtime, and the host
+        driver is injected into the container.  In this case, because
+        CUDA drivers are backwards compatible, it is possible to
+        use an older SDK with a newer driver across major versions.
+
+        See https://docs.nvidia.com/deploy/cuda-compatibility/ for
+        details.
+    cudaComputeCapabilityMin:
       type: string
       doc: Minimum CUDA hardware capability required to run the software, in X.Y format.
-    minDeviceCount:
+    deviceCountMin:
       type: int?
       default: 1
-      doc: Minimum number of GPU devices to request, or 1.
-    maxDeviceCount:
+      doc: Minimum number of GPU devices to request, default 1.
+    deviceCountMax:
       type: int?
-      doc: Maximum number of GPU devices to request.  If not specified, same as `minDeviceCount`.
+      doc: Maximum number of GPU devices to request.  If not specified, same as `deviceCountMin`.
index 6372caaa38b182db35dc927af5d7b5e04a1ed93d..3c7e9cfaa6d5e91eed03b03222522db9a96c83f9 100644 (file)
@@ -291,12 +291,12 @@ class ArvadosContainer(JobBase):
             else:
                 container_request["output_storage_classes"] = runtimeContext.intermediate_storage_classes.strip().split(",")
 
-        cuda_req, _ = self.get_requirement("http://arvados.org/cwl#CUDARequirement")
+        cuda_req, _ = self.get_requirement("http://commonwl.org/cwltool#CUDARequirement")
         if cuda_req:
             runtime_constraints["cuda"] = {
-                "device_count": cuda_req.get("minDeviceCount", 1),
-                "driver_version": cuda_req["minCUDADriverVersion"],
-                "hardware_capability": cuda_req["minCUDAHardwareCapability"]
+                "device_count": cuda_req.get("deviceCountMin", 1),
+                "driver_version": cuda_req["cudaVersionMin"],
+                "hardware_capability": cuda_req["cudaComputeCapabilityMin"]
             }
 
         if self.timelimit is not None and self.timelimit > 0:
index e97572cd93aa4cc2721772b53b2759d028ccc13d..21ae4a7af0372aada304472b7da5e629e0a7956b 100644 (file)
@@ -1061,11 +1061,11 @@ class TestContainer(unittest.TestCase):
             "id": "",
             "cwlVersion": "v1.2",
             "class": "CommandLineTool",
-            "hints": [
+            "requirements": [
             {
-                "class": "http://arvados.org/cwl#CUDARequirement",
-                "minCUDADriverVersion": "11.0",
-                "minCUDAHardwareCapability": "9.0",
+                "class": "http://commonwl.org/cwltool#CUDARequirement",
+                "cudaVersionMin": "11.0",
+                "cudaComputeCapabilityMin": "9.0",
             }
         ]
         })