Skip to content

Commit e09388e

Browse files
committed
📚 Add compatibility policy to README.md
I saw a chart similar to this in ruby/openssl's README, and it seems like this is a relatively simple way to communicate our versioning. I'll propose documentation for a slightly more detailed policy in a future PR.
1 parent 119f43a commit e09388e

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

README.md

+39
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,45 @@ end
6060
imap.expunge
6161
```
6262

63+
## Compatibility and Maintenance Policy
64+
65+
`net-imap` is bundled with Ruby releases. As a [bundled gem], it can be
66+
uninstalled from a Ruby installation and must be declared in `Gemfile` when used
67+
with `bundler`. Each Ruby `major.minor` release series will be pinned to a
68+
specific `net-imap` `major.minor` release series, and will only bundle releases
69+
from that series. Each `net-imap` release series will receive security updates
70+
as long as they are bundled with [supported Ruby branches]. The latest stable
71+
Ruby release series may also receive backported bugfixes and features, at the
72+
maintainers' discretion.
73+
74+
|net-imap |ruby |maintenance level |
75+
|---------|---------------|--------------------------------------|
76+
|current |main (dev) |new features (and deprecations) |
77+
|current-1|current stable |discretionary backported bugfixes, etc|
78+
|current-2|previous stable|security maintenance |
79+
|current-3|oldest stable |security maintenance |
80+
|_older_ |_older_ |end of life |
81+
82+
### Release series
83+
84+
| |Bundled with|Compatible with|First bundled release |Supported? |
85+
|-----|------------|---------------|-----------------------------|--------------|
86+
|0.5.x| _not yet_ | Ruby 3.1+ |_future Ruby 3.4 release_ |new features |
87+
|0.4.x| Ruby 3.3 | Ruby 2.7.3+ |0.4.9, Ruby 3.3.0, 2023-12-25|some backports|
88+
|0.3.x| Ruby 3.2 | Ruby 2.6+ |0.3.4, Ruby 3.2.0, 2022-12-25|security only |
89+
|0.2.x| Ruby 3.1 | Ruby 2.5+/2.6+|0.2.2, Ruby 3.1.0, 2021-12-25|security only |
90+
|0.1.x| Ruby 3.0* | Ruby 2.5+ |0.1.1, Ruby 3.0.0, 2020-12-25|end of life |
91+
|_pre_| in stdlib | | Ruby 1.6.2, 2000-12-25|end of life |
92+
93+
Version 0.1.x was packaged as a [default gem] for Ruby 3.0, and can not be
94+
uninstalled from a Ruby 3.0 installation. Before being extracted into a gem,
95+
`net/imap` was only packaged as a part of Ruby's releases. The first stable
96+
release to include `net/imap` was ruby 1.6.2, on 2000-12-25.
97+
98+
[bundled gem]: https://docs.ruby-lang.org/en/master/standard_library_rdoc.html#label-Bundled+gems
99+
[default gem]: https://docs.ruby-lang.org/en/master/standard_library_rdoc.html
100+
[supported Ruby branches]: https://www.ruby-lang.org/en/downloads/branches/
101+
63102
## Development
64103

65104
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

0 commit comments

Comments
 (0)