flutter_rb 1.0.2 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8fd9ab4300d4125491e760985c8d40ffc3fa5f96991591e175f944841982328f
4
- data.tar.gz: b1458595c0f9f9ffdd6f288acb6ef38a2e008a6d692bdacfc1c91afb9512c193
3
+ metadata.gz: 5d708635770d65db09e97f3864f6e35ebcba46c13c84d6a388e6f10e9adc72e4
4
+ data.tar.gz: 1db4f12f4a0d23ba569a1c885eb3db6b295f11f2954594207750e738c91fa885
5
5
  SHA512:
6
- metadata.gz: 44ee511a8e2f5537d14eaa0097fcb0ba22e61fdfcb9b9300814b5b793cc23617a7017dd413384069f95cbd7f6ebd7a1cf3330a0011aa942318bc4224bdc5b2db
7
- data.tar.gz: 42eb043999a521b44ec7a9950e6cb9e1fc8fb8fecf2f8d59cc0b9c6e0c369a69d43a071be6970bcac8780e3caa734f7c2ea9468b098e40d52daed92b6be43d29
6
+ metadata.gz: ce685d7cfeb7b65bd31113f167d91aa59fb5ba23368f744a4d1efa14d7b2f5e97e32e7b4fa2012a32ba2fafb94f29c6d30e68602e25648aff0fe7695bafc0ce5
7
+ data.tar.gz: 6d11387d9654065b86410ab14612ec2ac4711f181d8c56d9551f762d408b6ba00ba0c1b81f72145af283d970e17b51dafa0c8d545925dae11df65b7630bfd70c
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ <!--suppress CheckImageSize -->
1
2
  <img src="media/logo/ic_lib.png" height="100px" alt="Project's logo">
2
3
 
3
4
  # flutter_rb
@@ -25,15 +26,16 @@ Each issue has a `level` parameter that describes its significant importance.
25
26
 
26
27
  #### Flutter
27
28
 
28
- | Check | Description | Level |
29
- |-----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
30
- | `PluginDirectoriesCheck` | Check plugin directories structure in pubspec file. Example: if a Flutter plugin has only Android specific code but not contains iOS folder with description, then iOS build fails | `ERROR` |
31
- | `PluginPubspecNameCheck` | Check plugin name in pubspec file. Exists or not | `ERROR` |
32
- | `PluginPubspecDescriptionCheck` | Check plugin description in pubspec file. Exists or not | `WARNING` |
33
- | `PluginPubspecVersionCheck` | Check plugin version in pubspec. Exists or not | `ERROR` |
34
- | `PluginPubspecAuthorCheck` | Check plugin author in pubspec. Exists or not. `author` section deprecated in `pubspec.yaml` | `WARNING` |
35
- | `PluginPubspecHomepageCheck` | Check plugin homepage in pubspec. Exists or not | `ERROR` |
36
- | `PluginPubspecEffectiveDartCheck` | Check Flutter plugin Effective Dart depencency in pubspec file. Exists or not | `ERROR` |
29
+ | Check | Description | Level |
30
+ |----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
31
+ | `PluginDirectoriesCheck` | Check plugin directories structure in pubspec file. Example: if a Flutter plugin has only Android specific code but not contains iOS folder with description, then iOS build fails | `ERROR` |
32
+ | `PluginPubspecNameCheck` | Check plugin name in pubspec file. Exists or not | `ERROR` |
33
+ | `PluginPubspecDescriptionCheck` | Check plugin description in pubspec file. Exists or not | `WARNING` |
34
+ | `PluginPubspecVersionCheck` | Check plugin version in pubspec. Exists or not | `ERROR` |
35
+ | `PluginPubspecAuthorCheck` | Check plugin author in pubspec. Exists or not. `author` section deprecated in `pubspec.yaml` | `WARNING` |
36
+ | `PluginPubspecHomepageCheck` | Check plugin homepage in pubspec. Exists or not | `ERROR` |
37
+ | `PluginPubspecLintsCheck` | Check Flutter plugin `lints` dependency in pubspec file. Exists or not | `ERROR` |
38
+ | `PluginPubspecFlutterLintsCheck` | Check Flutter plugin `flutter_lints` dependency in pubspec file. Exists or not | `ERROR` |
37
39
 
38
40
  #### Android
39
41
 
@@ -103,10 +105,10 @@ $ local_frb
103
105
 
104
106
  ### Configuration
105
107
 
106
- Add `.flutter_rb.yaml` to root of a project for select checks that you are want to execute:
108
+ Add `.flutter_rb.yaml` to root of a project for select checks that you are want to exclude:
107
109
 
108
110
  ```yaml
109
- include:
111
+ exclude:
110
112
  flutter:
111
113
  - check1
112
114
  - check2
data/bin/frb CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # frozen_string_literal: true
4
+
3
5
  require 'flutter_rb'
4
6
  require 'colorize'
5
7
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'nokogiri'
2
4
 
3
5
  # Module with classes for creating reports in Checkstyle format
@@ -80,9 +82,9 @@ module CheckstyleReport
80
82
 
81
83
  # Checkstyle error representation
82
84
  class CheckstyleError
83
- SEVERITY_NORMAL = 'normal'.freeze
84
- SEVERITY_WARNING = 'warning'.freeze
85
- SEVERITY_ERROR = 'error'.freeze
85
+ SEVERITY_NORMAL = 'normal'
86
+ SEVERITY_WARNING = 'warning'
87
+ SEVERITY_ERROR = 'error'
86
88
 
87
89
  # rubocop:disable Metrics/ParameterLists
88
90
  # @param {String} severity
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FlutterRb
2
4
  # Base class for all checks
3
5
  # Class provides default methods structure
4
6
  # All methods using for create reports
5
7
  class Check
6
- UNIMPLEMENTED_ERROR = 'Error: missing method'.freeze
8
+ UNIMPLEMENTED_ERROR = 'Error: missing method'
7
9
 
8
10
  # @return {String}
9
11
  def name
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'check'
2
4
  require_relative '../report/check_report'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './check'
2
4
  require_relative '../report/check_report'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'check'
2
4
  require_relative '../report/check_report'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'check'
2
4
  require_relative '../report/check_report'
3
5
 
@@ -145,34 +147,66 @@ module FlutterRb
145
147
  end
146
148
  end
147
149
 
148
- # Check Flutter plugin Effective Dart dependency in pubspec file. Exists or not
149
- # noinspection RubyClassModuleNamingConvention
150
- class PluginPubspecEffectiveDartCheck < Check
150
+ # Check Flutter plugin lints dependency in pubspec file. Exists or not
151
+ class PluginPubspecLintsCheck < Check
152
+ # @return {String}
153
+ def name
154
+ 'PluginPubspecLintsCheck'
155
+ end
156
+
157
+ # @return {String}
158
+ def summary
159
+ 'Validate Flutter plugin\'s lints rules implementation in pubspec.yaml'
160
+ end
161
+
162
+ # @return {String}
163
+ def description
164
+ 'Check Flutter plugin lints dependency in pubspec file'
165
+ end
166
+
167
+ # @param {Project} project
168
+ # @return {CheckReport}
169
+ def check(project)
170
+ pubspec = project.pubspec
171
+ lints = pubspec.dev_dependencies&.detect do |dev_dependency|
172
+ dev_dependency.name == 'lints'
173
+ end
174
+ CheckReport.new(
175
+ name,
176
+ lints.nil? ? CheckReportStatus::ERROR : CheckReportStatus::NORMAL,
177
+ description,
178
+ pubspec.path
179
+ )
180
+ end
181
+ end
182
+
183
+ # Check Flutter plugin flutter_lints dependency in pubspec file. Exists or not
184
+ class PluginPubspecFlutterLintsCheck < Check
151
185
  # @return {String}
152
186
  def name
153
- 'PluginPubspecEffectiveDartCheck'
187
+ 'PluginPubspecFlutterLintsCheck'
154
188
  end
155
189
 
156
190
  # @return {String}
157
191
  def summary
158
- 'Validate Flutter plugin\'s Effective Dart rules implementation in pubspec.yaml'
192
+ 'Validate Flutter plugin\'s flutter_lints rules implementation in pubspec.yaml'
159
193
  end
160
194
 
161
195
  # @return {String}
162
196
  def description
163
- 'Check Flutter plugin Effective Dart depencency in pubspec file'
197
+ 'Check Flutter plugin flutter_lints dependency in pubspec file'
164
198
  end
165
199
 
166
200
  # @param {Project} project
167
201
  # @return {CheckReport}
168
202
  def check(project)
169
203
  pubspec = project.pubspec
170
- effective_dart = pubspec.dev_dependencies&.detect do |dev_dependency|
171
- dev_dependency.name == 'effective_dart'
204
+ flutter_lints = pubspec.dev_dependencies&.detect do |dev_dependency|
205
+ dev_dependency.name == 'flutter_lints'
172
206
  end
173
207
  CheckReport.new(
174
208
  name,
175
- effective_dart.nil? ? CheckReportStatus::ERROR : CheckReportStatus::NORMAL,
209
+ flutter_lints.nil? ? CheckReportStatus::ERROR : CheckReportStatus::NORMAL,
176
210
  description,
177
211
  pubspec.path
178
212
  )
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FlutterRb
2
4
  # FlutterRb configuration representation from config in Flutter plugin
3
5
  class FlutterRbConfig
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './flutter_rb_config'
2
4
  require_relative '../checks/plugin_directories_check'
3
5
 
@@ -13,7 +15,8 @@ module FlutterRb
13
15
  PluginPubspecVersionCheck.new,
14
16
  PluginPubspecAuthorCheck.new,
15
17
  PluginPubspecHomepageCheck.new,
16
- PluginPubspecEffectiveDartCheck.new
18
+ PluginPubspecLintsCheck.new,
19
+ PluginPubspecFlutterLintsCheck.new
17
20
  ].freeze
18
21
 
19
22
  ANDROID_CHECKS = [
@@ -30,30 +33,34 @@ module FlutterRb
30
33
 
31
34
  # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
32
35
  # @param {String} path
36
+ # @return {FlutterRbConfig}
33
37
  def parse(path)
34
- config = YAML.load_file(path)['include']
35
- flutter_checks = []
36
- unless config['flutter'].nil?
37
- flutter_checks += config['flutter'].map do |check|
38
- Object.const_get("FlutterRb::#{check}").new
38
+ config = YAML.load_file(path)
39
+
40
+ exclude_flutter_checks = ::Set.new
41
+ exclude_android_checks = ::Set.new
42
+ exclude_ios_checks = ::Set.new
43
+
44
+ unless config.nil?
45
+ exclude_checks = YAML.load_file(path)['exclude']
46
+
47
+ unless exclude_checks['flutter'].nil?
48
+ exclude_flutter_checks += exclude_checks['flutter'].map { |check| "FlutterRb::#{check}" }
39
49
  end
40
- end
41
- android_checks = []
42
- unless config['android'].nil?
43
- android_checks += config['android'].map do |check|
44
- Object.const_get("FlutterRb::#{check}").new
50
+
51
+ unless exclude_checks['android'].nil?
52
+ exclude_android_checks += exclude_checks['android'].map { |check| "FlutterRb::#{check}" }
45
53
  end
46
- end
47
- ios_checks = []
48
- unless config['ios'].nil?
49
- ios_checks += config['ios'].map do |check|
50
- Object.const_get("FlutterRb::#{check}").new
54
+
55
+ unless exclude_checks['ios'].nil?
56
+ exclude_ios_checks += exclude_checks['ios'].map { |check| "FlutterRb::#{check}" }
51
57
  end
52
58
  end
59
+
53
60
  FlutterRbConfig.new(
54
- flutter_checks.empty? ? FLUTTER_CHECKS : flutter_checks,
55
- android_checks.empty? ? ANDROID_CHECKS : android_checks,
56
- ios_checks.empty? ? IOS_CHECKS : ios_checks
61
+ FLUTTER_CHECKS.reject { |check| exclude_flutter_checks&.include?(check.class.name) },
62
+ ANDROID_CHECKS.reject { |check| exclude_android_checks&.include?(check.class.name) },
63
+ IOS_CHECKS.reject { |check| exclude_ios_checks&.include?(check.class.name) }
57
64
  )
58
65
  end
59
66
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './specs/flutter/pubspec'
2
4
  require_relative './specs/flutter/dev_dependency'
3
5
  require_relative './specs/flutter/platform_plugin'
@@ -14,12 +16,7 @@ module FlutterRb
14
16
  # @param {Pubspec} pubspec
15
17
  # @param {AndroidFolder} android_folder
16
18
  # @param {IOSFolder} ios_folder
17
- def initialize(
18
- path,
19
- pubspec,
20
- android_folder,
21
- ios_folder
22
- )
19
+ def initialize(path, pubspec, android_folder, ios_folder)
23
20
  @path = path
24
21
  @pubspec = pubspec
25
22
  @android_folder = android_folder
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './gradle'
2
4
 
3
5
  module FlutterRb
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module FlutterRb
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FlutterRb
2
4
  # Dev dependency, contains name and version
3
5
  class DevDependency
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FlutterRb
2
4
  # Flutter plugin, contains platform, package and plugin class
3
5
  class PlatformPlugin
@@ -15,7 +17,7 @@ module FlutterRb
15
17
 
16
18
  # Supported platforms for this tool
17
19
  class Platform
18
- ANDROID = 'android'.freeze
19
- IOS = 'ios'.freeze
20
+ ANDROID = 'android'
21
+ IOS = 'ios'
20
22
  end
21
23
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './pubspec_info'
2
4
  require_relative './dev_dependency'
3
5
  require_relative './platform_plugin'
@@ -9,12 +11,7 @@ module FlutterRb
9
11
  # @param {PubspecInfo} pubspec_info
10
12
  # @param {DevDependency[]} dev_dependencies
11
13
  # @param {PlatformPlugin[]} platform_plugins
12
- def initialize(
13
- path,
14
- pubspec_info,
15
- dev_dependencies,
16
- platform_plugins
17
- )
14
+ def initialize(path, pubspec_info, dev_dependencies, platform_plugins)
18
15
  @path = path
19
16
  @pubspec_info = pubspec_info
20
17
  @dev_dependencies = dev_dependencies
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FlutterRb
2
4
  # Flutter plugin info from pubspec.yaml
3
5
  class PubspecInfo
@@ -6,13 +8,7 @@ module FlutterRb
6
8
  # @param {String} version
7
9
  # @param {String} author
8
10
  # @param {String} homepage
9
- def initialize(
10
- name,
11
- description,
12
- version,
13
- author,
14
- homepage
15
- )
11
+ def initialize(name, description, version, author, homepage)
16
12
  @name = name
17
13
  @description = description
18
14
  @version = version
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './podspec'
2
4
 
3
5
  module FlutterRb
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'cocoapods'
2
4
 
3
5
  module FlutterRb
@@ -8,13 +10,7 @@ module FlutterRb
8
10
  # @param {String} version
9
11
  # @param {String[]} authors
10
12
  # @param {String} source
11
- def initialize(
12
- path,
13
- name,
14
- version,
15
- authors,
16
- source
17
- )
13
+ def initialize(path, name, version, authors, source)
18
14
  @path = path
19
15
  @name = name
20
16
  @version = version
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'colorize'
2
4
 
3
5
  module FlutterRb
@@ -7,12 +9,7 @@ module FlutterRb
7
9
  # @param {CheckReportStatus} check_report_status
8
10
  # @param {String} message
9
11
  # @param {String} path
10
- def initialize(
11
- check_name,
12
- check_report_status,
13
- message,
14
- path
15
- )
12
+ def initialize(check_name, check_report_status, message, path)
16
13
  @check_name = check_name
17
14
  @check_report_status = check_report_status
18
15
  @message = message
@@ -50,8 +47,8 @@ module FlutterRb
50
47
 
51
48
  # Check report status
52
49
  class CheckReportStatus
53
- NORMAL = 'normal'.freeze
54
- WARNING = 'warning'.freeze
55
- ERROR = 'error'.freeze
50
+ NORMAL = 'normal'
51
+ WARNING = 'warning'
52
+ ERROR = 'error'
56
53
  end
57
54
  end
data/lib/flutter_rb.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './flutter_rb/project/project'
2
4
  require_relative './flutter_rb/checks/plugin_directories_check'
3
5
  require_relative './flutter_rb/checks/plugin_pubspec_check'
@@ -8,10 +10,11 @@ require_relative './flutter_rb/config/flutter_rb_config_initializer'
8
10
  require_relative './checkstyle_report/checkstyle_report'
9
11
 
10
12
  module FlutterRb
11
- # Start FlutterRb checks
12
- # @param {String} path
13
- # @param {Bool} with_report
13
+ # FlutterRb entry
14
14
  class FlutterRb
15
+ # Start FlutterRb checks
16
+ # @param {String} path
17
+ # @param {Boolean} with_report
15
18
  def start(path, with_report)
16
19
  project = ProjectParser.new(path).project
17
20
  if project.nil?
@@ -25,6 +28,7 @@ module FlutterRb
25
28
  end
26
29
  end
27
30
 
31
+ # @return {Void}
28
32
  def exit_with_no_project
29
33
  puts 'No project'
30
34
  exit(-1)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flutter_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Fomchenkov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-19 00:00:00.000000000 Z
11
+ date: 2023-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.8.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: dry-cli
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: nokogiri
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -116,8 +130,6 @@ extensions: []
116
130
  extra_rdoc_files:
117
131
  - README.md
118
132
  files:
119
- - CODE_OF_CONDUCT.md
120
- - COMMIT_CONVENTION.md
121
133
  - LICENSE
122
134
  - README.md
123
135
  - bin/frb
data/CODE_OF_CONDUCT.md DELETED
@@ -1,76 +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, sex characteristics, gender identity and expression,
9
- level of experience, education, socio-economic status, nationality, personal
10
- appearance, race, religion, or sexual identity and 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 jaman.smlnsk@gmail.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 https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
-
73
- [homepage]: https://www.contributor-covenant.org
74
-
75
- For answers to common questions about this code of conduct, see
76
- https://www.contributor-covenant.org/faq
data/COMMIT_CONVENTION.md DELETED
@@ -1,58 +0,0 @@
1
- # Commit Convention
2
-
3
- ## How to work with a project
4
-
5
- ### As a repository maintainer
6
-
7
- #### New update
8
-
9
- 1. clone a project from a repository to local workspace;
10
- 2. create a new branch for an update;
11
- 3. complete the update;
12
- 4. perform a Code Review;
13
- 5. merge your branch with `master`;
14
- 6. delete your branch.
15
-
16
- #### Notes
17
-
18
- 1. always delete development branches;
19
- 2. always push squashed commit to `master`.
20
-
21
- ### As a contributor
22
-
23
- 1. clone a project from a repository to local workspace;
24
- 2. create a new branch for an update;
25
- 3. complete the update;
26
- 4. perform a Code Review;
27
- 5. create a Pull Request to the original repository.
28
-
29
- ## Branches
30
-
31
- ### In projects using next types of branches
32
-
33
- * `master` - master branch. Contains a production version of the project. Don't push working changes to `master`!
34
- * `version` - branch for a specific version.
35
- * `issue` - branch for a specific issue.
36
-
37
- ## Commit message structure
38
-
39
- ### Template
40
-
41
- ```text
42
- [DATE] [VERSION]: [MESSAGE]
43
- ```
44
-
45
- ### Example
46
-
47
- ```text
48
- 2019-05-12 v. 2.1.3: fixed bugs in History screen
49
- ```
50
-
51
- #### Commit body sections order
52
-
53
- 1. `added` - what was added in the commit;
54
- 2. `closed` - what issues closed in the commit;
55
- 3. `fixed` - what was fixed in the commit;
56
- 4. `updated` - what was updated in the commit;
57
- 5. `deleted` - what was deleted in the commit;
58
- 6. `refactored` - what was refactored in the commit.