karafka 2.5.3 → 2.5.4.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/config/locales/errors.yml +14 -0
- data/karafka.gemspec +13 -2
- data/lib/karafka/admin/contracts/replication.rb +149 -0
- data/lib/karafka/admin/replication.rb +462 -0
- data/lib/karafka/admin.rb +47 -2
- data/lib/karafka/instrumentation/logger_listener.rb +0 -2
- data/lib/karafka/instrumentation/vendors/appsignal/metrics_listener.rb +4 -0
- data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +31 -15
- data/lib/karafka/licenser.rb +1 -1
- data/lib/karafka/messages/messages.rb +32 -0
- data/lib/karafka/pro/cleaner/messages/messages.rb +1 -1
- data/lib/karafka/pro/processing/jobs_queue.rb +0 -2
- data/lib/karafka/pro/processing/strategies/dlq/default.rb +1 -1
- data/lib/karafka/pro/processing/strategies/vp/default.rb +1 -1
- data/lib/karafka/processing/strategies/dlq.rb +1 -1
- data/lib/karafka/routing/consumer_group.rb +19 -1
- data/lib/karafka/routing/subscription_group.rb +1 -1
- data/lib/karafka/routing/subscription_groups_builder.rb +17 -2
- data/lib/karafka/version.rb +1 -1
- data/lib/karafka.rb +0 -1
- metadata +3 -62
- data/.coditsu/ci.yml +0 -3
- data/.console_irbrc +0 -11
- data/.github/CODEOWNERS +0 -3
- data/.github/FUNDING.yml +0 -1
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -43
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +0 -296
- data/.github/workflows/ci_macos_arm64.yml +0 -151
- data/.github/workflows/push.yml +0 -35
- data/.github/workflows/trigger-wiki-refresh.yml +0 -30
- data/.github/workflows/verify-action-pins.yml +0 -16
- data/.gitignore +0 -69
- data/.rspec +0 -7
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.yard-lint.yml +0 -174
- data/CODE_OF_CONDUCT.md +0 -46
- data/CONTRIBUTING.md +0 -32
- data/Gemfile +0 -29
- data/Gemfile.lock +0 -178
- data/Rakefile +0 -4
- data/SECURITY.md +0 -23
- data/bin/benchmarks +0 -99
- data/bin/clean_kafka +0 -43
- data/bin/create_token +0 -22
- data/bin/integrations +0 -341
- data/bin/record_rss +0 -50
- data/bin/rspecs +0 -26
- data/bin/scenario +0 -29
- data/bin/stress_many +0 -13
- data/bin/stress_one +0 -13
- data/bin/verify_kafka_warnings +0 -36
- data/bin/verify_license_integrity +0 -37
- data/bin/verify_topics_naming +0 -27
- data/bin/wait_for_kafka +0 -24
- data/docker-compose.yml +0 -25
- data/examples/payloads/avro/.gitkeep +0 -0
- data/examples/payloads/json/sample_set_01/enrollment_event.json +0 -579
- data/examples/payloads/json/sample_set_01/ingestion_event.json +0 -30
- data/examples/payloads/json/sample_set_01/transaction_event.json +0 -17
- data/examples/payloads/json/sample_set_01/user_event.json +0 -11
- data/examples/payloads/json/sample_set_02/download.json +0 -191
- data/examples/payloads/json/sample_set_03/event_type_1.json +0 -18
- data/examples/payloads/json/sample_set_03/event_type_2.json +0 -263
- data/examples/payloads/json/sample_set_03/event_type_3.json +0 -41
- data/log/.gitkeep +0 -0
- data/renovate.json +0 -21
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
name: CI macOS ARM64 Swarm
|
|
2
|
-
|
|
3
|
-
concurrency:
|
|
4
|
-
group: ${{ github.workflow }}-${{ github.ref }}
|
|
5
|
-
cancel-in-progress: true
|
|
6
|
-
|
|
7
|
-
on:
|
|
8
|
-
pull_request:
|
|
9
|
-
branches: [ master ]
|
|
10
|
-
schedule:
|
|
11
|
-
- cron: '0 2 * * *'
|
|
12
|
-
|
|
13
|
-
permissions:
|
|
14
|
-
contents: read
|
|
15
|
-
|
|
16
|
-
env:
|
|
17
|
-
BUNDLE_RETRY: 6
|
|
18
|
-
BUNDLE_JOBS: 4
|
|
19
|
-
CONFLUENT_VERSION: "8.0.0"
|
|
20
|
-
|
|
21
|
-
jobs:
|
|
22
|
-
swarm-macos:
|
|
23
|
-
timeout-minutes: 30
|
|
24
|
-
strategy:
|
|
25
|
-
fail-fast: false
|
|
26
|
-
matrix:
|
|
27
|
-
ruby:
|
|
28
|
-
- '3.5.0-preview1'
|
|
29
|
-
- '3.4'
|
|
30
|
-
- '3.3'
|
|
31
|
-
- '3.2'
|
|
32
|
-
macos-version:
|
|
33
|
-
- 'macos-14'
|
|
34
|
-
- 'macos-15'
|
|
35
|
-
exclude:
|
|
36
|
-
- ruby: '3.5.0-preview1'
|
|
37
|
-
macos-version: 'macos-14'
|
|
38
|
-
runs-on: ${{ matrix.macos-version }}
|
|
39
|
-
steps:
|
|
40
|
-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
41
|
-
|
|
42
|
-
- name: Remove Gemfile.lock for Ruby preview versions
|
|
43
|
-
if: contains(matrix.ruby, 'preview')
|
|
44
|
-
run: rm -f Gemfile.lock
|
|
45
|
-
|
|
46
|
-
- name: Install Bash 4+ and Kerberos
|
|
47
|
-
run: |
|
|
48
|
-
brew install bash
|
|
49
|
-
brew list krb5 &>/dev/null || brew install krb5
|
|
50
|
-
echo "/opt/homebrew/bin" >> $GITHUB_PATH
|
|
51
|
-
- name: Install and Start Confluent Community Kafka (KRaft)
|
|
52
|
-
run: |
|
|
53
|
-
brew install openjdk@17
|
|
54
|
-
export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
|
|
55
|
-
export JAVA_HOME="/opt/homebrew/opt/openjdk@17"
|
|
56
|
-
|
|
57
|
-
curl -O "https://packages.confluent.io/archive/8.0/confluent-community-${CONFLUENT_VERSION}.tar.gz"
|
|
58
|
-
tar -xzf "confluent-community-${CONFLUENT_VERSION}.tar.gz"
|
|
59
|
-
|
|
60
|
-
export CONFLUENT_HOME="$(pwd)/confluent-${CONFLUENT_VERSION}"
|
|
61
|
-
export PATH="$CONFLUENT_HOME/bin:$PATH"
|
|
62
|
-
cd "$CONFLUENT_HOME"
|
|
63
|
-
|
|
64
|
-
# Find the correct server config
|
|
65
|
-
KRAFT_CONFIG=""
|
|
66
|
-
for config in "etc/kafka/kraft/server.properties" "config/kraft/server.properties" "etc/kafka/server.properties"; do
|
|
67
|
-
if [ -f "$config" ]; then
|
|
68
|
-
KRAFT_CONFIG="$config"
|
|
69
|
-
echo "Found config: $KRAFT_CONFIG"
|
|
70
|
-
break
|
|
71
|
-
fi
|
|
72
|
-
done
|
|
73
|
-
|
|
74
|
-
if [ -z "$KRAFT_CONFIG" ]; then
|
|
75
|
-
echo "❌ No server config found"
|
|
76
|
-
exit 1
|
|
77
|
-
fi
|
|
78
|
-
|
|
79
|
-
# Configure KRaft for single-node setup
|
|
80
|
-
cat >> "$KRAFT_CONFIG" << 'EOF'
|
|
81
|
-
|
|
82
|
-
# KRaft mode configuration for single-node setup
|
|
83
|
-
process.roles=broker,controller
|
|
84
|
-
node.id=1
|
|
85
|
-
controller.quorum.voters=1@127.0.0.1:9093
|
|
86
|
-
listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://127.0.0.1:9093
|
|
87
|
-
advertised.listeners=PLAINTEXT://127.0.0.1:9092
|
|
88
|
-
controller.listener.names=CONTROLLER
|
|
89
|
-
inter.broker.listener.name=PLAINTEXT
|
|
90
|
-
log.dirs=/tmp/kraft-combined-logs
|
|
91
|
-
|
|
92
|
-
# Enable simple ACL authorization for testing
|
|
93
|
-
authorizer.class.name=org.apache.kafka.metadata.authorizer.StandardAuthorizer
|
|
94
|
-
super.users=User:ANONYMOUS
|
|
95
|
-
allow.everyone.if.no.acl.found=true
|
|
96
|
-
EOF
|
|
97
|
-
|
|
98
|
-
echo "Updated KRaft configuration"
|
|
99
|
-
|
|
100
|
-
CLUSTER_ID=$(bin/kafka-storage random-uuid)
|
|
101
|
-
bin/kafka-storage format -t "$CLUSTER_ID" -c "$KRAFT_CONFIG"
|
|
102
|
-
bin/kafka-server-start "$KRAFT_CONFIG" &
|
|
103
|
-
|
|
104
|
-
sleep 20
|
|
105
|
-
|
|
106
|
-
for i in {1..30}; do
|
|
107
|
-
if bin/kafka-topics --bootstrap-server 127.0.0.1:9092 --list >/dev/null 2>&1; then
|
|
108
|
-
echo "✅ Confluent Community ${CONFLUENT_VERSION} (KRaft) is ready!"
|
|
109
|
-
break
|
|
110
|
-
fi
|
|
111
|
-
[ $i -eq 30 ] && { echo "❌ Kafka failed to start"; exit 1; }
|
|
112
|
-
sleep 2
|
|
113
|
-
done
|
|
114
|
-
|
|
115
|
-
- name: Remove Gemfile.lock for Ruby dev/preview versions
|
|
116
|
-
if: contains(matrix.ruby, 'dev') || contains(matrix.ruby, 'preview') || contains(matrix.ruby, 'rc')
|
|
117
|
-
run: rm -f Gemfile.lock
|
|
118
|
-
|
|
119
|
-
- name: Set up Ruby
|
|
120
|
-
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
121
|
-
with:
|
|
122
|
-
ruby-version: ${{ matrix.ruby }}
|
|
123
|
-
bundler-cache: true
|
|
124
|
-
bundler: 'latest'
|
|
125
|
-
|
|
126
|
-
- name: Run swarm unit specs
|
|
127
|
-
run: bundle exec rspec spec/lib/karafka/swarm/ --tag mode:fork
|
|
128
|
-
|
|
129
|
-
- name: Run all swarm integration specs
|
|
130
|
-
env:
|
|
131
|
-
KARAFKA_PRO_LICENSE_TOKEN: ${{ secrets.KARAFKA_PRO_LICENSE_TOKEN }}
|
|
132
|
-
KARAFKA_PRO_USERNAME: ${{ secrets.KARAFKA_PRO_USERNAME }}
|
|
133
|
-
KARAFKA_PRO_PASSWORD: ${{ secrets.KARAFKA_PRO_PASSWORD }}
|
|
134
|
-
KARAFKA_PRO_VERSION: ${{ secrets.KARAFKA_PRO_VERSION }}
|
|
135
|
-
KARAFKA_PRO_LICENSE_CHECKSUM: ${{ secrets.KARAFKA_PRO_LICENSE_CHECKSUM }}
|
|
136
|
-
run: bin/integrations swarm
|
|
137
|
-
|
|
138
|
-
ci-success-macos:
|
|
139
|
-
name: CI macOS ARM64 Swarm Success
|
|
140
|
-
runs-on: ubuntu-latest
|
|
141
|
-
if: always()
|
|
142
|
-
needs:
|
|
143
|
-
- swarm-macos
|
|
144
|
-
steps:
|
|
145
|
-
- name: Check all jobs passed
|
|
146
|
-
if: |
|
|
147
|
-
contains(needs.*.result, 'failure') ||
|
|
148
|
-
contains(needs.*.result, 'cancelled') ||
|
|
149
|
-
contains(needs.*.result, 'skipped')
|
|
150
|
-
run: exit 1
|
|
151
|
-
- run: echo "All macOS ARM64 Swarm CI checks passed!"
|
data/.github/workflows/push.yml
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
name: Push Gem
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- v*
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: read
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
push:
|
|
13
|
-
if: github.repository_owner == 'karafka'
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
environment: deployment
|
|
16
|
-
|
|
17
|
-
permissions:
|
|
18
|
-
contents: write
|
|
19
|
-
id-token: write
|
|
20
|
-
|
|
21
|
-
steps:
|
|
22
|
-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
23
|
-
with:
|
|
24
|
-
fetch-depth: 0
|
|
25
|
-
|
|
26
|
-
- name: Set up Ruby
|
|
27
|
-
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
28
|
-
with:
|
|
29
|
-
bundler-cache: false
|
|
30
|
-
|
|
31
|
-
- name: Bundle install
|
|
32
|
-
run: |
|
|
33
|
-
bundle install --jobs 4 --retry 3
|
|
34
|
-
|
|
35
|
-
- uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b # v1.1.2
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
name: Trigger Wiki Refresh
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types: [published]
|
|
6
|
-
push:
|
|
7
|
-
branches: [master]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
trigger-wiki-refresh:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
environment: wiki-trigger
|
|
13
|
-
if: github.repository_owner == 'karafka'
|
|
14
|
-
steps:
|
|
15
|
-
- name: Trigger wiki refresh
|
|
16
|
-
uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f # v4.0.0
|
|
17
|
-
with:
|
|
18
|
-
token: ${{ secrets.WIKI_REPO_TOKEN }}
|
|
19
|
-
repository: karafka/wiki
|
|
20
|
-
event-type: sync-trigger
|
|
21
|
-
client-payload: |
|
|
22
|
-
{
|
|
23
|
-
"repository": "${{ github.repository }}",
|
|
24
|
-
"event_name": "${{ github.event_name }}",
|
|
25
|
-
"release_tag": "${{ github.event.release.tag_name || '' }}",
|
|
26
|
-
"release_name": "${{ github.event.release.name || '' }}",
|
|
27
|
-
"commit_sha": "${{ github.sha }}",
|
|
28
|
-
"commit_message": "Trigger Wiki Refresh",
|
|
29
|
-
"triggered_by": "${{ github.actor }}"
|
|
30
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
name: Verify Action Pins
|
|
2
|
-
on:
|
|
3
|
-
pull_request:
|
|
4
|
-
paths:
|
|
5
|
-
- '.github/workflows/**'
|
|
6
|
-
jobs:
|
|
7
|
-
verify_action_pins:
|
|
8
|
-
runs-on: ubuntu-latest
|
|
9
|
-
steps:
|
|
10
|
-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
11
|
-
- name: Check SHA pins
|
|
12
|
-
run: |
|
|
13
|
-
if grep -E -r "uses: .*/.*@(v[0-9]+|main|master)($|[[:space:]]|$)" --include="*.yml" --include="*.yaml" .github/workflows/ | grep -v "#"; then
|
|
14
|
-
echo "::error::Actions should use SHA pins, not tags or branch names"
|
|
15
|
-
exit 1
|
|
16
|
-
fi
|
data/.gitignore
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# bundler state
|
|
2
|
-
/.bundle
|
|
3
|
-
/vendor/bundle/
|
|
4
|
-
/vendor/ruby/
|
|
5
|
-
/ruby/
|
|
6
|
-
app.god
|
|
7
|
-
|
|
8
|
-
# minimal Rails specific artifacts
|
|
9
|
-
/.coditsu/local.yml
|
|
10
|
-
db/*.sqlite3
|
|
11
|
-
/log/development.log
|
|
12
|
-
/log/production.log
|
|
13
|
-
/log/test.log
|
|
14
|
-
/tmp/*
|
|
15
|
-
*.gem
|
|
16
|
-
*.~
|
|
17
|
-
|
|
18
|
-
# various artifacts
|
|
19
|
-
**.war
|
|
20
|
-
*.rbc
|
|
21
|
-
*.sassc
|
|
22
|
-
.byebug_history
|
|
23
|
-
.redcar/
|
|
24
|
-
.capistrano/
|
|
25
|
-
.sass-cache
|
|
26
|
-
/config/god/sidekiq.rb
|
|
27
|
-
/config/puma.rb
|
|
28
|
-
/coverage.data
|
|
29
|
-
/coverage/
|
|
30
|
-
/doc/api/
|
|
31
|
-
/doc/app/
|
|
32
|
-
/doc/yard
|
|
33
|
-
/doc/features.html
|
|
34
|
-
/doc/specs.html
|
|
35
|
-
/spec/tmp/*
|
|
36
|
-
/cache
|
|
37
|
-
/capybara*
|
|
38
|
-
/capybara-*.html
|
|
39
|
-
/gems
|
|
40
|
-
/specifications
|
|
41
|
-
rerun.txt
|
|
42
|
-
pickle-email-*.html
|
|
43
|
-
|
|
44
|
-
# If you find yourself ignoring temporary files generated by your text editor
|
|
45
|
-
# or operating system, you probably want to add a global ignore instead:
|
|
46
|
-
# git config --global core.excludesfile ~/.gitignore_global
|
|
47
|
-
#
|
|
48
|
-
# Here are some files you may want to ignore globally:
|
|
49
|
-
|
|
50
|
-
# scm revert files
|
|
51
|
-
**.orig
|
|
52
|
-
|
|
53
|
-
# Mac finder artifacts
|
|
54
|
-
.DS_Store
|
|
55
|
-
|
|
56
|
-
# Netbeans project directory
|
|
57
|
-
/nbproject
|
|
58
|
-
|
|
59
|
-
# RubyMine project files
|
|
60
|
-
.idea
|
|
61
|
-
|
|
62
|
-
# Textmate project files
|
|
63
|
-
/*.tmproj
|
|
64
|
-
|
|
65
|
-
# vim artifacts
|
|
66
|
-
**.swp
|
|
67
|
-
|
|
68
|
-
# documentation
|
|
69
|
-
.yardoc
|
data/.rspec
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
--require spec_helper
|
|
2
|
-
# Integration specs run with their one framework, not via RSpec
|
|
3
|
-
--exclude-pattern "spec/integrations/**/*_spec.rb"
|
|
4
|
-
# Do not run pro at the same time as default specs as it would cause state conflicts
|
|
5
|
-
--tag ~type:pro
|
|
6
|
-
# Do not run fork because they need to run in isolation
|
|
7
|
-
--tag ~mode:fork
|
data/.ruby-gemset
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
karafka
|
data/.ruby-version
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.4.7
|
data/.yard-lint.yml
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
# YARD-Lint Configuration
|
|
2
|
-
# See https://github.com/mensfeld/yard-lint for documentation
|
|
3
|
-
|
|
4
|
-
# Global settings for all validators
|
|
5
|
-
AllValidators:
|
|
6
|
-
# YARD command-line options (applied to all validators by default)
|
|
7
|
-
YardOptions:
|
|
8
|
-
- --private
|
|
9
|
-
- --protected
|
|
10
|
-
|
|
11
|
-
# Global file exclusion patterns
|
|
12
|
-
Exclude:
|
|
13
|
-
- '\.git'
|
|
14
|
-
- 'vendor/**/*'
|
|
15
|
-
- 'node_modules/**/*'
|
|
16
|
-
- 'spec/**/*'
|
|
17
|
-
- 'test/**/*'
|
|
18
|
-
|
|
19
|
-
# Exit code behavior (error, warning, convention, never)
|
|
20
|
-
FailOnSeverity: error
|
|
21
|
-
|
|
22
|
-
# Minimum documentation coverage percentage (0-100)
|
|
23
|
-
# Fails if coverage is below this threshold
|
|
24
|
-
MinCoverage: 99.0
|
|
25
|
-
|
|
26
|
-
# Diff mode settings
|
|
27
|
-
DiffMode:
|
|
28
|
-
# Default base ref for --diff (auto-detects main/master if not specified)
|
|
29
|
-
DefaultBaseRef: ~
|
|
30
|
-
|
|
31
|
-
# Documentation validators
|
|
32
|
-
Documentation/UndocumentedObjects:
|
|
33
|
-
Description: 'Checks for classes, modules, and methods without documentation.'
|
|
34
|
-
Enabled: true
|
|
35
|
-
Severity: error
|
|
36
|
-
ExcludedMethods:
|
|
37
|
-
- 'initialize/0' # Exclude parameter-less initialize
|
|
38
|
-
- '/^_/' # Exclude private methods (by convention)
|
|
39
|
-
|
|
40
|
-
Documentation/UndocumentedMethodArguments:
|
|
41
|
-
Description: 'Checks for method parameters without @param tags.'
|
|
42
|
-
Enabled: true
|
|
43
|
-
Severity: error
|
|
44
|
-
|
|
45
|
-
Documentation/UndocumentedBooleanMethods:
|
|
46
|
-
Description: 'Checks that question mark methods document their boolean return.'
|
|
47
|
-
Enabled: true
|
|
48
|
-
Severity: error
|
|
49
|
-
|
|
50
|
-
Documentation/UndocumentedOptions:
|
|
51
|
-
Description: 'Detects methods with options hash parameters but no @option tags.'
|
|
52
|
-
Enabled: true
|
|
53
|
-
Severity: error
|
|
54
|
-
|
|
55
|
-
Documentation/MarkdownSyntax:
|
|
56
|
-
Description: 'Detects common markdown syntax errors in documentation.'
|
|
57
|
-
Enabled: true
|
|
58
|
-
Severity: error
|
|
59
|
-
|
|
60
|
-
# Tags validators
|
|
61
|
-
Tags/Order:
|
|
62
|
-
Description: 'Enforces consistent ordering of YARD tags.'
|
|
63
|
-
Enabled: true
|
|
64
|
-
Severity: error
|
|
65
|
-
EnforcedOrder:
|
|
66
|
-
- param
|
|
67
|
-
- option
|
|
68
|
-
- return
|
|
69
|
-
- raise
|
|
70
|
-
- example
|
|
71
|
-
|
|
72
|
-
Tags/InvalidTypes:
|
|
73
|
-
Description: 'Validates type definitions in @param, @return, @option tags.'
|
|
74
|
-
Enabled: true
|
|
75
|
-
Severity: error
|
|
76
|
-
ValidatedTags:
|
|
77
|
-
- param
|
|
78
|
-
- option
|
|
79
|
-
- return
|
|
80
|
-
|
|
81
|
-
Tags/TypeSyntax:
|
|
82
|
-
Description: 'Validates YARD type syntax using YARD parser.'
|
|
83
|
-
Enabled: true
|
|
84
|
-
Severity: error
|
|
85
|
-
ValidatedTags:
|
|
86
|
-
- param
|
|
87
|
-
- option
|
|
88
|
-
- return
|
|
89
|
-
- yieldreturn
|
|
90
|
-
|
|
91
|
-
Tags/MeaninglessTag:
|
|
92
|
-
Description: 'Detects @param/@option tags on classes, modules, or constants.'
|
|
93
|
-
Enabled: true
|
|
94
|
-
Severity: error
|
|
95
|
-
CheckedTags:
|
|
96
|
-
- param
|
|
97
|
-
- option
|
|
98
|
-
InvalidObjectTypes:
|
|
99
|
-
- class
|
|
100
|
-
- module
|
|
101
|
-
- constant
|
|
102
|
-
|
|
103
|
-
Tags/CollectionType:
|
|
104
|
-
Description: 'Validates Hash collection syntax consistency.'
|
|
105
|
-
Enabled: true
|
|
106
|
-
Severity: error
|
|
107
|
-
EnforcedStyle: long # 'long' for Hash{K => V} (YARD standard), 'short' for {K => V}
|
|
108
|
-
ValidatedTags:
|
|
109
|
-
- param
|
|
110
|
-
- option
|
|
111
|
-
- return
|
|
112
|
-
- yieldreturn
|
|
113
|
-
|
|
114
|
-
Tags/TagTypePosition:
|
|
115
|
-
Description: 'Validates type annotation position in tags.'
|
|
116
|
-
Enabled: true
|
|
117
|
-
Severity: error
|
|
118
|
-
CheckedTags:
|
|
119
|
-
- param
|
|
120
|
-
- option
|
|
121
|
-
# EnforcedStyle: 'type_after_name' (YARD standard: @param name [Type])
|
|
122
|
-
# or 'type_first' (@param [Type] name)
|
|
123
|
-
EnforcedStyle: type_after_name
|
|
124
|
-
|
|
125
|
-
Tags/ApiTags:
|
|
126
|
-
Description: 'Enforces @api tags on public objects.'
|
|
127
|
-
Enabled: false # Opt-in validator
|
|
128
|
-
Severity: error
|
|
129
|
-
AllowedApis:
|
|
130
|
-
- public
|
|
131
|
-
- private
|
|
132
|
-
- internal
|
|
133
|
-
|
|
134
|
-
Tags/OptionTags:
|
|
135
|
-
Description: 'Requires @option tags for methods with options parameters.'
|
|
136
|
-
Enabled: true
|
|
137
|
-
Severity: error
|
|
138
|
-
|
|
139
|
-
# Warnings validators - catches YARD parser errors
|
|
140
|
-
Warnings/UnknownTag:
|
|
141
|
-
Description: 'Detects unknown YARD tags.'
|
|
142
|
-
Enabled: true
|
|
143
|
-
Severity: error
|
|
144
|
-
|
|
145
|
-
Warnings/UnknownDirective:
|
|
146
|
-
Description: 'Detects unknown YARD directives.'
|
|
147
|
-
Enabled: true
|
|
148
|
-
Severity: error
|
|
149
|
-
|
|
150
|
-
Warnings/InvalidTagFormat:
|
|
151
|
-
Description: 'Detects malformed tag syntax.'
|
|
152
|
-
Enabled: true
|
|
153
|
-
Severity: error
|
|
154
|
-
|
|
155
|
-
Warnings/InvalidDirectiveFormat:
|
|
156
|
-
Description: 'Detects malformed directive syntax.'
|
|
157
|
-
Enabled: true
|
|
158
|
-
Severity: error
|
|
159
|
-
|
|
160
|
-
Warnings/DuplicatedParameterName:
|
|
161
|
-
Description: 'Detects duplicate @param tags.'
|
|
162
|
-
Enabled: true
|
|
163
|
-
Severity: error
|
|
164
|
-
|
|
165
|
-
Warnings/UnknownParameterName:
|
|
166
|
-
Description: 'Detects @param tags for non-existent parameters.'
|
|
167
|
-
Enabled: true
|
|
168
|
-
Severity: error
|
|
169
|
-
|
|
170
|
-
# Semantic validators
|
|
171
|
-
Semantic/AbstractMethods:
|
|
172
|
-
Description: 'Ensures @abstract methods do not have real implementations.'
|
|
173
|
-
Enabled: true
|
|
174
|
-
Severity: error
|
data/CODE_OF_CONDUCT.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Contributor Covenant Code of Conduct
|
|
2
|
-
|
|
3
|
-
## Our Pledge
|
|
4
|
-
|
|
5
|
-
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
6
|
-
|
|
7
|
-
## Our Standards
|
|
8
|
-
|
|
9
|
-
Examples of behavior that contributes to creating a positive environment include:
|
|
10
|
-
|
|
11
|
-
* Using welcoming and inclusive language
|
|
12
|
-
* Being respectful of differing viewpoints and experiences
|
|
13
|
-
* Gracefully accepting constructive criticism
|
|
14
|
-
* Focusing on what is best for the community
|
|
15
|
-
* Showing empathy towards other community members
|
|
16
|
-
|
|
17
|
-
Examples of unacceptable behavior by participants include:
|
|
18
|
-
|
|
19
|
-
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
|
20
|
-
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
21
|
-
* Public or private harassment
|
|
22
|
-
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
|
23
|
-
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
24
|
-
|
|
25
|
-
## Our Responsibilities
|
|
26
|
-
|
|
27
|
-
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
|
28
|
-
|
|
29
|
-
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
-
|
|
31
|
-
## Scope
|
|
32
|
-
|
|
33
|
-
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
|
34
|
-
|
|
35
|
-
## Enforcement
|
|
36
|
-
|
|
37
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at maciej@mensfeld.pl. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
|
38
|
-
|
|
39
|
-
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
|
40
|
-
|
|
41
|
-
## Attribution
|
|
42
|
-
|
|
43
|
-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
|
44
|
-
|
|
45
|
-
[homepage]: http://contributor-covenant.org
|
|
46
|
-
[version]: http://contributor-covenant.org/version/1/4/
|
data/CONTRIBUTING.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Contributing
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
First, thank you for considering contributing to the Karafka ecosystem! It's people like you that make the open source community such a great community! 😊
|
|
6
|
-
|
|
7
|
-
We welcome any type of contribution, not only code. You can help with:
|
|
8
|
-
- **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open)
|
|
9
|
-
- **Marketing**: writing blog posts, howto's, printing stickers, ...
|
|
10
|
-
- **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ...
|
|
11
|
-
- **Code**: take a look at the [open issues](https://github.com/karafka/karafka/issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.
|
|
12
|
-
|
|
13
|
-
## Submitting code
|
|
14
|
-
|
|
15
|
-
Any code change should be submitted as a pull request. The description should explain what the code does and give steps to execute it. The pull request should also contain tests.
|
|
16
|
-
|
|
17
|
-
### Code review process
|
|
18
|
-
|
|
19
|
-
Each pull request must pass all the rspec specs and meet our quality requirements.
|
|
20
|
-
|
|
21
|
-
To check if everything is as it should be, we use [Coditsu](https://coditsu.io) that combines multiple linters and code analyzers for both code and documentation. Once you're done with your changes, submit a pull request.
|
|
22
|
-
|
|
23
|
-
### Contributing to Pro components
|
|
24
|
-
|
|
25
|
-
All of Karafka components are open-source. However, the `Pro` components are licenses under `LICENSE-COMM`.
|
|
26
|
-
|
|
27
|
-
By sending a pull request to the pro components, you are agreeing to transfer the copyright of your code to Maciej Mensfeld.
|
|
28
|
-
|
|
29
|
-
## Questions
|
|
30
|
-
|
|
31
|
-
If you have any questions, create an [issue](https://github.com/karafka/karafka/issues) (protip: do a quick search first to see if someone else didn't ask the same question before!).
|
|
32
|
-
You can also reach us at contact@karafka.io.
|
data/Gemfile
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
gemspec
|
|
6
|
-
|
|
7
|
-
# Karafka gem does not require activejob, karafka-web or fugit to work
|
|
8
|
-
# They are added here because they are part of the integration suite
|
|
9
|
-
# Since some of those are only needed for some specs, they should never be required automatically
|
|
10
|
-
group :integrations, :test do
|
|
11
|
-
gem 'fugit', require: false
|
|
12
|
-
gem 'rspec', require: false
|
|
13
|
-
gem 'stringio'
|
|
14
|
-
gem 'warning'
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
group :integrations do
|
|
18
|
-
gem 'activejob', require: false
|
|
19
|
-
gem 'karafka-testing', '>= 2.5.0', require: false
|
|
20
|
-
gem 'karafka-web', '>= 0.11.1', require: false
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
group :test do
|
|
24
|
-
gem 'byebug'
|
|
25
|
-
gem 'factory_bot'
|
|
26
|
-
gem 'ostruct'
|
|
27
|
-
gem 'simplecov'
|
|
28
|
-
gem 'yard-lint'
|
|
29
|
-
end
|