{
  "patent_number": "US 9830146",
  "country": "US",
  "title": "How Software Developers Keep Track of API Versions Automatically",
  "original_title": "API lifecycle platform and version management",
  "summary": "A system that automatically tags software building blocks with version data to prevent developers from accidentally breaking code when updating operating systems.",
  "what_it_does": "This patent describes a way to automate the tracking of Application Programming Interfaces (APIs). APIs are the sets of rules that allow different software programs to talk to each other. The system attaches metadata—essentially digital labels—to specific parts of the API, such as structures or interfaces. These labels record exactly which version and platform introduced or changed a specific piece of code. When a developer builds a new version of the operating system, the system checks these labels against a set of rules to ensure that any changes don't break existing, already-compiled software.",
  "what_it_does_not_cover": [
    "Does not cover manual version tracking where developers update documentation without automated metadata.",
    "Does not cover runtime API versioning that happens while the software is actively running.",
    "Does not cover general source code version control systems like Git or SVN.",
    "Does not cover API versioning logic that is not tied to specific operating system platforms."
  ],
  "filed": "2013-06-07",
  "granted": "2017-11-28",
  "expires": null,
  "status": "active",
  "holder": "Microsoft Technology Licensing LLC",
  "holder_url": "https://patentbrief.org/company/microsoft-technology-licensing-llc",
  "inventors": [
    {
      "name": "William Messmer",
      "url": "https://patentbrief.org/inventor/william-messmer"
    },
    {
      "name": "Lawrence Osterman",
      "url": "https://patentbrief.org/inventor/lawrence-osterman"
    },
    {
      "name": "Brent Rector",
      "url": "https://patentbrief.org/inventor/brent-rector"
    }
  ],
  "times_cited": 8,
  "tags": [
    "software",
    "consumer_electronics",
    "telecommunications"
  ],
  "abstract": "Systems and methods for managing the lifecycle of an API over a number of different versions of an operating system—as well as over a number of different platforms are disclosed. In one embodiment, a method is disclosed wherein for a given API, metadata is created and associated with certain constructs of the API. The metadata may comprise a version indication. A set of versioning rules may be defined. Such versioning rules govern whether a particular construct of an API may be changed for a given version. These versioning rules may be enforced at the time of constructing a new build. The versioning rules may be enforced by the IDE system.",
  "url": "https://patentbrief.org/patent/us/9830146/visual-studio-code",
  "markdown_url": "https://patentbrief.org/patent/us/9830146/visual-studio-code/md",
  "google_patents_url": "https://patents.google.com/patent/US9830146",
  "relatedPatents": []
}