Skip to content

Commit 6825e70

Browse files
Document DropletKit deprecation in README and gemspec (#340)
* Document DropletKit deprecation in README and gemspec Align the repository with the deprecated status on docs.digitalocean.com: banner and deprecation section in README, updated contributing/release guidance, gemspec metadata and post_install_message for a future release. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix RuboCop offenses for CI Correct gemspec string style, satisfy new Layout and Style cops in lib and specs, and fix RSpec/LeakyLocalVariable by moving setup into examples. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert unrelated RuboCop code changes; exclude cops in todo Keep Class.new error definitions and existing spec layout. CI failures were from new cops, not deprecation work — add exclusions instead. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 08ebbe1 commit 6825e70

5 files changed

Lines changed: 70 additions & 26 deletions

File tree

.rubocop_todo.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,3 +181,28 @@ Style/SymbolProc:
181181
# URISchemes: http, https
182182
Layout/LineLength:
183183
Max: 221
184+
185+
# Offense count: 4
186+
Style/EmptyClassDefinition:
187+
Exclude:
188+
- 'lib/droplet_kit.rb'
189+
190+
# Offense count: 11
191+
Layout/EmptyLinesAfterModuleInclusion:
192+
Exclude:
193+
- 'lib/droplet_kit/mappings/container_registry_mapping.rb'
194+
- 'lib/droplet_kit/mappings/container_registry_repository_mapping.rb'
195+
- 'lib/droplet_kit/mappings/container_registry_repository_tag_mapping.rb'
196+
- 'lib/droplet_kit/mappings/database_postgres_config_mapping.rb'
197+
- 'lib/droplet_kit/mappings/kubernetes_cluster_mapping.rb'
198+
- 'lib/droplet_kit/mappings/kubernetes_maintenance_policy_mapping.rb'
199+
- 'lib/droplet_kit/mappings/kubernetes_node_mapping.rb'
200+
- 'lib/droplet_kit/mappings/kubernetes_node_pool_mapping.rb'
201+
- 'lib/droplet_kit/mappings/kubernetes_options_mapping.rb'
202+
- 'lib/droplet_kit/resources/kubernetes_options_resource.rb'
203+
204+
# Offense count: 4
205+
RSpec/LeakyLocalVariable:
206+
Exclude:
207+
- 'spec/lib/droplet_kit/resources/database_resource_spec.rb'
208+
- 'spec/lib/droplet_kit/resources/droplet_resource_spec.rb'

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Unreleased
2+
3+
- Document repository deprecation in README, gemspec metadata, and [RELEASE.md](RELEASE.md).
4+
15
## Version 3.22.0
26

37
- #332 - @vnegi-digitalocean - add reserved ipv6 support

README.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
# DropletKit
2+
3+
> **Deprecated:** DropletKit is no longer actively maintained. New applications should use the [DigitalOcean API](https://docs.digitalocean.com/reference/api/) directly or a [supported SDK](https://docs.digitalocean.com/reference/libraries/) (TypeScript, Go, or Python). There is no official Ruby SDK.
4+
25
[![Build Status](https://github.com/digitalocean/droplet_kit/workflows/CI/badge.svg?branch=main)](https://github.com/digitalocean/droplet_kit/actions)
36
[![Gem Version](https://badge.fury.io/rb/droplet_kit.svg)](https://badge.fury.io/rb/droplet_kit)
47

5-
DropletKit is the official [DigitalOcean V2 API](https://developers.digitalocean.com/v2/) client. It supports everything the API can do with a simple interface written in Ruby.
8+
DropletKit is a Ruby client for the [DigitalOcean V2 API](https://developers.digitalocean.com/v2/). It provides resource-oriented access to API endpoints. Existing apps may continue to use published gem versions; new API features will not be added here.
9+
10+
## Deprecation
11+
12+
- **Status:** Deprecated; no new features or API coverage. Critical security fixes only.
13+
- **RubyGems:** Published versions remain available; no new releases are planned.
14+
- **Migration:** Call the [API reference](https://docs.digitalocean.com/reference/api/) directly, or use [Godo](https://github.com/digitalocean/godo), [PyDo](https://github.com/digitalocean/pydo), or [DoTs](https://github.com/digitalocean/dots) from another language or service.
15+
- **Forks:** Permitted under the [MIT license](LICENSE.txt).
616

717
## Installation
818

@@ -725,11 +735,8 @@ Actions supported:
725735

726736
## Contributing
727737

728-
1. Fork it ( https://github.com/digitalocean/droplet_kit/fork )
729-
2. Create your feature branch (`git checkout -b my-new-feature`)
730-
3. Commit your changes (`git commit -am 'Add some feature'`)
731-
4. Push to the branch (`git push origin my-new-feature`)
732-
5. Create a new Pull Request
738+
This repository is deprecated and not accepting new features or API endpoint coverage. Critical security fixes may be considered on a case-by-case basis; open an issue before submitting a pull request.
733739

734740
## Releasing
735-
See [RELEASE](RELEASE.md) for details
741+
742+
New gem releases are not planned. See [RELEASE](RELEASE.md) for the historical release process.

RELEASE.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1-
## Releasing
1+
# Releasing
22

3-
Once the changes have been merged to main it's time to release a new
4-
version of the gem.
3+
> **Note:** DropletKit is deprecated (see [README](README.md)). **No new gem releases are planned.** This document is kept for maintainers handling historical releases or a final deprecation notice release.
54
6-
1. Creating a PR with a semantic version bump to
7-
[version](https://github.com/digitalocean/droplet_kit/blob/main/lib/droplet_kit/version.rb)
8-
and all the changes being released added to the
9-
[CHANGELOG](https://github.com/digitalocean/droplet_kit/blob/main/CHANGELOG.md).
10-
1. After the PR has been merged, create a release on GitHub for the new version:
11-
- The tag should be in the format of: vX.Y.Z
12-
- You can think of X.Y.Z as such:
13-
X = breaking
14-
Y = feature
15-
Z = bugfix
16-
- The title should be in the format of: vX.Y.Z (same as tag)
17-
- The description should include all the changes being released in the format of:
18-
- #[PR #] - @[contributor] - [description]
19-
1. When the tag is created, a GitHub Actions workflow will publish the release to rubygems.
5+
## Historical process
6+
7+
Once changes were merged to `main`, a new gem version was released as follows:
8+
9+
1. Create a PR with a semantic version bump to
10+
[version](https://github.com/digitalocean/droplet_kit/blob/main/lib/droplet_kit/version.rb)
11+
and all changes being released added to the
12+
[CHANGELOG](https://github.com/digitalocean/droplet_kit/blob/main/CHANGELOG.md).
13+
2. After the PR was merged, create a release on GitHub for the new version:
14+
- Tag format: `vX.Y.Z`
15+
- Version semantics: `X` = breaking, `Y` = feature, `Z` = bugfix
16+
- Release description: `#[PR #] - @[contributor] - [description]`
17+
3. When the tag was created, a GitHub Actions workflow published the release to RubyGems.
18+
19+
## Deprecation
20+
21+
If a final gem release is published to surface the `post_install_message` in `droplet_kit.gemspec`, follow the steps above with a patch version bump and a CHANGELOG entry documenting the deprecation notice.

droplet_kit.gemspec

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,14 @@ Gem::Specification.new do |spec|
99
spec.version = DropletKit::VERSION
1010
spec.authors = ['DigitalOcean API Engineering team']
1111
spec.email = ['api-engineering@digitalocean.com']
12-
spec.summary = "Droplet Kit is the official Ruby library for DigitalOcean's API"
13-
spec.description = "Droplet Kit is the official Ruby library for DigitalOcean's API"
12+
spec.summary = '[DEPRECATED] Ruby client for the DigitalOcean API v2'
13+
spec.description = 'DropletKit is deprecated and no longer actively maintained. See https://github.com/digitalocean/droplet_kit and https://docs.digitalocean.com/reference/libraries/'
14+
spec.post_install_message = <<~MSG
15+
16+
DropletKit is deprecated and no longer actively maintained by DigitalOcean.
17+
See https://docs.digitalocean.com/reference/libraries/ for supported SDKs.
18+
19+
MSG
1420
spec.homepage = 'https://github.com/digitalocean/droplet_kit'
1521
spec.license = 'MIT'
1622

0 commit comments

Comments
 (0)