README.md in overrides_tracker-0.1.12 vs README.md in overrides_tracker-0.1.13
- old
+ new
@@ -18,11 +18,11 @@
1. Add OverridesTracker to your Gemfile and bundle install:
```ruby
gem 'overrides_tracker', group: [:test, :development]
```
-2. Add `overrides_tracker/*.otf` to your .gitignore file because you do won't to keep hold of your report file when changing branches.
+2. Add `overrides_tracker/*.otf` to your .gitignore file because you want to keep hold of your report file when switching branches.
3. Track you overrides by running:
```ruby
bundle exec overrides_tracker track
```
@@ -45,11 +45,11 @@
===========
Report saved to /PATH_TO_PROJECT/overrides_tracker/BRANCH_NAME#LAST_COMMIT_ID.otf
```
-4. This will create a folder called overrides_tracker and creates a file containing all overriding methods of your branch.
+4. This will create a folder called overrides_tracker and a file containing all methods you override as well as your overrides in that branch.
5. Switch branch and follow steps 1-3 again. If you want to compare multiple branches you need to redo these steps for every branch.
6. Now you have at least 2 files in the overrides_tracker folder
@@ -61,69 +61,114 @@
8. The result gives you an overview on what has changed and what not.
```
===========================================================================================
- 1) BClass#a_instance_method_override: No Changes
+ 1) Override: OrdinaryGem::AnotherTypicalClass#a_singleton_method_that_stays_the_same
- ===========================================================================================
+ ...........................................................................................
- 2)....
- .
- .
- .
+ main#cc5a31dc4833734a177f01bd161047f8c7909e16.otf
+ -------------------------------------------------------------------------------------------
- ===========================================================================================
+ Original:
- 26) YClass#a_singelton_method_override: Changes between files
+ def self.a_singleton_method_that_stays_the_same
+ "This is the implementation of a simple singleton method."
+ "This method will stay the same in the next version."
+ end
- in: master#528a0206d8f7cfe08737193659f85e28ccb260eb.otf
- YClass#a_singelton_method_override:
- Source:
- def self.a_singelton_method_override
- does_stuff_one_way
- end
+ in BUNDLE_PATH/bundler/gems/ordinary-gem-e67e062189bb/lib/ordinary_gem/another_typical_class.rb:19
- ../.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/bundler/gems/some_gem/lib/some_gem/y_class.rb:2
+ -------------------------------------------------------------------------------------------
+
Override:
- def self.a_singelton_method_override
- does_stuff_one_way_but_slitly_different
+
+ def self.a_singleton_method_that_stays_the_same
+ "This is our override of a simple singleton method."
+ "This method should stay the same in the next version."
end
- /PATH_TO_PROJECT/app/models/decorators/y_class_decorator.rb:13
+ in: APP_PATH/app/models/ordinary_gem/another_typical_class_monkey_patch.rb:2
- in: upgrade_to_latest#beadcdd8e07a2c9dc2aefddeef04fc42e6fff0d5.otf
- YClass#a_singelton_method_override:
- Source:
- def self.a_singelton_method_override
- does_stuff_in_a_different_way
+
+ ...........................................................................................
+
+ attached-to-next-version#a7231014c006a4a5848eb4d92bb465eb5c89ee01.otf
+ -------------------------------------------------------------------------------------------
+
+ Original:
+
+ def self.a_singleton_method_that_stays_the_same
+ "This is the implementation of a simple singleton method."
+ "This method will stay the same in the next version."
end
- ../.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/bundler/gems/some_gem/lib/some_gem/y_class.rb:2
+ in BUNDLE_PATH/bundler/gems/ordinary-gem-f92e5a1a70a6/lib/ordinary_gem/another_typical_class.rb:13
+
+
+ -------------------------------------------------------------------------------------------
+
Override:
- def self.a_singelton_method_override
- does_stuff_one_way_but_slitly_different
+
+ def self.a_singleton_method_that_stays_the_same
+ "This is our override of a simple singleton method."
+ "This method should stay the same in the next version."
end
- /PATH_TO_PROJECT/app/models/decorators/y_class_decorator.rb:13
+ in: APP_PATH/app/models/ordinary_gem/another_typical_class_monkey_patch.rb:2
+
+
+
+ ...........................................................................................
+
+ main#1d279724b26c9491e6e5a01e9711b61a73e9f7e0.otf
+ Method not available
+
+
+
+
+
+ ...........................................................................................
+ .
+ .
+ .
+ .
===========================================================================================
Summary:
- Found 29 distinct overridden methods
- 10 overridden methods have not changed
- 19 overridden methods have changed
- 1 where method is not an override
- 4 where method is not in codebase
- 15 source method bodies have changed
+
+ Investigated methods: 70
+ Diffences on overrides: 42
+ Diffences on added methods: 28
+
```
-
+
+## Overrides.io integration
+<img width="1000" alt="Bildschirmfoto 2023-01-10 um 21 39 42" src="https://user-images.githubusercontent.com/9799974/211657428-c2a7e272-ae86-4c1c-8e77-0a07acc1a4a0.png">
+
+Overrides.io is a service that monitors code you override for changes. It notifies you whenever those changes occur.
+Additionally it gives you a beautiful overview of all the methods you have overridden as well as your overrides side by side.
+<p float="left">
+<img width="500" alt="Bildschirmfoto 2023-01-10 um 21 39 15" src="https://user-images.githubusercontent.com/9799974/211658325-60c21057-1a07-4b55-a4d5-3d82470fb3ee.png">
+<img width="500" alt="Bildschirmfoto 2023-01-10 um 21 39 28" src="https://user-images.githubusercontent.com/9799974/211658362-f50435dd-56c5-498b-9038-f702addb0717.png">
+</p>
+Overrides Tracker can easily be integrated into you CI/CD pipeline and configured to send the result files to overrides.io.
+
+You basically just have to set OVERRIDES_API_TOKEN environment variable and call 'bundle exec overrides_tracker track'.
+To push it to overrides.io locally you could also just call 'bundle exec overrides_tracker track YOUR_OVERRIDES_API_TOKEN'.
+
+You can find a detailed description how to integrate it with CircleCI, GitHub Action and Jenkins here:
+
+https://www.overrides.io/continuous_integration
+
## GEM support
Overrides Tracker can also be used on GEMs. It will autoload all classes in the lib and app folders.
Sometimes that is not enough:
@@ -133,11 +178,11 @@
You can also use the ['require_all'](https://github.com/jarmo/require_all) way to include complete folders, filter files etc..
## Ruby version compatibility
-OverridesTracker is built in [Continuous Integration] on Ruby 2.3+.
+Overrides Tracker is built in [Continuous Integration] on Ruby 2.3+.
## Code of Conduct
Everyone participating in this project's development, issue trackers and other channels is expected to follow our
[Code of Conduct](./CODE_OF_CONDUCT.md)
@@ -150,6 +195,6 @@
4. Push to the branch (git push origin my-new-feature)
5. Create new Pull Request
## Copyright
-Copyright (c) 2022 Simon Meyborg. See MIT-LICENSE for details.
+Copyright (c) 2023 Simon Meyborg. See MIT-LICENSE for details.