Replies: 2 comments 2 replies
-
@pharmaverse/admiral Hi all, I put together some notes on our Deprecation/Superseded Strategy that we can discuss at the core meeting. I'm worried that the Please put any thoughts here or we can discuss at the meeting. @pharmaverse/admiral_comm let us know your thoughts here if you have any advice concerns on deprecation!! |
Beta Was this translation helpful? Give feedback.
-
Decision: add to weekly agenda and make a decision either way. @bms63 might have something to present. Then we can look to make an issue and codify our strategy. |
Beta Was this translation helpful? Give feedback.
-
Strategy pre-1.0.0
From programming strategy guide - https://pharmaverse.github.io/admiraldev/articles/programming_strategy.html#deprecation
=====
As admiral is still evolving, functions or arguments may need to be removed or replaced with more efficient options from one release to another. In such cases, the relevant function or argument must be marked as deprecated. This deprecation is done in three phases over our release cycles.
Phase 1: In the release where the identified function or argument is to be deprecated there will be a warning issued when using the function or argument using deprecate_warn().
Phase 2: In the next release an error will be thrown using deprecate_stop().
Phase 3: Finally in the 3rd release thereafter the function will be removed from the package altogether.
Information about deprecation timelines must be added to the warning/error message.
Note that the deprecation cycle time for a function or argument based on our current release schedule is 3 months.
=====
This was a move fast and break things type of process.
Strategy at 1.0.0
This has not been codified into any guide only discussed on GitHub.
Functions and arguments that we created pre-1.0.0 are being carried through with our deprecation cycle (see above)
We are currently embracing superseded as a way to recommend functions to users that replace current functions
In our new paradigm we are no longer deprecating any functions or arguments in admiral.
Pro: Increases stability for new users
Con: Increases code base to maintain for developers
Con: More functions in reference documents increases search time for users...confusion.
Strategy post-1.0.0
Perhaps we should continue to deprecate functions through a process of superseding and then deprecating over a three year cycle.
Proposal:
Functions that are
supersededdeprecated are given a two-year message cycleAfter two-year
supersededdeprecated function message is reached the message turns into a 1 year deprecation function warningAfter 1 year deprecation is reached the function is removed from the package
Pro: Reduces number of functions we have to maintain
Pro: Users are less overwhelmed with function options
Con: Users will have to update their code over time
Con: Developers have to maintain the cycle
Beta Was this translation helpful? Give feedback.
All reactions