{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2683,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
            "branch" : [
              {
                "SHA1" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
            "branch" : [
              {
                "SHA1" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
        "branch" : [
          {
            "SHA1" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#2683",
  "duration" : 780,
  "estimatedDuration" : 590,
  "executor" : None,
  "fullDisplayName" : "CraftBukkit-RSS #2683",
  "id" : "2683",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 2683,
  "queueId" : 4809,
  "result" : "SUCCESS",
  "timestamp" : 1695514447348,
  "url" : "https://hub.spigotmc.org/jenkins/view/RSS/job/CraftBukkit-RSS/2683/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java",
          "src/main/java/org/bukkit/craftbukkit/util/CraftNBTTagConfigSerializer.java",
          "src/test/java/org/bukkit/craftbukkit/inventory/PersistentDataContainerTest.java",
          "src/test/resources/pdc/legacy_pdc.yml",
          "src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java",
          "src/test/java/org/bukkit/craftbukkit/legacy/PersistentDataContainerLegacyTest.java"
        ],
        "commitId" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
        "timestamp" : 1695514339000,
        "author" : {
          "absoluteUrl" : "https://hub.spigotmc.org/jenkins/user/md_5",
          "fullName" : "md_5"
        },
        "authorEmail" : "git@md-5.net",
        "comment" : "#1230: Move unstructured PDC NBT serialisation to SNBT\u000a\u000aThe initial implementation of the CraftNBTTagConfigSerialiser attempted\u000ato represent the entire NBT tree in yaml. While the tree structure\u000aitself is nicely represented, the values and their respective types\u000abecome increasingly difficult to properly store in the context of\u000asnakeyml/yml in general.\u000a\u000aThis is mainly due to the fact that nbt offers a lot of different types\u000acompared to yaml, specifically the primitive arrays and different\u000afloating point values are troublesome as they require parsing via mojang\u000aparsers due to their custom format.\u000a\u000aTo build a future proof system for unstructured nbt in spigot yml,\u000athis commit moves the entire serialisation fully into SNBT,\u000aproducing a single string as output rather than a full yml tree.\u000aSNBT remains easily readable and editable for server owners, which was\u000aone of the main criteria during the initial implementation of the\u000aserialiser (preventing the use of bas64ed gzipped nbt bytes), while also\u000acompletely using mojangs parsing, eliminating any need for custom\u000aparsing logic in spigot.\u000a\u000aAdditionally, a string allows for very straight forward handling of\u000alegacy data by simply parsing strings as SNBT and maps/yml trees as\u000alegacy content, depending on what type snakeyml produces after parsing\u000athe yml content, removing the need for a versioning schema.\u000a",
        "date" : "2023-09-24 10:12:19 +1000",
        "id" : "f0661c3514a7d8e51e2281f045e1c14d0e733230",
        "msg" : "#1230: Move unstructured PDC NBT serialisation to SNBT",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/org/bukkit/craftbukkit/legacy/PersistentDataContainerLegacyTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/resources/pdc/legacy_pdc.yml"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/org/bukkit/craftbukkit/inventory/PersistentDataContainerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/org/bukkit/craftbukkit/util/CraftNBTTagConfigSerializer.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://hub.spigotmc.org/jenkins/user/md_5",
      "fullName" : "md_5"
    }
  ]
}