Package of project
One project can generate multiple packages, each of which can be created in its own way and deployed to its respective binary file repository.
The list of packages is specified in the packages key as a JsonArray, for example:
"packages": [
{
// information about first package
},
{
// information about second package
}
]
The build system will generate as many packages as there are JsonObject
entries under the packages
key.
In the JsonObject
describing the package, there must be a mandatory class
key, which determines the packaging mechanism based on its value. Currently, there are two packaging mechanisms.
Nuget package
The packager can be used in all cases without restrictions. However, for C# projects, it is more convenient to use the dotnet
package, as it includes checks at the .csproj
level.
Mandatory keys:
id
- unique package identifier;version
- version of the package being created. The version with which the package will be uploaded may differ from the specified version, because versioning is managed by the versioning manager. Therefore, it is more appropriate to specify a version mask.title
- title displayed as the name of the package.authors
- list of authors of the package.owners
- list of owners of the package.language
- language of the package.description
- description of the package.
Available keys:
dependencies
- list of package dependencies;variant_files
- additional files to be included into package, while packing;tags
- list of values that will be included in the package tag (service tags will be added additionally);copyright
- copyright information;project_url
- URL of the project;license
- MIT or the license file of the package (see licenses.nuget.org | Microsoft Learn):type
- (optional) specified only for MIT licenses;file_path
- relative path to the license file that will be included in the package;file_name
- (optional) sets the name of the license file that will be included in the package.
Dotnet package
Settings can only be applied to C# projects of type DLL. All information should be contained within the .csproj
file, and the JSON file should only specify the class
.
Example:
{
"class": "dotnet"
}
Available other keys (from NuGet package), but it is preferable to specify it in the .csproj
file.