jackhammer 1.3.0 → 1.3.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3233e5bc59da2462018ba8fce8316c164a98b67de74febd54adb5eb947ea791
4
- data.tar.gz: 1cc3cc86e29fd9f053b35be5ccfb5b3e60c0a6513f049d39c7c725fdf2cc103d
3
+ metadata.gz: 485b5598534853da9cc94ce3402e8e81e1f261820208f04d4f343783cf82e231
4
+ data.tar.gz: e8ae165eb429b89065c8cb3630457bffc15d1be6a9e59826d52466f2a28b19dd
5
5
  SHA512:
6
- metadata.gz: d35d51ed2ed012671cd41035f417e161d5ecdb1c44a01e6c27c0c880e967de30d5c04900a517cddceb93987e7f4ad091e07e11a1b62a09f6893d70d2a8f86c88
7
- data.tar.gz: 85720d119ebbde35fbb0f05fb57058f7afe8251f7942891ccfd8765503cd022cb2ea3a376ac73cb978dda66dc16358b9462884e1589d46e218d41b3346065dc3
6
+ metadata.gz: b505c5468529bb070b6fd193a460a0252134886059b22858961f54af1932e56fb6096fe9f4fe966e32c76856cb85aad8451fa2aaf22d6c93f97f5d4722b8a92f
7
+ data.tar.gz: 35afe310870caf60d6a505c9f5839f4043014f7c651166d129116dfa012da4f54f92dd8718ca7ab74f42e9c9f0442e136331134739597e5cecd155698ca126bc
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to track an issue that has been identified
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Mutation/Query**
24
+
25
+ **URL and HTTP method (for non-GQL):**
26
+
27
+ **Sentry or Logs URL:**
28
+
29
+ **User/authentication details**
30
+ Impacted user name or service account
31
+
32
+ **Additional context**
33
+ Add any other context about the problem here.
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: New story
3
+ about: Add a new story for implementation
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the solution**
11
+ A clear and concise description of what you want to happen.
12
+ When will this feature be done?
13
+
14
+ **Describe the users**
15
+ Who are we building this feature for?
16
+
17
+ **Additional context**
18
+ Add any other context or screenshots about the feature request here.
19
+ Link to any applicable documents describing the feature.
20
+
21
+ **Designs**
22
+ Link to any applicable designs on Invision.
@@ -0,0 +1,18 @@
1
+ ## Description
2
+ <!--- Describe your changes in detail -->
3
+
4
+ ## Related issue(s)
5
+ <!--- GH issue number -->
6
+
7
+ ## Motivation and Context
8
+ <!--- Why is this change required? What problem does it solve? -->
9
+ <!--- If it fixes an open issue, please link to the issue here. -->
10
+
11
+ ## How Has This Been Tested?
12
+ <!--- Please describe in detail how you tested your changes. -->
13
+
14
+ ## Screenshots (if appropriate):
15
+ <!--- Please add any screenshots of the feature. -->
16
+
17
+ ## Related PRs
18
+ <!--- Please add links to any related PRs (backend, component packages, etc). -->
@@ -0,0 +1,16 @@
1
+ # automatically approve PRs submitted by Dependabot
2
+ # this will allow Dependabot to automatically merge dependency update PRs where CI passes
3
+ # from: https://github.com/hmarr/auto-approve-action
4
+ name: Auto approve Dependabot PRs
5
+
6
+ on:
7
+ pull_request
8
+
9
+ jobs:
10
+ auto-approve:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: hmarr/auto-approve-action@v2.0.0
14
+ if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
15
+ with:
16
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -3,8 +3,9 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.5
7
6
  - 2.6
7
+ - 2.7
8
8
  before_install: gem install bundler
9
9
  script:
10
- - bundle exec rake
10
+ - bundle exec rake spec
11
+ - bundle exec rake rubocop
@@ -1,55 +1,82 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jackhammer (1.3.0)
4
+ jackhammer (1.3.5)
5
5
  bunny (~> 2.14)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- amq-protocol (2.3.0)
11
- ast (2.4.0)
12
- bunny (2.14.3)
13
- amq-protocol (~> 2.3, >= 2.3.0)
10
+ activemodel (6.0.3.2)
11
+ activesupport (= 6.0.3.2)
12
+ activerecord (6.0.3.2)
13
+ activemodel (= 6.0.3.2)
14
+ activesupport (= 6.0.3.2)
15
+ activesupport (6.0.3.2)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 0.7, < 2)
18
+ minitest (~> 5.1)
19
+ tzinfo (~> 1.1)
20
+ zeitwerk (~> 2.2, >= 2.2.2)
21
+ amq-protocol (2.3.2)
22
+ ast (2.4.1)
23
+ bunny (2.15.0)
24
+ amq-protocol (~> 2.3, >= 2.3.1)
14
25
  bunny-mock (1.7.0)
15
26
  bunny (>= 1.7)
16
- byebug (11.1.1)
17
- diff-lcs (1.3)
18
- jaro_winkler (1.5.4)
19
- parallel (1.19.1)
20
- parser (2.7.0.2)
21
- ast (~> 2.4.0)
27
+ byebug (11.1.3)
28
+ concurrent-ruby (1.1.6)
29
+ diff-lcs (1.4.4)
30
+ i18n (1.8.3)
31
+ concurrent-ruby (~> 1.0)
32
+ minitest (5.14.1)
33
+ parallel (1.19.2)
34
+ parser (2.7.1.4)
35
+ ast (~> 2.4.1)
22
36
  rainbow (3.0.0)
23
37
  rake (13.0.1)
38
+ regexp_parser (1.7.1)
39
+ rexml (3.2.4)
24
40
  rspec (3.9.0)
25
41
  rspec-core (~> 3.9.0)
26
42
  rspec-expectations (~> 3.9.0)
27
43
  rspec-mocks (~> 3.9.0)
28
- rspec-core (3.9.1)
29
- rspec-support (~> 3.9.1)
30
- rspec-expectations (3.9.0)
44
+ rspec-core (3.9.2)
45
+ rspec-support (~> 3.9.3)
46
+ rspec-expectations (3.9.2)
31
47
  diff-lcs (>= 1.2.0, < 2.0)
32
48
  rspec-support (~> 3.9.0)
33
49
  rspec-mocks (3.9.1)
34
50
  diff-lcs (>= 1.2.0, < 2.0)
35
51
  rspec-support (~> 3.9.0)
36
- rspec-support (3.9.2)
37
- rubocop (0.79.0)
38
- jaro_winkler (~> 1.5.1)
52
+ rspec-support (3.9.3)
53
+ rubocop (0.88.0)
39
54
  parallel (~> 1.10)
40
- parser (>= 2.7.0.1)
55
+ parser (>= 2.7.1.1)
41
56
  rainbow (>= 2.2.2, < 4.0)
57
+ regexp_parser (>= 1.7)
58
+ rexml
59
+ rubocop-ast (>= 0.1.0, < 1.0)
42
60
  ruby-progressbar (~> 1.7)
43
- unicode-display_width (>= 1.4.0, < 1.7)
44
- rubocop-performance (1.5.2)
45
- rubocop (>= 0.71.0)
61
+ unicode-display_width (>= 1.4.0, < 2.0)
62
+ rubocop-ast (0.1.0)
63
+ parser (>= 2.7.0.1)
64
+ rubocop-performance (1.7.0)
65
+ rubocop (>= 0.82.0)
66
+ rubocop-rspec (1.42.0)
67
+ rubocop (>= 0.87.0)
46
68
  ruby-progressbar (1.10.1)
47
- unicode-display_width (1.6.1)
69
+ thread_safe (0.3.6)
70
+ tzinfo (1.2.7)
71
+ thread_safe (~> 0.1)
72
+ unicode-display_width (1.7.0)
73
+ zeitwerk (2.3.1)
48
74
 
49
75
  PLATFORMS
50
76
  ruby
51
77
 
52
78
  DEPENDENCIES
79
+ activerecord
53
80
  bundler
54
81
  bunny-mock
55
82
  byebug
@@ -58,6 +85,7 @@ DEPENDENCIES
58
85
  rspec
59
86
  rubocop
60
87
  rubocop-performance
88
+ rubocop-rspec
61
89
 
62
90
  BUNDLED WITH
63
91
  2.1.4
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
+ [![Gem Version](https://badge.fury.io/rb/jackhammer.svg)](https://rubygems.org/gems/jackhammer)
1
2
  [![Build Status](https://travis-ci.org/RenoFi/jackhammer.svg?branch=master)](https://travis-ci.org/RenoFi/jackhammer)
2
- [![GitHub issues](https://img.shields.io/github/issues/renofi/jackhammer)](https://github.com/renofi/jackhammer/issues)
3
- [![GitHub license](https://img.shields.io/github/license/renofi/jackhammer)](https://github.com/RenoFi/jackhammer/blob/master/LICENSE.txt)
4
3
 
5
- # Jackhammer
4
+ # jackhammer
6
5
 
7
- Jackhammer is an opinionated, configurable facade over the RabbitMQ Bunny
6
+ `jackhammer` is an opinionated, configurable facade over the RabbitMQ Bunny
8
7
  module.
9
8
 
10
9
  ## Installation
@@ -180,7 +179,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/renofi
180
179
  ## License
181
180
 
182
181
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
183
-
184
- ## Code of Conduct
185
-
186
- Everyone interacting in the Jackhammer project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/renofi/jackhammer/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -5,4 +5,4 @@ require 'rubocop/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
  RuboCop::RakeTask.new
7
7
 
8
- task default: %i[rubocop spec]
8
+ task default: %i[spec rubocop:auto_correct]
@@ -3,27 +3,28 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'jackhammer/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'jackhammer'
7
- spec.version = Jackhammer::VERSION
8
- spec.authors = ['Scott Serok']
9
- spec.email = ['scott@renofi.com']
6
+ spec.name = 'jackhammer'
7
+ spec.version = Jackhammer::VERSION
8
+ spec.authors = ['Scott Serok']
9
+ spec.email = ['scott@renofi.com']
10
10
 
11
- spec.summary = 'Jackhammer is an opinionated facade over RabbitMQ Bunny'
12
- spec.homepage = 'https://github.com/renofi/jackhammer'
13
- spec.license = 'MIT'
11
+ spec.summary = 'Jackhammer is an opinionated facade over RabbitMQ Bunny'
12
+ spec.homepage = 'https://github.com/renofi/jackhammer'
13
+ spec.license = 'MIT'
14
14
 
15
- spec.metadata['homepage_uri'] = spec.homepage
16
- spec.metadata['source_code_uri'] = spec.homepage
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+ spec.metadata['source_code_uri'] = spec.homepage
17
17
 
18
18
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
19
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin/|spec/|\.rub)}) }
20
20
  end
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
25
  spec.add_dependency 'bunny', '~> 2.14'
26
26
 
27
+ spec.add_development_dependency 'activerecord'
27
28
  spec.add_development_dependency 'bundler'
28
29
  spec.add_development_dependency 'bunny-mock'
29
30
  spec.add_development_dependency 'byebug'
@@ -31,4 +32,5 @@ Gem::Specification.new do |spec|
31
32
  spec.add_development_dependency 'rspec'
32
33
  spec.add_development_dependency 'rubocop'
33
34
  spec.add_development_dependency 'rubocop-performance'
35
+ spec.add_development_dependency 'rubocop-rspec'
34
36
  end
@@ -38,7 +38,7 @@ module Jackhammer
38
38
  @topics ||= TopicManager.topics
39
39
  end
40
40
 
41
- def publish_options(options = {}, time: Time.now.utc)
41
+ def publish_options(options = {}, time = Time.now.utc)
42
42
  configuration.publish_options.dup.merge(options).tap do |opts|
43
43
  opts[:timestamp] = time.to_i
44
44
  opts[:app_id] ||= configuration.app_name
@@ -0,0 +1,60 @@
1
+ module Jackhammer
2
+ class ConfigurationValidator
3
+ attr_accessor :config_yaml, :environment, :errors
4
+
5
+ def initialize
6
+ @errors = []
7
+ end
8
+
9
+ def validate
10
+ validate_environment_defined
11
+ return if errors.any?
12
+ validate_topic_exchange_defined
13
+ return if errors.any?
14
+ validate_queues_defined
15
+ return if errors.any?
16
+ validate_handlers_defined
17
+ end
18
+
19
+ def validate_environment_defined
20
+ return if config_yaml[environment]
21
+
22
+ add_error("Environment '#{environment}' is not defined")
23
+ end
24
+
25
+ def validate_topic_exchange_defined
26
+ return if config_yaml[environment].keys.any?
27
+
28
+ add_error("Environment '#{environment}' does not define a topic exchange")
29
+ end
30
+
31
+ def validate_queues_defined
32
+ topics = config_yaml[environment].keys
33
+ topics.each do |topic|
34
+ begin
35
+ next if config_yaml[environment][topic]['queues']
36
+ rescue StandardError
37
+ false
38
+ end
39
+
40
+ add_error("Topic '#{topic}' does not define any queues")
41
+ end
42
+ end
43
+
44
+ def validate_handlers_defined
45
+ config_yaml[environment].each do |exchange_name, exchange_config|
46
+ exchange_config['queues'].each do |qconfig|
47
+ Object.const_get(qconfig['handler'])
48
+ rescue NameError
49
+ add_error("Uninitialized constant #{qconfig['handler']}")
50
+ end
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def add_error(str)
57
+ @errors << str
58
+ end
59
+ end
60
+ end
@@ -15,6 +15,8 @@ module Jackhammer
15
15
  else
16
16
  handler.call message
17
17
  end
18
+ ensure
19
+ ActiveRecord::Base.clear_active_connections! if defined?(ActiveRecord::Base)
18
20
  end
19
21
  end
20
22
  end
@@ -7,7 +7,7 @@ module Jackhammer
7
7
  def self.from_routing_key(routing_key)
8
8
  fail(InvalidConfigError, "app_name must be set to determine queue_name from routing_key") if app_name.to_s.empty?
9
9
 
10
- "#{app_name}_#{routing_key}_q".gsub(/[^\w]+/, '_').gsub(/[_]+/, '_')
10
+ "#{app_name}_#{routing_key}_q".gsub(/[^\w]+/, '_').squeeze('_')
11
11
  end
12
12
  end
13
13
  end
@@ -0,0 +1,70 @@
1
+ require 'rake'
2
+ require 'rake/tasklib'
3
+ require 'yaml'
4
+ require 'jackhammer/configuration_validator'
5
+
6
+ module Jackhammer
7
+ class RakeTask < ::Rake::TaskLib
8
+ # Name of test task. (default is :jackhammer)
9
+ attr_accessor :name
10
+
11
+ # File path of the configuration file. (default is ./config/jackhammer.yml)
12
+ attr_accessor :path
13
+
14
+ # Description of the test task. (default is 'Validate Jackhammer
15
+ # configuration')
16
+ attr_accessor :description
17
+
18
+ # Task prerequisites.
19
+ attr_accessor :deps
20
+
21
+ # Specifies the environment to inspect. (default is 'production')
22
+ attr_accessor :env
23
+
24
+ def initialize
25
+ @name = :jackhammer
26
+ @env = 'production'
27
+ @path = './config/jackhammer.yml'
28
+ @description = 'Validate Jackhammer configuration'
29
+ @deps = []
30
+ yield self if block_given?
31
+ if @name.is_a?(Hash)
32
+ @deps = @name.values.first
33
+ @name = @name.keys.first
34
+ end
35
+ define
36
+ end
37
+
38
+ def define
39
+ desc @description
40
+ task @name => Array(deps) do
41
+ validator = ConfigurationValidator.new
42
+ validator.config_yaml = YAML.safe_load(File.read(@path))
43
+ validator.environment = env
44
+ validator.validate
45
+ print_results validator.errors
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def print_results(errors)
52
+ puts "Jackhammer configuration #{path}\n"
53
+ if errors.any?
54
+ puts red("Problems identified: #{errors.size}\n")
55
+ errors.each { |error| puts red(error) }
56
+ exit 1
57
+ else
58
+ puts green('OK')
59
+ end
60
+ end
61
+
62
+ def red(text)
63
+ "\e[1;31m#{text}\e[0m"
64
+ end
65
+
66
+ def green(text)
67
+ "\e[1;32m#{text}\e[0m"
68
+ end
69
+ end
70
+ end
@@ -1,3 +1,3 @@
1
1
  module Jackhammer
2
- VERSION = '1.3.0'.freeze
2
+ VERSION = '1.3.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jackhammer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Serok
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-10 00:00:00.000000000 Z
11
+ date: 2020-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,20 @@ dependencies:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
125
153
  description:
126
154
  email:
127
155
  - scott@renofi.com
@@ -131,10 +159,14 @@ extensions: []
131
159
  extra_rdoc_files: []
132
160
  files:
133
161
  - ".dependabot/config.yml"
162
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
163
+ - ".github/ISSUE_TEMPLATE/config.yml"
164
+ - ".github/ISSUE_TEMPLATE/story.md"
165
+ - ".github/PULL_REQUEST_TEMPLATE.md"
166
+ - ".github/workflows/auto-approve.yml"
134
167
  - ".gitignore"
135
168
  - ".rspec"
136
169
  - ".travis.yml"
137
- - CODE_OF_CONDUCT.md
138
170
  - Gemfile
139
171
  - Gemfile.lock
140
172
  - LICENSE.txt
@@ -145,11 +177,13 @@ files:
145
177
  - lib/jackhammer.rb
146
178
  - lib/jackhammer/cli.rb
147
179
  - lib/jackhammer/configuration.rb
180
+ - lib/jackhammer/configuration_validator.rb
148
181
  - lib/jackhammer/exceptions.rb
149
182
  - lib/jackhammer/log.rb
150
183
  - lib/jackhammer/message_receiver.rb
151
184
  - lib/jackhammer/queue.rb
152
185
  - lib/jackhammer/queue_name.rb
186
+ - lib/jackhammer/rake_task.rb
153
187
  - lib/jackhammer/server.rb
154
188
  - lib/jackhammer/topic.rb
155
189
  - lib/jackhammer/topic_manager.rb
@@ -175,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
209
  - !ruby/object:Gem::Version
176
210
  version: '0'
177
211
  requirements: []
178
- rubygems_version: 3.0.6
212
+ rubygems_version: 3.1.2
179
213
  signing_key:
180
214
  specification_version: 4
181
215
  summary: Jackhammer is an opinionated facade over RabbitMQ Bunny
@@ -1,74 +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
6
- contributors and maintainers pledge to making participation in our project and
7
- our community a harassment-free experience for everyone, regardless of age, body
8
- size, disability, ethnicity, gender identity and expression, level of experience,
9
- nationality, personal appearance, race, religion, or sexual identity and
10
- orientation.
11
-
12
- ## Our Standards
13
-
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
16
-
17
- * Using welcoming and inclusive language
18
- * Being respectful of differing viewpoints and experiences
19
- * Gracefully accepting constructive criticism
20
- * Focusing on what is best for the community
21
- * Showing empathy towards other community members
22
-
23
- Examples of unacceptable behavior by participants include:
24
-
25
- * The use of sexualized language or imagery and unwelcome sexual attention or
26
- advances
27
- * Trolling, insulting/derogatory comments, and personal or political attacks
28
- * Public or private harassment
29
- * Publishing others' private information, such as a physical or electronic
30
- address, without explicit permission
31
- * Other conduct which could reasonably be considered inappropriate in a
32
- professional setting
33
-
34
- ## Our Responsibilities
35
-
36
- Project maintainers are responsible for clarifying the standards of acceptable
37
- behavior and are expected to take appropriate and fair corrective action in
38
- response to any instances of unacceptable behavior.
39
-
40
- Project maintainers have the right and responsibility to remove, edit, or
41
- reject comments, commits, code, wiki edits, issues, and other contributions
42
- that are not aligned to this Code of Conduct, or to ban temporarily or
43
- permanently any contributor for other behaviors that they deem inappropriate,
44
- threatening, offensive, or harmful.
45
-
46
- ## Scope
47
-
48
- This Code of Conduct applies both within project spaces and in public spaces
49
- when an individual is representing the project or its community. Examples of
50
- representing a project or community include using an official project e-mail
51
- address, posting via an official social media account, or acting as an appointed
52
- representative at an online or offline event. Representation of a project may be
53
- further defined and clarified by project maintainers.
54
-
55
- ## Enforcement
56
-
57
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at scott@renofi.com. All
59
- complaints will be reviewed and investigated and will result in a response that
60
- is deemed necessary and appropriate to the circumstances. The project team is
61
- obligated to maintain confidentiality with regard to the reporter of an incident.
62
- Further details of specific enforcement policies may be posted separately.
63
-
64
- Project maintainers who do not follow or enforce the Code of Conduct in good
65
- faith may face temporary or permanent repercussions as determined by other
66
- members of the project's leadership.
67
-
68
- ## Attribution
69
-
70
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at [http://contributor-covenant.org/version/1/4][version]
72
-
73
- [homepage]: http://contributor-covenant.org
74
- [version]: http://contributor-covenant.org/version/1/4/