Skip to content

Commit

Permalink
Update README and gemspec description
Browse files Browse the repository at this point in the history
 * Reword the first paragraph for more clarification.

 * Add the compatibility matrix for stable branches and explain the
   maintenance policy.

 * Remove the outdated paragraph for how to use the gem in Ruby 2.3,
   which is no longer supported.
  • Loading branch information
rhenium committed Aug 31, 2023
1 parent 3784b27 commit 428c243
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 17 deletions.
45 changes: 30 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,38 @@

[![Actions Status](https://github.com/ruby/openssl/workflows/CI/badge.svg)](https://github.com/ruby/openssl/actions?workflow=CI)

OpenSSL for Ruby provides access to SSL/TLS and general-purpose cryptography
based on the OpenSSL library.

OpenSSL provides SSL, TLS and general purpose cryptography. It wraps the
OpenSSL library.
OpenSSL for Ruby is sometimes referred to as "openssl" (in all lowercase) or
"Ruby/OpenSSL" for disambiguation.

## Compatibility and maintenance

OpenSSL for Ruby is released as a RubyGems gem. At the same time, it is part of
the standard library of Ruby. This is called a [default gem].

Stable branches of OpenSSL for Ruby will receive security and bug fixes for the
[lifecycle of their corresponding Ruby branch][Ruby Maintenance Branches].

|Branch|Maintenance status |Supported Ruby versions|Supported OpenSSL versions |
|------|-------------------------------|-----------------------|-----------------------------------------------------|
|3.2 |normal maintenance (Ruby 3.3) |Ruby >= 2.7 |OpenSSL >= 1.0.2, <= 3.1 (current) or LibreSSL >= 3.1|
|3.1 |normal maintenance (Ruby 3.2) |Ruby >= 2.6 |OpenSSL >= 1.0.2, <= 3.1 (current) or LibreSSL >= 3.1|
|3.0 |normal maintenance (Ruby 3.1) |Ruby >= 2.6 |OpenSSL >= 1.0.2, <= 3.1 (current) or LibreSSL >= 3.1|
|2.2 |security maintenance (Ruby 3.0)|Ruby >= 2.3 |OpenSSL >= 1.0.1, <= 1.1.1 or LibreSSL >= 2.9 |
|2.1 |end-of-life (Ruby 2.5-2.7) |Ruby >= 2.3 |OpenSSL >= 1.0.1, <= 1.1.1 or LibreSSL >= 2.5 |
|2.0 |end-of-life (Ruby 2.4) |Ruby >= 2.3 |OpenSSL >= 0.9.8, <= 1.1.1 or LibreSSL >= 2.3 |

[default gem]: https://docs.ruby-lang.org/en/master/standard_library_rdoc.html
[Ruby Maintenance Branches]: https://www.ruby-lang.org/en/downloads/branches/

## Installation

The openssl gem is available at [rubygems.org](https://rubygems.org/gems/openssl).
You can install with:
The openssl gem is included with Ruby by default, but newer releases may be
available at [rubygems.org](https://rubygems.org/gems/openssl).

To upgrade it, you can use RubyGems:

```
gem install openssl
Expand All @@ -21,7 +45,7 @@ You may need to specify the path where OpenSSL is installed.
gem install openssl -- --with-openssl-dir=/opt/openssl
```

Alternatively, you can install the gem with `bundler`:
Alternatively, you can install the gem with Bundler:

```ruby
# Gemfile
Expand All @@ -30,7 +54,7 @@ gem 'openssl'
gem 'openssl', git: 'https://github.com/ruby/openssl'
```

After doing `bundle install`, you should have the gem installed in your bundle.
After running `bundle install`, you should have the gem installed in your bundle.

## Usage

Expand All @@ -40,15 +64,6 @@ Once installed, you can require "openssl" in your application.
require "openssl"
```

**NOTE**: If you are using Ruby 2.3 (and not Bundler), you **must** activate
the gem version of openssl, otherwise the default gem packaged with the Ruby
installation will be used:

```ruby
gem "openssl"
require "openssl"
```

## Documentation

See https://ruby.github.io/openssl/.
Expand Down
4 changes: 2 additions & 2 deletions openssl.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ Gem::Specification.new do |spec|
spec.version = "3.1.0"
spec.authors = ["Martin Bosslet", "SHIBATA Hiroshi", "Zachary Scott", "Kazuki Yamaguchi"]
spec.email = ["[email protected]"]
spec.summary = %q{OpenSSL provides SSL, TLS and general purpose cryptography.}
spec.description = %q{It wraps the OpenSSL library.}
spec.summary = %q{SSL/TLS and general-purpose cryptography for Ruby}
spec.description = %q{OpenSSL for Ruby provides access to SSL/TLS and general-purpose cryptography based on the OpenSSL library.}
spec.homepage = "https://github.com/ruby/openssl"
spec.license = "Ruby"

Expand Down

0 comments on commit 428c243

Please sign in to comment.