IP Library Granted Patent US 12663986
Granted Patent B2
US 12663986 · App. 18/300,356 · Granted Jun 23, 2026

Central package management (CPM) across code repositories

Inventors: Eliyahu Mashhadi Kalimi (Netanya, IL); Roei Shlomo Menashof (Netanya, IL); David Mansour (Yehud, IL)
Assignee: Microsoft Technology Licensing, LLC
G06F8/71G06F8/36
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12663986
App. No.
18/300,356
Granted
Jun 23, 2026
Kind
B2
Abstract

Central package management (CPM) across code repositories is disclosed. In an example, a primary “props” file in a Git submodule references a version of a NuGet package. A “.props” file in a root directory of each of multiple code repositories references the primary props file in the Git submodule. Each of multiple software projects in the code repositories has a package reference to the NuGet package without a reference to the version of the NuGet package. When each of the multiple the software projects is built (e.g., compiled), the build process automatically uses the version of the NuGet package that is identified in the Git submodule. This permits a single change to the version number of the NuGet package in the Git submodule to be propagated across multiple projects spanning multiple code repositories.

Claims (54)

1 . A system comprising:

a processor; and

a computer-readable medium storing instructions that are operative upon execution by the processor to:

store a primary property sheet containing a reference to a first version of an included software package in a repository submodule;

store a first property sheet in a first code repository and a second property sheet in a second code repository, the first property sheet and the second property sheet each comprising a reference to the primary property sheet in the repository submodule;

store, in a first software project in the first code repository, a first package reference to the included software package, wherein the first package reference does not indicate a version of the included software package;

store, in a second software project in the second code repository, a second package reference to the included software package, wherein the second package reference does not indicate a version of the included software package;

build the first software project into a first executable project;

build the second software project into a second executable project, wherein the first executable project and the second executable project both use the first version of the included software package;

without changing any reference to the included software package in either the first software project or the second software project, change, in the primary property sheet, the reference from the first version of the included software package to a second version of the included software package;

build the first software project into a third executable project; and

build the second software project into a fourth executable project, wherein the third executable project and the fourth executable project both use the second version of the included software package.

2 . The system of claim 1 , wherein the instructions are further operative to:

set a build property to manage package versions centrally.

3 . The system of claim 1 , wherein the first property sheet and the second property sheet do not identify a specific version of the included software package.

4 . The system of claim 1 , wherein the first property sheet is located within a root directory of the first code repository and the second property sheet is located within a root directory of the second code repository.

5 . The system of claim 1 , wherein the first software project and the second software project each comprises a file containing high level language source code.

6 . The system of claim 1 , wherein each of the primary property sheet, the first property sheet, and the second property sheet comprises an extensible markup language (XML) file.

7 . The system of claim 1 , wherein a filename of each of the primary property sheet, the first property sheet, and the second property sheet comprises a props extension;

wherein the included software package comprises a NuGet package; and wherein the repository submodule comprises a Git submodule.

8 . A computer-implemented method comprising:

storing a primary property sheet containing a reference to a first version of an included software package in a repository submodule;

storing a first property sheet in a first code repository and a second property sheet in a second code repository, the first property sheet and the second property sheet each comprising a reference to the primary property sheet in the repository submodule, wherein the first property sheet and the second property sheet do not indicate a version of the included software package;

storing, in a first software project in the first code repository, a first package reference to the included software package, wherein the first package reference does not indicate a version of the included software package;

storing, in a second software project in the second code repository, a second package reference to the included software package;

building the first software project into a first executable project; and

building the second software project into a second executable project, wherein the first executable project and the second executable project both use the first version of the included software package, and wherein building the first software project and the second software project comprises compiling source code;

without changing any reference to the included software package in either the first software project or the second software project, changing, in the primary property sheet, the reference from the first version of the included software package to a second version of the included software package;

building the first software project into a third executable project; and

building the second software project into a fourth executable project, wherein the third executable project and the fourth executable project both use the second version of the included software package.

9 . The computer-implemented method of claim 8 , further comprising:

setting a build property to manage package versions centrally.

10 . The computer-implemented method of claim 8 , wherein the first property sheet and the second property sheet do not identify a specific version of the included software package.

11 . The computer-implemented method of claim 8 , wherein the first property sheet is located within a root directory of the first code repository and the second property sheet is located within a root directory of the second code repository.

12 . The computer-implemented method of claim 8 , wherein the first software project and the second software project each comprises a file containing high level language source code.

13 . The computer-implemented method of claim 8 , wherein each of the primary property sheet, the first property sheet, and the second property sheet comprises an extensible markup language (XML) file.

14 . The computer-implemented method of claim 8 , wherein a filename of each of the primary property sheet, the first property sheet, and the second property sheet comprises a props extension; wherein the included software package comprises a NuGet package; and

wherein the repository submodule comprises a Git submodule.

15 . A computer storage device having computer-executable instructions stored thereon, which, on execution by a computer, cause the computer to perform operations comprising:

storing a primary property sheet containing a reference to a first version of an included software package in a repository submodule, wherein the included software package comprises high level language source code;

storing a first property sheet in a first code repository and a second property sheet in a second code repository, the first property sheet and the second property sheet each comprising a reference to the primary property sheet in the repository submodule;

storing, in a first software project in the first code repository, a first package reference to the included software package, wherein the first package reference does not indicate a version of the included software package;

storing, in a second software project in the second code repository, a second package reference to the included software package, wherein the second package reference does not indicate a version of the included software package;

building the first software project into a first executable project; and

building the second software project into a second executable project, wherein the first executable project and the second executable project both use the first version of the included software package;

without changing any reference to the included software package in either the first software project or the second software project, changing, in the primary property sheet, the reference from the first version of the included software package to a second version of the included software package;

building the first software project into a third executable project; and

building the second software project into a fourth executable project, wherein the third executable project and the fourth executable project both use the second version of the included software package.

16 . The computer storage device of claim 15 , wherein the operations further comprise:

setting a build property to manage package versions centrally.

17 . The computer storage device of claim 15 , wherein the first property sheet and the second property sheet do not identify a specific version of the included software package.

18 . The computer storage device of claim 15 , wherein the first property sheet is located within a root directory of the first code repository and the second property sheet is located within a root directory of the second code repository.

19 . The computer storage device of claim 15 , wherein the first software project and the second software project each comprises a file containing high level language source code.

20 . The computer storage device of claim 15 , wherein each of the primary property sheet, the first property sheet, and the second property sheet comprises an extensible markup language (XML) file; wherein a filename of each of the primary property sheet, the first property sheet, and the second property sheet comprises a props extension; wherein the included software package comprises a NuGet package; and wherein the repository submodule comprises a Git submodule.