bigfiles 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +134 -0
  3. data/.envrc +2 -0
  4. data/.git-hooks/pre_commit/circle_ci.rb +21 -0
  5. data/.gitattributes +6 -0
  6. data/.gitignore +65 -0
  7. data/.overcommit.yml +55 -0
  8. data/.rubocop.yml +116 -0
  9. data/.rubocop_todo.yml +13 -0
  10. data/.yamllint.yml +8 -0
  11. data/CODE_OF_CONDUCT.md +104 -46
  12. data/DEVELOPMENT.md +30 -0
  13. data/Gemfile +6 -0
  14. data/Gemfile.lock +110 -0
  15. data/LICENSE +21 -0
  16. data/Makefile +73 -0
  17. data/README.md +3 -2
  18. data/Rakefile +3 -0
  19. data/bigfiles.gemspec +42 -33
  20. data/bin/bigfiles +25 -2
  21. data/bin/bump +29 -0
  22. data/bin/overcommit +29 -0
  23. data/bin/rake +29 -0
  24. data/coverage/.last_run.json +6 -0
  25. data/docs/cookiecutter_input.json +13 -0
  26. data/exe/bigfiles +6 -0
  27. data/feature/big_files_cli_spec.rb +49 -0
  28. data/feature/expected/four_files_results.txt +3 -0
  29. data/feature/expected/no_files_results.txt +0 -0
  30. data/feature/expected/swift_and_ruby_files_results.txt +3 -0
  31. data/feature/expected/swift_zorb_and_ruby_files_excluded_results.txt +3 -0
  32. data/feature/expected/swift_zorb_and_ruby_files_results.txt +3 -0
  33. data/feature/expected/three_files_results.txt +3 -0
  34. data/feature/feature_helper.rb +33 -0
  35. data/feature/pronto_big_files_use_spec.rb +54 -0
  36. data/feature/samples/four_files/five_lines.rb +5 -0
  37. data/feature/samples/four_files/four_lines.rb +4 -0
  38. data/feature/samples/four_files/three_lines.rb +3 -0
  39. data/feature/samples/four_files/two_lines.rb +2 -0
  40. data/feature/samples/no_files/.keepme +0 -0
  41. data/feature/samples/swift_and_ruby_files/five_lines.swift +5 -0
  42. data/feature/samples/swift_and_ruby_files/four_lines.rb +4 -0
  43. data/feature/samples/swift_and_ruby_files/three_lines.rb +3 -0
  44. data/feature/samples/swift_zorb_and_ruby_files/five_lines.swift +5 -0
  45. data/feature/samples/swift_zorb_and_ruby_files/four_lines.zorb +4 -0
  46. data/feature/samples/swift_zorb_and_ruby_files/three_lines.rb +3 -0
  47. data/feature/samples/swift_zorb_and_ruby_files_excluded/excluded.rb +9 -0
  48. data/feature/samples/swift_zorb_and_ruby_files_excluded/five_lines.swift +5 -0
  49. data/feature/samples/swift_zorb_and_ruby_files_excluded/four_lines.zorb +4 -0
  50. data/feature/samples/swift_zorb_and_ruby_files_excluded/three_lines.rb +3 -0
  51. data/feature/samples/three_files/five_lines.rb +5 -0
  52. data/feature/samples/three_files/four_lines.rb +4 -0
  53. data/feature/samples/three_files/three_lines.rb +3 -0
  54. data/fix.sh +371 -0
  55. data/lib/bigfiles/config.rb +1 -0
  56. data/lib/bigfiles/inspector.rb +3 -3
  57. data/lib/bigfiles/option_parser.rb +5 -6
  58. data/lib/bigfiles/version.rb +1 -1
  59. data/lib/bigfiles.rb +7 -6
  60. data/rakelib/citest.rake +4 -0
  61. data/rakelib/clear_metrics.rake +17 -0
  62. data/rakelib/console.rake +6 -0
  63. data/rakelib/default.rake +4 -0
  64. data/rakelib/feature.rake +10 -0
  65. data/rakelib/gem_tasks.rake +3 -0
  66. data/rakelib/localtest.rake +4 -0
  67. data/rakelib/overcommit.rake +6 -0
  68. data/rakelib/quality.rake +4 -0
  69. data/rakelib/repl.rake +4 -0
  70. data/rakelib/spec.rake +9 -0
  71. data/rakelib/undercover.rake +8 -0
  72. data/requirements_dev.txt +2 -0
  73. metadata +132 -30
  74. data/License.txt +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 40e074c1cd4f8fe5ba7e90a1132019804c972f42
4
- data.tar.gz: 0e391df1fea1e02b080bc661422d725d0c1e38d8
2
+ SHA256:
3
+ metadata.gz: b0caad8f9e5834f2cc41fb3cae5173e95b1b90fc9195cc131fd5f133ee3656bb
4
+ data.tar.gz: 3702722ad9c05ffe9700eafc0d6625f50b60a78138b035ce0efb2c7f19e0b94d
5
5
  SHA512:
6
- metadata.gz: d0e07ae6f02f5e6defe8ea346cf0f659a930c885341fcde747ee8f78e86aecf0616ea9ace8db2b6155e7e67132f59a26cee99918c5d0bd56ff52bac2a6283948
7
- data.tar.gz: 261cc60067b433587a91ba8d46557cb26b08837749f9bf5309afbff8b338b5edb10dc5a2719ca272a390ffe5bef5beb11deb34b4b13987ce67f95c3bfcc74a15
6
+ metadata.gz: ee1c3c9f1b3a203673d0866e3c540d9161f05f4f11158d7c18705265666eb82229cecf06fb2f7f0c91dc03de96d643a384ba95fcbdbe5b7f3b69b7e1ebfebecf
7
+ data.tar.gz: 7543754c3642a29ee01c7e692624295d1e6eedf67ec275ba73042c0f97ece8c5fe41e407bc653289dc3dc387fe03ae2516105f3672b44063c6da91252b350429
@@ -0,0 +1,134 @@
1
+ ---
2
+ version: 2.1
3
+
4
+ commands:
5
+ run_with_languages:
6
+ description: "Run the given command in an environment that includes relevant langauges in the PATH"
7
+ parameters:
8
+ command:
9
+ type: string
10
+ description: "What command to execute"
11
+ label:
12
+ type: string
13
+ description: "What to label the run"
14
+ default: <<parameters.command>>
15
+ steps:
16
+ - run:
17
+ name: <<parameters.label>>
18
+ command: |
19
+ export PATH="${HOME}/.pyenv/bin:${PATH}"
20
+ export PATH="${HOME}/.rbenv/bin:${HOME}/.rbenv/shims:${PATH}"
21
+ export PATH="${HOME}/project/node_modules/.bin:${PATH}"
22
+ eval "$(pyenv init --path)"
23
+ eval "$(pyenv virtualenv-init -)"
24
+ eval "$(rbenv init -)"
25
+ export BUNDLE_PATH=vendor/bundle
26
+
27
+ <<parameters.command>>
28
+ environment:
29
+ # https://app.circleci.com/pipelines/github/apiology/cookiecutter-pypackage/4/workflows/29074dc8-944c-4600-8aaa-5116575fed90/jobs/4
30
+ "LC_ALL": "C.UTF-8"
31
+ "LANG": "C.UTF-8"
32
+ set_up_environment:
33
+ description: "Install source environment"
34
+ steps:
35
+ - checkout
36
+ - run: |
37
+ sed -E -e 's/bigfiles \([[:digit:]]+.[[:digit:]]+.[[:digit:]]+\)/bigfiles (0.1.0)/g' \
38
+ Gemfile.lock > Gemfile.lock.deversioned
39
+ - restore_cache:
40
+ key: gems-v1-{{ checksum "Gemfile.lock.deversioned" }}
41
+ - restore_cache:
42
+ key: wheels-v1-{{ checksum "requirements_dev.txt" }}
43
+ - run:
44
+ name: Initialize packages
45
+ command: |
46
+ export BUNDLE_PATH=vendor/bundle
47
+ './fix.sh'
48
+ - run:
49
+ name: Verify Gemfile.lock
50
+ command: |
51
+ if ! git diff --exit-code Gemfile.lock
52
+ then
53
+ >&2 echo "Please resolve changes to Gemfile.lock after bundle install to avoid caching difficulties"
54
+ exit 1
55
+ fi
56
+ - save_cache:
57
+ key: gems-v1-{{ checksum "Gemfile.lock.deversioned" }}
58
+ paths:
59
+ - "vendor/bundle"
60
+ - save_cache:
61
+ key: wheels-v1-{{ checksum "requirements_dev.txt" }}
62
+ paths:
63
+ - "/home/circleci/.cache/pip/wheels"
64
+ - run:
65
+ name: Download new circleci tool
66
+ command: |
67
+ curl -fLSs \
68
+ https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
69
+ overcommit:
70
+ description: "Run overcommit"
71
+ steps:
72
+ - set_up_environment
73
+ - run_with_languages:
74
+ label: Run overcommit
75
+ command: |
76
+ # Coax overcommit into working
77
+ git config --global user.email "test@test.test"
78
+ git config --global user.name "Test Test"
79
+ bundle exec overcommit --sign
80
+ bundle exec overcommit --sign pre-commit
81
+
82
+ bundle exec overcommit --run
83
+
84
+ jobs:
85
+ overcommit:
86
+ docker:
87
+ - image: apiology/circleci-ruby:latest
88
+ steps:
89
+ - when:
90
+ condition:
91
+ equal: [<< pipeline.git.branch >>, "main"]
92
+ steps:
93
+ - overcommit
94
+ - unless:
95
+ condition:
96
+ equal: [<< pipeline.git.branch >>, "main"]
97
+ steps:
98
+ - run: echo "overcommit only runs on main branch"
99
+ build:
100
+ working_directory: ~/bigfiles
101
+ docker:
102
+ - image: apiology/circleci-ruby:latest
103
+ steps:
104
+ - set_up_environment
105
+ - run_with_languages:
106
+ label: Test
107
+ command: |
108
+ bundle exec rake citest
109
+ # https://github.com/bluelabsio/records-mover/blob/master/Makefile#L25
110
+ git status --porcelain coverage/.last_run.json
111
+ git diff coverage/.last_run.json
112
+ test -z "$(git status --porcelain coverage/.last_run.json)"
113
+ # This seemed to shave 5ish% of the build time off when added
114
+ resource_class: large
115
+
116
+ workflows:
117
+ version: 2
118
+ weekly:
119
+ triggers:
120
+ - schedule:
121
+ cron: "0 0 * * 6"
122
+ filters:
123
+ branches:
124
+ only:
125
+ - main
126
+ jobs:
127
+ - build
128
+ - overcommit
129
+ overcommit:
130
+ jobs:
131
+ - overcommit
132
+ build:
133
+ jobs:
134
+ - build
data/.envrc ADDED
@@ -0,0 +1,2 @@
1
+ # shellcheck shell=bash
2
+ PATH_add bin
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Overcommit
4
+ module Hook
5
+ module PreCommit
6
+ # CircleCI plugin for Overcommit to validate config file (.circleci/config.yml)
7
+ class CircleCi < Base
8
+ def run
9
+ result = execute(command)
10
+ return :pass if result.success?
11
+
12
+ if result.success?
13
+ :pass
14
+ else
15
+ [:fail, result.stderr]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
data/.gitattributes ADDED
@@ -0,0 +1,6 @@
1
+ # there's a lot of .sh in the build machinery; this can overwhelm
2
+ # smaller projects and confuse GitHub's detection of majority project
3
+ # type (GitHub uses the linguist library)
4
+ #
5
+ # https://dev.to/katkelly/changing-your-repo-s-language-in-github-5gjo
6
+ *.sh linguist-detectable=false
data/.gitignore ADDED
@@ -0,0 +1,65 @@
1
+ # OSX useful to ignore
2
+ *.DS_Store
3
+ .AppleDouble
4
+ .LSOverride
5
+
6
+ # Thumbnails
7
+ ._*
8
+
9
+ # Files that might appear in the root of a volume
10
+ .DocumentRevisions-V100
11
+ .fseventsd
12
+ .Spotlight-V100
13
+ .TemporaryItems
14
+ .Trashes
15
+ .VolumeIcon.icns
16
+ .com.apple.timemachine.donotpresent
17
+
18
+ # Directories potentially created on remote AFP share
19
+ .AppleDB
20
+ .AppleDesktop
21
+ Network Trash Folder
22
+ Temporary Items
23
+ .apdisk
24
+
25
+ # IntelliJ Idea family of suites
26
+ .idea
27
+ *.iml
28
+ ## File-based project format:
29
+ *.ipr
30
+ *.iws
31
+ ## mpeltonen/sbt-idea plugin
32
+ .idea_modules/
33
+
34
+ # IDE settings
35
+ .vscode/
36
+
37
+ # Editor temp files
38
+ *~
39
+ \#*\#
40
+
41
+ # Used by Makefile to track what we have and haven't installed
42
+ Gemfile.lock.installed
43
+ requirements_dev.txt.installed
44
+
45
+ # Used by CircleCI as a place to store installed gems
46
+ /vendor
47
+
48
+ # Installed by fix.sh based on what latest versions are
49
+ /.python-version
50
+ /.ruby-version
51
+
52
+ # Ruby-related
53
+ /.bundle/
54
+ /.yardoc
55
+ /_yardoc/
56
+ /doc/
57
+ /pkg/
58
+ /spec/reports/
59
+ /tmp/
60
+ /coverage/.resultset.json
61
+ /coverage/.resultset.json.lock
62
+ /coverage/assets/
63
+ /coverage/index.html
64
+ /coverage/lcov/
65
+ /pkg
data/.overcommit.yml ADDED
@@ -0,0 +1,55 @@
1
+ ---
2
+ # Use this file to configure the Overcommit hooks you wish to use. This will
3
+ # extend the default configuration defined in:
4
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
5
+ #
6
+ # At the topmost level of this YAML file is a key representing type of hook
7
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
8
+ # customize each hook, such as whether to only run it on certain files (via
9
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
10
+ #
11
+ # For a complete list of hooks, see:
12
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
13
+ #
14
+ # For a complete list of options that you can use to customize hooks, see:
15
+ # https://github.com/sds/overcommit#configuration
16
+ #
17
+ # Uncomment the following lines to make the configuration take effect.
18
+
19
+ PreCommit:
20
+ RuboCop:
21
+ enabled: true
22
+ on_warn: fail # Treat all warnings as failures
23
+ command: ['bundle', 'exec', 'rubocop']
24
+ include:
25
+ - '**/*.gemspec'
26
+ - '**/*.rake'
27
+ - '**/*.rb'
28
+ - '**/*.ru'
29
+ - '**/Gemfile'
30
+ - '**/Rakefile'
31
+ - 'bin/*'
32
+ PythonFlake8:
33
+ enabled: true
34
+ on_warn: fail
35
+ ShellCheck:
36
+ enabled: true
37
+ on_warn: fail
38
+ include:
39
+ - '.envrc'
40
+ YamlLint:
41
+ enabled: true
42
+ on_warn: fail
43
+ CircleCi:
44
+ required_executable: 'circleci'
45
+ flags: ['config', 'validate']
46
+ include:
47
+ - '.circleci/config.yml'
48
+ enabled: true
49
+
50
+ #PostCheckout:
51
+ # ALL: # Special hook name that customizes all hooks of this type
52
+ # quiet: true # Change all post-checkout hooks to only display output on failure
53
+ #
54
+ # IndexTags:
55
+ # enabled: true # Generate a tags file with `ctags` each time HEAD changes
data/.rubocop.yml ADDED
@@ -0,0 +1,116 @@
1
+ ---
2
+ inherit_from: .rubocop_todo.yml
3
+
4
+ Layout/LineLength:
5
+ Max: 120
6
+
7
+ Layout/MultilineMethodCallIndentation:
8
+ EnforcedStyle: indented
9
+
10
+ Lint/UnusedMethodArgument:
11
+ AllowUnusedKeywordArguments: true
12
+
13
+ # https://stackoverflow.com/questions/40934345/rubocop-25-line-block-size-and-rspec-tests
14
+ Metrics/BlockLength:
15
+ # Exclude DSLs
16
+ Exclude:
17
+ - 'Rakefile'
18
+ - '*.gemspec'
19
+ - '**/*.rake'
20
+ - 'spec/**/*.rb'
21
+ - 'feature/**/*.rb'
22
+
23
+ # I use keyword arguments for a poor man's dependency injection to cut
24
+ # down on the magic in my tests.
25
+ Metrics/ParameterLists:
26
+ CountKeywordArgs: false
27
+
28
+ Naming/HeredocDelimiterNaming:
29
+ Enabled: false
30
+
31
+ Naming/MethodParameterName:
32
+ Enabled: true
33
+ AllowedNames:
34
+ # I don't think things on this list are a terribly hard convention
35
+ # for folks to learn. bbatsov also doesn't care much for this
36
+ # check:
37
+ #
38
+ # https://github.com/rubocop-hq/rubocop/issues/3666
39
+ - e # exception
40
+ - x # cartesian coordinates
41
+ - y # cartesian coordinates
42
+
43
+ # by default (EnforcedStyle=NormalCase) this rule doesn't like
44
+ # things like check_1, check_2, etc and wants check1, check2, etc. I
45
+ # like the former.
46
+ #
47
+ # https://docs.rubocop.org/rubocop/cops_naming.html#namingvariablenumber
48
+ Naming/VariableNumber:
49
+ Enabled: true
50
+ EnforcedStyle: snake_case
51
+
52
+ # http://www.betterspecs.org/#single
53
+ #
54
+ # > in tests that are not isolated (e.g. ones that integrate with a
55
+ # > DB, an external webservice, or end-to-end-tests), you take a
56
+ # > massive performance hit to do the same setup over and over again,
57
+ # > just to set a different expectation in each test. In these sorts
58
+ # > of slower tests, I think it's fine to specify more than one
59
+ # > isolated behavior.
60
+ RSpec/MultipleExpectations:
61
+ Exclude:
62
+ - 'feature/**/*.rb'
63
+
64
+ #
65
+ # Add 'XX X' to the standard list
66
+ #
67
+ Style/CommentAnnotation:
68
+ Keywords:
69
+ - "TOD\
70
+ O"
71
+ - "FIXM\
72
+ E"
73
+ - "OPTIMIZ\
74
+ E"
75
+ - "HAC\
76
+ K"
77
+ - "REVIE\
78
+ W"
79
+ - "XX\
80
+ X"
81
+
82
+ Style/StringLiterals:
83
+ EnforcedStyle: single_quotes
84
+ SupportedStyles:
85
+ - single_quotes
86
+ - double_quotes
87
+ ConsistentQuotesInMultiline: true
88
+
89
+ # I like trailing commas in arrays and hashes. They let me insert new
90
+ # elements and see them as one line in a diff, not two.
91
+ Style/TrailingCommaInArrayLiteral:
92
+ EnforcedStyleForMultiline: comma
93
+
94
+ Style/TrailingCommaInHashLiteral:
95
+ EnforcedStyleForMultiline: comma
96
+
97
+ # If I'm using one function name and returning the contents of an
98
+ # attribute, that's OK. The alternative would be this, which I find
99
+ # confusing and often not really what I mean:
100
+ #
101
+ # attr_reader :something_else
102
+ # alias_method :something, :something_else
103
+ Style/TrivialAccessors:
104
+ ExactNameMatch: true
105
+
106
+ AllCops:
107
+ NewCops: enable
108
+ TargetRubyVersion: 2.6
109
+ Exclude:
110
+ - 'bin/*'
111
+ - 'feature/samples/**/*'
112
+ - 'vendor/**/*'
113
+
114
+ require:
115
+ - rubocop-rake
116
+ - rubocop-rspec
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,13 @@
1
+ ---
2
+ # This configuration was generated by
3
+ # `rubocop --auto-gen-config`
4
+ # on 2021-03-31 21:15:30 UTC using RuboCop version 1.12.0.
5
+ # The point is for the user to remove these configuration records
6
+ # one by one as the offenses are removed from the code base.
7
+ # Note that changes in the inspected code, or installation of new
8
+ # versions of RuboCop, may require this file to be generated again.
9
+
10
+ # Offense count: 4
11
+ # Configuration parameters: AllowSubject.
12
+ RSpec/MultipleMemoizedHelpers:
13
+ Max: 10
data/.yamllint.yml ADDED
@@ -0,0 +1,8 @@
1
+ ---
2
+ # https://yamllint.readthedocs.io/en/stable/configuration.html
3
+ extends: default
4
+
5
+ rules:
6
+ comments: disable
7
+ line-length:
8
+ max: 120
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,75 +1,133 @@
1
+
1
2
  # Contributor Covenant Code of Conduct
2
3
 
3
4
  ## Our Pledge
4
5
 
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.
6
+ We as members, contributors, and leaders pledge to make participation in our
7
+ community a harassment-free experience for everyone, regardless of age, body
8
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
9
+ identity and expression, level of experience, education, socio-economic status,
10
+ nationality, personal appearance, race, caste, color, religion, or sexual identity
11
+ and orientation.
12
+
13
+ We pledge to act and interact in ways that contribute to an open, welcoming,
14
+ diverse, inclusive, and healthy community.
11
15
 
12
16
  ## Our Standards
13
17
 
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
18
+ Examples of behavior that contributes to a positive environment for our
19
+ community include:
16
20
 
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
21
+ * Demonstrating empathy and kindness toward other people
22
+ * Being respectful of differing opinions, viewpoints, and experiences
23
+ * Giving and gracefully accepting constructive feedback
24
+ * Accepting responsibility and apologizing to those affected by our mistakes,
25
+ and learning from the experience
26
+ * Focusing on what is best not just for us as individuals, but for the
27
+ overall community
22
28
 
23
- Examples of unacceptable behavior by participants include:
29
+ Examples of unacceptable behavior include:
24
30
 
25
- * The use of sexualized language or imagery and unwelcome sexual
26
- attention or advances
27
- * Trolling, insulting/derogatory comments, and personal or political
28
- attacks
31
+ * The use of sexualized language or imagery, and sexual attention or
32
+ advances of any kind
33
+ * Trolling, insulting or derogatory comments, and personal or political attacks
29
34
  * Public or private harassment
30
- * Publishing others' private information, such as a physical or electronic
31
- address, without explicit permission
35
+ * Publishing others' private information, such as a physical or email
36
+ address, without their explicit permission
32
37
  * Other conduct which could reasonably be considered inappropriate in a
33
38
  professional setting
34
39
 
35
- ## Our Responsibilities
40
+ ## Enforcement Responsibilities
36
41
 
37
- Project maintainers are responsible for clarifying the standards of acceptable
38
- behavior and are expected to take appropriate and fair corrective action in
39
- response to any instances of unacceptable behavior.
42
+ Community leaders are responsible for clarifying and enforcing our standards of
43
+ acceptable behavior and will take appropriate and fair corrective action in
44
+ response to any behavior that they deem inappropriate, threatening, offensive,
45
+ or harmful.
40
46
 
41
- Project maintainers have the right and responsibility to remove, edit, or
42
- reject comments, commits, code, wiki edits, issues, and other contributions
43
- that are not aligned to this Code of Conduct, or to ban temporarily or
44
- permanently any contributor for other behaviors that they deem inappropriate,
45
- threatening, offensive, or harmful.
47
+ Community leaders have the right and responsibility to remove, edit, or reject
48
+ comments, commits, code, wiki edits, issues, and other contributions that are
49
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
50
+ decisions when appropriate.
46
51
 
47
52
  ## Scope
48
53
 
49
- This Code of Conduct applies both within project spaces and in public spaces
50
- when an individual is representing the project or its community. Examples of
51
- representing a project or community include using an official project e-mail
52
- address, posting via an official social media account, or acting as an appointed
53
- representative at an online or offline event. Representation of a project may be
54
- further defined and clarified by project maintainers.
54
+ This Code of Conduct applies within all community spaces, and also applies when
55
+ an individual is officially representing the community in public spaces.
56
+ Examples of representing our community include using an official e-mail address,
57
+ posting via an official social media account, or acting as an appointed
58
+ representative at an online or offline event.
55
59
 
56
60
  ## Enforcement
57
61
 
58
62
  Instances of abusive, harassing, or otherwise unacceptable behavior may be
59
- reported by contacting the project team at vince.broz@bluelabs.com. All
60
- complaints will be reviewed and investigated and will result in a response that
61
- is deemed necessary and appropriate to the circumstances. The project team is
62
- obligated to maintain confidentiality with regard to the reporter of an incident.
63
- Further details of specific enforcement policies may be posted separately.
63
+ reported to the community leaders responsible for enforcement at
64
+ [INSERT CONTACT METHOD].
65
+ All complaints will be reviewed and investigated promptly and fairly.
66
+
67
+ All community leaders are obligated to respect the privacy and security of the
68
+ reporter of any incident.
69
+
70
+ ## Enforcement Guidelines
71
+
72
+ Community leaders will follow these Community Impact Guidelines in determining
73
+ the consequences for any action they deem in violation of this Code of Conduct:
74
+
75
+ ### 1. Correction
76
+
77
+ **Community Impact**: Use of inappropriate language or other behavior deemed
78
+ unprofessional or unwelcome in the community.
79
+
80
+ **Consequence**: A private, written warning from community leaders, providing
81
+ clarity around the nature of the violation and an explanation of why the
82
+ behavior was inappropriate. A public apology may be requested.
83
+
84
+ ### 2. Warning
64
85
 
65
- Project maintainers who do not follow or enforce the Code of Conduct in good
66
- faith may face temporary or permanent repercussions as determined by other
67
- members of the project's leadership.
86
+ **Community Impact**: A violation through a single incident or series
87
+ of actions.
88
+
89
+ **Consequence**: A warning with consequences for continued behavior. No
90
+ interaction with the people involved, including unsolicited interaction with
91
+ those enforcing the Code of Conduct, for a specified period of time. This
92
+ includes avoiding interactions in community spaces as well as external channels
93
+ like social media. Violating these terms may lead to a temporary or
94
+ permanent ban.
95
+
96
+ ### 3. Temporary Ban
97
+
98
+ **Community Impact**: A serious violation of community standards, including
99
+ sustained inappropriate behavior.
100
+
101
+ **Consequence**: A temporary ban from any sort of interaction or public
102
+ communication with the community for a specified period of time. No public or
103
+ private interaction with the people involved, including unsolicited interaction
104
+ with those enforcing the Code of Conduct, is allowed during this period.
105
+ Violating these terms may lead to a permanent ban.
106
+
107
+ ### 4. Permanent Ban
108
+
109
+ **Community Impact**: Demonstrating a pattern of violation of community
110
+ standards, including sustained inappropriate behavior, harassment of an
111
+ individual, or aggression toward or disparagement of classes of individuals.
112
+
113
+ **Consequence**: A permanent ban from any sort of public interaction within
114
+ the community.
68
115
 
69
116
  ## Attribution
70
117
 
71
118
  This Code of Conduct is adapted from the [Contributor Covenant][homepage],
72
- version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
119
+ version 2.0, available at
120
+ [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
121
+
122
+ Community Impact Guidelines were inspired by
123
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
124
+
125
+ For answers to common questions about this code of conduct, see the FAQ at
126
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available
127
+ at [https://www.contributor-covenant.org/translations][translations].
73
128
 
74
- [homepage]: http://contributor-covenant.org
75
- [version]: http://contributor-covenant.org/version/1/4/
129
+ [homepage]: https://www.contributor-covenant.org
130
+ [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
131
+ [Mozilla CoC]: https://github.com/mozilla/diversity
132
+ [FAQ]: https://www.contributor-covenant.org/faq
133
+ [translations]: https://www.contributor-covenant.org/translations
data/DEVELOPMENT.md ADDED
@@ -0,0 +1,30 @@
1
+ # Development
2
+
3
+ ## fix.sh
4
+
5
+ If you want to use rbenv/pyenv/etc to manage versions of tools,
6
+ there's a `fix.sh` script which may be what you'd like to install
7
+ dependencies.
8
+
9
+ ## Overcommit
10
+
11
+ This project uses [overcommit](https://github.com/sds/overcommit) for
12
+ quality checks. `bundle exec overcommit --install` will install it.
13
+
14
+ ## direnv
15
+
16
+ This project uses direnv to manage environment variables used during
17
+ development. See the `.envrc` file for detail.
18
+
19
+ ## Publishing
20
+
21
+ To publish new version as a maintainer:
22
+
23
+ ```sh
24
+ git checkout main && git pull
25
+ git log "v$(bump current)..."
26
+ # Set type_of_bump to patch, minor, or major
27
+ bump --tag --tag-prefix=v ${type_of_bump:?}
28
+ rake release
29
+ git push
30
+ ```
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in bigfiles.gemspec
6
+ gemspec