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="Bildschirm­foto 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="Bildschirm­foto 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="Bildschirm­foto 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.