Deprecation procedure #610
Replies: 8 comments 1 reply
-
@lfarv @lnadolski @MJGaughran @carmignani @lcarver @oscarxblanco @ZeusMarti your input would be very useful! |
Beta Was this translation helpful? Give feedback.
-
I agree with the need for proper policy surrounding deprecation. I think one point of confusion is that we still haven't made a pyAT 1.0 release. In semver, the 0.x release can deprecate and remove functions at any time. Making a 1.0 release with the existing interface will give an indication that we will commit to the existing interface as we continue to develop and fix things in the near future. I don't think indicating a function will eventually be deprecated is helpful. It is the same as our existing 'deprecation' (adding a short comment to the docstring and hiding the function), but even less clear. I would argue for removing deprecated functions within a couple of major version increments. Even though we are still on major version 0, I think we can wait until pyAT 2.0 for any removals, since the existing deprecated functions are not problematic to maintain. |
Beta Was this translation helpful? Give feedback.
-
I also mostly agree with the proposal of @swhite2401. Concerning version numbers, we have not been fully compliant with semantic versioning up to now… Following that, I proposed to release a last 0.x version when the pending PRs (should be 0.4) are merged, and then move to 1.0 once the new tracking interface is formally installed. I have however a concern about warnings: what we want is to address developers ("don't use this function any more"), while the warning will mainly affect users, who don't know what to do, apart from posting an issue. That's not what we want. Concerning removal of deprecated functions, I don't think there is a real need at the moment: once moved to a special "deprecated module", they don't need real maintenance. |
Beta Was this translation helpful? Give feedback.
-
Follow-up of my previous message: the python development mode may include a lot a potentially penalising features. For acting only on warnings, developers could just have |
Beta Was this translation helpful? Give feedback.
-
I agree that removing functions is not something that we would like to do unless there are very good reasons. However, I am bit undecided about sending warnings to users or not... I remember having faced warnings in There might be some cases where we would like to issue warning for the users as well, I can see in the doc that Other option is to keep the deprecation warnings silent for the official releases, but then activate them on the master (that is somehow the I don't know if this is something easy to set up, but I suppose when can adjust the filters dynamically at import |
Beta Was this translation helpful? Give feedback.
-
to warn or not to warn?
I can understand, and the danger is that important information is hidden in the middle of a too many warnings I would state it this way: Nobody should get a warning about something he/she is not responsible for. I take 2 examples:
Of course, many people alternate between situations 1 and 2. Ideally, they should switch the developer mode depending what there are doing. Forgetting the developer mode is not dramatic: you may miss some better way to code and are more prone to a possible Personal point of view: for me, the new tracking module would fall in the standard |
Beta Was this translation helpful? Give feedback.
-
I looked again at the point 1 of @swhite2401's proposal:
That does not fit exactly with the way development goes: a "release" is associated with a Git tag. It's a snapshot at a point where the code is considered safe, but there is no code modification corresponding to a tag. All modifications, including moving a function to a special For me, the time at which this occurs between two releases does not matter. The deprecation will be documented in the following release notes and will be "official" at that point. In between two releases, it's "work in progress". We also informally said that each release will be anticipated by a pull request for advertising and discussing it, but which should not contain code modification. I am preparing the next one. |
Beta Was this translation helpful? Give feedback.
-
Another point: I have nothing against the idea of having |
Beta Was this translation helpful? Give feedback.
-
Dear all,
It seems there is a need to better define deprecation and procedure to deprecate functions in pyAT.
My understanding of the present situation is:
deprecated.py
-> In effect deprecation in pyAT is not a real deprecation but rather a frozen state
I believe the main issue there is that function can be declared as deprecated with a simple PR and may go un-noticed for users not involved in the discussion since deprecation warnings are not issued to avoid overloading users scripts output.
The request from @simoneliuzzo in #601 for a more transparent procedure would deserve some thoughts. We may think the following steps:
Please advise.
Beta Was this translation helpful? Give feedback.
All reactions