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 +4 -4
- data/CHANGELOG.md +15 -17
- data/CHANGELOG_BLA.md +28 -0
- data/CONTRIBUTING.md +56 -0
- data/README.md +1 -17
- data/lib/uncov/configuration.rb +1 -1
- data/lib/uncov/finder/simple_cov.rb +18 -3
- data/lib/uncov/version.rb +1 -1
- data/lib/uncov.rb +4 -0
- metadata +4 -4
- data/RELEASE.md +0 -51
- data/SECURITY.md +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71c9c6024e7115e88987532fd3fdb4e3667dd1d60701f558bc1c34a23e38c171
|
4
|
+
data.tar.gz: 9b89570ceac5692a3521e72e4faa35446c555c6c494b318d502e1c1c3fff98c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 474941a337634f028565480b36b362a561cdb7b8c9a7105e998fadb89d23bf6717d070252dae19c991acb09b19d44357797b7964c20dfb0f78316a1f2d0c1ce5
|
7
|
+
data.tar.gz: e3cfbd78c00926fdc14c84c3e35d46d8141595eef8f07fa442172db7215c55502eda0e3ccf6e371cde39ccbc9c9e2e769ec8c0739924d2d7bfe9a0ad2a32a42d
|
data/CHANGELOG.md
CHANGED
@@ -1,38 +1,36 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [0.
|
3
|
+
## 2025-04-30: [v0.3.0](https://github.com/mpapis/uncov/releases/tag/v0.3.0)
|
4
4
|
|
5
|
-
|
5
|
+
### Minor
|
6
6
|
|
7
|
-
-
|
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
|
-
|
13
|
+
### Patch
|
14
14
|
|
15
|
-
|
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
|
-
##
|
25
|
+
## 2025-04-29: [v0.2.0](https://github.com/mpapis/uncov/releases/tag/v0.2.0)
|
26
26
|
|
27
|
-
|
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
|
-
-
|
32
|
+
## 2025-04-28: [v0.1.1](https://github.com/mpapis/uncov/releases/tag/v0.1.1)
|
34
33
|
|
34
|
+
### Minor
|
35
35
|
|
36
|
-
|
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
|
-
|
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).
|
data/lib/uncov/configuration.rb
CHANGED
@@ -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 = '
|
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
|
-
|
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
|
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
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.
|
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-
|
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/).
|