ROADMAP.md in convenient_service-0.15.0 vs ROADMAP.md in convenient_service-0.16.0
- old
+ new
@@ -8,33 +8,33 @@
| Medium | ✅ | Release `v0.1.0` with a warning that lib is still under heavy development | |
| Medium | 🚧 | [Active Record transaction](https://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html) examples | |
| Medium | 🚧 | [Rails Current Attributes integration](https://api.rubyonrails.org/classes/ActiveSupport/CurrentAttributes.html) to cache repeated results | |
| Low | 🚧 | [Capybara](https://github.com/teamcapybara/capybara) examples | |
| Medium | 🚧 | Inline step sequence | |
-| High | 🚧 | Move callbacks to internals | |
+| High | 🚧 | Move callbacks to internals | In order to NOT pollute the public interface of users services |
| Low | 🚧 | Create an example of `id_or_record` [attribute](https://api.rubyonrails.org/classes/ActiveRecord/Attributes/ClassMethods.html) |
| Low | 🚧 | GitHub Wiki/Gists for Support | |
| Low | 🚧 | Contribute to Shoulda Matchers | |
| High | ✅ | `respond_to_missing?` | [ConvenientService::Core::ClassMethods#respond_to_missing?](https://github.com/marian13/convenient_service/blob/main/lib/convenient_service/core/class_methods.rb#L105), [ConvenientService::Core::InstanceMethods#respond_to_missing?](https://github.com/marian13/convenient_service/blob/main/lib/convenient_service/core/instance_methods.rb#L30) |
| High | ⏳ | Custom matcher to track `ConvenientService::Logger` messages | |
-| Medium | 🚧 | Remove `respond_to?` from `Copyable` | Investigate before making any decision |
+| Medium | ✅ | Remove `respond_to?` from `Copyable` | [7d2a676c171d201301f1c35d498c3b1caf8579b1](https://github.com/marian13/convenient_service/commit/7d2a676c171d201301f1c35d498c3b1caf8579b1) |
| High | 🚧 | Unified `inspect` | Remove `internals` from inspect, ivars wrapperd by double underscore |
| High | ✅ | Remove race condition for `method_missing` | https://github.com/marian13/convenient_service/pull/5 |
| High | ✅ | Remove incompatiility of [Module#include](https://gist.github.com/marian13/9c25041f835564e945d978839097d419) | https://github.com/marian13/convenient_service/pull/3 |
| Medium | ✅ | Split `Utils` specs into separate files | [convenient_service/spec/lib/convenient_service/utils](https://github.com/marian13/convenient_service/tree/main/spec/lib/convenient_service/utils) |
| Medium | 🚧 | How to test thread-safety? | |
| Medium | ✅ | Rename `Utils::Module.find_own_const` to `Utils::Module.get_own_const` | [ConvenientService::Utils::Module::GetOwnConst](https://github.com/marian13/convenient_service/blob/main/lib/convenient_service/utils/module/get_own_const.rb) |
| Medium | 🚧 | Mark `@api private` methods, classes | [YARD Tags](https://www.rubydoc.info/gems/yard/file/docs/Tags.md) |
| Medium | ✅ | A way to check if block has one required positional argument | [#proc_has_one_positional_argument?](https://github.com/marian13/convenient_service/blob/main/lib/convenient_service/utils/proc/exec_config.rb#L96) |
| Low | 🚧 | Define method middleware caller with visibility | |
| Low | 🚧 | Dependency containers to remove high coupling | |
-| Low | 🚧 | Measure performance | |
-| Low | 🚧 | Rewrite middleware backend to count [convenient_service](https://github.com/marian13/convenient_service) specifics | |
+| Low | 🚧 | Measure performance | See [benchmark](https://github.com/marian13/convenient_service/tree/main/benchmark) |
+| Low | 🚧 | Write [Convenient Service](https://github.com/marian13/convenient_service) specific middleware backend | |
| High | 🚧 | Optimize `stack.dup` in `MethodMiddlewares#call` | Core v3 |
| Medium | 🚧 | Make a decision of what to do with `printable_block` in custom RSpec matchers | |
| Medium | 🚧 | User-friendly exception messages | |
-| High | 🚧 | Factory for POROs in specs ❗❗❗ | Start with `result_class`, `class self::Result`, `service_class`, `step_class`, `organizer_class` |
+| High | ❌ | Factory for POROs in specs ❗❗❗ | Proxy config antipattern |
| High | 🚧 | Resolve warning during specs | |
| Medium | 🚧 | Consider to change/rewrite `delegate` backend to minify its interface | |
| Medium | 🚧 | Same order of attr macros, delegators, initialize, class methods, attr methods, queries, actions, `to_*`, comparison, inspect | |
| Medium | ✅ | Move `Cache` to `Support` | |
| Medium | 🚧 | Statically specify plugin dependencies | |
@@ -76,10 +76,17 @@
| Low | 🚧 | Generator to create a spec default structure | |
| Low | 🚧 | Rubocop cop that complains when a service does NOT have its own suite of specs | |
| High | 🚧 | Add specs for `WrappedMethod#call` | |
| High | 🚧 | Check whether ignoring the error was used properly | |
| High | 🚧 | Steps are great for `and` logic, but what to do with `or` logic? | Create the third service | |
-| High | 🚧 | Steps are great for `and` logic, but what to do with `case when` logic? | Create the third service | |
+| High | 🚧 | Steps are great for `and` logic, but what to do with `case when` logic? | Create the third service | |
| High | 🚧 | Cacing of services | It is relatively simple to add caching for steps, but not for all services, since steps are managed by framework | |
| High | 🚧 | Fallback should return result with already checked status | |
+| Medium | 🚧 | Licence: Commercial Support docs | See [Sidekiq Commercial Support](https://github.com/sidekiq/sidekiq/wiki/Commercial-Support) |
+| Meduim | 🚧 | Licence: Acknowledgements - Government End Users | See [GraphQL Ruby Commercial Licence](https://graphql.pro/COMM-LICENSE.html) |
+| Medium | 🚧 | Licence: Applicable Law and Jurisdiction (Miscellaneous - Governing Law) | See [Kiba Applicable Law and Jurisdiction](https://github.com/thbar/kiba/blob/master/COMM-LICENSE.md) |
+| Medium | 🚧 | Licence: Contact email `info@convenientservice.org` | |
+| Medium | 🚧 | Contributing Guide | See [Sidekiq Contributing](https://github.com/sidekiq/sidekiq/blob/main/.github/contributing.md) |
+| High | 🚧 | `comparing_by` for `delegate_to` | |
+| High | 🚧 | Remove extra files from bundled gem version | |
-Search for `TODO`s in the codebase for more tasks.
+Search for `TODO`s in the codebase or check [discussions](https://github.com/marian13/convenient_service/discussions) for more tasks.