mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Semantic Versioning (and Pessimistic Versioning Constraint) notice
I noticed some projects using Fog are setting very specific versioning constraint. For example, https://github.com/mitchellh/vagrant-rackspace/issues/34 happened because both vagrant-aws and vagrant-rackspace are using 3 digits of precision. The fog RELEASE.md says that Fog follows semantic versioning. Several other projects have put up notices suggesting to use 2 digits of precision for projects that follow semver. See https://github.com/intridea/multi_json, for example. I added a similar notice, but softened the language because I don't think there is a clear understanding on what semantic versioning means for a project like Fog, which has multiple providers backed by services that are all evolving at their own pace.
This commit is contained in:
parent
550902b3eb
commit
9d92233102
1 changed files with 25 additions and 0 deletions
25
README.md
25
README.md
|
@ -135,6 +135,31 @@ for more details and examples. Once you are ready to start scripting fog, here i
|
|||
|
||||
geemus says: "That should give you everything you need to get started, but let me know if there is anything I can do to help!"
|
||||
|
||||
## Versioning
|
||||
|
||||
Fog library aims to adhere to [Semantic Versioning 2.0.0][semver], although it does not
|
||||
address challenges of multi-provider libraries. Semantic versioning is only guaranteed for
|
||||
the common API, not any provider-specific extensions. You may also need to update your
|
||||
configuration from time to time (even between Fog releases) as providers update or deprecate
|
||||
services.
|
||||
|
||||
However, we still aim for forwards compatibility within Fog major versions. As a result of this policy, you can (and
|
||||
should) specify a dependency on this gem using the [Pessimistic Version
|
||||
Constraint][pvc] with two digits of precision. For example:
|
||||
|
||||
```ruby
|
||||
spec.add_dependency 'fog', '~> 1.0'
|
||||
```
|
||||
|
||||
This means your project is compatible with Fog 1.0 up until 2.0. You can also set a higher minimum version:
|
||||
|
||||
```ruby
|
||||
spec.add_dependency 'fog', '~> 1.16'
|
||||
```
|
||||
|
||||
[semver]: http://semver.org/
|
||||
[pvc]: http://guides.rubygems.org/patterns/
|
||||
|
||||
## Contributing
|
||||
|
||||
* Find something you would like to work on.
|
||||
|
|
Loading…
Reference in a new issue