uncov 0.2.2 → 0.3.0

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: bf88dae0a50fe213eba28c73573b77e29f01227b1efad0556f6c179116cce13a
4
- data.tar.gz: aaf2c1b2470a5c73b8134095acb7fe6b6a9583aa1546977baf621e7cfd4c24b2
3
+ metadata.gz: 71c9c6024e7115e88987532fd3fdb4e3667dd1d60701f558bc1c34a23e38c171
4
+ data.tar.gz: 9b89570ceac5692a3521e72e4faa35446c555c6c494b318d502e1c1c3fff98c5
5
5
  SHA512:
6
- metadata.gz: 11310149deb9a364643b85f86075198d52dd999cc16fb201e35ff03a8285631aa1120185ff199fd3cd9a7b2eb5bdd71c4a005a50602e0df660f78bc6ee7723f8
7
- data.tar.gz: 2ad5b4e2658cf7dfe517f949a18dfe0548b5bf580880d2aee63505f0f5bebc5182794ea1363aa3b6ef6787ac2be36309413a65eaf5ad2e5bbf74abec4e327d74
6
+ metadata.gz: 474941a337634f028565480b36b362a561cdb7b8c9a7105e998fadb89d23bf6717d070252dae19c991acb09b19d44357797b7964c20dfb0f78316a1f2d0c1ce5
7
+ data.tar.gz: e3cfbd78c00926fdc14c84c3e35d46d8141595eef8f07fa442172db7215c55502eda0e3ccf6e371cde39ccbc9c9e2e769ec8c0739924d2d7bfe9a0ad2a32a42d
data/CHANGELOG.md CHANGED
@@ -1,38 +1,36 @@
1
1
  # Changelog
2
2
 
3
- ## [0.2.2] - 2025-04-29
3
+ ## 2025-04-30: [v0.3.0](https://github.com/mpapis/uncov/releases/tag/v0.3.0)
4
4
 
5
- ## Patch
5
+ ### Minor
6
6
 
7
- - Fix simplecov resultset parsing bug
8
- - PR: #27
7
+ - [#28](https://github.com/mpapis/uncov/pull/28): Autodetect simplecov file path, by [@mpapis](https://github.com/mpapis)
9
8
 
10
9
 
11
10
 
11
+ ## 2025-04-29: [v0.2.2](https://github.com/mpapis/uncov/releases/tag/v0.2.2)
12
12
 
13
- ## [0.2.1] - 2025-04-29
13
+ ### Patch
14
14
 
15
- ## Patch
15
+ - [#27](https://github.com/mpapis/uncov/pull/27): Fix simplecov resultset parsing bug, by [@mpapis](https://github.com/mpapis)
16
16
 
17
- - Fix simplecov resultset parsing bug
18
- - PR: #26
19
17
 
18
+ ## 2025-04-29: [v0.2.1](https://github.com/mpapis/uncov/releases/tag/v0.2.1)
20
19
 
20
+ ### Patch
21
21
 
22
+ - [#26](https://github.com/mpapis/uncov/pull/26): Fix simplecov resultset parsing bug, by [@mpapis](https://github.com/mpapis)
22
23
 
23
- ## [0.2.0] - 2025-04-29
24
24
 
25
- ## 🐛 Fixes
25
+ ## 2025-04-29: [v0.2.0](https://github.com/mpapis/uncov/releases/tag/v0.2.0)
26
26
 
27
- - Remove need for bundler
28
- - PR: #23
27
+ ### Minor
29
28
 
29
+ - [#23](https://github.com/mpapis/uncov/pull/23): Remove need for bundler, by [@mpapis](https://github.com/mpapis)
30
30
 
31
- ## [0.1.1] - 2025-04-28
32
31
 
33
- - releasing...
32
+ ## 2025-04-28: [v0.1.1](https://github.com/mpapis/uncov/releases/tag/v0.1.1)
34
33
 
34
+ ### Minor
35
35
 
36
- ## [0.1.0] - 2025-04-28
37
-
38
- - uncov -r diff_lines -f termianl
36
+ `uncov -r diff_lines -f termianl`, by [@mpapis](https://github.com/mpapis)
data/CHANGELOG_BLA.md ADDED
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ ## 2025-04-29: [v0.2.2](https://github.com/mpapis/uncov/releases/tag/v0.2.2)
4
+
5
+ ### Patch
6
+
7
+ - [#27](https://github.com/mpapis/uncov/pull/27): Fix simplecov resultset parsing bug, by [@mpapis](https://github.com/mpapis)
8
+
9
+
10
+ ## 2025-04-29: [v0.2.1](https://github.com/mpapis/uncov/releases/tag/v0.2.1)
11
+
12
+ ### Patch
13
+
14
+ - [#26](https://github.com/mpapis/uncov/pull/26): Fix simplecov resultset parsing bug, by [@mpapis](https://github.com/mpapis)
15
+
16
+
17
+ ## 2025-04-29: [v0.2.0](https://github.com/mpapis/uncov/releases/tag/v0.2.0)
18
+
19
+ ### Minor
20
+
21
+ - [#23](https://github.com/mpapis/uncov/pull/23): Remove need for bundler, by [@mpapis](https://github.com/mpapis)
22
+
23
+
24
+ ## 2025-04-28: [v0.1.1](https://github.com/mpapis/uncov/releases/tag/v0.1.1)
25
+
26
+ ### Minor
27
+
28
+ `uncov -r diff_lines -f termianl`, by [@mpapis](https://github.com/mpapis)
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,56 @@
1
+ # Contributing
2
+ Bug reports and pull requests are welcome on GitHub at https://github.com/mpapis/uncov.
3
+
4
+ Do not know where to start? Help triaging issues, make sure they can be reproduced.
5
+
6
+
7
+ ## Reporting a Vulnerability
8
+
9
+ If you discover a security vulnerability within uncov, please email [mpapis@gmail.com](mailto:mpapis@gmail.com).
10
+ All security vulnerabilities will be promptly addressed.
11
+
12
+ ## Development
13
+ - `docker-compose build uncov` to (re-)build dev container,
14
+ - `docker-compose run uncov` to enter dev container,
15
+ - `bundle` to install dependencies,
16
+ - `rake` to run test and lint,
17
+ - `rake install` to install the gem,
18
+ - `uncov` to see uncovered changes (check itself)
19
+
20
+
21
+ ## Pull requests
22
+
23
+ Open pull requests against the `develop` branch
24
+
25
+ Branch prefix influences auto labeling next release:
26
+ - `ignore/` - will not trigger next release (excluded from changelog),
27
+ - `fix/` - will bump patch version,
28
+ - `feature/` - will bump minor version,
29
+ - `breaking/` - will bump major version.
30
+
31
+ If unsure it's not important, the release label's can be changed by maintainers.
32
+
33
+
34
+ ## Release Process
35
+
36
+ This gem uses GitHub Actions for continuous integration and automated releases. Here's how the release process works:
37
+
38
+ 1. Go to the "Actions" tab in the GitHub repository
39
+ 2. Select the "Release" workflow
40
+ 3. Click "Run workflow"
41
+
42
+ This will:
43
+ - Generate a changelog based on PRs since the last release,
44
+ - Increment the version number appropriately based on changelog,
45
+ - Do the release to rubygems, git tag, and create release on github.
46
+
47
+
48
+ ## Security Practices
49
+
50
+ This project follows these security practices:
51
+
52
+ 1. **Code Review**:
53
+ - All pull requests must be reviewed by a project maintainer
54
+ - Workflow files cannot be modified without explicit review from core maintainers
55
+
56
+ 2. The rubygems release process uses [trusted publishing](https://guides.rubygems.org/trusted-publishing/).
data/README.md CHANGED
@@ -43,24 +43,8 @@ Options
43
43
  - A Git repository
44
44
  - SimpleCov for test coverage
45
45
 
46
- ## Development
47
- - `docker-compose build uncov` to (re-)build dev container,
48
- - `docker-compose run uncov` to enter dev container,
49
- - `bundle` to install dependencies,
50
- - `rake` to run test and lint,
51
- - `rake install` to install the gem,
52
- - `uncov` to see uncovered changes (check itself)
53
-
54
46
  ## Contributing
55
- Bug reports and pull requests are welcome on GitHub at https://github.com/mpapis/uncov.
56
-
57
- ## Release Process
58
- This project uses an automated release process managed through GitHub Actions. For detailed information about contributing and the release workflow, please see [RELEASE.md](RELEASE.md).
59
-
60
- Maintainers can trigger new releases through the GitHub Actions interface with minimal manual intervention, following Semantic Versioning principles.
61
-
62
- ## Security
63
- This project has security practices, please see [SECURITY.md](SECURITY.md).
47
+ Contributing, developing, pull requests, releasing, security -> [CONTRIBUTING.md](CONTRIBUTING.md).
64
48
 
65
49
  ## License
66
50
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -8,7 +8,7 @@ class Uncov::Configuration
8
8
  def initialize
9
9
  @git_diff_target = 'HEAD'
10
10
  @test_command = 'COVERAGE=true bundle exec rake test'
11
- @simplecov_output_path = 'coverage/coverage.json'
11
+ @simplecov_output_path = 'autodetect'
12
12
  @path = '.'
13
13
  @relevant_files = ['{bin,exe,exec}/*', '{app,lib}/**/*.{rake,rb}']
14
14
  @report = :diff_lines
@@ -7,8 +7,7 @@ module Uncov::Finder::SimpleCov
7
7
  class << self
8
8
  def files(trigger_files = [])
9
9
  regenerate_report if requires_regeneration?(trigger_files)
10
- raise MissingSimpleCovReport, coverage_path unless File.exist?(coverage_path)
11
-
10
+ raise_on_missing_coverage_path!
12
11
  coverage.transform_values { |file_coverage| covered_lines(file_coverage) }
13
12
  end
14
13
 
@@ -37,6 +36,22 @@ module Uncov::Finder::SimpleCov
37
36
  end.to_h
38
37
  end
39
38
 
40
- def coverage_path = File.join(Uncov.configuration.path, Uncov.configuration.simplecov_output_path)
39
+ def coverage_path
40
+ if Uncov.configuration.simplecov_output_path == 'autodetect'
41
+ %w[coverage/coverage.json coverage/.resultset.json]
42
+ .map { |coverage_path| File.join(Uncov.configuration.path, coverage_path) }
43
+ .find { |path| File.exist?(path) }
44
+ else
45
+ File.join(Uncov.configuration.path, Uncov.configuration.simplecov_output_path)
46
+ end
47
+ end
48
+
49
+ def raise_on_missing_coverage_path!
50
+ return if File.exist?(coverage_path)
51
+
52
+ raise Uncov::AutodetectSimpleCovPathError if Uncov.configuration.simplecov_output_path == 'autodetect'
53
+
54
+ raise Uncov::MissingSimpleCovReport, coverage_path
55
+ end
41
56
  end
42
57
  end
data/lib/uncov/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uncov
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.0'
5
5
  end
data/lib/uncov.rb CHANGED
@@ -45,6 +45,10 @@ module Uncov
45
45
  def message = "SimpleCov results not found at #{coverage_path.inspect}"
46
46
  end
47
47
 
48
+ class AutodetectSimpleCovPathError < SimpleCovError
49
+ def initialize = @message = 'Could not autodetect coverage report path'
50
+ end
51
+
48
52
  class UnsupportedFormatterError < FormatterError
49
53
  attr_reader :output_format
50
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uncov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michał Papis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-29 00:00:00.000000000 Z
11
+ date: 2025-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -76,10 +76,10 @@ extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
78
  - CHANGELOG.md
79
+ - CHANGELOG_BLA.md
80
+ - CONTRIBUTING.md
79
81
  - LICENSE.txt
80
82
  - README.md
81
- - RELEASE.md
82
- - SECURITY.md
83
83
  - bin/uncov
84
84
  - lib/uncov.rb
85
85
  - lib/uncov/cache.rb
data/RELEASE.md DELETED
@@ -1,51 +0,0 @@
1
- # Release Process
2
-
3
- This gem uses GitHub Actions for continuous integration and automated releases. Here's how the release process works:
4
-
5
- ## For Contributors
6
-
7
- 1. Develop features in feature branches
8
- 2. Open pull requests against the `develop` branch
9
- 3. Ensure CI passes and get code review approval
10
- 4. Your changes will be included in the next release
11
-
12
- ## For Maintainers
13
-
14
- ### Preparing a Release
15
-
16
- 1. Go to the "Actions" tab in the GitHub repository
17
- 2. Select the "Prepare Release" workflow
18
- 3. Click "Run workflow"
19
- 4. Choose the version bump type (patch, minor, or major) following SemVer
20
- 5. Optionally select "Create pre-release" for release candidates
21
- 6. Click "Run workflow"
22
-
23
- This will:
24
- - Increment the version number appropriately
25
- - Generate a changelog based on PRs since the last release
26
- - Create a release branch and open a PR to main
27
-
28
- ### Finalizing a Release
29
-
30
- 1. Review and merge the auto-generated release PR into `main`
31
- 2. The system will automatically:
32
- - Create a git tag for the release
33
- - Run tests one final time
34
- - Build and publish the gem to RubyGems
35
- - Create a GitHub Release with the changelog
36
-
37
- ### Pre-releases
38
-
39
- For pre-releases (e.g. v1.2.0.pre1):
40
- 1. Follow the normal preparation process but check "Create pre-release"
41
- 2. The gem will be published to RubyGems as a pre-release version
42
- 3. Users can install it with `gem install uncov --pre`
43
-
44
- ## Manual Override
45
-
46
- If you need to create a release manually:
47
- 1. Update version in `lib/uncov/version.rb`
48
- 2. Update `CHANGELOG.md`
49
- 3. Commit these changes to `main`
50
- 4. Create and push a git tag: `git tag -a v1.2.3 -m "Release v1.2.3" && git push origin v1.2.3`
51
- 5. The tag will trigger the release workflow
data/SECURITY.md DELETED
@@ -1,21 +0,0 @@
1
- # Security Policy
2
-
3
- ## Reporting a Vulnerability
4
-
5
- If you discover a security vulnerability within uncov, please email [mpapis@gmail.com](mailto:mpapis@gmail.com).
6
- All security vulnerabilities will be promptly addressed.
7
-
8
- ## Security Practices
9
-
10
- This project follows these security practices:
11
-
12
- 1. **Code Review**:
13
- - All pull requests must be reviewed by a project maintainer
14
- - Workflow files cannot be modified without explicit review from core maintainers
15
-
16
- ## Releasers
17
-
18
- Only the following GitHub accounts are authorized to release new versions:
19
- - @mpapis
20
-
21
- The rubygems release process uses [trusted publishing](https://guides.rubygems.org/trusted-publishing/).