bootsnap 1.4.0 → 1.10.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +193 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +70 -15
  5. data/exe/bootsnap +5 -0
  6. data/ext/bootsnap/bootsnap.c +319 -119
  7. data/ext/bootsnap/extconf.rb +22 -14
  8. data/lib/bootsnap/bundler.rb +2 -0
  9. data/lib/bootsnap/cli/worker_pool.rb +136 -0
  10. data/lib/bootsnap/cli.rb +281 -0
  11. data/lib/bootsnap/compile_cache/iseq.rb +65 -18
  12. data/lib/bootsnap/compile_cache/json.rb +88 -0
  13. data/lib/bootsnap/compile_cache/yaml.rb +332 -39
  14. data/lib/bootsnap/compile_cache.rb +35 -7
  15. data/lib/bootsnap/explicit_require.rb +5 -3
  16. data/lib/bootsnap/load_path_cache/cache.rb +83 -32
  17. data/lib/bootsnap/load_path_cache/change_observer.rb +7 -1
  18. data/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb +39 -47
  19. data/lib/bootsnap/load_path_cache/core_ext/loaded_features.rb +12 -0
  20. data/lib/bootsnap/load_path_cache/loaded_features_index.rb +69 -26
  21. data/lib/bootsnap/load_path_cache/path.rb +8 -5
  22. data/lib/bootsnap/load_path_cache/path_scanner.rb +56 -29
  23. data/lib/bootsnap/load_path_cache/realpath_cache.rb +6 -5
  24. data/lib/bootsnap/load_path_cache/store.rb +49 -18
  25. data/lib/bootsnap/load_path_cache.rb +20 -32
  26. data/lib/bootsnap/setup.rb +3 -33
  27. data/lib/bootsnap/version.rb +3 -1
  28. data/lib/bootsnap.rb +126 -36
  29. metadata +15 -96
  30. data/.gitignore +0 -17
  31. data/.rubocop.yml +0 -20
  32. data/.travis.yml +0 -24
  33. data/CODE_OF_CONDUCT.md +0 -74
  34. data/CONTRIBUTING.md +0 -21
  35. data/Gemfile +0 -8
  36. data/README.jp.md +0 -231
  37. data/Rakefile +0 -12
  38. data/bin/ci +0 -10
  39. data/bin/console +0 -14
  40. data/bin/setup +0 -8
  41. data/bin/test-minimal-support +0 -7
  42. data/bin/testunit +0 -8
  43. data/bootsnap.gemspec +0 -45
  44. data/dev.yml +0 -10
  45. data/lib/bootsnap/load_path_cache/core_ext/active_support.rb +0 -100
  46. data/shipit.rubygems.yml +0 -4
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bootsnap
2
4
  module LoadPathCache
3
- ReturnFalse = Class.new(StandardError)
4
- FallbackScan = Class.new(StandardError)
5
+ FALLBACK_SCAN = BasicObject.new
5
6
 
6
- DOT_RB = '.rb'
7
- DOT_SO = '.so'
8
- SLASH = '/'
7
+ DOT_RB = ".rb"
8
+ DOT_SO = ".so"
9
+ SLASH = "/"
9
10
 
10
11
  DL_EXTENSIONS = ::RbConfig::CONFIG
11
- .values_at('DLEXT', 'DLEXT2')
12
+ .values_at("DLEXT", "DLEXT2")
12
13
  .reject { |ext| !ext || ext.empty? }
13
14
  .map { |ext| ".#{ext}" }
14
15
  .freeze
@@ -21,10 +22,9 @@ module Bootsnap
21
22
  CACHED_EXTENSIONS = DLEXT2 ? [DOT_RB, DLEXT, DLEXT2] : [DOT_RB, DLEXT]
22
23
 
23
24
  class << self
24
- attr_reader(:load_path_cache, :autoload_paths_cache,
25
- :loaded_features_index, :realpath_cache)
25
+ attr_reader(:load_path_cache, :loaded_features_index, :realpath_cache)
26
26
 
27
- def setup(cache_path:, development_mode:, active_support: true)
27
+ def setup(cache_path:, development_mode:)
28
28
  unless supported?
29
29
  warn("[bootsnap/setup] Load path caching is not supported on this implementation of Ruby") if $VERBOSE
30
30
  return
@@ -36,36 +36,24 @@ module Bootsnap
36
36
  @realpath_cache = RealpathCache.new
37
37
 
38
38
  @load_path_cache = Cache.new(store, $LOAD_PATH, development_mode: development_mode)
39
- require_relative('load_path_cache/core_ext/kernel_require')
40
- require_relative('load_path_cache/core_ext/loaded_features')
41
-
42
- if active_support
43
- # this should happen after setting up the initial cache because it
44
- # loads a lot of code. It's better to do after +require+ is optimized.
45
- require('active_support/dependencies')
46
- @autoload_paths_cache = Cache.new(
47
- store,
48
- ::ActiveSupport::Dependencies.autoload_paths,
49
- development_mode: development_mode
50
- )
51
- require_relative('load_path_cache/core_ext/active_support')
52
- end
39
+ require_relative("load_path_cache/core_ext/kernel_require")
40
+ require_relative("load_path_cache/core_ext/loaded_features")
53
41
  end
54
42
 
55
43
  def supported?
56
- RUBY_ENGINE == 'ruby' &&
57
- RUBY_PLATFORM =~ /darwin|linux|bsd/
44
+ RUBY_ENGINE == "ruby" &&
45
+ RUBY_PLATFORM =~ /darwin|linux|bsd|mswin|mingw|cygwin/
58
46
  end
59
47
  end
60
48
  end
61
49
  end
62
50
 
63
51
  if Bootsnap::LoadPathCache.supported?
64
- require_relative('load_path_cache/path_scanner')
65
- require_relative('load_path_cache/path')
66
- require_relative('load_path_cache/cache')
67
- require_relative('load_path_cache/store')
68
- require_relative('load_path_cache/change_observer')
69
- require_relative('load_path_cache/loaded_features_index')
70
- require_relative('load_path_cache/realpath_cache')
52
+ require_relative("load_path_cache/path_scanner")
53
+ require_relative("load_path_cache/path")
54
+ require_relative("load_path_cache/cache")
55
+ require_relative("load_path_cache/store")
56
+ require_relative("load_path_cache/change_observer")
57
+ require_relative("load_path_cache/loaded_features_index")
58
+ require_relative("load_path_cache/realpath_cache")
71
59
  end
@@ -1,35 +1,5 @@
1
- require_relative('../bootsnap')
1
+ # frozen_string_literal: true
2
2
 
3
- env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || ENV['ENV']
4
- development_mode = ['', nil, 'development'].include?(env)
3
+ require_relative("../bootsnap")
5
4
 
6
- cache_dir = ENV['BOOTSNAP_CACHE_DIR']
7
- unless cache_dir
8
- config_dir_frame = caller.detect do |line|
9
- line.include?('/config/')
10
- end
11
-
12
- unless config_dir_frame
13
- $stderr.puts("[bootsnap/setup] couldn't infer cache directory! Either:")
14
- $stderr.puts("[bootsnap/setup] 1. require bootsnap/setup from your application's config directory; or")
15
- $stderr.puts("[bootsnap/setup] 2. Define the environment variable BOOTSNAP_CACHE_DIR")
16
-
17
- raise("couldn't infer bootsnap cache directory")
18
- end
19
-
20
- path = config_dir_frame.split(/:\d+:/).first
21
- path = File.dirname(path) until File.basename(path) == 'config'
22
- app_root = File.dirname(path)
23
-
24
- cache_dir = File.join(app_root, 'tmp', 'cache')
25
- end
26
-
27
- Bootsnap.setup(
28
- cache_dir: cache_dir,
29
- development_mode: development_mode,
30
- load_path_cache: true,
31
- autoload_paths_cache: true, # assume rails. open to PRs to impl. detection
32
- disable_trace: false,
33
- compile_cache_iseq: true,
34
- compile_cache_yaml: true,
35
- )
5
+ Bootsnap.default_setup
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bootsnap
2
- VERSION = "1.4.0"
4
+ VERSION = "1.10.3"
3
5
  end
data/lib/bootsnap.rb CHANGED
@@ -1,47 +1,137 @@
1
- require_relative('bootsnap/version')
2
- require_relative('bootsnap/bundler')
3
- require_relative('bootsnap/load_path_cache')
4
- require_relative('bootsnap/compile_cache')
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("bootsnap/version")
4
+ require_relative("bootsnap/bundler")
5
+ require_relative("bootsnap/load_path_cache")
6
+ require_relative("bootsnap/compile_cache")
5
7
 
6
8
  module Bootsnap
7
9
  InvalidConfiguration = Class.new(StandardError)
8
10
 
9
- def self.setup(
10
- cache_dir:,
11
- development_mode: true,
12
- load_path_cache: true,
13
- autoload_paths_cache: true,
14
- disable_trace: false,
15
- compile_cache_iseq: true,
16
- compile_cache_yaml: true
17
- )
18
- if autoload_paths_cache && !load_path_cache
19
- raise(InvalidConfiguration, "feature 'autoload_paths_cache' depends on feature 'load_path_cache'")
20
- end
21
-
22
- setup_disable_trace if disable_trace
23
-
24
- Bootsnap::LoadPathCache.setup(
25
- cache_path: cache_dir + '/bootsnap-load-path-cache',
26
- development_mode: development_mode,
27
- active_support: autoload_paths_cache
28
- ) if load_path_cache
29
-
30
- Bootsnap::CompileCache.setup(
31
- cache_dir: cache_dir + '/bootsnap-compile-cache',
32
- iseq: compile_cache_iseq,
33
- yaml: compile_cache_yaml
11
+ class << self
12
+ attr_reader :logger
13
+
14
+ def log!
15
+ self.logger = $stderr.method(:puts)
16
+ end
17
+
18
+ def logger=(logger)
19
+ @logger = logger
20
+ self.instrumentation = if logger.respond_to?(:debug)
21
+ ->(event, path) { @logger.debug("[Bootsnap] #{event} #{path}") }
22
+ else
23
+ ->(event, path) { @logger.call("[Bootsnap] #{event} #{path}") }
24
+ end
25
+ end
26
+
27
+ def instrumentation=(callback)
28
+ @instrumentation = callback
29
+ if respond_to?(:instrumentation_enabled=, true)
30
+ self.instrumentation_enabled = !!callback
31
+ end
32
+ end
33
+
34
+ def _instrument(event, path)
35
+ @instrumentation.call(event, path)
36
+ end
37
+
38
+ def setup(
39
+ cache_dir:,
40
+ development_mode: true,
41
+ load_path_cache: true,
42
+ autoload_paths_cache: nil,
43
+ disable_trace: nil,
44
+ compile_cache_iseq: true,
45
+ compile_cache_yaml: true,
46
+ compile_cache_json: true
34
47
  )
35
- end
48
+ unless autoload_paths_cache.nil?
49
+ warn "[DEPRECATED] Bootsnap's `autoload_paths_cache:` option is deprecated and will be removed. " \
50
+ "If you use Zeitwerk this option is useless, and if you are still using the classic autoloader " \
51
+ "upgrading is recommended."
52
+ end
53
+
54
+ unless disable_trace.nil?
55
+ warn "[DEPRECATED] Bootsnap's `disable_trace:` option is deprecated and will be removed. " \
56
+ "If you use Ruby 2.5 or newer this option is useless, if not upgrading is recommended."
57
+ end
58
+
59
+ if compile_cache_iseq && !iseq_cache_supported?
60
+ warn "Ruby 2.5 has a bug that break code tracing when code is loaded from cache. It is recommened " \
61
+ "to turn `compile_cache_iseq` off on Ruby 2.5"
62
+ end
63
+
64
+ if load_path_cache
65
+ Bootsnap::LoadPathCache.setup(
66
+ cache_path: cache_dir + "/bootsnap/load-path-cache",
67
+ development_mode: development_mode,
68
+ )
69
+ end
36
70
 
37
- def self.setup_disable_trace
38
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.5.0')
39
- warn(
40
- "from #{caller_locations(1, 1)[0]}: The 'disable_trace' method is not allowed with this Ruby version. " \
41
- "current: #{RUBY_VERSION}, allowed version: < 2.5.0",
71
+ Bootsnap::CompileCache.setup(
72
+ cache_dir: cache_dir + "/bootsnap/compile-cache",
73
+ iseq: compile_cache_iseq,
74
+ yaml: compile_cache_yaml,
75
+ json: compile_cache_json,
42
76
  )
77
+ end
78
+
79
+ def iseq_cache_supported?
80
+ return @iseq_cache_supported if defined? @iseq_cache_supported
81
+
82
+ ruby_version = Gem::Version.new(RUBY_VERSION)
83
+ @iseq_cache_supported = ruby_version < Gem::Version.new("2.5.0") || ruby_version >= Gem::Version.new("2.6.0")
84
+ end
85
+
86
+ def default_setup
87
+ env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || ENV["ENV"]
88
+ development_mode = ["", nil, "development"].include?(env)
89
+
90
+ unless ENV["DISABLE_BOOTSNAP"]
91
+ cache_dir = ENV["BOOTSNAP_CACHE_DIR"]
92
+ unless cache_dir
93
+ config_dir_frame = caller.detect do |line|
94
+ line.include?("/config/")
95
+ end
96
+
97
+ unless config_dir_frame
98
+ $stderr.puts("[bootsnap/setup] couldn't infer cache directory! Either:")
99
+ $stderr.puts("[bootsnap/setup] 1. require bootsnap/setup from your application's config directory; or")
100
+ $stderr.puts("[bootsnap/setup] 2. Define the environment variable BOOTSNAP_CACHE_DIR")
101
+
102
+ raise("couldn't infer bootsnap cache directory")
103
+ end
104
+
105
+ path = config_dir_frame.split(/:\d+:/).first
106
+ path = File.dirname(path) until File.basename(path) == "config"
107
+ app_root = File.dirname(path)
108
+
109
+ cache_dir = File.join(app_root, "tmp", "cache")
110
+ end
111
+
112
+ setup(
113
+ cache_dir: cache_dir,
114
+ development_mode: development_mode,
115
+ load_path_cache: !ENV["DISABLE_BOOTSNAP_LOAD_PATH_CACHE"],
116
+ compile_cache_iseq: !ENV["DISABLE_BOOTSNAP_COMPILE_CACHE"] && iseq_cache_supported?,
117
+ compile_cache_yaml: !ENV["DISABLE_BOOTSNAP_COMPILE_CACHE"],
118
+ compile_cache_json: !ENV["DISABLE_BOOTSNAP_COMPILE_CACHE"],
119
+ )
120
+
121
+ if ENV["BOOTSNAP_LOG"]
122
+ log!
123
+ end
124
+ end
125
+ end
126
+
127
+ if RbConfig::CONFIG["host_os"] =~ /mswin|mingw|cygwin/
128
+ def absolute_path?(path)
129
+ path[1] == ":"
130
+ end
43
131
  else
44
- RubyVM::InstructionSequence.compile_option = { trace_instruction: false }
132
+ def absolute_path?(path)
133
+ path.start_with?("/")
134
+ end
45
135
  end
46
136
  end
47
137
  end
metadata CHANGED
@@ -1,138 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootsnap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burke Libbey
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-11 00:00:00.000000000 Z
11
+ date: 2022-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake-compiler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: minitest
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '5.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '5.0'
69
- - !ruby/object:Gem::Dependency
70
- name: mocha
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.2'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.2'
83
13
  - !ruby/object:Gem::Dependency
84
14
  name: msgpack
85
15
  requirement: !ruby/object:Gem::Requirement
86
16
  requirements:
87
17
  - - "~>"
88
18
  - !ruby/object:Gem::Version
89
- version: '1.0'
19
+ version: '1.2'
90
20
  type: :runtime
91
21
  prerelease: false
92
22
  version_requirements: !ruby/object:Gem::Requirement
93
23
  requirements:
94
24
  - - "~>"
95
25
  - !ruby/object:Gem::Version
96
- version: '1.0'
26
+ version: '1.2'
97
27
  description: Boot large ruby/rails apps faster
98
28
  email:
99
29
  - burke.libbey@shopify.com
100
- executables: []
30
+ executables:
31
+ - bootsnap
101
32
  extensions:
102
33
  - ext/bootsnap/extconf.rb
103
34
  extra_rdoc_files: []
104
35
  files:
105
- - ".gitignore"
106
- - ".rubocop.yml"
107
- - ".travis.yml"
108
36
  - CHANGELOG.md
109
- - CODE_OF_CONDUCT.md
110
- - CONTRIBUTING.md
111
- - Gemfile
112
37
  - LICENSE.txt
113
- - README.jp.md
114
38
  - README.md
115
- - Rakefile
116
- - bin/ci
117
- - bin/console
118
- - bin/setup
119
- - bin/test-minimal-support
120
- - bin/testunit
121
- - bootsnap.gemspec
122
- - dev.yml
39
+ - exe/bootsnap
123
40
  - ext/bootsnap/bootsnap.c
124
41
  - ext/bootsnap/bootsnap.h
125
42
  - ext/bootsnap/extconf.rb
126
43
  - lib/bootsnap.rb
127
44
  - lib/bootsnap/bundler.rb
45
+ - lib/bootsnap/cli.rb
46
+ - lib/bootsnap/cli/worker_pool.rb
128
47
  - lib/bootsnap/compile_cache.rb
129
48
  - lib/bootsnap/compile_cache/iseq.rb
49
+ - lib/bootsnap/compile_cache/json.rb
130
50
  - lib/bootsnap/compile_cache/yaml.rb
131
51
  - lib/bootsnap/explicit_require.rb
132
52
  - lib/bootsnap/load_path_cache.rb
133
53
  - lib/bootsnap/load_path_cache/cache.rb
134
54
  - lib/bootsnap/load_path_cache/change_observer.rb
135
- - lib/bootsnap/load_path_cache/core_ext/active_support.rb
136
55
  - lib/bootsnap/load_path_cache/core_ext/kernel_require.rb
137
56
  - lib/bootsnap/load_path_cache/core_ext/loaded_features.rb
138
57
  - lib/bootsnap/load_path_cache/loaded_features_index.rb
@@ -142,14 +61,14 @@ files:
142
61
  - lib/bootsnap/load_path_cache/store.rb
143
62
  - lib/bootsnap/setup.rb
144
63
  - lib/bootsnap/version.rb
145
- - shipit.rubygems.yml
146
64
  homepage: https://github.com/Shopify/bootsnap
147
65
  licenses:
148
66
  - MIT
149
67
  metadata:
150
68
  bug_tracker_uri: https://github.com/Shopify/bootsnap/issues
151
- changelog_uri: https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md
69
+ changelog_uri: https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md
152
70
  source_code_uri: https://github.com/Shopify/bootsnap
71
+ allowed_push_host: https://rubygems.org
153
72
  post_install_message:
154
73
  rdoc_options: []
155
74
  require_paths:
@@ -158,14 +77,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
158
77
  requirements:
159
78
  - - ">="
160
79
  - !ruby/object:Gem::Version
161
- version: 2.0.0
80
+ version: 2.3.0
162
81
  required_rubygems_version: !ruby/object:Gem::Requirement
163
82
  requirements:
164
83
  - - ">="
165
84
  - !ruby/object:Gem::Version
166
85
  version: '0'
167
86
  requirements: []
168
- rubygems_version: 3.0.2
87
+ rubygems_version: 3.2.20
169
88
  signing_key:
170
89
  specification_version: 4
171
90
  summary: Boot large ruby/rails apps faster
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
12
- *.o
13
- *.a
14
- *.gem
15
- *.db
16
- mkmf.log
17
- .rubocop-*
data/.rubocop.yml DELETED
@@ -1,20 +0,0 @@
1
- inherit_from:
2
- - http://shopify.github.io/ruby-style-guide/rubocop.yml
3
-
4
- AllCops:
5
- Exclude:
6
- - 'vendor/**/*'
7
- - 'tmp/**/*'
8
- TargetRubyVersion: '2.2'
9
-
10
- # This doesn't take into account retrying from an exception
11
- Lint/HandleExceptions:
12
- Enabled: false
13
-
14
- # allow String.new to create mutable strings
15
- Style/EmptyLiteral:
16
- Enabled: false
17
-
18
- # allow the use of globals which makes sense in a CLI app like this
19
- Style/GlobalVars:
20
- Enabled: false
data/.travis.yml DELETED
@@ -1,24 +0,0 @@
1
- language: ruby
2
- sudo: false
3
-
4
- os:
5
- - linux
6
- - osx
7
-
8
- rvm:
9
- - ruby-2.4
10
- - ruby-2.5
11
- - ruby-head
12
-
13
- matrix:
14
- allow_failures:
15
- - rvm: ruby-head
16
- include:
17
- - rvm: jruby
18
- os: linux
19
- env: MINIMAL_SUPPORT=1
20
- - rvm: truffleruby
21
- os: linux
22
- env: MINIMAL_SUPPORT=1
23
-
24
- script: bin/ci
data/CODE_OF_CONDUCT.md DELETED
@@ -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 burke@libbey.me. 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/
data/CONTRIBUTING.md DELETED
@@ -1,21 +0,0 @@
1
- # Contributing to Bootsnap
2
-
3
- We love receiving pull requests!
4
-
5
- ## Standards
6
-
7
- * PR should explain what the feature does, and why the change exists.
8
- * PR should include any carrier specific documentation explaining how it works.
9
- * Code _must_ be tested, including both unit and remote tests where applicable.
10
- * Be consistent. Write clean code that follows [Ruby community standards](https://github.com/bbatsov/ruby-style-guide).
11
- * Code should be generic and reusable.
12
-
13
- If you're stuck, ask questions!
14
-
15
- ## How to contribute
16
-
17
- 1. Fork it ( https://github.com/Shopify/bootsnap/fork )
18
- 2. Create your feature branch (`git checkout -b my-new-feature`)
19
- 3. Commit your changes (`git commit -am 'Add some feature'`)
20
- 4. Push to the branch (`git push origin my-new-feature`)
21
- 5. Create a new Pull Request
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in bootsnap.gemspec
4
- gemspec
5
-
6
- group :development do
7
- gem 'rubocop'
8
- end