Proposal for deprecations in v4 (removal in v5) #1043
Replies: 4 comments 9 replies
-
|
I would like to deprecate the Binding attribute generally. The presence of one of the actual "binding" attributes should be the indicator of intent. I might look at pulling together a PR for this if there's an appetite for including it in v4. |
Beta Was this translation helpful? Give feedback.
-
I think I have an use case which uses this (not recommended) approach. I will try to give more details this week. |
Beta Was this translation helpful? Give feedback.
-
|
Should we consider retirement of any of the Connectors in the VS Extension project? |
Beta Was this translation helpful? Give feedback.
-
|
You mention retirement of If we want to keep it, then it needs some love, including a fix for the Html Calculator test which needs a static page hosted somewhere (like on reqnroll.net). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
We will start planning v4 soon. For that I started to draft a list of things that I would consider to deprecate. This would mean that using these features will be still possible in v4, but they will show warnings. They would be then removed in v5.
This is an open list. If you have any other suggestion (things that cause maintenance issues, but not broadly used), or have problems with any of the proposals in this list, please hare it. Made the most impacting ones bold.
VB test projects: use by only 0.02% of the projects and easy to workaround by moving the VB step definitions to a class library that is then used by a C# Reqnroll project
SpecFlowCompatibility package: time to remove the training wheels
SpecFlow compatibility "Action" packages in https://github.com/reqnroll/Reqnroll.Actions: these are not maintained actively anyway
Table class: the DataTable class is a better aligned with the syntax terminology of Gherkin
Subclassing Given/When/Then/StepDefinition attributes: would make code-based the discovery for the default case easier. One can still use project-level aliases or custom attributes/plugins if that customization is needed.
Method-name-based expression matching, like
[Given]: It was a nice idea, but was never really picked up and the implementation is still buggy.Only allow stepdef/hook/step-arg-conv attribuets in class that have
[Binding]attribute directly and do not allow[Binding]attribute on a class that have a[Binding]attribute in any of the base classes. (So basically let people treat binding classes as sealed.): Not following these guidenlines is anyway causing different issues (see my post), and enforcing these rules could be a first step for eventually getting rid of the[Binding]attribute if we want. Also this makes the code-based discovery much easier, like the deny of subclassing G/W/T above.Configuration related deprecations:
stepAssembliesInternal API:
Not sure, but to consider:
[StepArgumentTransformation]attribute to[ParameterType]: Better alignment to Cucumber terminology[Binding]attribute generally. The presence of one of the actual "binding" attributes (G/W/T, hooks, step-arg-conv) should be the indicator of intent.Beta Was this translation helpful? Give feedback.
All reactions