1 unstable release

0.0.0 Nov 26, 2021

#298 in #widgets

Apache-2.0

5KB

Sorbet, the Tasteful GUI Library

Sorbet is a GUI library written in Rust that was designed with the simple goal of being easy to use and maintain, following comprehensive declarative patterns (that may be different from what you're accustomed to) and takes a "rusty" (or "rustaceous" if you prefer) approach to ensure your code doesn't rot.

Currently, the API is unstable (pre-1.0.0) and will make no attempt to maintain backwards compatibility.

TODO: This README.

Versioning

This project and all submodules/crates use Semantic Versioning, just like the vast majority of Rust crates.

A SemVer has the following format: <major>.<minor>.<patch>[-<prerelease>].

Here is a brief summary, borrowed from the above reference, with numbered hyperlinks in superscript indicating relevant reading.

Segment Usage
<major> When there are public API changes that are not backwards-compatible. [4][5][8]
<minor> When functionality is added in a backwards-compatible matter. [7]
<patch> When there are backwards-compatible bug fixes. [6]
<prerelease> An optional segment indicating a revision number for a pre-release. [9]

Unstable API

Since the above specification (see numbered hyperlinks) provides no stringent explanation how backwards-incompatible changes should affect the version number before the first stable version, the scheme used by this project and children is detailed below.

There is a suggestion for how to handle this, but it doesn't specify what to do with the patch number.

  • The minor digits signify the current revision of the public API.
    • This will be incremented when there is a backwards-incompatible change.
    • This will also be incremented when there is an addition to the public API.
    • This effectively combines the meaning of the first two segments into the minor digits.
  • The patch digits will be treated the same as if the version were stable.
    • This particular statement is not guaranteed, and its usage is up to the distributing maintainer's discretion. For example, if there is an insignificant but backwards-incompatible change, such as a typo in a function name.

Once the API is considered stable, and there is general satisfaction concerning the capabilities provided, the major digit will be used instead to indicate API changes where something is removed or modified, while the minor digit will signify additions that may not be stabilized.

License

Copyright © 2022 Jacob Birkett

This project is provided under the Apache License, Version 2.0.

🟢 Permissions 🟡 Conditions 🔴 Limitations
  • Commercial use
  • Distribution
  • Modification
  • Patent use
  • Private use
  • License and copyright notice
  • State changes
  • Liability
  • Trademark use
  • Warranty

No runtime deps