-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy patha2a-ruby.gemspec
More file actions
81 lines (64 loc) · 2.75 KB
/
a2a-ruby.gemspec
File metadata and controls
81 lines (64 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# frozen_string_literal: true
require_relative "lib/a2a/version"
Gem::Specification.new do |spec|
spec.name = "a2a-ruby"
spec.version = A2A::VERSION
spec.authors = ["A2A Ruby Team"]
spec.email = ["info@traylinx.com"]
spec.summary = "Agent2Agent (A2A) Protocol implementation for Ruby"
spec.description = "Complete A2A Protocol implementation for Ruby applications, enabling agent-to-agent communication via JSON-RPC 2.0, gRPC, and HTTP+JSON transports"
spec.homepage = "https://github.com/traylinx/a2a-ruby"
spec.license = "MIT"
spec.required_ruby_version = ">= 2.7.0"
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = "https://github.com/traylinx/a2a-ruby"
spec.metadata["changelog_uri"] = "https://github.com/traylinx/a2a-ruby/blob/main/CHANGELOG.md"
spec.metadata["documentation_uri"] = "https://a2a-protocol.org/latest/sdk/ruby/"
spec.metadata["rubygems_mfa_required"] = "true"
# Specify which files should be added to the gem when it is released
spec.files = Dir.chdir(__dir__) do
`git ls-files -z`.split("\x0").reject do |f|
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features|coverage)/|\.(?:git|travis|circleci)|appveyor)})
end
end
# Include essential documentation
spec.files += %w[
README.md
CHANGELOG.md
LICENSE.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
]
# Include documentation directory
spec.files += Dir["docs/**/*.md"]
# Include examples
spec.files += Dir["examples/**/*.rb"]
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
# Core runtime dependencies - minimal and compatible
spec.add_dependency "activesupport", ">= 6.0", "< 8.0"
spec.add_dependency "concurrent-ruby", "~> 1.0"
spec.add_dependency "faraday", "~> 2.0"
spec.add_dependency "jwt", "~> 2.0"
spec.add_dependency "rack", ">= 2.0", "< 4.0"
# Optional dependencies for enhanced functionality
spec.add_dependency "redis", ">= 4.0", "< 6.0"
# Web server support
spec.add_dependency "puma", ">= 5.0", "< 7.0"
# Development dependencies
spec.add_development_dependency "rspec", "~> 3.12"
spec.add_development_dependency "vcr", "~> 6.0"
spec.add_development_dependency "webmock", "~> 3.18"
# Code quality and linting
spec.add_development_dependency "rubocop", "~> 1.57"
spec.add_development_dependency "rubocop-performance", "~> 1.19"
spec.add_development_dependency "rubocop-rspec", "~> 2.25"
# Coverage and documentation
spec.add_development_dependency "simplecov", "~> 0.22"
spec.add_development_dependency "yard", "~> 0.9"
# Performance testing
spec.add_development_dependency "benchmark-ips", "~> 2.12"
# Development tools
spec.add_development_dependency "rake", "~> 13.0"
end