[Question] Should events for Started and Succesfull be emitted twice?

Hello,
Im not sure wether this is supposed behavior or not:
I get certain events twice, when executing a pipeline. Especially for the Started or Succeeded states.
My problem with this is, I want to use the events (CloudEvents) for triggering certain tasks in an sink.
One example would be sending an email on pipeline finish.
My setup:
OpenShift (v4.6.3) with CodeReadyContainers on Windows (1.19.0)
Tekton Pipelines Version: v0.18.1
Tekton Triggers Version: v0.9.1
See this controller log: (first and last line are the events).
{"level":"info","ts":"2020-11-20T11:30:44.552Z","logger":"tekton.event-broadcaster","caller":"record/event.go:278","msg":"Event(v1.ObjectReference{Kind:\"PipelineRun\", Namespace:\"tekton-pipelines\", Name:\"ba--thesis-sample--test--5pdtp\", UID:\"cef7fcef-c555-4f7c-a403-3cbd42f17911\", APIVersion:\"tekton.dev/v1beta1\", ResourceVersion:\"588103\", FieldPath:\"\"}): type: 'Normal' reason: 'Started' ","commit":"2fbd24b"}
{"level":"info","ts":"2020-11-20T11:30:44.712Z","logger":"tekton","caller":"volumeclaim/pvchandler.go:67","msg":"Created PersistentVolumeClaim pvc-002dc3d32e in namespace tekton-pipelines","commit":"2fbd24b"}
{"level":"info","ts":"2020-11-20T11:30:44.750Z","logger":"tekton.github.com-tektoncd-pipeline-pkg-reconciler-pipelinerun.Reconciler","caller":"pipelinerun/affinity_assistant.go:66","msg":"Created StatefulSet affinity-assistant-002dc3d32e in namespace tekton-pipelines","commit":"2fbd24b","knative.dev/traceid":"8dc90f8b-0a92-437d-9f1a-ba5d05c7b4d3","knative.dev/key":"tekton-pipelines/ba--thesis-sample--test--5pdtp"}
{"level":"info","ts":"2020-11-20T11:30:44.750Z","logger":"tekton.github.com-tektoncd-pipeline-pkg-reconciler-pipelinerun.Reconciler","caller":"pipelinerun/pipelinerun.go:699","msg":"Creating a new TaskRun object ba--thesis-sample--test--5pdtp-load-config-vjr45","commit":"2fbd24b","knative.dev/traceid":"8dc90f8b-0a92-437d-9f1a-ba5d05c7b4d3","knative.dev/key":"tekton-pipelines/ba--thesis-sample--test--5pdtp"}
{"level":"info","ts":"2020-11-20T11:30:44.776Z","logger":"tekton.github.com-tektoncd-pipeline-pkg-reconciler-pipelinerun.Reconciler","caller":"pipelinerun/pipelinerun.go:544","msg":"PipelineRun ba--thesis-sample--test--5pdtp status is being set to &{Succeeded Unknown  {2020-11-20 11:30:44.776378721 +0000 UTC m=+14232.841383463} Running Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 11, Skipped: 0}","commit":"2fbd24b","knative.dev/traceid":"8dc90f8b-0a92-437d-9f1a-ba5d05c7b4d3","knative.dev/key":"tekton-pipelines/ba--thesis-sample--test--5pdtp"}
{"level":"info","ts":"2020-11-20T11:30:44.778Z","logger":"tekton.event-broadcaster","caller":"record/event.go:278","msg":"Event(v1.ObjectReference{Kind:\"PipelineRun\", Namespace:\"tekton-pipelines\", Name:\"ba--thesis-sample--test--5pdtp\", UID:\"cef7fcef-c555-4f7c-a403-3cbd42f17911\", APIVersion:\"tekton.dev/v1beta1\", ResourceVersion:\"588103\", FieldPath:\"\"}): type: 'Normal' reason: 'Running' Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 11, Skipped: 0","commit":"2fbd24b"}
{"level":"info","ts":"2020-11-20T11:30:44.789Z","logger":"tekton.event-broadcaster","caller":"record/event.go:278","msg":"Event(v1.ObjectReference{Kind:\"TaskRun\", Namespace:\"tekton-pipelines\", Name:\"ba--thesis-sample--test--5pdtp-load-config-vjr45\", UID:\"0dc17d27-4c59-4bac-8b50-6dbcd44a45c2\", APIVersion:\"tekton.dev/v1beta1\", ResourceVersion:\"588120\", FieldPath:\"\"}): type: 'Normal' reason: 'Started' ","commit":"2fbd24b"}
{"level":"info","ts":"2020-11-20T11:30:44.819Z","logger":"tekton.github.com-tektoncd-pipeline-pkg-reconciler-taskrun.Reconciler","caller":"taskrun/taskrun.go:360","msg":"Cloud Events: []","commit":"2fbd24b","knative.dev/traceid":"2f1cda3d-b69c-402f-8123-01891be49bcd","knative.dev/key":"tekton-pipelines/ba--thesis-sample--test--5pdtp-load-config-vjr45"}
{"level":"warn","ts":"2020-11-20T11:30:44.855Z","logger":"tekton.github.com-tektoncd-pipeline-pkg-reconciler-taskrun.Reconciler","caller":"artifacts/artifacts_storage.go:139","msg":"the configmap key \"location\" is empty","commit":"2fbd24b","knative.dev/traceid":"2f1cda3d-b69c-402f-8123-01891be49bcd","knative.dev/key":"tekton-pipelines/ba--thesis-sample--test--5pdtp-load-config-vjr45"}
{"level":"info","ts":"2020-11-20T11:30:44.935Z","logger":"tekton.github.com-tektoncd-pipeline-pkg-reconciler-pipelinerun.Reconciler","caller":"controller/controller.go:522","msg":"Reconcile succeeded. Time taken: 384.748353ms","commit":"2fbd24b","knative.dev/traceid":"8dc90f8b-0a92-437d-9f1a-ba5d05c7b4d3","knative.dev/key":"tekton-pipelines/ba--thesis-sample--test--5pdtp"}
{"level":"info","ts":"2020-11-20T11:30:44.937Z","logger":"tekton.event-broadcaster","caller":"record/event.go:278","msg":"Event(v1.ObjectReference{Kind:\"PipelineRun\", Namespace:\"tekton-pipelines\", Name:\"ba--thesis-sample--test--5pdtp\", UID:\"cef7fcef-c555-4f7c-a403-3cbd42f17911\", APIVersion:\"tekton.dev/v1beta1\", ResourceVersion:\"588123\", FieldPath:\"\"}): type: 'Normal' reason: 'Started' ","commit":"2fbd24b"}

Hi @Bl4d3s , thank for reporting this.
We do not strictly guarantee uniqueness and order of events, however usually you should be getting events once.
Since the reconciler relies on the informer cache one it's triggered, if the cache is stale we may be getting the pipeline run without the start date set, and thus trigger the "Started" event again.

If this is a one off I would not be worried, otherwise I think it would be best to dig into what's happening, as we need to be able to rely on the informer caches telling us the right thing most of the times.
@mattmoor fyi

Hi, thanks for the fast feedback.
I see it happen more often then not unfortunately.
Do you need any more input from my end ? Specific logs etc?

If you still have the pipeline around, could you post the output of:
kubectl describe pr/ba--thesis-sample--test--5pdtp -n tekton-pipelines

Any special reason for running a pipeline in the tekton-pipelines namespace?

kubectl describe pr/ba--thesis-sample--test--5pdtp -n tekton-pipelines

Output

 Output
Name:         ba--thesis-sample--test--5pdtp
Namespace:    tekton-pipelines
Labels:       tekton.dev/pipeline=mvn-default
            triggers.tekton.dev/eventlistener=bitbucket
            triggers.tekton.dev/trigger=pipeline-trigger
            triggers.tekton.dev/triggers-eventid=xzj5v
Annotations:  <none>
API Version:  tekton.dev/v1beta1
Kind:         PipelineRun
Metadata:
Creation Timestamp:  2020-11-20T11:30:44Z
Generation:          1
Managed Fields:
  API Version:  tekton.dev/v1beta1
  Fields Type:  FieldsV1
  fieldsV1:
    f:metadata:
      f:labels:
        .:
        f:triggers.tekton.dev/eventlistener:
        f:triggers.tekton.dev/trigger:
        f:triggers.tekton.dev/triggers-eventid:
    f:spec:
      .:
      f:params:
      f:pipelineRef:
        .:
        f:name:
      f:resources:
      f:serviceAccountName:
      f:workspaces:
  Manager:      eventlistenersink
  Operation:    Update
  Time:         2020-11-20T11:30:44Z
  API Version:  tekton.dev/v1beta1
  Fields Type:  FieldsV1
  fieldsV1:
    f:metadata:
      f:annotations:
        .:
        f:kubectl.kubernetes.io/last-applied-configuration:
      f:labels:
        f:tekton.dev/pipeline:
    f:status:
      .:
      f:completionTime:
      f:conditions:
      f:pipelineSpec:
        .:
        f:description:
        f:finally:
        f:params:
        f:resources:
        f:tasks:
        f:workspaces:
      f:startTime:
      f:taskRuns:
        .:
        f:ba--thesis-sample--test--5pdtp-build-cl8hf:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:volumes:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-cleanup-dd2rz:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:steps:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-dependency-vulnerability-xsqf4:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:volumes:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-deploy-xnbjm:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:steps:
              f:volumes:
        f:ba--thesis-sample--test--5pdtp-integration-test-jttkq:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:volumes:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-jenkins-reports-hcdzq:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-jqassistant-checks-rqj9w:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:volumes:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-load-config-vjr45:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskResults:
            f:taskSpec:
              .:
              f:description:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:results:
              f:steps:
        f:ba--thesis-sample--test--5pdtp-nexus-upload-q4x7b:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:volumes:
              f:workspaces:
        f:ba--thesis-sample--test--5pdtp-systemtest-8hjqw:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:steps:
              f:volumes:
        f:ba--thesis-sample--test--5pdtp-unit-test-mddsq:
          .:
          f:pipelineTaskName:
          f:status:
            .:
            f:completionTime:
            f:conditions:
            f:podName:
            f:resourcesResult:
            f:startTime:
            f:steps:
            f:taskSpec:
              .:
              f:params:
              f:resources:
                .:
                f:inputs:
              f:steps:
              f:volumes:
              f:workspaces:
  Manager:         controller
  Operation:       Update
  Time:            2020-11-20T11:41:02Z
Resource Version:  594333
Self Link:         /apis/tekton.dev/v1beta1/namespaces/tekton-pipelines/pipelineruns/ba--thesis-sample--test--5pdtp
UID:               cef7fcef-c555-4f7c-a403-3cbd42f17911
Spec:
Params:
  Name:   trigger-name
  Value:  Thesis
  Name:   trigger-email
  Value:  ****
  Name:   git-branch
  Value:  test
  Name:   git-commit
  Value:  7aea9d34eb7985731525c94adc534d0c126cda95
Pipeline Ref:
  Name:  mvn-default
Resources:
  Name:  git-repo
  Resource Spec:
    Params:
      Name:            url
      Value:           ssh://git@****
      Name:            revision
      Value:           7aea9d34eb7985731525c94adc534d0c126cda95
    Type:              git
Service Account Name:  mvn-default
Timeout:               1h0m0s
Workspaces:
  Name:  maven-workspace
  Volume Claim Template:
    Metadata:
      Creation Timestamp:  <nil>
    Spec:
      Access Modes:
        ReadWriteOnce
      Resources:
        Requests:
          Storage:  1Gi
    Status:
Status:
Completion Time:  2020-11-20T11:41:01Z
Conditions:
  Last Transition Time:  2020-11-20T11:41:01Z
  Message:               Tasks Completed: 11 (Failed: 0, Cancelled 0), Skipped: 0
  Reason:                Succeeded
  Status:                True
  Type:                  Succeeded
Pipeline Spec:
  Description:  Default maven pipeline

  Finally:
    Name:  cleanup
    Params:
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
    Task Ref:
      Kind:  Task
      Name:  clean-ws
    Workspaces:
      Name:       ws-to-clean
      Workspace:  maven-workspace
  Params:
    Description:  Name of account/user who triggered the build
    Name:         trigger-name
    Type:         string
    Description:  Email of account/user who triggered the build
    Name:         trigger-email
    Type:         string
    Description:  Branch the build is running for
    Name:         git-branch
    Type:         string
    Description:  Commit the build is running for
    Name:         git-commit
    Type:         string
  Resources:
    Name:  git-repo
    Type:  git
  Tasks:
    Name:  load-config
    Params:
      Name:   pipeline-name
      Value:  $(context.pipelineRun.name)
      Name:   pipeline-uid
      Value:  $(context.pipelineRun.uid)
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Task Ref:
      Kind:  Task
      Name:  prepare-config
    Name:    build
    Params:
      Name:  goals
      Value:
        install
      Name:  mvn-params
      Value:
        -B
        -V
        -U
        -DskipTests
        -DskipITs
        -Dci.build=true
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
      Name:   maven-image
      Value:  $(tasks.load-config.results.maven-image)
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      load-config
    Task Ref:
      Kind:  Task
      Name:  run-maven
    Workspaces:
      Name:       maven-repo
      Sub Path:   local-repo
      Workspace:  maven-workspace
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
    Name:         unit-test
    Params:
      Name:  goals
      Value:
        org.jacoco:jacoco-maven-plugin:prepare-agent
        surefire:test
        org.jacoco:jacoco-maven-plugin:report
      Name:  mvn-params
      Value:
        -B
        -DskipITs
        -Dmaven.javadoc.skip=true
        -Dmaven.source.skip=true
        -Dci.test.unit=true
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
      Name:   maven-image
      Value:  $(tasks.load-config.results.maven-image)
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      build
    Task Ref:
      Kind:  Task
      Name:  run-maven
    Workspaces:
      Name:       maven-repo
      Sub Path:   local-repo
      Workspace:  maven-workspace
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
    Name:         integration-test
    Params:
      Name:  goals
      Value:
        org.jacoco:jacoco-maven-plugin:prepare-agent-integration
        failsafe:integration-test
        failsafe:verify
        org.jacoco:jacoco-maven-plugin:report-integration
      Name:  mvn-params
      Value:
        -B
        -Dmaven.javadoc.skip=true
        -Dmaven.source.skip=true
        -Dci.test.integration=true
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
      Name:   maven-image
      Value:  $(tasks.load-config.results.maven-image)
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      build
    Task Ref:
      Kind:  Task
      Name:  run-maven
    Workspaces:
      Name:       maven-repo
      Sub Path:   local-repo
      Workspace:  maven-workspace
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
    Name:         deploy
    Params:
      Name:   hook-name
      Value:  deploy
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
      Name:   image-name
      Value:  $(tasks.load-config.results.deploy-image)
    Run After:
      unit-test
      integration-test
    Task Ref:
      Kind:  Task
      Name:  optional-hook
    Name:    systemtest
    Params:
      Name:   hook-name
      Value:  systemtest
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
      Name:   image-name
      Value:  $(tasks.load-config.results.systemtest-image)
    Run After:
      deploy
    Task Ref:
      Kind:  Task
      Name:  optional-hook
    Name:    dependency-vulnerability
    Params:
      Name:  goals
      Value:
        org.owasp:dependency-check-maven:5.3.1:aggregate
      Name:  mvn-params
      Value:
        -DossindexAnalyzerEnabled=false
        -Dformat=ALL
        -DfailBuildOnCVSS=7
        -DskipProvidedScope=true
        -DfailOnError=false
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      systemtest
    Task Ref:
      Kind:  Task
      Name:  run-maven
    Workspaces:
      Name:       maven-repo
      Sub Path:   local-repo
      Workspace:  maven-workspace
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
    Name:         jqassistant-checks
    Params:
      Name:  goals
      Value:
        com.buschmais.jqassistant:jqassistant-maven-plugin:scan
        com.buschmais.jqassistant:jqassistant-maven-plugin:analyze
      Name:  mvn-params
      Value:
        -B
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      systemtest
    Task Ref:
      Kind:  Task
      Name:  run-maven
    Workspaces:
      Name:       maven-repo
      Sub Path:   local-repo
      Workspace:  maven-workspace
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
    Name:         nexus-upload
    Params:
      Name:  goals
      Value:
        deploy
      Name:  mvn-params
      Value:
        -B
        -DskipTests=true
        -Dcodegen.skip=true
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      dependency-vulnerability
      jqassistant-checks
    Task Ref:
      Kind:  Task
      Name:  run-maven
    Workspaces:
      Name:       maven-repo
      Sub Path:   local-repo
      Workspace:  maven-workspace
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
    Name:         jenkins-reports
    Params:
      Name:   config-map
      Value:  $(context.pipelineRun.name)-config
    Resources:
      Inputs:
        Name:      source
        Resource:  git-repo
    Run After:
      nexus-upload
    Task Ref:
      Kind:  Task
      Name:  jenkins-reports
    Workspaces:
      Name:       target
      Sub Path:   target
      Workspace:  maven-workspace
  Workspaces:
    Name:    maven-workspace
Start Time:  2020-11-20T11:30:44Z
Task Runs:
  ba--thesis-sample--test--5pdtp-build-cl8hf:
    Pipeline Task Name:  build
    Status:
      Completion Time:  2020-11-20T11:31:47Z
      Conditions:
        Last Transition Time:  2020-11-20T11:31:47Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-build-cl8hf-pod-76sd8
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@****
      Start Time:  2020-11-20T11:31:03Z
      Steps:
        Container:  step-git-source-source-gdh5b
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-gdh5b
        Terminated:
          Container ID:  cri-o://f2287729823152347c92e2f56062f830ef7cdfbd2b69981c7743bd3f42553f9d
          Exit Code:     0
          Finished At:   2020-11-20T11:31:15Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:31:15Z
        Container:       step-run-mvn
        Image ID:        docker.io/library/maven@sha256:8e8abdcde705f63990359f3747f5201778d9690e7f90ac3707a2048b43f0bdf0
        Name:            run-mvn
        Terminated:
          Container ID:  cri-o://57e618ab274a71dbfcef6795b964ffe24583b483b8b526d4e3bd91b20a1d3c58
          Exit Code:     0
          Finished At:   2020-11-20T11:31:46Z
          Reason:        Completed
          Started At:    2020-11-20T11:31:16Z
      Task Spec:
        Params:
          Default:  maven
          Name:     maven-image
          Type:     string
          Default:
            install
          Name:  goals
          Type:  array
          Default:
          Name:  mvn-params
          Type:  array
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Args:
            -s
            /mvn-pipeline-config/settings.xml
            -Dmaven.repo.local=$(workspaces.maven-repo.path) $(ADDITIONAL_MVN_PARAMS)
            $(inputs.params.mvn-params)
            $(inputs.params.goals)
          Command:
            mvn
          Env:
            Name:  ADDITIONAL_MVN_PARAMS
            Value From:
              Config Map Key Ref:
                Key:   additional_mvn_params
                Name:  $(inputs.params.config-map)
          Image:       maven
          Name:        run-mvn
          Resources:
          Volume Mounts:
            Mount Path:  /mvn-pipeline-config
            Name:        mvn-pipeline-config-vol
          Working Dir:   /workspace/source
        Volumes:
          Config Map:
            Name:  mvn-pipeline-config
          Name:    mvn-pipeline-config-vol
        Workspaces:
          Name:        maven-repo
          Mount Path:  /workspace/source/target
          Name:        target
  ba--thesis-sample--test--5pdtp-cleanup-dd2rz:
    Pipeline Task Name:  cleanup
    Status:
      Completion Time:  2020-11-20T11:41:00Z
      Conditions:
        Last Transition Time:  2020-11-20T11:41:00Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-cleanup-dd2rz-pod-jmh2v
      Start Time:              2020-11-20T11:40:45Z
      Steps:
        Container:  step-build-sources
        Image ID:   docker.io/library/ubuntu@sha256:1d7b639619bdca2d008eca2d5293e3c43ff84cbee597ff76de3b7a7de3e84956
        Name:       build-sources
        Terminated:
          Container ID:  cri-o://8372e28e4994b132660e4ef0f61c1d5d57051ce3db4aa186feeda690522dfdcf
          Exit Code:     0
          Finished At:   2020-11-20T11:40:59Z
          Reason:        Completed
          Started At:    2020-11-20T11:40:58Z
      Task Spec:
        Params:
          Name:  config-map
          Type:  string
        Steps:
          Env:
            Name:  CLEAN_WORKSPACE
            Value From:
              Config Map Key Ref:
                Key:   clean_workspace
                Name:  $(inputs.params.config-map)
          Image:       ubuntu
          Name:        build-sources
          Resources:
          Script:  #!/bin/bash

if [ $CLEAN_WORKSPACE == "true" ]; then
echo "Removing $(pwd)"
rm -rf *
else
echo "Not cleaning workspace"
fi

          Working Dir:  $(workspaces.ws-to-clean.path)
        Workspaces:
          Name:  ws-to-clean
  ba--thesis-sample--test--5pdtp-dependency-vulnerability-xsqf4:
    Pipeline Task Name:  dependency-vulnerability
    Status:
      Completion Time:  2020-11-20T11:39:58Z
      Conditions:
        Last Transition Time:  2020-11-20T11:39:58Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-dependency-vulnerability-x-hv4v6
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@****
      Start Time:  2020-11-20T11:32:59Z
      Steps:
        Container:  step-git-source-source-q2zhq
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-q2zhq
        Terminated:
          Container ID:  cri-o://44611e08c177785fba5aa60ee062ae996c002595129c3f5b889374713b315d6a
          Exit Code:     0
          Finished At:   2020-11-20T11:33:16Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:33:15Z
        Container:       step-run-mvn
        Image ID:        docker.io/library/maven@sha256:8e8abdcde705f63990359f3747f5201778d9690e7f90ac3707a2048b43f0bdf0
        Name:            run-mvn
        Terminated:
          Container ID:  cri-o://b3a69c0a21c6922931bfe2d125931a4321e89cca161bfc35b76629a4484cded1
          Exit Code:     0
          Finished At:   2020-11-20T11:39:57Z
          Reason:        Completed
          Started At:    2020-11-20T11:33:17Z
      Task Spec:
        Params:
          Default:  maven
          Name:     maven-image
          Type:     string
          Default:
            install
          Name:  goals
          Type:  array
          Default:
          Name:  mvn-params
          Type:  array
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Args:
            -s
            /mvn-pipeline-config/settings.xml
            -Dmaven.repo.local=$(workspaces.maven-repo.path) $(ADDITIONAL_MVN_PARAMS)
            $(inputs.params.mvn-params)
            $(inputs.params.goals)
          Command:
            mvn
          Env:
            Name:  ADDITIONAL_MVN_PARAMS
            Value From:
              Config Map Key Ref:
                Key:   additional_mvn_params
                Name:  $(inputs.params.config-map)
          Image:       maven
          Name:        run-mvn
          Resources:
          Volume Mounts:
            Mount Path:  /mvn-pipeline-config
            Name:        mvn-pipeline-config-vol
          Working Dir:   /workspace/source
        Volumes:
          Config Map:
            Name:  mvn-pipeline-config
          Name:    mvn-pipeline-config-vol
        Workspaces:
          Name:        maven-repo
          Mount Path:  /workspace/source/target
          Name:        target
  ba--thesis-sample--test--5pdtp-deploy-xnbjm:
    Pipeline Task Name:  deploy
    Status:
      Completion Time:  2020-11-20T11:32:43Z
      Conditions:
        Last Transition Time:  2020-11-20T11:32:43Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-deploy-xnbjm-pod-xhgst
      Start Time:              2020-11-20T11:32:29Z
      Steps:
        Container:  step-execute-hook
        Image ID:   docker.io/library/busybox@sha256:a9286defaba7b3a519d585ba0e37d0b2cbee74ebfe590960b0b1d6a5e97d1e1d
        Name:       execute-hook
        Terminated:
          Container ID:  cri-o://e9313237c7345ea23ba0adeae89dd9aa75224c5344cc9e34ece12cbe32052bfd
          Exit Code:     0
          Finished At:   2020-11-20T11:32:43Z
          Reason:        Completed
          Started At:    2020-11-20T11:32:43Z
      Task Spec:
        Params:
          Description:  Configmap containing hook content
          Name:         config-map
          Type:         string
          Description:  Key name to get content for configMap
          Name:         hook-name
          Type:         string
          Description:  Image to execute hook in
          Name:         image-name
          Type:         string
        Steps:
          Image:  $(inputs.params.image-name)
          Name:   execute-hook
          Resources:
          Script:  cp /config/$(inputs.params.hook-name)_hook hook
chmod +x hook

./hook

          Volume Mounts:
            Mount Path:  /config
            Name:        config-volume
        Volumes:
          Config Map:
            Name:  $(params.config-map)
          Name:    config-volume
  ba--thesis-sample--test--5pdtp-integration-test-jttkq:
    Pipeline Task Name:  integration-test
    Status:
      Completion Time:  2020-11-20T11:32:29Z
      Conditions:
        Last Transition Time:  2020-11-20T11:32:29Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-integration-test-jttkq-pod-dsrqt
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@*****
      Start Time:  2020-11-20T11:31:48Z
      Steps:
        Container:  step-git-source-source-ctjj7
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-ctjj7
        Terminated:
          Container ID:  cri-o://dca320e74744eb4096b2960aa9157b66c337f72e0c6cf1d743b95b7f4b2d0dd8
          Exit Code:     0
          Finished At:   2020-11-20T11:32:08Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:32:07Z
        Container:       step-run-mvn
        Image ID:        docker.io/library/maven@sha256:8e8abdcde705f63990359f3747f5201778d9690e7f90ac3707a2048b43f0bdf0
        Name:            run-mvn
        Terminated:
          Container ID:  cri-o://6dd8a3b6ea7d9419fa2c71fba17a1f18b3a59a2b864701a81afba4b1095f8460
          Exit Code:     0
          Finished At:   2020-11-20T11:32:28Z
          Reason:        Completed
          Started At:    2020-11-20T11:32:08Z
      Task Spec:
        Params:
          Default:  maven
          Name:     maven-image
          Type:     string
          Default:
            install
          Name:  goals
          Type:  array
          Default:
          Name:  mvn-params
          Type:  array
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Args:
            -s
            /mvn-pipeline-config/settings.xml
            -Dmaven.repo.local=$(workspaces.maven-repo.path) $(ADDITIONAL_MVN_PARAMS)
            $(inputs.params.mvn-params)
            $(inputs.params.goals)
          Command:
            mvn
          Env:
            Name:  ADDITIONAL_MVN_PARAMS
            Value From:
              Config Map Key Ref:
                Key:   additional_mvn_params
                Name:  $(inputs.params.config-map)
          Image:       maven
          Name:        run-mvn
          Resources:
          Volume Mounts:
            Mount Path:  /mvn-pipeline-config
            Name:        mvn-pipeline-config-vol
          Working Dir:   /workspace/source
        Volumes:
          Config Map:
            Name:  mvn-pipeline-config
          Name:    mvn-pipeline-config-vol
        Workspaces:
          Name:        maven-repo
          Mount Path:  /workspace/source/target
          Name:        target
  ba--thesis-sample--test--5pdtp-jenkins-reports-hcdzq:
    Pipeline Task Name:  jenkins-reports
    Status:
      Completion Time:  2020-11-20T11:40:43Z
      Conditions:
        Last Transition Time:  2020-11-20T11:40:43Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-jenkins-reports-hcdzq-pod-6kmqp
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@****
      Start Time:  2020-11-20T11:40:24Z
      Steps:
        Container:  step-git-source-source-vn797
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-vn797
        Terminated:
          Container ID:  cri-o://718387b9438d345026b69d4730d543c89f12550e754e98a7a346f129617c2e2a
          Exit Code:     0
          Finished At:   2020-11-20T11:40:41Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:40:41Z
        Container:       step-print-jacoco-params
        Image ID:        docker.io/library/ubuntu@sha256:1d7b639619bdca2d008eca2d5293e3c43ff84cbee597ff76de3b7a7de3e84956
        Name:            print-jacoco-params
        Terminated:
          Container ID:  cri-o://0585a680e2f839524980978b4683a6b4f00ae052f50ae89b266fec7a4b603220
          Exit Code:     0
          Finished At:   2020-11-20T11:40:42Z
          Reason:        Completed
          Started At:    2020-11-20T11:40:42Z
        Container:       step-print-ws-zip-base64-encoded
        Image ID:        docker.io/bitnami/python@sha256:f1618a27ca4ace418f25d6d0195ef3f2b8ce85eae8f04468e77688abd3ec7d18
        Name:            print-ws-zip-base64-encoded
        Terminated:
          Container ID:  cri-o://e181b31cc76102caddd3a84526900b2bdab8a6292c52195f8aca18e504cba407
          Exit Code:     0
          Finished At:   2020-11-20T11:40:43Z
          Reason:        Completed
          Started At:    2020-11-20T11:40:43Z
      Task Spec:
        Params:
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Env:
            Name:  JACOCO_EXCLUSION_PATTERN
            Value From:
              Config Map Key Ref:
                Key:   jacoco_exclusion_pattern
                Name:  $(inputs.params.config-map)
            Name:      JACOCO_INCLUSION_PATTERN
            Value From:
              Config Map Key Ref:
                Key:   jacoco_inclusion_pattern
                Name:  $(inputs.params.config-map)
          Image:       ubuntu
          Name:        print-jacoco-params
          Resources:
          Script:  #!/bin/bash

printf "$JACOCO_EXCLUSION_PATTERN\n$JACOCO_INCLUSION_PATTERN"

          Image:  bitnami/python
          Name:   print-ws-zip-base64-encoded
          Resources:
          Script:  #!/usr/bin/env python3
import shutil
import base64

if "$(inputs.params.binary-file-name)" != '':
  shutil.make_archive('src', 'zip', '.')
  with open("src.zip", 'rb') as in_file:
      encoded = base64.b64encode(in_file.read()).decode('utf-8')
      print(encoded)

          Working Dir:  /workspace/source
        Workspaces:
          Mount Path:  /workspace/source/target
          Name:        target
  ba--thesis-sample--test--5pdtp-jqassistant-checks-rqj9w:
    Pipeline Task Name:  jqassistant-checks
    Status:
      Completion Time:  2020-11-20T11:34:47Z
      Conditions:
        Last Transition Time:  2020-11-20T11:34:47Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-jqassistant-checks-rqj9w-p-sbvmd
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@****
      Start Time:  2020-11-20T11:32:59Z
      Steps:
        Container:  step-git-source-source-n4pw6
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-n4pw6
        Terminated:
          Container ID:  cri-o://6ed1f8eeba43eb290056cf2341fc7a4c04d6c4295a5fbbb4d279b1eeef018431
          Exit Code:     0
          Finished At:   2020-11-20T11:33:16Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:33:15Z
        Container:       step-run-mvn
        Image ID:        docker.io/library/maven@sha256:8e8abdcde705f63990359f3747f5201778d9690e7f90ac3707a2048b43f0bdf0
        Name:            run-mvn
        Terminated:
          Container ID:  cri-o://565199a1b40b8957bcadaa5b1633ad08a443f2111e22dc80da28257da2df4a76
          Exit Code:     0
          Finished At:   2020-11-20T11:34:47Z
          Reason:        Completed
          Started At:    2020-11-20T11:33:17Z
      Task Spec:
        Params:
          Default:  maven
          Name:     maven-image
          Type:     string
          Default:
            install
          Name:  goals
          Type:  array
          Default:
          Name:  mvn-params
          Type:  array
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Args:
            -s
            /mvn-pipeline-config/settings.xml
            -Dmaven.repo.local=$(workspaces.maven-repo.path) $(ADDITIONAL_MVN_PARAMS)
            $(inputs.params.mvn-params)
            $(inputs.params.goals)
          Command:
            mvn
          Env:
            Name:  ADDITIONAL_MVN_PARAMS
            Value From:
              Config Map Key Ref:
                Key:   additional_mvn_params
                Name:  $(inputs.params.config-map)
          Image:       maven
          Name:        run-mvn
          Resources:
          Volume Mounts:
            Mount Path:  /mvn-pipeline-config
            Name:        mvn-pipeline-config-vol
          Working Dir:   /workspace/source
        Volumes:
          Config Map:
            Name:  mvn-pipeline-config
          Name:    mvn-pipeline-config-vol
        Workspaces:
          Name:        maven-repo
          Mount Path:  /workspace/source/target
          Name:        target
  ba--thesis-sample--test--5pdtp-load-config-vjr45:
    Pipeline Task Name:  load-config
    Status:
      Completion Time:  2020-11-20T11:31:01Z
      Conditions:
        Last Transition Time:  2020-11-20T11:31:01Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-load-config-vjr45-pod-gpzkr
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@*****
      Start Time:  2020-11-20T11:30:45Z
      Steps:
        Container:  step-git-source-source-m5xc6
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-m5xc6
        Terminated:
          Container ID:  cri-o://fdb7b1c9c7acf50dddf116215124f6d824de37075bab303ba699deb5a2a127c6
          Exit Code:     0
          Finished At:   2020-11-20T11:30:57Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:30:56Z
        Container:       step-check-non-snapshot-version
        Image ID:        ghcr.io/ctron/kubectl@sha256:0193142643e426f42b82f69c055126a01a4b2be67da9a8a6000b3a6dc54a0e92
        Name:            check-non-snapshot-version
        Terminated:
          Container ID:  cri-o://b6d466a72cd4b4cc99b118b63f85b858b7b9f47142ab6e7d67009c50e7445c8a
          Exit Code:     0
          Finished At:   2020-11-20T11:30:58Z
          Reason:        Completed
          Started At:    2020-11-20T11:30:58Z
        Container:       step-create-config-map-with-values
        Image ID:        ghcr.io/ctron/kubectl@sha256:0193142643e426f42b82f69c055126a01a4b2be67da9a8a6000b3a6dc54a0e92
        Name:            create-config-map-with-values
        Terminated:
          Container ID:  cri-o://927a7145fa1d83036ba097a6eebc2b282019e2ffbd71a247c5d1178ca9d9b676
          Exit Code:     0
          Finished At:   2020-11-20T11:31:00Z
          Message:       [{"key":"deploy-image","value":"busybox","type":"TaskRunResult"},{"key":"maven-image","value":"maven","type":"TaskRunResult"},{"key":"systemtest-image","value":"bitnami/python","type":"TaskRunResult"}]
          Reason:        Completed
          Started At:    2020-11-20T11:30:58Z
      Task Results:
        Name:   deploy-image
        Value:  busybox
        Name:   maven-image
        Value:  maven
        Name:   systemtest-image
        Value:  bitnami/python
      Task Spec:
        Description:  - Checks precondition (SNAPSHOT-version)
- loads ConfigMap based on pipeline_config.properties file in Git-Repository
- provides image names for hook based steps as result

        Params:
          Description:  Name of the PipelineRun
          Name:         pipeline-name
          Type:         string
          Description:  UID of the PipelineRun
          Name:         pipeline-uid
          Type:         string
        Resources:
          Inputs:
            Description:  Git-Repository of the project to build
            Name:         source
            Type:         git
        Results:
          Description:  Comma-separated list of optional steps to be executed
          Name:         optional-tasks
          Description:  Name of docker image to execute maven tasks in
          Name:         maven-image
          Description:  Name of docker image to execute deploy hook in (defaults to empty)
          Name:         deploy-image
          Description:  Name of docker image to execute systemtest hook in (defaults to empty)
          Name:         systemtest-image
        Steps:
          Image:  ghcr.io/ctron/kubectl:latest
          Name:   check-non-snapshot-version
          Resources:
          Script:  #!/bin/bash

version=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='version']/text()" pom.xml)

if [[ "$version" != *-SNAPSHOT ]]; then
read -r -d '' CANCEL << EOF
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: "$(inputs.params.pipeline-name)"
spec:
status: "PipelineRunCancelled"
EOF

printf "$CANCEL" | kubectl apply -f -
fi
printf "Running on SNAPSHOT version, continuing"

          Working Dir:  /workspace/source
          Image:        ghcr.io/ctron/kubectl:latest
          Name:         create-config-map-with-values
          Resources:
          Script:  #!/bin/bash

source ./pipeline_config.properties

# prepend script lines with yaml intendation
deploy_hook=$(printf "$deploy_hook" | sed 's/.*/        &/')
systemtest_hook=$(printf "$systemtest_hook" | sed 's/.*/        &/')

# load defaults (non empty)
: "${maven_image:=maven}"
: "${jacoco_exclusion_pattern:=**/test*/**/*.class,**/gen/**/*.class}"
: "${jacoco_inclusion_pattern:=de/..../**/*.class}"
: "${clean_workspace:=true}"

read -r -d '' MAP << EOF
apiVersion: v1
kind: ConfigMap
metadata:
ownerReferences:
  - apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    name: "$(inputs.params.pipeline-name)"
    uid:  "$(inputs.params.pipeline-uid)"
name: "$(inputs.params.pipeline-name)-config"
data:
maven_image: "$maven_image"
additional_mvn_params: "$additional_mvn_params"
deploy_hook: |$deploy_hook
deploy_image: "$deploy_image"
systemtest_hook: |$systemtest_hook
systemtest_image: "$systemtest_image"
sonar_id: "$sonar_id"
jacoco_exclusion_pattern: "$jacoco_exclusion_pattern"
jacoco_inclusion_pattern: "$jacoco_inclusion_pattern"
clean_workspace: "$clean_workspace"
EOF

printf "$MAP" | kubectl create -f -

printf "$maven_image" > $(results.maven-image.path)
printf "$deploy_image" > $(results.deploy-image.path)
printf "$systemtest_image" > $(results.systemtest-image.path)

          Working Dir:  /workspace/source
  ba--thesis-sample--test--5pdtp-nexus-upload-q4x7b:
    Pipeline Task Name:  nexus-upload
    Status:
      Completion Time:  2020-11-20T11:40:24Z
      Conditions:
        Last Transition Time:  2020-11-20T11:40:24Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-nexus-upload-q4x7b-pod-9szpl
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@****
      Start Time:  2020-11-20T11:39:58Z
      Steps:
        Container:  step-git-source-source-thvvf
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-thvvf
        Terminated:
          Container ID:  cri-o://26ad854f251e50d4b02a03886a23eca1d561d7c78a1877698958adb7ee875105
          Exit Code:     0
          Finished At:   2020-11-20T11:40:11Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@*****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:40:11Z
        Container:       step-run-mvn
        Image ID:        docker.io/library/maven@sha256:8e8abdcde705f63990359f3747f5201778d9690e7f90ac3707a2048b43f0bdf0
        Name:            run-mvn
        Terminated:
          Container ID:  cri-o://07240400a772a43c32dae9080ee2c147ab8549eb05427b7b16c7b57afd8d7a0b
          Exit Code:     0
          Finished At:   2020-11-20T11:40:23Z
          Reason:        Completed
          Started At:    2020-11-20T11:40:12Z
      Task Spec:
        Params:
          Default:  maven
          Name:     maven-image
          Type:     string
          Default:
            install
          Name:  goals
          Type:  array
          Default:
          Name:  mvn-params
          Type:  array
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Args:
            -s
            /mvn-pipeline-config/settings.xml
            -Dmaven.repo.local=$(workspaces.maven-repo.path) $(ADDITIONAL_MVN_PARAMS)
            $(inputs.params.mvn-params)
            $(inputs.params.goals)
          Command:
            mvn
          Env:
            Name:  ADDITIONAL_MVN_PARAMS
            Value From:
              Config Map Key Ref:
                Key:   additional_mvn_params
                Name:  $(inputs.params.config-map)
          Image:       maven
          Name:        run-mvn
          Resources:
          Volume Mounts:
            Mount Path:  /mvn-pipeline-config
            Name:        mvn-pipeline-config-vol
          Working Dir:   /workspace/source
        Volumes:
          Config Map:
            Name:  mvn-pipeline-config
          Name:    mvn-pipeline-config-vol
        Workspaces:
          Name:        maven-repo
          Mount Path:  /workspace/source/target
          Name:        target
  ba--thesis-sample--test--5pdtp-systemtest-8hjqw:
    Pipeline Task Name:  systemtest
    Status:
      Completion Time:  2020-11-20T11:32:57Z
      Conditions:
        Last Transition Time:  2020-11-20T11:32:57Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-systemtest-8hjqw-pod-rqnbn
      Start Time:              2020-11-20T11:32:45Z
      Steps:
        Container:  step-execute-hook
        Image ID:   docker.io/bitnami/python@sha256:f1618a27ca4ace418f25d6d0195ef3f2b8ce85eae8f04468e77688abd3ec7d18
        Name:       execute-hook
        Terminated:
          Container ID:  cri-o://aed0b3ca6ac3052448b62fac1541dde09f61428d5def2e4c5dc65bf7fae48c63
          Exit Code:     0
          Finished At:   2020-11-20T11:32:56Z
          Reason:        Completed
          Started At:    2020-11-20T11:32:56Z
      Task Spec:
        Params:
          Description:  Configmap containing hook content
          Name:         config-map
          Type:         string
          Description:  Key name to get content for configMap
          Name:         hook-name
          Type:         string
          Description:  Image to execute hook in
          Name:         image-name
          Type:         string
        Steps:
          Image:  $(inputs.params.image-name)
          Name:   execute-hook
          Resources:
          Script:  cp /config/$(inputs.params.hook-name)_hook hook
chmod +x hook

./hook

          Volume Mounts:
            Mount Path:  /config
            Name:        config-volume
        Volumes:
          Config Map:
            Name:  $(params.config-map)
          Name:    config-volume
  ba--thesis-sample--test--5pdtp-unit-test-mddsq:
    Pipeline Task Name:  unit-test
    Status:
      Completion Time:  2020-11-20T11:32:29Z
      Conditions:
        Last Transition Time:  2020-11-20T11:32:29Z
        Message:               All Steps have completed executing
        Reason:                Succeeded
        Status:                True
        Type:                  Succeeded
      Pod Name:                ba--thesis-sample--test--5pdtp-unit-test-mddsq-pod-kgszl
      Resources Result:
        Key:            commit
        Resource Name:  source
        Resource Ref:
          Name:         source
        Value:          7aea9d34eb7985731525c94adc534d0c126cda95
        Key:            url
        Resource Name:  source
        Resource Ref:
          Name:    source
        Value:     ssh://git@****
      Start Time:  2020-11-20T11:31:48Z
      Steps:
        Container:  step-git-source-source-ph6bt
        Image ID:   gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:0f535b791c0cb7a698af732ae6c37fa36b6e55181f697cbee3b940ab5358573f
        Name:       git-source-source-ph6bt
        Terminated:
          Container ID:  cri-o://f8a36c360bfc833360b9d73a1d4a2ed018c083a3dfc386297d24877bbbf814fd
          Exit Code:     0
          Finished At:   2020-11-20T11:32:08Z
          Message:       [{"key":"commit","value":"7aea9d34eb7985731525c94adc534d0c126cda95","resourceName":"source","resourceRef":{"name":"source"}},{"key":"url","value":"ssh://git@****","resourceName":"source","resourceRef":{"name":"source"}}]
          Reason:        Completed
          Started At:    2020-11-20T11:32:07Z
        Container:       step-run-mvn
        Image ID:        docker.io/library/maven@sha256:8e8abdcde705f63990359f3747f5201778d9690e7f90ac3707a2048b43f0bdf0
        Name:            run-mvn
        Terminated:
          Container ID:  cri-o://718d82d8a5aa7e18a34ccb33fec1781937584539170bfede4747727d668d288a
          Exit Code:     0
          Finished At:   2020-11-20T11:32:28Z
          Reason:        Completed
          Started At:    2020-11-20T11:32:08Z
      Task Spec:
        Params:
          Default:  maven
          Name:     maven-image
          Type:     string
          Default:
            install
          Name:  goals
          Type:  array
          Default:
          Name:  mvn-params
          Type:  array
          Name:  config-map
          Type:  string
        Resources:
          Inputs:
            Name:  source
            Type:  git
        Steps:
          Args:
            -s
            /mvn-pipeline-config/settings.xml
            -Dmaven.repo.local=$(workspaces.maven-repo.path) $(ADDITIONAL_MVN_PARAMS)
            $(inputs.params.mvn-params)
            $(inputs.params.goals)
          Command:
            mvn
          Env:
            Name:  ADDITIONAL_MVN_PARAMS
            Value From:
              Config Map Key Ref:
                Key:   additional_mvn_params
                Name:  $(inputs.params.config-map)
          Image:       maven
          Name:        run-mvn
          Resources:
          Volume Mounts:
            Mount Path:  /mvn-pipeline-config
            Name:        mvn-pipeline-config-vol
          Working Dir:   /workspace/source
        Volumes:
          Config Map:
            Name:  mvn-pipeline-config
          Name:    mvn-pipeline-config-vol
        Workspaces:
          Name:        maven-repo
          Mount Path:  /workspace/source/target
          Name:        target
Events:
Type    Reason     Age                    From         Message
----    ------     ----                   ----         -------
Normal  Started    3h42m (x2 over 3h42m)  PipelineRun
Normal  Running    3h42m (x2 over 3h42m)  PipelineRun  Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 11, Skipped: 0
Normal  Running    3h42m                  PipelineRun  Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 10, Skipped: 0
Normal  Running    3h41m                  PipelineRun  Tasks Completed: 2 (Failed: 0, Cancelled 0), Incomplete: 9, Skipped: 0
Normal  Running    3h40m (x2 over 3h40m)  PipelineRun  Tasks Completed: 4 (Failed: 0, Cancelled 0), Incomplete: 7, Skipped: 0
Normal  Running    3h40m (x2 over 3h40m)  PipelineRun  Tasks Completed: 5 (Failed: 0, Cancelled 0), Incomplete: 6, Skipped: 0
Normal  Running    3h40m                  PipelineRun  Tasks Completed: 6 (Failed: 0, Cancelled 0), Incomplete: 5, Skipped: 0
Normal  Running    3h38m                  PipelineRun  Tasks Completed: 7 (Failed: 0, Cancelled 0), Incomplete: 4, Skipped: 0
Normal  Running    3h33m                  PipelineRun  Tasks Completed: 8 (Failed: 0, Cancelled 0), Incomplete: 3, Skipped: 0
Normal  Running    3h32m (x2 over 3h32m)  PipelineRun  Tasks Completed: 9 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0
Normal  Running    3h32m (x2 over 3h32m)  PipelineRun  (combined from similar events): Tasks Completed: 10 (Failed: 0, Cancelled 0), Incomplete: 1, Skipped: 0
Normal  Succeeded  3h32m (x2 over 3h32m)  PipelineRun  Tasks Completed: 11 (Failed: 0, Cancelled 0), Skipped: 0

Pipeline is not that simple unfortunately. I can try to make an minimal example next week if needed?

Any special reason for running a pipeline in the tekton-pipelines namespace?

Nope, just havent changed it yet. Will do so next week. Thanks for pointing it out.

I have updated my application to save if an event was already handled. So my issue is solved.

Thanks for the update on this issue, I'm glad you found a solution.
@GregDritschler found out that a change to the taskrun / pipelinerun, for instance adding a label, will trigger another reconcile. If the timing is right the informer cache may be stale, thus making it more likely to have duplicate start events - see https://github.com/tektoncd/pipeline/pull/3558#.
I don't see any extra label or annotation in your pipeline, so perhaps your issue is a different one, but I wanted to let you know anyways.
Even without updates with labels, there is a slight chance that the informer cache may be out of sync when a new reconcile start, so @GregDritschler is also working on fixing the case where this could lead to duplicate taskrun creation. It will not solve the case of duplicate start events, so it's good that you handle that on your side.
It would be interesting to understand why this happens so often for you. Could you perhaps share more information about what is your process for creating a pipelinerun?

I did try to add some additional information via a patch on the pipelinerun (either annotation or label). Probably this triggered the additional reconcile run.
Use case was the following:

Pipeline starts
another task is started with the started event, the Id of this was added as Label to be able to retrieve it later on other events more easily.

I solved it for me by caching it in the sink and not adding it to the pipelinerun as it's not needed there specifically


[RESOLVED] Interface eth0(): High error rate (>2 for 5m)

Problem started at 09:54:29 on 2023.04.18
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Operational data: errors in: 1, errors out: 0
Original problem ID: 18904
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23483&eventid=18904

Problem has been resolved in 3m 0s at 09:57:29 on 2023.04.18
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Original problem ID: 18904


refactor(quickstart): remove opt-in fragments from quickstart data

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines

Description of change

Removes opt in fragments from quickstart.
opt in fragments were removed from uPortal after 5.0.0-M10.
https://github.com/Jasig/uPortal/pull/1034
Prompted by: https://github.com/Jasig/uPortal/pull/1035#issuecomment-337756819

Looks great.  :+1:
This one isn't dependent on the new uPortal build, so I'll merge it now.  (The other one should go in w/ RC1.)


Ability to enable or disable future parser for Puppet 3.2+

This adds the flag to the command line program -p, --parser or in the Rake context, parser.
All tests pass (Puppet 3.8, Ruby 2.0.0) and I included a new integration test.
This also fixes the issue that #21 was seeing, the tests wouldn't pass (Puppet 3.8) without that change.
I'd love a merge and a push to rubygems. Thanks!

Merged. Thanks for the patch! I will upload a new gem as soon as possible


Update skflow README

I will make a note in tensorflow/skflow to direct new users to post issues and PRs here instead.

Can one of the admins verify this patch?

@tensorflow-jenkins test this please.


You and me and her steam release compatibility

Hi again Marcus, i hope you're having a nice day, today i bough Totono in his Steam release with the intention of working in that version for translation but with the actual tools, not work. It's there a posibility to fix that?
Thanks in advance and sorry for the inconvienence!

The MwareHook don't worked with the release?
Anyway, I will need the game downloaded to do that, upload it and send to my email a link

Nope, not work. And sure, sent it right now!
Thanks for your time

Downloading, well, probbly the MwareHook don't worked because you don't cracked the Steam Stub, but I will confirm here, if is the case I will update the MwareHook to detect the steam stub and ask for crack it.

My friend, you didn't said the MwareHook don't worked?

Well, whatever, I will update the NPKTool... just a sec.

Test it, if everything works close the issue.

All works perfect! Thanks again for your time!
Have a nice day!


Ubuntu support

Hello, I tested on Ubuntu and it works 🎉
I made a little script if anyone is interested to make the installation easier:
# Fetching last versin of x11-emoji-picker
wget -q https://api.github.com/repos/GaZaTu/x11-emoji-picker/releases/latest
echo "Retrieve the last package..."
grep 'browser_download_url": ".*.deb"' latest | awk '{ print substr ($0, 32 ) }' | awk '{ print substr( $0, 1, length($0)-1 ) }' > url
rm latest
# Downloading package
wget -q --show-progress -i url -O x11-emoji-picker.deb
rm url
# Installing dependencies
wget -q --show-progress http://ftp.br.debian.org/debian/pool/main/i/icu/libicu57_57.1-6+deb9u4_amd64.deb
sudo apt install ./libicu57_57.1-6+deb9u4_amd64.deb -y
rm libicu57_57.1-6+deb9u4_amd64.deb
# Installing the emoji picker
sudo apt install ./x11-emoji-picker.deb -y
# Deleting the .deb
rm x11-emoji-picker.deb

# Adding the keyboard shortcut
# Fetching customs keyboard shortcuts
CUSTOM_KEYBINDINGS_LIST=$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings)
if [[ $CUSTOM_KEYBINDINGS_LIST == "@as []" ]] # Creating new list if not exists
then
    CUSTOM_KEYBINDINGS_LIST="['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/x11-emoji-picker/']"
else # If already existing, adding our new element
    CUSTOM_KEYBINDINGS_LIST="${CUSTOM_KEYBINDINGS_LIST::-1}, '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/x11-emoji-picker/']"
fi
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "$CUSTOM_KEYBINDINGS_LIST" # On met à jour la liste
# Naming it
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/x11-emoji-picker/ name 'Emoji Picker' # Set name
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/x11-emoji-picker/ command 'emoji-picker' # Set command
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/x11-emoji-picker/ binding '<Super>semicolon' # Set shortcut

echo ""
echo "Emoji picker installed"
echo "Select \"InputMethod: activate window & default\""

The script installs libicu57 because it is not in Ubuntu and not in the apt list!
The script also adds a shortcut to use the program, here I put Super+;, but you can of course customize it either in the script or in the settings (GUI)

Looks great, thank you for making this. 😊
We could also add the script to the repo itself. So if you want to, just create a PR with the script and an explanation in the README somewhere under "installation".
ps: Regarding the installation of libicu57: i should probably build a .deb on Ubuntu aswell some time considering how common that distro is. 😅

Why not use jq instead of grep/awk magic at line 4. in your script I think it should do better job, it relies on the input being a valid json though.

After our secret society meeting we concluded that using jq would be a tad better. 😏
There's 2 options now: either add a line to apt install jq if it's not installed yet or add a line to prompt the user to installed it themselves if it's not installed.
I'm fine with either.
An example line for option 1:
if ! command -v jq &> /dev/null; then; echo "jq not found, installing through apt"; sudo apt install jq; fi

just for reference: i added a .deb built for ubuntu under /releases (Nightly Build) which won't require installing ICU manually 🥳

I just did the PR, I never used jq so I hope I didn't mess up too much.
By the way, thanks for the Ubuntu version, it makes things easier! However I don't feel it works, here is what I have:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'x11-emoji-picker' instead of './x11-emoji-picker-x86_64-ubuntu.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 x11-emoji-picker : Depends: libicu66 (>= 66.1-1~) but it is not installable
E: Unable to correct problems, you have held broken packages.

Oh, turns out i'm dumb. 😅
I have to build all artifacts on older but not too old versions. Or do i have to build different artifacts for all recent versions of Ubuntu, Debian and so on?
Mhh I think I'll ask some people later today on how to do this. (I promise the Ubuntu artifact will work starting tomorrow 😉)

OK looks like the script will need some editing to check for the users ubuntu version (could be done by reading /etc/issue or /etc/os-release) because i'll have to build artifacts for all versions i'm willing to support. 😣
In this case it would be 18.04 and 20.04 i guess (-ubuntu-20.04.deb for example). The script would have to download the appropriate version then.
Maybe a fallback to download the .AppImage (if there's no artifact available for the installed version) could be considered aswell.
Now that i think about it 🤔 I should probably adapt your script to eventually download and install the emoji picker (plus registering the keybind) for all distros I'm willing to support.

OK i added a super mega all encompassing install.sh now which downloads the correct package for your current distro and distro version. 🎉🎊🥳
And with that we should be done with this issue i think.

It works perfectly, thank you very much!


Fix CROSSTOOL to work on OS X [phab:D1525]

Created by salguarnieri at 2017-04-14 18:58:09:
The update to our CROSSTOOL broke some tests on OS X. This surfaced as
dyld errors link the ticket attached to this commit. If we don't modify
the code as in this commit, we ignore the CROSSTOOL.tpl file.

salguarnieri wrote at 2017-04-14 19:05:03:
Linux sanity check: bazel clean --expunge && bazel test //...:all passes all tests

fromberger accepted this revision at 2017-04-14 20:09:10

salguarnieri closed via commit 6c84ab972b3ce088571c5c5d83ffa9c8268817e8 at 2017-04-17 12:08:32


Cupertino pickers are not focusable with a keyboard

@goderbauer
@gspencergoog
@lorenzOliveto

@darrenaustin is this something you can look into?
@gspencergoog does any of your recent work make this trivial?

Well, I don't know about trivial, but FocusableActionDetector makes it pretty compact to implement focus, hover, shortcuts, and activation actions.

More issues got in the way. No progress yet. Still in my queue.

I wasn't very familiar with our current keyboard / focus work so I brushed up a bit.
However, I wound up in a rabbit hole a bit. The "correct" solution is non-obvious and likely multi-quarter so we'll likely need some more guidance on the specific blocker @gmoraja.
To make a long story long,

What the right focus highlight UI should be is platform dependent. What the focus indicator looks like on macOS (FR not yet implemented) is different from what the focus indicator looks like on iPadOS (FR not yet implemented), and is different from what the focus indicator looks like on Android and web (I assume we made a lot more progress there @gspencergoog). @gmoraja what circumstance is your primary use case? We can focus on unblocking on that platform first than having all options for all platforms.
Specifically for CupertinoPicker and the upstream UIPickerView, it's also not clear what the focus highlight UI should be. UIPickerView itself is not keyboard focusable AFAICT. You can't focus onto it and operate with a keyboard on iPadOS and there are no UIPickerViews in AppKit for macOS. The accessibility highlight for VoiceOver for iOS is not very pretty so we probably don't want to follow that example for keyboard focus

I think we'll have to create something custom not based on Apple spec for this unfortunately.

@xster we’re using CupertinoPickers and CupertinoDatePickers on Android to let users choose from a list of elements (CupertinoPickers) or a duration in hours and minutes (CupertinoDatePickers).
Our app needs to be fully accessible so all the sections need to be navigable with a keyboard.

I meant that it's unclear how the focus highlight should visually appear since there are no prior art. But we could just make up something non-standard (since there are no standards). WDYT?

If nothing else, just implementing something non-standard would give us a place to plug in a "correct" solution in the future, and provide some functionality in the meantime.

Using the  Apple magic keyboard on iOS 14, native picker focused but not in Flutter

code sample
import 'package:flutter/cupertino.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoApp(
      title: 'Cupertino App',
      home: CupertinoPageScaffold(
        navigationBar: CupertinoNavigationBar(
          middle: Text('Cupertino App Bar'),
        ),
        child: Center(
          child: Container(
            height: 300,
            child: CupertinoDatePicker(
                mode: CupertinoDatePickerMode.dateAndTime,
                onDateTimeChanged: (dateTime) {}),
          ),
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 1.22.0-10.0.pre.204, on Mac OS X 10.15.6 19G2021,
    locale en-GB)
    • Flutter version 1.22.0-10.0.pre.204 at
      /Users/tahatesser/Code/flutter_master
    • Framework revision b2b5f2636a (23 hours ago), 2020-09-16 08:02:06 -0700
    • Engine revision 1ef10b240e
    • Dart version 2.10.0 (build 2.10.0-124.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.49.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (4 available)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS
      14.0
    • macOS (desktop)        • macos                     • darwin-x64     • Mac
      OS X 10.15.6 19G2021
    • Web Server (web)       • web-server                • web-javascript •
      Flutter Tools
    • Chrome (web)           • chrome                    • web-javascript •
      Google Chrome 85.0.4183.102

• No issues found!

Could someone please answer for me whether Flutter is supposed to support navigation with a bluetooth keyboard in iOS? I have read through many Github issues and seem to get conflicting answers. I cannot access my Flutter app via a keyboard. I would like to tab to different input elements but cannot seem to figure out how to do this. Thank you.

Reproducible on stable 3.3 and master 3.7

flutter doctor -v (mac)
[✓] Flutter (Channel master, 3.7.0-13.0.pre.131, on macOS 13.1 22C65 darwin-arm64, locale en-IN)
    • Flutter version 3.7.0-13.0.pre.131 on channel master at /Users/mahesh/Development/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0196e6050b (2 days ago), 2022-12-31 11:10:23 -0500
    • Engine revision 932591ec04
    • Dart version 3.0.0 (build 3.0.0-76.0.dev)
    • DevTools version 2.20.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks
      and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.74.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.56.0

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 108.0.5359.124

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel stable, 3.3.9, on macOS 12.6 21G115 darwin-arm, locale en-IN)
    • Flutter version 3.3.9 on channel stable at /Users/mahesh/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (24 hours ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.70.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.53.20221101

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.6 21G115 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 107.0.5304.110

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!


build kernel for arm systems

Currently, the kernel build process only works for x86 machines. Since we also target arm machines this needs to change. Cross compiling is a pain so it will probably end up being a set of scripts we have to run on an arm machine to compile Linux. But these have to be created.

Kernel building has been obsoleted (hopefully) after merging #25, hence this issue is closed since it is no longer relevant


[New Feature]: add restart button & Home button & How to play section

🎮 feature Request
add restart button after game start so that user can restart if needed , and home button for back to return home page.
Point down the features
add restart button after game start so that user can restart if needed
home button for back to return home page.
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

please assign issue to me as contributer GSSOC'24

Both ideas are good. For the home button, there's already a PR open for exit button but I'm waiting for changes. You can implement that part too and if the person doesn't respond soon, your PR will take care of it

If you have any doubt you can directly send message on our discord (https://discord.gg/rZb46cCMmK), we have created separate channels for all projects...
Thank you :)

i want to work on this project, kindly assign this issue to me


long time for request

Hi again 👍
my code works and I am happy.
But the request time is very long:
My code:
<?php

echo "Start :".date("d.m.Y - H:i:s");

require 'inc/config.php'; // Credentials
require 'vendor/autoload.php';

use MStilkerich\CardDavClient\{Account, AddressbookCollection, Config};
use Psr\Log\{AbstractLogger, NullLogger, LogLevel};
use Sabre\VObject\Component\VCard;

class StdoutLogger extends AbstractLogger {
	public function log($level, $message, array $context = array()) {
		if ($level !== LogLevel::DEBUG) {
	    	$ctx = empty($context) ? "" : json_encode($context);
	       	echo ">>> ".$message . $ctx . "
";
	    }
	}
}

	$log = new StdoutLogger();
	Config::init($log);

	$account = new Account(URL, USERNAME, PASSWORD);
	$abook = new AddressbookCollection(URL, $account);
	$contacts = $abook->getChildren();

	foreach ($contacts as $contact) {
	  $vcard = $abook->getCard($contact->getUri());

		if (isset($vcard["vcard"]->EMAIL)) {

		    foreach($vcard["vcard"]->EMAIL as $email) {

		        if ($email ==<EMAIL_ADDRESS>{

		        	exit();

		        }

		    }

		}

	}
	echo "
";
	echo "END: ".date("d.m.Y - H:i:s");
?>

Output:

START: 15.01.2021 - 12:04:46
END: 15.01.2021 - 12:05:18

This are 30 seconds.
Can you explain me why? :(

Well, you download the entire addressbook each time, and that using the most inefficient method of one request per card. So if you have a lot of cards / huge cards (photos) or a slow connection to the server, it may take a while.
The library currently mostly targets the use case of synchronizing an addressbook with a local cache of the VCards. The incremental synchronization normally is very fast. For your use case, addressbook-query would be best, but it is not yet supported (#2).
So:

You can use synchronize() as quickstart.php does. It downloads all cards in a single request, so it saves some overhead. For starters, simply run the original quickstart.php and see how long it takes.
You can tell synchronize() that you are only interested in the EMAIL property. (quickstart.php only asks for the FN property, so you have to adapt the parameter from the example). However, don't get your hopes up as while this feature is defined in the CardDAV spec, I have not yet found a server that supports it :-(
You can locally store the addressbook and perform incremental syncs. This would be a lot faster.
You can wait until I have implemented #2 :-)

Well, you download the entire addressbook each time, and that using the most inefficient method of one request per card. So if you have a lot of cards / huge cards (photos) or a slow connection to the server, it may take a while.
The library currently mostly targets the use case of synchronizing an addressbook with a local cache of the VCards. The incremental synchronization normally is very fast. For your use case, addressbook-query would be best, but it is not yet supported (#2).
So:

You can use synchronize() as quickstart.php does. It downloads all cards in a single request, so it saves some overhead. For starters, simply run the original quickstart.php and see how long it takes.
You can tell synchronize() that you are only interested in the EMAIL property. (quickstart.php only asks for the FN property, so you have to adapt the parameter from the example). However, don't get your hopes up as while this feature is defined in the CardDAV spec, I have not yet found a server that supports it :-(
You can locally store the addressbook and perform incremental syncs. This would be a lot faster.
You can wait until I have implemented #2 :-)

I would like to wait for #2 ;)
How long it will take? :)

I would like to wait for #2 ;)
How long it will take? :)

It will take a while until this is properly implemented and tested. There is a quick proof of concept available on the issue2_addressbook_query that you can try. It appears to work for your use case, but I really haven't tested it very much.
$contacts = $abook->query(
     ['EMAIL' => '%foo%'], // this is the filter conditions, see QueryConditions.php for documentation
     [ 'FN', 'EMAIL' ]   // this is the list of properties asked for - omit if you want the full vcards
);

foreach ($contacts as $card) {
    $card = $card["vcard"];
    // whatever you want to do with it
}

Consider this an early proof of concept, which will have bugs and may be subject to change until the released version.
To have composer fetch the branch, change the dependency in composer.json to:
"mstilkerich/carddavclient": "dev-issue2_addressbook_query"

And then run
composer update

It will take a while until this is properly implemented and tested. There is a quick proof of concept available on the issue2_addressbook_query that you can try. It appears to work for your use case, but I really haven't tested it very much.
$contacts = $abook->query(
     ['EMAIL' => '%foo%'], // this is the filter conditions, see QueryConditions.php for documentation
     [ 'FN', 'EMAIL' ]   // this is the list of properties asked for - omit if you want the full vcards
);

foreach ($contacts as $card) {
    $card = $card["vcard"];
    // whatever you want to do with it
}

Consider this an early proof of concept, which will have bugs and may be subject to change until the released version.
To have composer fetch the branch, change the dependency in composer.json to:
"mstilkerich/carddavclient": "dev-issue2_addressbook_query"

And then run
composer update

Okay, I will wait for the final solution :)

Okay, I will wait for the final solution :)


porting/linux: fix deadlock in ble_npl_hw_enter_critical

Fix wrong mutex attributes in pthread_mutexattr_settype. It can cause deadlock after locked.

side effect of this change https://github.com/apache/mynewt-nimble/pull/1031 @sjanc

@gavin-yy FYI


chore: typo fixes

Misspelled word and incorrect article usage.

nice try lmao

Github farming useless PR, please do not merge.


Slow opening of the right-click menu

Description
Like I said in the title, the application is really slow when opening of the right-click menu.
It draws the menu, stuck on it loading some sort of shell extensions (winrar, onedrive, nothing special...) and redraw the menu after 3-6 seconds
Steps To Reproduce
Right-click with mouse over a file (executable, picture...)
See
Steps to fix
You have to wait
Files Version
2.4.25 and latest 3 official versions (since I start to use this software)
Windows Version
Windows 11 22H2
Relevant Assets/Logs
debug.log

Merging with #10994

@GDT1978 thank you for your feedback, performance is a top priority and we're looking for ways to improve the performance of the context menu.


Clean logging dependencies

Mark logback as a test dependency for pac4j-saml
Exclude commons-logging and add jcl-over-slf4j

:+1:


Test binary measured boot event log parsing

Add a test to test_tpm.py to test measured boot event log parsing.
Signed-off-by: Anderson Toshiyuki Sasaki<EMAIL_ADDRESS>

Codecov Report

Merging #1166 (bd14b59) into master (8464d77) will decrease coverage by 0.09%.
The diff coverage is 70.58%.

:exclamation: Current head bd14b59 differs from pull request most recent head 15d4c33. Consider uploading reports for the commit 15d4c33 to get more accurate results

Additional details and impacted files

Flag
Coverage Δ

packit-e2e
72.43% <70.58%> (-0.11%)
:arrow_down:

testsuite
55.46% <70.58%> (+1.29%)
:arrow_up:

unittests
14.60% <0.00%> (-0.02%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

keylime/cloud_verifier_tornado.py
67.05% <63.63%> (-0.13%)
:arrow_down:

keylime/tpm_bootlog_enrich.py
38.34% <83.33%> (+0.46%)
:arrow_up:

keylime/cmd_exec.py
87.87% <0.00%> (-6.07%)
:arrow_down:

keylime/tpm/tpm_main.py
74.22% <0.00%> (-0.93%)
:arrow_down:

keylime/registrar_common.py
59.38% <0.00%> (+0.92%)
:arrow_up:


Fix overlay instructions in README

Fix overlay

Dear @9999years, do you think you could make a review on this ?

Yeah, thanks for this! I'm not sure why I didn't see the notification for the PR originally.

Thanks !


[EXPERIMENTAL] Add support for dynamic frames per clip

The S3D model (see #6412) uses a less common validation protocol which requires passing all the available frames during inference. Currently this is not possible.
This PR attempts to change this (untested) by making the specific option optional. The "solution" is quite messy, not sure we should merge or if we should leave as a reference patch for people who want to reproduce the accuracy of the model.

Using this PR, S3D achieves the following accuracy:
torchrun --nproc_per_node=8 train.py --data-path="/datasets01/kinetics/070618/400/" --batch-size=1 --test-only --cache-dataset --clip-len 0 --clips-per-video 1 --model s3d --weights="S3D_Weights.DEFAULT"
 * Clip Acc@1 67.112 Clip Acc@5 87.588

cc @sophiazhi

Closing as this doesn't improve a significant improvement from our previous result and it's quite messy and non-standard to support.


Operation not permitted error on ubuntu:22.04

$ docker run -it mambaorg/micromamba:git-dee2e1b-jammy
terminate called after throwing an instance of 'std::system_error'
  what():  Operation not permitted
terminate called after throwing an instance of 'std::system_error'
  what():  Operation not permitted
/usr/local/bin/_activate_current_env.sh: line 35:    13 Aborted                 (core dumped) micromamba activate "${ENV_NAME}"

It's working fine on focal. Seems like the privilege issue on jammy.

Hi @emmaai - thanks for the report. Please upgrade to the latest version of Docker and let me know if the issue still exists for you.
Reference: https://askubuntu.com/questions/1408696/c-threads-fail-on-ubuntu-22-04

Hi @emmaai - thanks for the report. Please upgrade to the latest version of Docker and let me know if the issue still exists for you.
Reference: https://askubuntu.com/questions/1408696/c-threads-fail-on-ubuntu-22-04

Thanks a lot!  I just found out when trying to build from ubuntu:jammy.


[Bug 🐞]: Some nodes were incorrectly added to my farm on qanet

What happened?
I found some nodes linked to one of my farms on qanet and i didn't add these nodes there. And the location of these nodes is Vietnam.

The nodes were added to farm 33 which is one of the farms that i have on this twin twin 16.
After checking the explorer on mainnet and filtering by farm 33, i found that nodes that belong to farm 33 are also located in Vietnam.

So my guess is the user that owns farm 33 on mainnet tried to boot some nodes on qanet but added the wrong farm id for the qanet farm which coincidentally happened to be on of my farms.
What did you expect?
Nodes shouldn't be added to a farm unless the twin that performs this action owns the mentioned farm.
What browsers are you seeing the problem on?
No response
ZOS info
No response
Dashboard info
Qanet v1.4.0-rc10
weblets info
No response
Relevant log output
No response

duplicate https://github.com/threefoldtech/zos/issues/1825


Fix missing authorization check on pull for public repos of private/limited org

Fixes https://github.com/go-gitea/gitea/issues/11651

Might need backport to v1.11 too

Somehow this broke TestGit/HTTP/PushCreate

Should be fixed

Ping LG-TM


L2 int8 neon implementation

L2 int8 neon implementation
This PR contains a neon implementation of L2 distance for int8. I was not exactly sure how to test this effectively given that it is dependent on architecture. So, below I will detail how I tested this work locally on my 8-core M1 Pro.
Correctness
The first thing to confirm is whether results are consistent with the existing sequential method. I used the following script for this (note: this depends on my other PR adding json input support for int8 vectors):
.bail on
.mode box
.header on

.load ./dist/vec0
create virtual table vectors using vec0(
  vec int[9]
);
insert into vectors(rowid, vec)
  values
    (1, vec_int8('[1, 2, 3, 4, 5, 6, 7, 8, 1]')),
    (2, vec_int8('[1, 20, 38, 23, 29, 4, 10, 9, 3]'));

.timer on
SELECT v1.rowid as id1, v2.rowid as id2, vec_distance_l2(v1.vec, v2.vec) as l2_distance
FROM vectors v1
CROSS JOIN vectors v2
WHERE v1.rowid = 1 AND v2.rowid != 1;
.timer off

Without the neon implementation:
┌─────┬─────┬──────────────────┐
│ id1 │ id2 │   l2_distance    │
├─────┼─────┼──────────────────┤
│ 1   │ 2   │ 50.0399856567383 │
└─────┴─────┴──────────────────┘

With the neon implementation:
┌─────┬─────┬──────────────────┐
│ id1 │ id2 │   l2_distance    │
├─────┼─────┼──────────────────┤
│ 1   │ 2   │ 50.0399856567383 │
└─────┴─────┴──────────────────┘

Is it worth it?
To test whether this improvement is worthwhile, I wrote a script that initializes ~1000 rows with vectors of size 2003 and then calculates their L2 distances from one another. It uses the timeit library to get a general idea of how long it takes to execute. There are likely more rigorous ways to benchmark this functionality, but this does a good enough job at showing the performance gain in my opinion.

Script
import sqlite3
import random
import json
import timeit

def create_table_and_insert_data(conn, vector_size, num_rows, seed=42):
    conn.execute(f"CREATE VIRTUAL TABLE IF NOT EXISTS vectors USING vec0(vec int[{vector_size}])")

    random.seed(seed)
    data = []
    for i in range(num_rows):
        vector = [random.randint(1, 100) for _ in range(vector_size)]
        data.append((i+1, json.dumps(vector) ))

    conn.executemany("INSERT INTO vectors(rowid, vec) VALUES (?, vec_int8(?))", data)

def calculate_distances(conn):
    cursor = conn.cursor()
    cursor.execute('''
        SELECT v1.rowid as id1, v2.rowid as id2, vec_distance_l2(v1.vec, v2.vec) as l2_distance
        FROM vectors v1
        CROSS JOIN vectors v2
        WHERE v1.rowid = 1 AND v2.rowid != 1
    ''')
    results = cursor.fetchall()

def main():
    vector_size = 2003
    num_rows = 1005
    seed = 42

    conn = sqlite3.connect(':memory:')
    conn.enable_load_extension(True)
    conn.load_extension('./dist/vec0')

    create_table_and_insert_data(conn, vector_size, num_rows, seed)

    def run_query():
        calculate_distances(conn)

    execution_time = timeit.timeit(run_query, number=100)
    print(f"Total execution time over 100 runs: {execution_time:.5f} seconds")

    conn.close()

if __name__ == '__main__':
    main()

Without the neon implementation:
Total execution time over 100 runs: 0.29578 seconds

With the neon implementation:
Total execution time over 100 runs: 0.12515 seconds

That is a pretty nice speed up for folks running on Arm hardware!

Thank you @dleviminzi , this looks great! I definitely need to read up on all the SIMD implementations, the current ones I mostly borrow from hnswlib
Re correctness + performance: I'll be adding some more verbose tests on all the SIMD code for the float parts, so I'll add some for int8 as well. I also want to add some micro-benchmarks on SIMD vs non-SIMD implementations, so I'll add this work here on that.
Thank you again!

Thank you @dleviminzi , this looks great! I definitely need to read up on all the SIMD implementations, the current ones I mostly borrow from hnswlib
Re correctness + performance: I'll be adding some more verbose tests on all the SIMD code for the float parts, so I'll add some for int8 as well. I also want to add some micro-benchmarks on SIMD vs non-SIMD implementations, so I'll add this work here on that.
Thank you again!

Sounds good to me. Are you planning on using the new arm github runners to benchmark the SIMD performance for neon? I figured that might be a good route to take, but I wasn't sure.
I'll keep working on Neon implementations and potentially some AVX implementations as well. As the testing schemes evolve, I'll be sure to adhere to them!

The new arm github runners are paid-only for now (and Linux/Windows). The Mac ARM github runners could work, but for benchmarking I'd rather not use CI/CD services bc they can be very noisy and a but wasteful.
For our purposes, just local benchmarks should be fine. I only really care about saying "SIMD-enabled builds on Neon run ~X times faster on my computer", so running on our own laptops with a one-off hyperfine script is fine. I have a Mac x86_64 laptop + Mac Mini arm64 that I can run benchmarks on. I'll also probably rent some arm EC2 instance for some sanity checks/light benchmarks before v0.1.0

The new arm github runners are paid-only for now (and Linux/Windows). The Mac ARM github runners could work, but for benchmarking I'd rather not use CI/CD services bc they can be very noisy and a but wasteful.
For our purposes, just local benchmarks should be fine. I only really care about saying "SIMD-enabled builds on Neon run ~X times faster on my computer", so running on our own laptops with a one-off hyperfine script is fine. I have a Mac x86_64 laptop + Mac Mini arm64 that I can run benchmarks on. I'll also probably rent some arm EC2 instance for some sanity checks/light benchmarks before v0.1.0

Ahh, I didn't realize it was paid only. Local benchmarks sound good though!


RDK-33680 : Enabled uploadLogs call for all platforms.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Checked this by adding patch with same changes to rdkservices recipe.
There was no build issues.


Add fsm comment

Add comment on each state of FSM in lexer.go
Rename initialize into initial

I only add three lines comment to explain the purpose of states in FSM
Do I need to write more detail to  explain all the process in FSM?
Like how to enter each state and the effect after enter each state.

@shes50103 You don't need to explain whole process, but you can provide related document links in the comment.

ok! I'll add the link of GitHub of FSM in comment

@shes50103 Thanks for adding comments