{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 2,
      "buildableTimeMillis" : 2,
      "buildingDurationMillis" : 476076,
      "executingTimeMillis" : 476076,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 0,
      "waitingTimeMillis" : 0
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 545,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
            "branch" : [
              {
                "SHA1" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
            "branch" : [
              {
                "SHA1" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 5,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
            "branch" : [
              {
                "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
            "branch" : [
              {
                "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 253,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
            "branch" : [
              {
                "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
            "branch" : [
              {
                "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
        "branch" : [
          {
            "SHA1" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/pysim"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#545",
  "duration" : 476076,
  "estimatedDuration" : 475388,
  "executor" : None,
  "fullDisplayName" : "simtester-sanitize #545",
  "id" : "545",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 545,
  "queueId" : 71269,
  "result" : "SUCCESS",
  "timestamp" : 1774485780440,
  "url" : "https://jenkins.osmocom.org/jenkins/view/All%20no%20Gerrit/job/simtester-sanitize/545/",
  "builtOn" : "simtester",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/ts_51_011.py"
        ],
        "commitId" : "969f9c0e4bcb3cbf46be3a592315aa8a9a39e807",
        "timestamp" : 1774449296000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "pySim/EF.SMSP: fix encoding of TP-Destination Address\u000a\u000aThe TP-Destination Address in EF.SMSP uses the same encoding as the\u000aTS-Service Centre Address field. However, even though the encoding\u000aof both fields looks almost identical, it actually isn't.\u000a\u000aThe TS-Service Centre Address field encodes the length field as\u000aoctets required for the call_number + one octet for ton_npi.\u000a(see also: 3GPP TS 24.011, section 8.2.5.2)\u000a\u000aThe TP-Destination Address uses the number of digits of the\u000acall_number directly in the length field.\u000a(see also: 3GPP TS 23.040, section 9.1.2.5)\u000a\u000aRelated: SYS#7765\u000aChange-Id: I55c123c9e244e5a6e71a0348f5d476ef03e618e8\u000a",
        "date" : "2026-03-25 15:34:56 +0100",
        "id" : "969f9c0e4bcb3cbf46be3a592315aa8a9a39e807",
        "msg" : "pySim/EF.SMSP: fix encoding of TP-Destination Address",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/ts_51_011.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/global_platform/__init__.py"
        ],
        "commitId" : "c7e68e1281db0fbf0e456e7807e642cb5ee49c3a",
        "timestamp" : 1774461930000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "global_platform: install_cap_parser: argument groups cannot be nested\u000a\u000apySim-shell currently does not work on systems with Python 3.14+:\u000a\u000a  File \".../pysim/pySim/global_platform/__init__.py\", line 868, in AddlShellCommands\u000a    install_cap_parser_inst_prm_g_grp = install_cap_parser_inst_prm_g.add_argument_group()\u000a  File \"/usr/lib/python3.14/argparse.py\", line 1794, in add_argument_group\u000a    raise ValueError('argument groups cannot be nested')\u000a  ValueError('argument groups cannot be nested')\u000a\u000aThe problem is that install_cap_parser creates a nested group inside\u000aof mutually exclusive group.  argparse never supported group nesting\u000aproperly, so it has been deprecated since Python 3.11, and eventually\u000agot removed in Python 3.14.\u000a\u000aRemove group nesting, adjust the usage string, and implement the\u000amutual exclusiveness enforcement manually in do_install_cap().\u000a\u000aChange-Id: Idddf72d5a745345e134b23f2f01e0257d0667579\u000a",
        "date" : "2026-03-25 18:05:30 +0000",
        "id" : "c7e68e1281db0fbf0e456e7807e642cb5ee49c3a",
        "msg" : "global_platform: install_cap_parser: argument groups cannot be nested",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/global_platform/__init__.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/unittests/test_globalplatform.py",
          "pySim/global_platform/install_param.py"
        ],
        "commitId" : "d9d62ee72929fca356fd3e751e2a3284e84475ac",
        "timestamp" : 1774461930000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "global_platform: refactor gen_install_parameters()\u000a\u000agen_install_parameters() had contradictory logic: the outer guard\u000arequired all three arguments to be non-None/non-empty (making them\u000amutually inclusive), while the inner checks then treated each one\u000aas optional.\u000a\u000aMake each parameter independently optional (defaulting to None) and\u000aremove the all-or-nothing check.  Simplify the function body to a\u000astraightforward single-pass construction of system_specific_params.\u000a\u000aChange-Id: I8756fb38016cdf0527fe2e21edb44381d1dc557f\u000a",
        "date" : "2026-03-25 18:05:30 +0000",
        "id" : "d9d62ee72929fca356fd3e751e2a3284e84475ac",
        "msg" : "global_platform: refactor gen_install_parameters()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/global_platform/install_param.py"
          },
          {
            "editType" : "edit",
            "file" : "tests/unittests/test_globalplatform.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/put_key-tutorial.rst",
          "docs/shell.rst"
        ],
        "commitId" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
        "timestamp" : 1774462052000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "docs/put_key: add tutorial that explains how to manage global platform keys\u000a\u000aWith the increased interest in using GlobalPlatform features of\u000aUICC and eUICCs (OTA-SMS, applets, etc.), also comes an increased\u000ainterest in how the related GlobalPlatform keys can be managed\u000a(key rotation, adding/removing keysets from/to a Security Domain).\u000a\u000aUnfortunately, many aspects of this topic are not immediately\u000aobvious for the average user. Let's add a tutorial that contains\u000asome practical examples to shine some light on the topic.\u000a\u000aRelated: SYS#7881\u000aChange-Id: I163dfedca3df572cb8442e9a4a280e6c5b00327e\u000a",
        "date" : "2026-03-25 18:07:32 +0000",
        "id" : "8c81e2cdf9bb1f8d831e817379cb0d03347df46b",
        "msg" : "docs/put_key: add tutorial that explains how to manage global platform",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/shell.rst"
          },
          {
            "editType" : "add",
            "file" : "docs/put_key-tutorial.rst"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
      "fullName" : "pmaier@sysmocom.de"
    },
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
      "fullName" : "laforge"
    }
  ]
}