---
title: Version
framework: swift-package-manager
role: symbol
role_heading: Structure
path: swift-package-manager/documentation/packagedescription/version
---

# Version

A version according to the semantic versioning specification.

## Declaration

```swift
struct Version
```

## Overview

Overview A package version consists of three integers separated by periods, for example 1.0.0. It must conform to the semantic versioning standard in order to ensure that your package behaves in a predictable manner once developers update their package dependency to a newer version. To achieve predictability, the semantic versioning specification proposes a set of rules and requirements that dictate how version numbers are assigned and incremented. To learn more about the semantic versioning specification, visit Semantic Versioning 2.0.0.

## Topics

### Creating a new version

- [init(_:_:_:prereleaseIdentifiers:buildMetadataIdentifiers:)](swift-package-manager/documentation/packagedescription/version/init(_:_:_:prereleaseidentifiers:buildmetadataidentifiers:).md)

### Inspecting a version

- [major](swift-package-manager/documentation/packagedescription/version/major.md)
- [minor](swift-package-manager/documentation/packagedescription/version/minor.md)
- [patch](swift-package-manager/documentation/packagedescription/version/patch.md)
- [prereleaseIdentifiers](swift-package-manager/documentation/packagedescription/version/prereleaseidentifiers.md)
- [buildMetadataIdentifiers](swift-package-manager/documentation/packagedescription/version/buildmetadataidentifiers.md)

### Default Implementations

- [Comparable Implementations](swift-package-manager/documentation/packagedescription/version/comparable-implementations.md)
- [CustomStringConvertible Implementations](swift-package-manager/documentation/packagedescription/version/customstringconvertible-implementations.md)
- [Equatable Implementations](swift-package-manager/documentation/packagedescription/version/equatable-implementations.md)
- [ExpressibleByExtendedGraphemeClusterLiteral Implementations](swift-package-manager/documentation/packagedescription/version/expressiblebyextendedgraphemeclusterliteral-implementations.md)
- [ExpressibleByStringLiteral Implementations](swift-package-manager/documentation/packagedescription/version/expressiblebystringliteral-implementations.md)
- [ExpressibleByUnicodeScalarLiteral Implementations](swift-package-manager/documentation/packagedescription/version/expressiblebyunicodescalarliteral-implementations.md)
- [LosslessStringConvertible Implementations](swift-package-manager/documentation/packagedescription/version/losslessstringconvertible-implementations.md)

## Relationships

### Conforms To

- Swift.Comparable
- Swift.Copyable
- Swift.CustomStringConvertible
- Swift.Equatable
- Swift.Escapable
- Swift.ExpressibleByExtendedGraphemeClusterLiteral
- Swift.ExpressibleByStringLiteral
- Swift.ExpressibleByUnicodeScalarLiteral
- Swift.LosslessStringConvertible
- Swift.Sendable
- Swift.SendableMetatype

## See Also

### Describing a Package Dependency

- [kind](swift-package-manager/documentation/packagedescription/package/dependency/kind-swift.property.md)
- [Package.Dependency.Kind](swift-package-manager/documentation/packagedescription/package/dependency/kind-swift.enum.md)
