apple/swift-markdown

Request to Reinstate Semantic Versioning for Clarity and Compatibility

relatedcode opened this issue · 6 comments

Semantic Versioning, often abbreviated as SemVer, is a versioning scheme for software aimed at conveying meaning about the underlying changes with each release. It's structured as MAJOR.MINOR.PATCH, where:

  • MAJOR version increases indicate incompatible API changes,
  • MINOR version increases add functionality in a backwards-compatible manner,
  • PATCH version increases are for backwards-compatible bug fixes.

This system helps developers and users understand the impact of updating to a new version without having to delve deep into the release notes. For instance, increasing the MAJOR version signals that users might need to make significant changes on their end, while a PATCH update suggests minor, typically safe improvements.

https://semver.org

+1

In addition, I request to reinstate semantic version to facilitate referencing from other libraries.

I am referencing this library from a package I am creating, but I cannot use package(url:from:) in Package.swift and am forced to use package(url:revision:).

I think(?) this same problem is hitting my Ignite project: SPM is complaining that adding Ignite fails because it relies on an unstable package: swift-markdown. I might switch to the solution suggested by @fumito-ito, but actual semver would be most welcome.