{
  "_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" : 4,
      "buildableTimeMillis" : 4,
      "buildingDurationMillis" : 477448,
      "executingTimeMillis" : 477448,
      "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" : 551,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
            "branch" : [
              {
                "SHA1" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
            "branch" : [
              {
                "SHA1" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 5,
          "buildResult" : null,
          "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" : null,
          "marked" : {
            "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
            "branch" : [
              {
                "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
            "branch" : [
              {
                "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
        "branch" : [
          {
            "SHA1" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/pysim"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#551",
  "duration" : 477448,
  "estimatedDuration" : 473668,
  "executor" : null,
  "fullDisplayName" : "simtester-sanitize #551",
  "id" : "551",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 551,
  "queueId" : 77204,
  "result" : "SUCCESS",
  "timestamp" : 1775004180777,
  "url" : "https://jenkins.osmocom.org/jenkins/job/simtester-sanitize/551/",
  "builtOn" : "simtester",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/card-key-provider.rst"
        ],
        "commitId" : "74ac191ae60fcdffe39bc98d46fc94a315a87932",
        "timestamp" : 1774945567000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "docs/card-key-provider: fix heading levels and typo\u000a\u000aThe \"ADM PIN\" and \"SCP02 / SCP03\" sub-sections of \"Field naming\" used\u000athe '~' heading character, which Sphinx resolved to level 4 - skipping\u000alevel 3 and throwing build ERRORs.  As a result, both sub-sections\u000ahad no heading at all.  Change both to '^' (level 3) to match the\u000aother sub-sections in this file.\u000a\u000aWhile at it, fix a typo: \"consisting if\" -> \"consisting of\".\u000a\u000aChange-Id: Ia56efc7fadcc0fd62e87e63850b929d2f80851ba\u000a",
        "date" : "2026-03-31 08:26:07 +0000",
        "id" : "74ac191ae60fcdffe39bc98d46fc94a315a87932",
        "msg" : "docs/card-key-provider: fix heading levels and typo",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/card-key-provider.rst"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/shell.rst"
        ],
        "commitId" : "b42d417bbefc77f48d946854f290ee9cb02dfe5d",
        "timestamp" : 1774945567000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "docs/shell: fix copy-paste typos in editor command descriptions\u000a\u000aTwo adjacent commands (`edit_record_decoded`, `edit_binary_decoded`)\u000ahad identical copy-pasted error messages with three typos each:\u000a\u000a  \"modificatiosn\" -> \"modifications\"\u000a  \"us the\"        -> \"use the\"\u000a  \"comamdn\"       -> \"command\"\u000a\u000aChange-Id: Ie23baba4634e2cc40f81439fb11b102778aed1f6\u000a",
        "date" : "2026-03-31 08:26:07 +0000",
        "id" : "b42d417bbefc77f48d946854f290ee9cb02dfe5d",
        "msg" : "docs/shell: fix copy-paste typos in editor command descriptions",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/shell.rst"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/saip-tool.rst"
        ],
        "commitId" : "4215a3bfd3762f1ccee788d1f205e43a2460b8bc",
        "timestamp" : 1774945567000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "docs/saip-tool: fix typo \"insertaion\" -> \"insertion\"\u000a\u000aChange-Id: Ie9c9235ec964a15fab19d6ca5a83b2b1ddf07e7b\u000a",
        "date" : "2026-03-31 08:26:07 +0000",
        "id" : "4215a3bfd3762f1ccee788d1f205e43a2460b8bc",
        "msg" : "docs/saip-tool: fix typo \"insertaion\" -> \"insertion\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/saip-tool.rst"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/legacy.rst"
        ],
        "commitId" : "2cfb0972df36214d85b18d1071ed6b657020911c",
        "timestamp" : 1774945567000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "docs/legacy: fix typo \"EF,IMSI\" -> \"EF.IMSI\"\u000a\u000aChange-Id: I1f246ec008a57b2373ed3f5531ab4166101f4dd0\u000a",
        "date" : "2026-03-31 08:26:07 +0000",
        "id" : "2cfb0972df36214d85b18d1071ed6b657020911c",
        "msg" : "docs/legacy: fix typo \"EF,IMSI\" -> \"EF.IMSI\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/legacy.rst"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/put_key-tutorial.rst"
        ],
        "commitId" : "f7b86e1920cbd4f378bfe81fb51ad5d47c2a0c3d",
        "timestamp" : 1774945567000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "docs/put_key-tutorial: fix three typos\u000a\u000a  \"verifiation\"        -> \"verification\"\u000a  \"this is identifies\" -> \"this identifies\" (extra word)\u000a  \"and and\"            -> \"and\" (doubled word)\u000a\u000aChange-Id: I1ae6b01638cc2c3dd8355ba801f85cc179ca8bd3\u000a",
        "date" : "2026-03-31 08:26:07 +0000",
        "id" : "f7b86e1920cbd4f378bfe81fb51ad5d47c2a0c3d",
        "msg" : "docs/put_key-tutorial: fix three typos",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/put_key-tutorial.rst"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim-read.py"
        ],
        "commitId" : "a1d3b8f5e887fc72fefae24248aa1fd4ffbe9094",
        "timestamp" : 1774950388000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "pySim-read: remove import random\u000a\u000aIn pySim-read we do not have to compute any random numbers, so\u000awe may remove random from the imports\u000a\u000aChange-Id: Iae4ee6aafb339cc682345299b92b4ecd0bbca14e\u000a",
        "date" : "2026-03-31 11:46:28 +0200",
        "id" : "a1d3b8f5e887fc72fefae24248aa1fd4ffbe9094",
        "msg" : "pySim-read: remove import random",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim-read.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "contrib/csv-to-pgsql.py",
          "pySim/log.py",
          "pySim-shell.py"
        ],
        "commitId" : "ee06ab987fc29640fd59b6b0696596e8a4eb3f9a",
        "timestamp" : 1774956586000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "PySimLogger: add parameter to set initial log-level/verbosity\u000a\u000aWhen we initialize a new PySimLogger, we always call the setup method\u000afirst and then use the set_verbose and set_level method to configure\u000athe initial log level and the initial log verbosity. However, we\u000ainitialize the PySimLogger in all our programs the same way and we\u000aend up with the same boilerplate code every time. Let's add a keyword\u000aparameter to the setup method where we can pass our opts.verbose (bool)\u000aparameter so that the setup method can do the work for the main program.\u000a\u000aIn case the caller wants a different default configuration he still can\u000acall set_verbose and set_level methods as needed.\u000a\u000aChange-Id: I4b8ef1e203186878910c9614a1d900d5759236a8\u000a",
        "date" : "2026-03-31 11:29:46 +0000",
        "id" : "ee06ab987fc29640fd59b6b0696596e8a4eb3f9a",
        "msg" : "PySimLogger: add parameter to set initial log-level/verbosity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim-shell.py"
          },
          {
            "editType" : "edit",
            "file" : "contrib/csv-to-pgsql.py"
          },
          {
            "editType" : "edit",
            "file" : "pySim/log.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim-shell.py"
        ],
        "commitId" : "c995bb1ec230b88d0b8891d78cfdb30d34fcf4e2",
        "timestamp" : 1774956586000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "pySim-shell/cosmetic: remove semicolon\u000a\u000aChange-Id: I629bacd432491211b939fcd2bed554b44ef441bc\u000a",
        "date" : "2026-03-31 11:29:46 +0000",
        "id" : "c995bb1ec230b88d0b8891d78cfdb30d34fcf4e2",
        "msg" : "pySim-shell/cosmetic: remove semicolon",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim-shell.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/pySim-prog_test/sysmoISIM-SJA2.ok",
          "tests/pySim-prog_test/sysmosim-gr1.ok",
          "tests/pySim-prog_test/Wavemobile-SIM.ok",
          "tests/pySim-prog_test/sysmoISIM-SJA5.ok",
          "tests/pySim-prog_test/sysmoUSIM-SJS1.ok",
          "pySim-prog.py",
          "tests/pySim-prog_test/Fairwaves-SIM.ok",
          "pySim-read.py",
          "tests/pySim-prog_test/fakemagicsim.ok"
        ],
        "commitId" : "ca8fada7b6d5b36fab87cab66f8b75ed180a8ca2",
        "timestamp" : 1774956586000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "pySim-prog/pySim-read: add pySimLogger and verbose cmdline argument\u000a\u000apySim-prog and pySim-read do not integrate the pySimLogger yet. As we\u000amay add more debug output that should not be visible on normal use, we\u000ashould ensure that the pySimLogger is correctly set up.\u000a\u000aChange-Id: Ia2fa535fd9ce4ffa301c3f5d6f98c1f7a4716c74\u000a",
        "date" : "2026-03-31 11:29:46 +0000",
        "id" : "ca8fada7b6d5b36fab87cab66f8b75ed180a8ca2",
        "msg" : "pySim-prog/pySim-read: add pySimLogger and verbose cmdline argument",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/Wavemobile-SIM.ok"
          },
          {
            "editType" : "edit",
            "file" : "pySim-prog.py"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmoUSIM-SJS1.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmoISIM-SJA5.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmosim-gr1.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmoISIM-SJA2.ok"
          },
          {
            "editType" : "edit",
            "file" : "pySim-read.py"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/Fairwaves-SIM.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/fakemagicsim.ok"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/conf.py"
        ],
        "commitId" : "a786590906996fe282b95b7d5e781f7d5a2625a0",
        "timestamp" : 1774959433000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "docs/conf.py: silence autosectionlabel duplicate-label warnings\u000a\u000asphinxarg.ext generates generic sub-headings (\"Named arguments\",\u000a\"Positional arguments\", \"Sub-commands\", \"General options\", ...) for\u000aevery argparse command and tool.  These repeat across many files and\u000atrigger large numbers of autosectionlabel duplicate-label warnings.\u000a\u000aTwo-pronged fix:\u000a\u000a* `autosectionlabel_maxdepth = 3` eliminates the depth-4+ warnings\u000a  (sub-headings inside each individual command block).\u000a* `suppress_warnings` per file silences the residual depth-3 collisions\u000a  (\"serial reader\", \"decode_hex\", \"sub-commands\", ...) that still\u000a  appear across tool documentation files.\u000a\u000aCross-references into these generic argparse-generated sections are not\u000aa supported use-case, so suppressing the warnings is appropriate.\u000a\u000aChange-Id: I9cdf2a4f6cbd435b16b90ab668205600ffd7c3b0\u000a",
        "date" : "2026-03-31 19:17:13 +0700",
        "id" : "a786590906996fe282b95b7d5e781f7d5a2625a0",
        "msg" : "docs/conf.py: silence autosectionlabel duplicate-label warnings",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/conf.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "docs/conf.py"
        ],
        "commitId" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
        "timestamp" : 1774959433000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "docs/conf.py: add autodoc_mock_imports for klein and twisted\u000a\u000aThe eSIM SM-DP+ server modules (`pySim.esim.es2p`, `pySim.esim.es9p`,\u000a`pySim.esim.http_json_api`) unconditionally import optional server-side\u000adependencies at module level:\u000a\u000a  pySim.esim.es2p          -- from klein import Klein\u000a  pySim.esim.http_json_api -- from twisted.web.server import Request\u000a\u000aBoth imports fail during a docs build if the packages are absent or\u000abroken, causing three \"autodoc: failed to import\" warnings and three\u000amissing chapters in the generated manual.\u000a\u000aEven when klein and twisted are installed, twisted 23.10.0 (the\u000aversion pulled in transitively by smpp.twisted3's `Twisted~=23.10.0`\u000aconstraint) is incompatible with Python 3.13+ because twisted.web.http\u000aunconditionally executes `import cgi`, a module that was removed from\u000athe standard library in Python 3.13.\u000a\u000aFix: add `autodoc_mock_imports = ['klein', 'twisted']` to conf.py.\u000aSphinx inserts mock entries into sys.modules before each autodoc import\u000aattempt, so the modules can be imported and documented without requiring\u000athe real packages to be importable at build time.\u000a\u000aChange-Id: I71650466f02a6a6d150650deed167c05d2cb6e64\u000a",
        "date" : "2026-03-31 19:17:13 +0700",
        "id" : "19245d0d8bce1e7d87a5a5af328f9cacb2dc6600",
        "msg" : "docs/conf.py: add autodoc_mock_imports for klein and twisted",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "docs/conf.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
      "fullName" : "Vadim Yanitskiy"
    },
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
      "fullName" : "laforge"
    },
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
      "fullName" : "pmaier@sysmocom.de"
    }
  ]
}