JSON-serialized script result vs JSON-serialized output parameters are treated differently for withParam item collection

Pre-requisites

[X] I have double-checked my configuration
[X] I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
[X] I have searched existing issues and could not find a match for this bug
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened? What did you expect to happen?
For a workflow where we want to have a nested fan-out, i.e. process a list-of-lists, using the .result of a script template is treated differently from using a named output parameter when collecting results, meaning we must use stdout script results to process a list-of-lists (which is not ideal).
This is due to the controller unmarshalling individual items of the results list here https://github.com/argoproj/argo-workflows/blob/f8f1893799b67446a833897af7f860fa08e71b1b/workflow/controller/operator.go#L3244
And then re-marshalling the whole results list here https://github.com/argoproj/argo-workflows/blob/f8f1893799b67446a833897af7f860fa08e71b1b/workflow/controller/operator.go#L3252
Which leads to a correct input parameter passed to the inner DAG:

Individual output parameters of the fan-out are not unmarshalled during processing here https://github.com/argoproj/argo-workflows/blob/f8f1893799b67446a833897af7f860fa08e71b1b/workflow/controller/operator.go#L3232-L3239
But are re-marshalled here https://github.com/argoproj/argo-workflows/blob/f8f1893799b67446a833897af7f860fa08e71b1b/workflow/controller/operator.go#L3259
Which leads to a serialized JSON string (with quotes escaped) passed to the inner DAG:

Resulting in the error message
withParam value could not be parsed as a JSON list: [{\"key1\": \"value1\"}, {\"key2\": \"value2\"}, {\"key3\": \"value3\"}]: invalid character '\\' looking for beginning of object key string

Investigated and confirmed with @Joibel, who tried patching the controller and got the output parameters version working, by attempting to unmarshal individual output parameters to then re-marshal them (and falling back to existing mechanism if it fails) - PR from Alan will be incoming 😄
Version(s)
v3.5.10
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: double-fan-out-using-result-
spec:
  entrypoint: main-dag
  templates:
    - inputs:
        parameters:
          - name: param1
      name: operation
      outputs:
        parameters:
          - name: output1
            valueFrom:
              path: /tmp/fan_out.json
      script:
        command:
          - python3
        image: python:3.11
        source: |-
          import os
          import sys
          sys.path.append(os.getcwd())
          import json
          try: param1 = json.loads(r'''{{inputs.parameters.param1}}''')
          except: param1 = r'''{{inputs.parameters.param1}}'''

          with open('/tmp/fan_out.json', 'w') as f:
              json.dump(param1, f)
          print(json.dumps(param1))
    - dag:
        tasks:
          - arguments:
              parameters:
                - name: param1
                  value: '{{item}}'
            name: task3
            template: operation
            withParam: '{{inputs.parameters.param1}}'
      inputs:
        parameters:
          - name: param1
      name: secondary-dag
    - dag:
        tasks:
          - arguments:
              parameters:
                - name: param1
                  value: '[[{"key1": "value1"}, {"key2": "value2"}, {"key3": "value3"}], [{"key4": "value4"}, {"key5": "value5"}]]'
            name: task1
            template: operation
          - arguments:
              parameters:
                - name: param1
                  value: '{{item}}'
            depends: task1
            name: task2
            template: operation
            withParam: '{{tasks.task1.outputs.result}}'
          - arguments:
              parameters:
                - name: param1
                  value: '{{item}}'
            depends: task2
            name: task3-dag
            template: secondary-dag
            withParam: '{{tasks.task2.outputs.result}}'
      name: main-dag
---
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: double-fan-out-using-param-
spec:
  entrypoint: main-dag
  templates:
    - inputs:
        parameters:
          - name: param1
      name: operation
      outputs:
        parameters:
          - name: output1
            valueFrom:
              path: /tmp/fan_out.json
      script:
        command:
          - python3
        image: python:3.11
        source: |-
          import os
          import sys
          sys.path.append(os.getcwd())
          import json
          try: param1 = json.loads(r'''{{inputs.parameters.param1}}''')
          except: param1 = r'''{{inputs.parameters.param1}}'''

          with open('/tmp/fan_out.json', 'w') as f:
              json.dump(param1, f)
          print(json.dumps(param1))
    - dag:
        tasks:
          - arguments:
              parameters:
                - name: param1
                  value: '{{item}}'
            name: task3
            template: operation
            withParam: '{{inputs.parameters.param1}}'
      inputs:
        parameters:
          - name: param1
      name: secondary-dag
    - dag:
        tasks:
          - arguments:
              parameters:
                - name: param1
                  value: '[[{"key1": "value1"}, {"key2": "value2"}, {"key3": "value3"}], [{"key4": "value4"}, {"key5": "value5"}]]'
            name: task1
            template: operation
          - arguments:
              parameters:
                - name: param1
                  value: '{{item}}'
            depends: task1
            name: task2
            template: operation
            withParam: '{{tasks.task1.outputs.parameters.output1}}'
          - arguments:
              parameters:
                - name: param1
                  value: '{{item}}'
            depends: task2
            name: task3-dag
            template: secondary-dag
            withParam: '{{tasks.task2.outputs.parameters.output1}}'
      name: main-dag

Logs from the workflow controller
time="2024-08-27T10:02:37.702Z" level=info msg="Processing workflow" Phase= ResourceVersion=208400 namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=info msg="Updated phase  -> Running" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=info msg="was unable to obtain node for , letting display name to be nodeName" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=info msg="DAG node double-fan-out-using-param-n2zxs initialized Running" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:37.708Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2909490305, taskName task2"
time="2024-08-27T10:02:37.708Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2859157448, taskName task1"
time="2024-08-27T10:02:37.708Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2859157448, taskName task1"
time="2024-08-27T10:02:37.708Z" level=info msg="All of node double-fan-out-using-param-n2zxs.task1 dependencies [] completed" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.708Z" level=info msg="Pod node double-fan-out-using-param-n2zxs-2859157448 initialized Pending" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.713Z" level=info msg="Created pod: double-fan-out-using-param-n2zxs.task1 (double-fan-out-using-param-n2zxs-operation-2859157448)" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2909490305, taskName task2"
time="2024-08-27T10:02:37.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:37.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2909490305, taskName task2"
time="2024-08-27T10:02:37.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:37.713Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.713Z" level=info msg=reconcileAgentPod namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:37.722Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=208408 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.713Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=208408 namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.713Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=1 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.713Z" level=info msg="task-result changed" namespace=argo nodeID=double-fan-out-using-param-n2zxs-2859157448 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.713Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=double-fan-out-using-param-n2zxs-2859157448 old.message= old.phase=Pending old.progress=0/1 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:47.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2909490305, taskName task2"
time="2024-08-27T10:02:47.713Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2909490305, taskName task2"
time="2024-08-27T10:02:47.714Z" level=info msg="TaskGroup node double-fan-out-using-param-n2zxs-2909490305 initialized Running (message: )" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.714Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2735842384, taskName task2(0:[{\"key1\":\"value1\"} {\"key2\":\"value2\"} {\"key3\":\"value3\"}])"
time="2024-08-27T10:02:47.714Z" level=info msg="All of node double-fan-out-using-param-n2zxs.task2(0:[{\"key1\":\"value1\"} {\"key2\":\"value2\"} {\"key3\":\"value3\"}]) dependencies [task1] completed" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.714Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.714Z" level=info msg="Pod node double-fan-out-using-param-n2zxs-2735842384 initialized Pending" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.720Z" level=info msg="Created pod: double-fan-out-using-param-n2zxs.task2(0:[{\"key1\":\"value1\"} {\"key2\":\"value2\"} {\"key3\":\"value3\"}]) (double-fan-out-using-param-n2zxs-operation-2735842384)" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.720Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-1865176775, taskName task2(1:[{\"key4\":\"value4\"} {\"key5\":\"value5\"}])"
time="2024-08-27T10:02:47.720Z" level=info msg="All of node double-fan-out-using-param-n2zxs.task2(1:[{\"key4\":\"value4\"} {\"key5\":\"value5\"}]) dependencies [task1] completed" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.721Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.721Z" level=info msg="Pod node double-fan-out-using-param-n2zxs-1865176775 initialized Pending" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.727Z" level=info msg="Created pod: double-fan-out-using-param-n2zxs.task2(1:[{\"key4\":\"value4\"} {\"key5\":\"value5\"}]) (double-fan-out-using-param-n2zxs-operation-1865176775)" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.727Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:47.727Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:47.727Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.727Z" level=info msg=reconcileAgentPod namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.739Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=208475 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:47.747Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/double-fan-out-using-param-n2zxs-operation-2859157448/labelPodCompleted
time="2024-08-27T10:02:57.722Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=208475 namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.723Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=3 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.723Z" level=info msg="task-result changed" namespace=argo nodeID=double-fan-out-using-param-n2zxs-2859157448 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.723Z" level=info msg="task-result changed" namespace=argo nodeID=double-fan-out-using-param-n2zxs-1865176775 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.723Z" level=info msg="task-result changed" namespace=argo nodeID=double-fan-out-using-param-n2zxs-2735842384 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.723Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=double-fan-out-using-param-n2zxs-1865176775 old.message= old.phase=Pending old.progress=0/1 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.723Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=double-fan-out-using-param-n2zxs-2735842384 old.message= old.phase=Pending old.progress=0/1 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:57.724Z" level=info msg="node double-fan-out-using-param-n2zxs-2909490305 phase Running -> Succeeded" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=info msg="node double-fan-out-using-param-n2zxs-2909490305 finished: 2024-08-27 10:02:57.72440034 +0000 UTC" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3329134287, taskName task3-dag"
time="2024-08-27T10:02:57.724Z" level=info msg="TaskGroup node double-fan-out-using-param-n2zxs-3329134287 initialized Running (message: )" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-109176038, taskName task3-dag(0:[{\\\"key1\\\": \\\"value1\\\"}, {\\\"key2\\\": \\\"value2\\\"}, {\\\"key3\\\": \\\"value3\\\"}])"
time="2024-08-27T10:02:57.724Z" level=info msg="All of node double-fan-out-using-param-n2zxs.task3-dag(0:[{\\\"key1\\\": \\\"value1\\\"}, {\\\"key2\\\": \\\"value2\\\"}, {\\\"key3\\\": \\\"value3\\\"}]) dependencies [task2] completed" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=info msg="DAG node double-fan-out-using-param-n2zxs-109176038 initialized Running" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-1233275690, taskName task3"
time="2024-08-27T10:02:57.724Z" level=info msg="Skipped node double-fan-out-using-param-n2zxs-1233275690 initialized Error (message: withParam value could not be parsed as a JSON list: [{\\\"key1\\\": \\\"value1\\\"}, {\\\"key2\\\": \\\"value2\\\"}, {\\\"key3\\\": \\\"value3\\\"}]: invalid character '\\\\' looking for beginning of object key string)" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=info msg="Outbound nodes of double-fan-out-using-param-n2zxs-109176038 set to [double-fan-out-using-param-n2zxs-1233275690]" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=info msg="node double-fan-out-using-param-n2zxs-109176038 phase Running -> Error" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=info msg="node double-fan-out-using-param-n2zxs-109176038 finished: 2024-08-27 10:02:57.724873674 +0000 UTC" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-2799279137, taskName task3-dag(1:[{\\\"key4\\\": \\\"value4\\\"}, {\\\"key5\\\": \\\"value5\\\"}])"
time="2024-08-27T10:02:57.724Z" level=info msg="All of node double-fan-out-using-param-n2zxs.task3-dag(1:[{\\\"key4\\\": \\\"value4\\\"}, {\\\"key5\\\": \\\"value5\\\"}]) dependencies [task2] completed" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.724Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="DAG node double-fan-out-using-param-n2zxs-2799279137 initialized Running" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=warning msg="was unable to obtain the node for double-fan-out-using-param-n2zxs-3008809221, taskName task3"
time="2024-08-27T10:02:57.725Z" level=info msg="Skipped node double-fan-out-using-param-n2zxs-3008809221 initialized Error (message: withParam value could not be parsed as a JSON list: [{\\\"key4\\\": \\\"value4\\\"}, {\\\"key5\\\": \\\"value5\\\"}]: invalid character '\\\\' looking for beginning of object key string)" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="Outbound nodes of double-fan-out-using-param-n2zxs-2799279137 set to [double-fan-out-using-param-n2zxs-3008809221]" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="node double-fan-out-using-param-n2zxs-2799279137 phase Running -> Error" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="node double-fan-out-using-param-n2zxs-2799279137 finished: 2024-08-27 10:02:57.725148549 +0000 UTC" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="node double-fan-out-using-param-n2zxs-3329134287 phase Running -> Error" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="node double-fan-out-using-param-n2zxs-3329134287 finished: 2024-08-27 10:02:57.725200757 +0000 UTC" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="Outbound nodes of double-fan-out-using-param-n2zxs set to [double-fan-out-using-param-n2zxs-1233275690 double-fan-out-using-param-n2zxs-3008809221]" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="node double-fan-out-using-param-n2zxs phase Running -> Error" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="node double-fan-out-using-param-n2zxs finished: 2024-08-27 10:02:57.725286882 +0000 UTC" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg=reconcileAgentPod namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="Updated phase Running -> Error" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.725Z" level=info msg="Marking workflow completed" namespace=argo workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.735Z" level=info msg="Workflow update successful" namespace=argo phase=Error resourceVersion=208577 workflow=double-fan-out-using-param-n2zxs
time="2024-08-27T10:02:57.803Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/double-fan-out-using-param-n2zxs-operation-2735842384/labelPodCompleted
time="2024-08-27T10:02:57.803Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/double-fan-out-using-param-n2zxs-operation-1865176775/labelPodCompleted

Logs from in your workflow's wait container
time="2024-08-27T10:02:50.896Z" level=info msg="Main container completed" error="<nil>"
time="2024-08-27T10:02:50.896Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2024-08-27T10:02:50.896Z" level=info msg="Saving output parameters"
time="2024-08-27T10:02:50.896Z" level=info msg="Saving path output parameter: output1"
time="2024-08-27T10:02:50.896Z" level=info msg="Copying /tmp/fan_out.json from base image layer"
time="2024-08-27T10:02:50.896Z" level=info msg="Successfully saved output parameter: output1"
time="2024-08-27T10:02:50.896Z" level=info msg="No output artifacts"
time="2024-08-27T10:02:50.904Z" level=info msg="Alloc=9382 TotalAlloc=13577 Sys=24677 NumGC=3 Goroutines=8"
time="2024-08-27T10:02:50.909Z" level=info msg="Deadline monitor stopped"
time="2024-08-27T10:02:50.909Z" level=info msg="stopping progress monitor (context done)" error="context canceled"
time="2024-08-27T10:02:48.887Z" level=info msg="Executor initialized" deadline="0001-01-01 00:00:00 +0000 UTC" includeScriptOutput=false namespace=argo podName=double-fan-out-using-param-n2zxs-operation-2735842384 templateName=operation version="&Version{Version:v3.5.10,BuildDate:2024-08-01T05:12:26Z,GitCommit:25829927431d9a0f46d17b72ae74aedb8d700884,GitTag:v3.5.10,GitTreeState:clean,GoVersion:go1.21.12,Compiler:gc,Platform:linux/arm64,}"
time="2024-08-27T10:02:48.895Z" level=info msg="Starting deadline monitor"
time="2024-08-27T10:02:50.897Z" level=info msg="Main container completed" error="<nil>"
time="2024-08-27T10:02:50.897Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2024-08-27T10:02:50.897Z" level=info msg="Saving output parameters"
time="2024-08-27T10:02:50.897Z" level=info msg="Saving path output parameter: output1"
time="2024-08-27T10:02:50.897Z" level=info msg="Copying /tmp/fan_out.json from base image layer"
time="2024-08-27T10:02:50.897Z" level=info msg="Successfully saved output parameter: output1"
time="2024-08-27T10:02:50.897Z" level=info msg="No output artifacts"
time="2024-08-27T10:02:50.904Z" level=info msg="Alloc=9269 TotalAlloc=13587 Sys=24165 NumGC=3 Goroutines=8"
time="2024-08-27T10:02:38.989Z" level=info msg="Starting deadline monitor"
time="2024-08-27T10:02:40.992Z" level=info msg="Main container completed" error="<nil>"
time="2024-08-27T10:02:40.992Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2024-08-27T10:02:40.992Z" level=info msg="Saving output parameters"
time="2024-08-27T10:02:40.992Z" level=info msg="Saving path output parameter: output1"
time="2024-08-27T10:02:40.992Z" level=info msg="Copying /tmp/fan_out.json from base image layer"
time="2024-08-27T10:02:40.992Z" level=info msg="Successfully saved output parameter: output1"
time="2024-08-27T10:02:40.992Z" level=info msg="No output artifacts"
time="2024-08-27T10:02:41.007Z" level=info msg="Alloc=9787 TotalAlloc=13590 Sys=23909 NumGC=3 Goroutines=8"
time="2024-08-27T10:02:41.012Z" level=info msg="stopping progress monitor (context done)" error="context canceled"

Looks to be similar/same as #5143.


feat: add library favorites

Description of the change
This feature adds the ability for users to favorite libraries. A user clicks the star icon in the right hand corner of the LibraryCard component located in the Libraries tab of Open Content, and that Library is added to the library_favorites table. This also opens up two endpoints in handlers/open_content.go, GET /api/open-content/favorites and PUT /api/open-content/{id}/save. The GET requests returns a users favorites in the order of most recently favorited. The PUT handler checks the database and either adds a favorite row in the library_favorites table for that library and that user, and or soft-deletes the favorite from the library_favorites table if an entry for that user, and that library is already present. The favorites tab combined Video favorites and Library favorites into one cumulative page so that a user can view all of their open content favorites.

Related issues: closes #493

Screenshot(s)

Additional context
A couple unrelated changes were changing the videos favoriting icon from a bookmark to a star, and also adding an explicit favorite route for videos because the prior implementation checked an {action} which required admin privileges with the new feature flagging, this made it impossible for users to favorite a video, so that was changed and added as well.

ALSO
I fixed the routing when an Admin switches from student view back to admin view while on the favorites page.

Ok Ok @calisio <- I switched the unfavoriting into the card, sorry, it should have been that way in the first place. The payload is necessary because of the way that the unfavoriting works on the backend...but I did switch change as much as I could...the bug with the Admin switching back to student view was fixed, double checked and the favorites are still being returned to you in order of most recently favorited, but that handler did change slightly to add the pagination.

I think besides those comments, everything else is looking good (as long as @PThorpe92 thinks the backend looks good!)

Sweeet! I just force pushed those updates @calisio


[Bug]: Test v0.8.9 with Cloud Connect

Veeam Backup & Replication version
12.2
Bug description
Run the v0.8.9 of the report in a environment with Cloud Connect active and configured.
Command-line input
New-AsBuiltReport
Steps to reproduce

Update the report to v0.8.9
Run the report to make sure Cloud Connect section works

Expected behaviour
Cloud Connect works in v0.8.9 of the report.
Screenshots
No response
Operating System
Windows
PowerShell Version
v5.1
PowerShell Modules
N/A
Additional Context
No response
Before submitting

[X] I have read and followed the bug reporting guidelines.

Hey @carceneaux,
Can you help me with this request?
Regards,

Will do! 😊

Will do. Traveling this week but I’ll take care of it.

From: Jonathan Colon @.>
Sent: Wednesday, September 4, 2024 11:15:08 PM
To: AsBuiltReport/AsBuiltReport.Veeam.VBR @.>
Cc: Chris Arceneaux @.>; Mention @.>
Subject: Re: [AsBuiltReport/AsBuiltReport.Veeam.VBR] [Bug]: Test v0.8.9 with Cloud Connect (Issue #172)
Hey @carceneauxhttps://github.com/carceneaux,
Can you help me with this request?
Regards,
—
Reply to this email directly, view it on GitHubhttps://github.com/AsBuiltReport/AsBuiltReport.Veeam.VBR/issues/172#issuecomment-2330157762, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEDCKPWR7TRDCOWFOX3TYKLZU5Z5ZAVCNFSM6AAAAABNVEOJEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZQGE2TONZWGI.
You are receiving this because you were mentioned.Message ID: @.***>

I had a chance to run the report in a Cloud Connect environment and it worked fine. Closing this for now


lazy blueprints

this is an implementation to fix the issue described in #23

I upgraded to the latest version. Since then I am no longer able to execute any rake task in the project using xapian_db:
$ rake -T
rake aborted!
no such file to load -- dm-core

(See full trace by running task with --trace)

following is the complete backtrace:
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/orm_adapter-0.0.5/lib/orm_adapter/adapters/data_mapper.rb:1:in `<top (required)>'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/orm_adapter-0.0.5/lib/orm_adapter.rb:18:in `<top (required)>'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/devise-1.4.9/lib/devise.rb:4:in `<top (required)>'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
/Users/senny/Projects/equis/config/application.rb:7:in `<top (required)>'
/Users/senny/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/senny/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/senny/Projects/equis/Rakefile:4:in `<top (required)>'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/rake_module.rb:25:in `load'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/rake_module.rb:25:in `load_rakefile'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:501:in `raw_load_rakefile'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:82:in `block in load_rakefile'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:81:in `load_rakefile'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:65:in `block in run'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/lib/rake/application.rb:63:in `run'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/gems/rake-<IP_ADDRESS>/bin/rake:33:in `<top (required)>'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/bin/rake:19:in `load'
/Users/senny/.rvm/gems/ruby-1.9.2-p290@equis/bin/rake:19:in `<main>'

got one more error related to the above changes. This happened on our build-server infrastructure which has an older version of rubygems. I suggest using another way to require the corresponding adapters.
rake aborted!
undefined method `find_by_name' for Gem::Specification:Class

(See full trace by running task with --trace)
undefined method `find_by_name' for Gem::Specification:Class (NoMethodError)
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/bundler/gems/xapian_db-5a616aca3acb/lib/xapian_db.rb:21:in `<top (required)>'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
/builds/bamboo/xml-data/build-dir/EQUIS-MASTER-CUCUMBER/config/application.rb:7:in `<top (required)>'
/builds/bamboo/xml-data/build-dir/EQUIS-MASTER-CUCUMBER/config/environment.rb:2:in `require'
/builds/bamboo/xml-data/build-dir/EQUIS-MASTER-CUCUMBER/config/environment.rb:2:in `<top (required)>'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-rails-1.2.0/lib/cucumber/rails.rb:7:in `require'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-rails-1.2.0/lib/cucumber/rails.rb:7:in `<top (required)>'
/builds/bamboo/xml-data/build-dir/EQUIS-MASTER-CUCUMBER/features/support/env.rb:19:in `require'
/builds/bamboo/xml-data/build-dir/EQUIS-MASTER-CUCUMBER/features/support/env.rb:19:in `<top (required)>'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/rb_support/rb_language.rb:143:in `load'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/rb_support/rb_language.rb:143:in `load_code_file'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/runtime/support_code.rb:171:in `load_file'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/runtime/support_code.rb:82:in `each'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/runtime.rb:137:in `load_step_definitions'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/runtime.rb:39:in `run!'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/cli/main.rb:43:in `execute!'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/lib/cucumber/cli/main.rb:20:in `execute'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/gems/cucumber-1.1.2/bin/cucumber:14:in `<top (required)>'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/bin/cucumber:19:in `load'
/home/bamboo/.rvm/gems/ruby-1.9.2-p290@equis/bin/cucumber:19:in `<main>'

4960ffc should fix the build server problem

@gernotkogler it works, thanks!


Adding attributes for the purpose of acceptance testing

It's not ideal to use css classes to access the dom in acceptance testing as they are often changed so I have added a couple of ids and names to hang off

Codecov Report

Merging #9 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master     #9   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           7      7
  Lines          99     99
=====================================
  Hits           99     99

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 487fd5f...a28793b. Read the comment docs.


Cannot find module on Windows

Reopening issue https://github.com/r3b/grunt-protractor-coverage/issues/14

Thank you for the contribution!


[BEAM-12548] Add EqualsList functionality to PAssert

Implements EqualsList, a testing helper to compare the contents of a PCollection to the contents of an array or slice. Also adds corresponding unit tests and refactors equals_test.go to use more precise naming conventions.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @lostluck

Thank you!  I'll merge once the precommits pass. (They should, since it was only a comment change.)

Run GoPortable PreCommit


Fixed file to be named "constants" as opposed to "constans"

Renamed one file.

Should be good to go


fix: revert to old version

@gakonst  version 0.5.8 of num_enum was pulled so now all builds on the most recent version fail due to an invalid dep

@gakonst can we merge this pls

ACK sorry was AFK


Increase .travis.yml consistency between repos

aspnet/Universe#349
minimize dotnet setup time; no need for caching
KOREBUILD_DNU_RESTORE_CORECLR env variable isn't used anymore
no need for libuv v1.4.2 w/ current Kestrel packages

4e2ecf8


[ALLUXIO-2404] Enable writing directly any tier (load and copyFromLocal command)

https://alluxio.atlassian.net/browse/ALLUXIO-2404

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12087/Failed Tests: 12org.alluxio:alluxio-core-client: 12alluxio.client.file.FileOutStreamTest.singleByteWritealluxio.client.file.FileOutStreamTest.manyBytesWritealluxio.client.file.FileOutStreamTest.writeOffsetalluxio.client.file.FileOutStreamTest.cancelWithDelegationalluxio.client.file.FileOutStreamTest.cancelWithoutDelegationalluxio.client.file.FileOutStreamTest.cacheWriteExceptionNonSyncPersistalluxio.client.file.FileOutStreamTest.cacheWriteExceptionSyncPersistalluxio.client.file.FileOutStreamTest.truncateWritealluxio.client.file.FileOutStreamTest.asyncWritealluxio.client.file.FileOutStreamTest.getBytesWrittenWithDifferentUnderStorageTypealluxio.client.file.FileOutStreamTest.closealluxio.client.file.FileOutStreamTest.writeBuffer
Test FAILed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12099/
Test PASSed.

Merged build finished. Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12135/
Test PASSed.

@apc999 I think I addressed your questions. Are there any other changes that you'd like to see in this pull request? Thanks!

@bissont thanks for the update. I took a pass on the change.
First of all, this is a really awesome feature people want for a long time. It can further improve the value and usability of Alluxio tierd storage.  With respect to the implementation, I discussed with other PMC members and here is the suggestions.

Extending the client-worker API requestBlockLocation in core/common/src/thrift/block_worker.thriftby adding one more argument will break the backward compatibility. Since new releases of Alluxio 1.x is promised to work with earlier Alluxio client, this will probably not be the ideal change.
There is a concept of [FileWriteLocationPolicy] (http://www.alluxio.org/docs/master/en/File-System-API.html#location-policy)  in Alluxio (you can check out the source code here). It allows file writers to specify how to choose nodes to store the data in Alluxio. I think we can make an analogy here and to make this feature more extensible in the future: e.g., in addition to supporting writing to a specific tier, maybe some policy can be tier X or above, tier X or below, can we have similar policies instead of hard coding a specific tier in all APIs?

Do they make sense? Feel free to put your thoughts here too.

@apc999 Thanks for the alternative suggestion. I spent some time looking into your suggestion of using the FileWriteLocationPolicy. At first I thought your suggestion was just to package the tier variable into FileWriteLocationPolicy, but I don't think that's what you mean because the policy isn't propagated to the worker (I'd still have send the tier id in requestBlockLocation()), which breaks compatibility.
If we do something like FileWriteLocationPolicy for tiers, this would be a per-client policy? E.g., all writes now go to the "X tier" in the cluster for a specific client/app.
One thing I think could be useful is allowing a user to override the policy on a per-file basis. For example, if the current policy is to write the highest tier, a user might want to override that for a specific file and say write to the lowest tier. Do you have a thought on how to accomplish that in this scheme?
Thanks!
Tim

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12476/
Test PASSed.

Merged build finished. Test PASSed.

@apc999 @gpang This most recent commit attempts to make the solution more portable. There is a new property key:
alluxio.user.file.write.tier.default
There are three options:

HIGHEST (default behavior)
PREFER_HIGHEST_NON_MEMORY.
LOWEST

I feel this is a better solution than what we had earlier. Now we'll choose the most appropriate tier regardless of the tiers that exist on the worker. For example, if we specify LOWEST but a worker that was selected for block allocation only has MEM tier, we'll still select that tier.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12477/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12490/
Test PASSed.

@bissont Sorry to get back to you with a long delay. After our discussion offline and more conversation with @calvinjia , here is our suggestion regarding this PR:
We belive that for the coming release, it is already a big improvement if an Alluxio client could write to a specific tier on the local worker. In other words, it is fine to support writing to a specific tier if the destination is local; in case it is a remote write and the user wants to specify a tier, you can return exception saying this is currently not supported.
Given the above relaxation, do you think the current PR is ready for us to review?

@apc999 No problem. Yes, I think it's ready for review.
For remote writes, I left a client to use the default behavior, which is to write to tier0. I made a comment in docs stating this property is specific to local writes. I think this is better than returning an exception as it preserves the default behavior for remote writes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12644/
Test PASSed.

Merged build finished. Test PASSed.

Documentation Screenshot:

File-System-API:

Configuration-Settings

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12645/
Test PASSed.

@bissont there are merge conflicts. could you resolve that?

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12730/
Test FAILed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/12732/
Test PASSed.

@bissont thanks for the improvement. I have merged this patch. It is definitely a big improvement. I am sure users will appreciate this feature added in this PR. Looking forward to more awesome features in Alluxio!


build with Scala 2.12

This passes all tests, but has some deprecation warnings against Scalatest 3.0
I upgraded to specs2-core 3.8.6 as that is built for Scala 2.12

You're a hero

Any chance to get this merged and published?

until this is merged, people can find an interim build (3.3.0-pm) here: https://bintray.com/barkhorn/maven
With sbt:
libraryDependencies += "org.scalamock" %% "scalamock-core" % "3.3.0-pm" % Test
resolvers += Some(Resolver.bintrayRepo("barkhorn", "maven"))

would anyone be interested in taking over maintenance of scalamock? Making regular releases, etc? I'm sure @paulbutcher would be open to the idea

I don't use Specs2 myself, only Scalatest, but i would be happy to drive this project forward, or collaborate on the maintenance of Scalamock, if Paul wants the help?

@barkhorn I tried using your workaround from gradle and failed. :|
Gradle seems to be looking for a SHA1 checksum which seems to be missing.
Would it be too much of hassle to re-publish the artifact with that?

Hi @denisrosca , I just tried myself with a simple gradle project and didn't get any problems with checksums.
That said, i am struggling to publish sha1 files to bintray using the bintray-sbt plugin. Not sure why these don't appear :-/
build.gradle for Gradle 3.1
plugins {
    id "com.github.maiflai.scalatest" version "0.14"
}

apply plugin: 'scala'
apply plugin: 'com.github.maiflai.scalatest'

repositories {
    jcenter()
	maven { url "https://dl.bintray.com/barkhorn/maven" }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "org.scala-lang:scala-library:2.12.0"

    testRuntime 'org.pegdown:pegdown:1.6.0'
    testCompile "org.scalatest:scalatest_2.12:3.0.0"
    testCompile "org.scalamock:scalamock-scalatest-support_2.12:3.3.0-pm"
    testCompile "org.scalacheck:scalacheck_2.12:1.13.4"
}

@barkhorn You are right, I've managed to mess up my build somehow. After cleaning/fixing it up a bit it is working ok. Thank you.

@paulbutcher, have you seen that @barkhorn is willing to drive this project forward? Furthermore, this enables 2.12 support, which is a request many of us have. Do you have some time to check this out?

@barkhorn apologies for taking so long to get back to you about this. I'd be happy to hand ScalaMock maintenance over to you.
Giving you access to the GitHub repo is easy enough. What I'm struggling to work out is what I would need to do to allow you to make releases on oss.sonatype.org - I remember that setting it up was a major PITA, and I don't have time to work it all out again. If you know what I need to do and can enlighten me, I'd be very grateful.
Drop me an e-mail ad<EMAIL_ADDRESS>and we can coordinate.

I think you can just request perms and point them at this thread.

Good idea @fommil , I've raised a Jira Task for Sonatype Support.


[doc] Non-Reset vs. Reset Flops Rationale

There have been many discussions on the pros and cons of non-reset vs. reset flops for registering security sensitive assets in OpenTitan IP. We have now concluded these discussions. I have summarized those and documented the rationale here:
https://docs.google.com/document/d/1PNyfKBteoVfaex-zPNg5nY8ny9hyeHII9eJvgK23gjI/edit
Please have a look.
In short, our conclusion is that we cannot give a general recommendation for one or the other flop type (for this reason, we also don't go for an RFC). Instead, the decision should be taken at a sub-IP level with all countermeasures in consideration.
I will give a short overview in this week's security meeting.
We are thinking about transferring this doc into MarkDown and publishing it as part of the OpenTitan documentation on security guidance. Also, there will likely be an item for this added to the sign-off checklist. This is tracked in lowRISC/OpenTitan#1136.

Thanks for pushing this through @vogelpi.
Does this also mean you'll act as the POC when questions come up on whether a particular block needs non-reset flops?
@moidx
Adding Miguel for his thoughts on where in the security docs he thinks this should go.

Yes @tjaychen, I will be the POC for such questions. Thanks for initiating this and for your support Tim :+1:

Thanks for producing this.  I made a couple comments on the doc but it looks very good in general.

Thanks for the feedback @cdgori and of course also for your support in these discussions.

@vogelpi is there still something outstanding here? E.g. publication of the rationale?

Yes, we should decide 1) if we want to publish this as part of the OT documentation, 2) whether it should be a new page or somehow be integrated into https://opentitan.org/book/doc/security/implementation_guidelines/hardware/, and 3) actually do it. I am happy to take care of 2) and 3). Let's start with 1) and but do that offline.

Sounds good, thanks!

Personal opinions:

I don't think it exposes anything sensitive to publish it (the RTL already is out there!), but if others feel differently happy to listen.

I'd probably save some work and make it a new page, with perhaps adding a link to it in the implementation guidelines (which are already lengthy enough...), by creating a new recommendation called "Reset vs non-reset flops" and pointing to the published document, in essence saying that we do not make a specific recommendation but rather consider it case-by-case.

(In reality that language would probably apply to a lot of the other recommendations, but we tried to be more prescriptive.)

Thanks for your input @cdgori . Re 1), I agree with you. The plan is now to bring this up in one of the following TC meetings to hopefully get approval. Re 2), yes this makes a lot of sense!

We discussed this in the TC today and have no objections to publishing it.
@cdgori's recommendation where to plug it in is reasonable.

Thanks for the feedback @msfschaffner . I'll do a PR soon.

The PR is finally here #20191

The published versiond can be found here: https://opentitan.org/book/doc/security/implementation_guidelines/index.html


No way to add extensions in tutorials

From Code Ninjas.
This one is trouble for me in Arcade, too.  Now that we're getting into intermediate tutorials, we need a way for users to be able to add extensions of their own

I notice that this screenshot is just the bottom of the toolbox.  I'll verify that it's not showing up above, since I don't think they're using the tutorial interface.

This is request to add extensions through iframe interface. Please file seperate issue for tutorial

This needs more information.


Detect open folder in VS Code is TTK project and change output path for Copilot Plugin

Is your feature request related to a problem? Please describe the problem.
If I create a copilot plugin in Kiota when my VS Code open folder is a teams toolkit project, it creates the manfiest by default in root folder.
Client library/SDK language
None
Describe the solution you'd like
If I have a Teams toolkit project open, there are various out of the box folder structures like "appPackage" that exist. The plugin manifests that TTK creates go here by default. Kiota should do the same.
Additional context
No response

Thanks for raising this @jthake
For context, is the request here to change the location of the workspace.json file as well? Or just the default output path of the generated plugin when generating the plugin?

Fixed in #4958


SQL authenticated procedure call not permitted

Hi Folks, this document says that members of the sysadmin server role can call this procedure. That is not true. It cannot be called by logins authenticated by SQL Server such as the sa login.
Regards,
Greg

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Thank you @greglow for the content contribution


Updated cryptoprice to v3

Scans first 10 pages of CMC and also shows price in BTC

Thank you! I did make a few revisions that should be mostly cosmetic.

removed console prints
use one aiohttp session for the cog instead of opening/closing one on each request
still search up to 10 pages, but stop after 3 matches instead of 1
simplified the code that searches for price in BTC. I believe it works the exact same way, but let me know if you encounter situations where it breaks.


Langserve example from Quickstart tutorial not working

System Info
Name                    Version                   Build  Channel
langchain                 0.0.350                  pypi_0    pypi
langchain-cli             0.0.19                   pypi_0    pypi
langchain-community       0.0.3                    pypi_0    pypi
langchain-core            0.1.1                    pypi_0    pypi
langchain-experimental    0.0.47                   pypi_0    pypi
python                    3.12.0          h47c9636_0_cpython    conda-forge
System: macOS 14.2 (Apple M1 chip)
Who can help?
No response
Information

[X] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction

Go to https://python.langchain.com/docs/get_started/quickstart
Do all the package installations as guided.
Copy the python code under the section 'Serving with Langserve' and save it to a file serve.py
Execute the file python serve.py
Open http://localhost:8000 in browser

Expected behavior
Expected to see Langserve UI. Got the following error instead.

LANGSERVE: Playground for chain "/category_chain/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /category_chain/playground/
LANGSERVE:
LANGSERVE: See all available routes at /docs/
LANGSERVE: ⚠ Using pydantic 2.5.2. OpenAPI docs for invoke, batch, stream, stream_log endpoints will not be generated. API endpoints and playground should work as expected. If you need to see the docs, you can downgrade to pydantic 1. For example, pip install pydantic==1.10.13. See https://github.com/tiangolo/fastapi/issues/10360 for details.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)
INFO:     ::1:58516 - "GET / HTTP/1.1" 404 Not Found
INFO:     ::1:58516 - "GET /favicon.ico HTTP/1.1" 404 Not Found
^CINFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [91610]

Here's the code from the quickstart page for reference
#!/usr/bin/env python
from typing import List

from fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.schema import BaseOutputParser
from langserve import add_routes

# 1. Chain definition

class CommaSeparatedListOutputParser(BaseOutputParser[List[str]]):
    """Parse the output of an LLM call to a comma-separated list."""

    def parse(self, text: str) -> List[str]:
        """Parse the output of an LLM call."""
        return text.strip().split(", ")

template = """You are a helpful assistant who generates comma separated lists.
A user will pass in a category, and you should generate 5 objects in that category in a comma separated list.
ONLY return a comma separated list, and nothing more."""
human_template = "{text}"

chat_prompt = ChatPromptTemplate.from_messages([
    ("system", template),
    ("human", human_template),
])
category_chain = chat_prompt | ChatOpenAI() | CommaSeparatedListOutputParser()

# 2. App definition
app = FastAPI(
    title="LangChain Server",
    version="1.0",
    description="A simple API server using LangChain's Runnable interfaces",
)

# 3. Adding chain route
add_routes(
    app,
    category_chain,
    path="/category_chain",
)

if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="localhost", port=8000)

I had exactly the same problem.
INFO:     Started server process [55250]
INFO:     Waiting for application startup.

 __          ___      .__   __.   _______      _______. _______ .______     ____    ____  _______
|  |        /   \     |  \ |  |  /  _____|    /       ||   ____||   _  \    \   \  /   / |   ____|
|  |       /  ^  \    |   \|  | |  |  __     |   (----`|  |__   |  |_)  |    \   \/   /  |  |__
|  |      /  /_\  \   |  . `  | |  | |_ |     \   \    |   __|  |      /      \      /   |   __|
|  `----./  _____  \  |  |\   | |  |__| | .----)   |   |  |____ |  |\  \----.  \    /    |  |____
|_______/__/     \__\ |__| \__|  \______| |_______/    |_______|| _| `._____|   \__/     |_______|

LANGSERVE: Playground for chain "/agent/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /agent/playground/
LANGSERVE:
LANGSERVE: See all available routes at /docs/

LANGSERVE: ⚠ Using pydantic 2.6.4. OpenAPI docs for invoke, batch, stream, stream_log endpoints will not be generated. API endpoints and playground should work as expected. If you need to see the docs, you can downgrade to pydantic 1. For example, `pip install pydantic==1.10.13`. See https://github.com/tiangolo/fastapi/issues/10360 for details.

INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)
INFO:     ::1:58755 - "GET /agent HTTP/1.1" 404 Not Found
INFO:     ::1:58756 - "GET /agent HTTP/1.1" 404 Not Found

any solutions found for the above error ??

any solutions please

Try following the suggestion in the error message, to downgrade pydantic from 2.x.x to 1.xx
Per above, this would be pip install pydantic==1.10.13

I am still having issues wih this. Follow the tutorial from online also and still getting this issue
tutorial link: https://www.youtube.com/watch?v=OV2ZIWFBe0s&ab_channel=LangChain

change to
uvicorn.run(app, host="<IP_ADDRESS>", port=8000)

@sishuoyang
😂It is not a mistake, you can open "http://localhost:8000/agent/playground/" in web.

when you run your server.py , you need to configure in url to this path of your endpoint :
`
1. the definition of our chain that we just built above
2. Our FastAPI app
3. definition of a route from which to serve the chain , which is done with "langserve.add_routes"
from typing import List
from fastapi import FastAPI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI (for openai)
from langchain_groq import ChatGroq
from langserve import add_routes
import os
os.environ["GROQ_API_KEY"] = groq_api
1. Create prompt template
system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages([
('system', system_template),
('user', '{text}')
])
2. Create model
model = ChatGroq(model="llama3-70b-8192")
3. Create parser
parser = StrOutputParser()
4. Create chain
chain = prompt_template | model | parser
4. App definition
app = FastAPI(
title="LangChain Server",
version="1.0",
description="A simple API server using LangChain's Runnable interfaces",
)
5. Adding chain route
add_routes(
app,
chain,
path="/chain", # add this endpoint to url in web-browser then add '/playground'
)
if name == "main":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)

`
so in the url write this : " http://localhost:8000/chain/playground/ "
remember to replace '/chain' with what you wrote in add_route function in path attribute

the right website is localhost:8000/chain/playground/


Unable to install extensions

I am setting up a new MacBook and while attempting to install Oni2 extensions, they all fail no matter which approach. I've tried installing sdras.night-owl, esbenp.prettier-vscode, and a vsx file for rescript-vscode.
Steps to Reproduce

Open Extensions sidebar.
Search for "night."
Click "Install" for Night Owl theme.

- OR -

Launch Terminal.
oni2 --install-extension sdras.night-owl

Expected Result
Extension installs successfully.
Actual Result
Extension fails to install.

Screenshots

Environment

macOS 11.0.1
Onivim2 0.5.1698

Thanks for the issue and logs, @dcalhoun !
Just fixed this in https://github.com/onivim/oni2/pull/2786 - it's available in the latest nightly build now.


Add some hints regarding OS settings handling files

Working with a bit more of data the deployment may run into OS dependendent file issues.
These possible issues shall be hinted in the README.
Originates from https://github.com/skohub-io/skohub-vocabs/pull/102 and  https://github.com/skohub-io/skohub-vocabs/issues/104.

Resolved with #113, closing.


Suggestions

I thought the plugin was cool and all, not least because it is much better than another one from poggit, and I wanted to suggest adding additional features. They are not much of an improvement but I think with this the plugin could be richer and even better!

Party system: I think one of the essential things would be a party system, let's say, you can create a party with your friends that you have and the leader of the party when executing a command, so that everyone would also execute at the same time, an idea would be to support within this context other plugins, blocking pvp (optional) and so on.

Recommendation System: A good idea I thought would be to make an embedded form inside the plugin's panel with the name "Feed" where you can find new players that in this case would be online in the server and send friends to them, it would be a kind of discovery like in Facebook.

Well, these were some of the ideas, if I have more I'll open another issue or even comment inside this one, if you need help implementing these features I'm willing to help too, :D.

Really good idea I will add this on my todo list after my exam i do it frist if I don't forget that


REDModding.WolvenKit.Installer version <IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Verification fails because of this.
Deployment operation #0: Windows cannot install package 26499Wolvenkit.WolvenKit.Installer_<IP_ADDRESS>_x64__str4xaare4n04 because this package depends on a framework that could not be found. Provide the framework "Microsoft.VCLibs.140.00" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x64 processor architecture and minimum version 14.0.30704.0, along with this package to install.
The frameworks with name "Microsoft.VCLibs.140.00" currently installed are: {Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x86__8wekyb3d8bbwe}```

Verification fails because of this.
Deployment operation #0: Windows cannot install package 26499Wolvenkit.WolvenKit.Installer_<IP_ADDRESS>_x64__str4xaare4n04 because this package depends on a framework that could not be found.
Provide the framework "Microsoft.VCLibs.140.00" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x64 processor architecture and minimum version 14.0.30704.0, along with this package to install.
The frameworks with name "Microsoft.VCLibs.140.00" currently installed are: {Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x86__8wekyb3d8bbwe}```

Hi @rfuzzo,
The installer has become unavailable - I've made this PR a draft under the assumption that you're updating the installer to address the above. Please feel free to revert to Ready for review when appropriate.

Verification fails because of this.
Deployment operation #0: Windows cannot install package 26499Wolvenkit.WolvenKit.Installer_<IP_ADDRESS>_x64__str4xaare4n04 because this package depends on a framework that could not be found.
Provide the framework "Microsoft.VCLibs.140.00" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x64 processor architecture and minimum version 14.0.30704.0, along with this package to install.
The frameworks with name "Microsoft.VCLibs.140.00" currently installed are: {Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x86__8wekyb3d8bbwe}```

Hi @rfuzzo,
The installer has become unavailable - I've made this PR a draft under the assumption that you're updating the installer to address the above. Please feel free to revert to Ready for review when appropriate.

Thank you, it seems it still fails because of missing redists. minimum version 14.0.30704.0 vs 14.0.30035.0.
Is this a problem with the winget validation runner, or can I include it?
Deployment operation #0: Windows cannot install package 26499Wolvenkit.WolvenKit.Installer_<IP_ADDRESS>_x64__str4xaare4n04 because this package depends on a framework that could not be found.

Provide the framework "Microsoft.VCLibs.140.00" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x64 processor architecture and minimum version 14.0.30704.0, along with this package to install.

The frameworks with name "Microsoft.VCLibs.140.00" currently installed are: {
Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.30035.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.30035.0_x86__8wekyb3d8bbwe}

Thank you, it seems it still fails because of missing redists. minimum version 14.0.30704.0 vs 14.0.30035.0. Is this a problem with the winget validation runner, or can I include it?
Deployment operation #0: Windows cannot install package 26499Wolvenkit.WolvenKit.Installer_<IP_ADDRESS>_x64__str4xaare4n04 because this package depends on a framework that could not be found.

Provide the framework "Microsoft.VCLibs.140.00" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x64 processor architecture and minimum version 14.0.30704.0, along with this package to install.

The frameworks with name "Microsoft.VCLibs.140.00" currently installed are: {
Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.30035.0_x64__8wekyb3d8bbwe
Microsoft.VCLibs.140.00_14.0.30035.0_x86__8wekyb3d8bbwe}

I believe this error means that the validation VM has 5 versions of the dependency Microsoft.VCLibs.140.00 installed, 1 of which is x86 and x64 for the rest, all of which are a lower version than required by your package. This appears to be a package that's not yet included in in Winget. This isn't one of the VCRedist packages that makes up the vast majority of our dependencies, but a separate library. A possible solution might be to perform a silent install of Microsoft.VCLibs.140.00 as an early installer step.
This page has links to different architecture versions of Microsoft.VCLibs.140.00, including both x86 and x64:

https://learn.microsoft.com/en-us/troubleshoot/developer/visualstudio/cpp/libraries/c-runtime-packages-desktop-bridge


Update build.yml to not limit by branch

Replaces #3069
Updates original PR #3060

Based on discussion in Slack & PR #3069 , this just updates our build.yml to run on every push/PR to the current branch.  @abollini pointed out (in Slack) that this seems to be the ideal build process, as GitHub is smart enough to only use the build.yml for the current branch.
This should also be backported/cherry-picked to dspace-6_x and dspace-5_x to correct their configurations.

Thanks @benbosman !
Here's the corresponding PR for dspace-angular: https://github.com/DSpace/dspace-angular/pull/959
I'll also cherry-pick this PR to the dspace-6_x and dspace-5_x branches to correct their configuration similarly


getting error https://graph.windows.com was not found in the tenant

hi,
I am trying to use the access token generated by this application, this application uses graph url as https://graph.windows.net, if i use this url with graph api in postman, it doesnt work. but if i use https://graph.windows.com and access token from this application, it works.
after taking the latest source code and replacing the https://graph.windows.net with https://graph.windows.com, i am getting the application error as https://graph.windows.com is not registered with tenant..can someone tell me whats the issue. please check the error,

Closing all issues since this repo is being archived and no longer maintained.


Index was out of range. Must be non-negative and less than the size of the collection.

Acknowledgement

[X] I have read Getting-Started and FAQ

🐛 Describe the bug
https://www.nicovideo.jp/watch/sm10726735
When I was copying and pasting lyrics using this plugin, openutau got an error and I couldn't open USTX.
I was translating the lyrics in Romaji into Chinese. The score layout has been corrected.
Explains how to reproduce the bug

Prepare the UST and audio file and put it into openutau
Rewrite the UST lyrics and copy and paste them into Harmony.

errorFile.zip
OS & Version
Windows10
Logs
Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at OpenUtau.Core.Ustx.UNote.Validate(ValidateOptions options, UProject project, UTrack track, UVoicePart part) in C:\projects\openutau\OpenUtau.Core\Ustx\UNote.cs:line 93
at OpenUtau.Core.Ustx.UVoicePart.Validate(ValidateOptions options, UProject project, UTrack track) in C:\projects\openutau\OpenUtau.Core\Ustx\UPart.cs:line 105
at OpenUtau.Core.Ustx.UProject.Validate(ValidateOptions options) in C:\projects\openutau\OpenUtau.Core\Ustx\UProject.cs:line 170
at OpenUtau.Core.Format.Ustx.Load(String filePath) in C:\projects\openutau\OpenUtau.Core\Format\USTx.cs:line 87
at OpenUtau.Core.Format.Formats.LoadProject(String[] files) in C:\projects\openutau\OpenUtau.Core\Format\Formats.cs:line 51
at OpenUtau.App.ViewModels.MainWindowViewModel.OpenProject(String[] files) in C:\projects\openutau\OpenUtau\ViewModels\MainWindowViewModel.cs:line 125
at OpenUtau.App.Views.MainWindow.Open() in C:\projects\openutau\OpenUtau\Views\MainWindow.axaml.cs:line 196
0.1.327.0

The original file still cannot be opened, but it returned after re-outputting it to USTX using UtaFormatix.

I'll close it now


update website link in README

@RushanKhan1 @AnanyaNegi @Pranav016  I have updated the new link of website in README and done a few modifications according to you. Please go through those and accept my pull request. Let me know if any other changes you expect.

@RushanKhan1 @Pranav016 Sir please go through my pull request. I've updated the new website link in the README file.

@Pranav016
Sir, I've changed README file according to you. Please review it and let me know if any further changes are required or accept my pull request.
Thank you Sir.

closing PR for  now, reopen if required

@Pranav016
Sir, I've changed README file according to you. Please review it and let me know if any further changes are required or accept my pull request.
Thank you Sir.

Yes , I got your point and reviewed it but some things are not satisfactory. So you can open a new PR with a couple small changes I suggested and I'll merge.


Make algorithm parameter optional for decode

decode only needs an algorithm if verify is true, otherwise it never even touches the algorithm parameter. This means even when I'm not verifying the JWT, I have to pass some sort of algorithm who's values are of no consequence.
I think even passing Algorithm.None is slightly misleading, because a JWT can be encoded using Algorithm.None, so there's still an implication that something will be done with this argument.
Therefore, may I propose making the algorithm parameter optional for decode?

@asib You can already pass in an empty array (no algorithms):
JWT.decode(jwt, algorithms: [], verify: false)

I think this is a better approach than making algorithm optional. Making the algorithm optional promotes using JSONWebToken as a library to decode JSONWebToken without verifying the token. It also makes it easier to mis-use JSONWebToken and accidentally pass in nil instead of a valid algorithm when you are trying to verify.

+1 Not all use cases require warrant the verification of the token. Not making the algorithm optional was very confusing since you don't need an algorithm to decode base64.

1+ I agree with @JonathanRosado . Mostly on the confusing part.  Not making the value optional and adding an Enum of Algorithm.none just adds to the confusion.
I would suggest at least adding an example to the README.


net/http: client does not send cookies if an intermediary request hits a different domain

What version of Go are you using (go version)?
1.10.2
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
Windows 10 and OSX
What did you do?
I have the following scenario:

HTTP Client makes a request to http://domain-a/set
HTTP Handler at http://domain-a/set sets a Cookie and redirects to http://domain-b/foo
HTTP Handler at http://domain-b/foo does nothing except redirecting back to http://domain-a/check
HTTP Header at http://domain-a/check is missing the cookie

The cookie is set if we do not redirect to http://domain-b but directly to http://domain-a:

HTTP Client makes a request to http://domain-a/set
HTTP Handler at http://domain-a/set sets a Cookie and redirects to http://domain-a/check
HTTP Header at http://domain-a/check has the cookie set

A reproducible demo is available on gist.
I believe that this is caused by some logic that is tied to:

// • when forwarding sensitive headers like "Authorization",
// "WWW-Authenticate", and "Cookie" to untrusted targets.
// These headers will be ignored when following a redirect to a domain
// that is not a subdomain match or exact match of the initial domain.
// For example, a redirect from "foo.com" to either "foo.com" or "sub.foo.com"
// will forward the sensitive headers, but a redirect to "bar.com" will not.

My intuition tells me that the cookie header is deleted if the client encounters a domain that does not match the original domain, and does not recover the cookie in subsequent redirects if the domain is set back to the original one.
From what I can tell, this behaviour could be caused by shouldCopyHeaderOnRedirect which strips all the info and thus makes it unavailable in subsequent requests.
What did you expect to see?
I expected the cookie to be available at localhost:9000 (this is not about the intermediary domain localhost:8000), even if one of the redirects (in the middle) is a different domain. This is the default behavior of browsers too.
What did you see instead?
The cookie was not set.

edit://
While this is an edge case, it is kind of common in scenarios with federation where the browser does a lot of redirects between domains. That's actually how I found this issue.

After further investigation I noticed that this can be handled by overwriting the CheckRedirect function of the HTTP client in such a manner, that it uses the cookies from earlier requests (using the via argument of CheckRedirect). Of course, that's kinda hacky and error prone so I think this should be handled by the stdlib instead.

@arekkas - As per the documentation, it seems to me that this is intended, and changing this is possibly going to break behavior.
/cc @bradfitz /@tombergan

We discussed this in the Gopher slack too. While it is (obviously) required for the client to not send any confidential data across domains, the client should be able to send confidential data to the domain that data belongs to, regardless of prior redirects.
Let's assume I have cookies for domain a and domain b. If I call domain a which redirects me to domain b, then domain a should get the proper credentials as should domain b. To me it appears to be nonsensical to strip cookies for domain b just because there was a prior redirect. You will not find a single browser that implements this behvaiour (stripping cookies due to redirects).

And it is possible to do that, the following code has serious security issues as it sends confidential data across domains and also unexpected behaviour. However, I want to prove my point that the data is there and it can actually be implemented without a lot of refactoring (imo):
	resp, err := (&http.Client{
		Jar: c,
		// Hack to fix cookie across domains
		CheckRedirect: func(req *http.Request, via []*http.Request) error {
			if len(via) > 0 && req.Header.Get("cookie") == "" {
				req.Header.Set("Cookie", via[len(via)-1].Header.Get("Cookie"))
			}

			return nil
		},
	})

/cc @vdobler too

The gist provided to recreate the issue uses both localhost and
<IP_ADDRESS>  as the host.
For a cookiejar.Jar these are two different domains.
If I use either localhost or <IP_ADDRESS> consistently throughout the
whole code (as the problem description does) I cannot reproduce
the issue.
@arekkas Could you provide a working example of the issue
using only "localhost" ?

For a cookiejar.Jar these are two different domains.
If I use either localhost or <IP_ADDRESS> consistently throughout the
whole code (as the problem description does) I cannot reproduce
the issue.

<IP_ADDRESS>:80 is different to localhost:80 as localhost:8000 is different to localhost:9000. All of those are considered different domains as they run on different ports, so the provided example illustrates the issue described in the opening post as intended. I agree though that it's a bit confusing and I should have used this consistent naming.

@arekkas

<IP_ADDRESS>:80 is different to localhost:80 as localhost:8000 is different to localhost:9000. All of those are considered different domains as they run on different ports and/or hostnames

No they are not. See RFC 6265 section 1 third paragraph:
https://tools.ietf.org/html/rfc6265#section-1 :

Similarly, cookies for a given host are shared across all the ports on that host, even though the usual "same-origin policy" used by web browsers isolates content retrieved via different ports.

But localhost and <IP_ADDRESS> are considered different domains.
(See https://tools.ietf.org/html/rfc6265#section-5.1.3,
https://tools.ietf.org/html/rfc6265#section-5.3 no. 6 and
https://tools.ietf.org/html/rfc6265#section-5.4).
Can you provide sample code which shows the claimed issue?

No they are not. See RFC 6265 section 1 third paragraph:

I didn't know that!

Can you provide sample code which shows the claimed issue?

I updated the opening post to better reflect the issue. The code represents the issue as intended.

By the way, I'm also pretty sure that the following will fail as well:

Initialize a cookie jar with cookies for http://domain-a/
Make a HTTP request to http://domain-b/hello
HTTP handler at http://domain-b/hello redirects to http://domain-a/foo
HTTP handler at http://domain-a/foo misses cookies set for http://domain-a/

@arekkas
I think everything expected to work actually does so.
All this is totally unrelated to ports.
You can test it with domain-a == "localhost" and domain-b == "<IP_ADDRESS>".
Feel free to use whatever ports you like but make sure that you do not
expect cookies for localhost to appear on <IP_ADDRESS>

Sorry for the post spam.

I didn't know that! It doesn't affect the issue though and the issue in Go actually affects different ports as well.

I'm rolling back this statement, the issue only affects if the domains are different - not the ports. Sorry for the confusion here!

Feel free to use whatever ports you like but make sure that you do not
expect cookies for localhost to appear on <IP_ADDRESS>

I think there is a misunderstanding here. I'll try to be as concise as possible in the description.
I have a cookie jar that has cookies for domain-a. I expect that these cookies are always sent to domain-a when making a request to domain-a, regardless of any prior redirections.
What happens instead is that, if I have a cookie jar with cookies for domain-a, the cookies will be stripped if - somewhere inbetween - a request to another domain (e.g. domain-b) was made.
From the opening post:

HTTP Client makes a request to http://domain-a/set. *(Here, a cookie for domain-a will be set in the cookiejar).
HTTP Handler at http://domain-a/set sets a Cookie and redirects to http://domain-b/foo
HTTP Request is sent to http://domain-b/foo. No cookies are included. This is expected and required and ok.
HTTP Handler at http://domain-b/foo does nothing except redirecting back to http://domain-a/check
HTTP Header at http://domain-a/check is missing the the cookie from the cookie jar for domain-a. (Here, we'd expect the cookies for domain-a to be included because the prior redirection should not affect whether or not legitimate cookies are sent to domain-a or not. The proper cookies should always be included in requests to domain-a if the cookies are in fact set for domain-a)

I hope this clarifies the confusion.

@arekkas
I do understand what you are trying so say and I do understand the scenario
you are describing. There is no confusion here.
You claim that in step 5 the cookies for domain-a are missing and this claim
is factual wrong. I checked. I run your scenario in code and I cannot
reproduce your claim that there is a bug in step 5 simply because
my code does send the appropriate cookie.
Now it can happen that I made a mistake and that is why I ask you to
provide sample code (not a description, the description is
absolutely clear) which demonstrates that your claim (no cookies in
step 5) is true.
The gist you provided is not a suitable evidence for your claim because
in the gist you set the cookies for <IP_ADDRESS> but redirect to localhost!
And the problem description is very good and clear (it is just wrong).
Please try it out. Everything works exactly like you think it should, including
the proper cookies being sent to domain-a after redirect in step 5.
There is no need to argue. Try it out and show the code. Either you are
wrong or I am wrong. Only an experiment will tell.

You are right, please excuse that I didn't properly check the messy code I wrote. I refactored the example (here) and it works as expected (the cookie is being set). I tried it in different configurations (one mux on the same port but different domains, two muxs on different ports on different domains) without luck (wrt reproducing the initial issue).
I'll close this for now and will come back to it if I can figure out what initially caused this mess. Please accept my apologies for spamming your (probably already very busy) inboxes with a non-issue and thank you all for the time put into trying to resolve this.

@arekkas No need to apologize, this happens :-) I'm glad it is working now.


Restoring RNN model from checkpoint fails when hidden layer width is not equal to input/output width

Hi, I'm not sure whether this is actually a bug, or I'm doing something wrong, so please treat accordingly.
I have an RNN model defined as following:
import tensorflow as tf

nn_layers = 3

def RNN(x, weights, out_biases, input_size, n_steps, nn_hidden, keep_prob, forget_bias=0.0):
    # Input data shape: (batch_size, n_steps, input_size)
    # Output data shape: (batch_size, output_size)
    # Permute, reshape and split to get n_steps tensors of shape (batch_size, input_size)
    x = tf.transpose(x, [1, 0, 2])
    x = tf.reshape(x, [-1, input_size])
    x = tf.split(axis=0, num_or_size_splits=n_steps, value=x)

    # define RNN structure

    #layer_cell = tf.contrib.rnn.BasicLSTMCell(nn_hidden, forget_bias=forget_bias)
    layer_cell = tf.contrib.rnn.GRUCell(nn_hidden)

    cell = tf.contrib.rnn.DropoutWrapper(layer_cell, output_keep_prob=keep_prob)
    cell = tf.contrib.rnn.MultiRNNCell([cell] * nn_layers)
    output, state = tf.contrib.rnn.static_rnn(cell, x, dtype=tf.float32)

    pred = tf.matmul(output[-1], weights["out"]) + out_biases["out"]

    return pred

def vs3_RNN(x, input_size, n_steps, nn_hidden, output_size, keep_prob, forget_bias=0.0):

    # Define weights -- output layer
    weights = {
        'out': tf.Variable(tf.random_normal([nn_hidden, output_size]), name="smax_w")
    }
    out_biases = {
        'out': tf.Variable(tf.random_normal([output_size]), name="smax_b")
    }

    pred = RNN(x, weights, out_biases, input_size, n_steps, nn_hidden, keep_prob, forget_bias=forget_bias)

    return pred

I use the vs3_RNN method for both training and testing. The size of my input and output vectors (input_size, output_size) is 500. When I set the width of my hidden layer (nn_hidden) to 500, everything works great. However, when I set it to something else, I can train the model and save the checkpoint fine -- but when I try to restore the model from checkpoint, I get an error message.
Here's a stack trace with nn_hidden equal to 600:
Traceback (most recent call last):
  File "thdvector/vs3_service.py", line 43, in <module>
    saver.restore(sess, tf.train.latest_checkpoint(SAVEDIR))
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 1439, in restore
    {self.saver_def.filename_tensor_name: save_path})
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 767, in run
    run_metadata_ptr)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 965, in _run
    feed_dict_string, options, run_metadata)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1015, in _do_run
    target_list, options, run_metadata)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1035, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [500] rhs shape= [600]
	 [[Node: save/Assign = Assign[T=DT_FLOAT, _class=["loc:@rnn/multi_rnn_cell/cell_0/gru_cell/candidate/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/cpu:0"](rnn/multi_rnn_cell/cell_0/gru_cell/candidate/biases, save/RestoreV2)]]

Caused by op u'save/Assign', defined at:
  File "thdvector/vs3_service.py", line 41, in <module>
    saver = tf.train.Saver()
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 1051, in __init__
    self.build()
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 1081, in build
    restore_sequentially=self._restore_sequentially)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 675, in build
    restore_sequentially, reshape)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 414, in _AddRestoreOps
    assign_ops.append(saveable.restore(tensors, shapes))
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 155, in restore
    self.op.get_shape().is_fully_defined())
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/gen_state_ops.py", line 47, in assign
    use_locking=use_locking, name=name)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 763, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2395, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1264, in __init__
    self._traceback = _extract_stack()

InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [500] rhs shape= [600]
	 [[Node: save/Assign = Assign[T=DT_FLOAT, _class=["loc:@rnn/multi_rnn_cell/cell_0/gru_cell/candidate/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/cpu:0"](rnn/multi_rnn_cell/cell_0/gru_cell/candidate/biases, save/RestoreV2)]]

I have tried this with either GRUCell or BasicLSTMCell, and I get the error message regardless.
Here's the code that run that tries to restore the checkpoint and fails:
x = tf.placeholder("float", [1, n_steps, input_size], name="x_in")

    pred = vs_model.vs3_RNN(x, input_size, n_steps, nn_hidden, output_size, keep_prob=testing_keep_prob, forget_bias=forget_bias)

    init = tf.global_variables_initializer()

    with tf.Session() as sess:
        sess.run(init)
        print("Variables initialized")

        saver = tf.train.Saver()
        #saver = tf.train.import_meta_graph(META)
        saver.restore(sess, tf.train.latest_checkpoint(SAVEDIR))
        print("Model restored from " + str(SAVEDIR))
        ...

Thanks.

This might be a better question for StackOverflow. Please see our issue tracker policy.