-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
REL/DOC: more clear documentation of api changes in whatsnew #8477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I think you could have a 2-level menu structure. But I wouldn't change the order much at all. The most important part of the entire whatsnew is the very first page, the highlites, which allow one to jump to sections of relevance. Most people just jump around and don't read everything. Don't force one to go thru section by section (like the original whatsnew) and scipy etc, I think its a bad idea. That said, I am pretty confident that the major backward incompatible changes are pretty clearly documented (via a warning box), where applicable in : Categorical, Timedelta, Index changes. Having these in a centralized section really doesn't serve much purpose. And makes it MORE confusing. E.g. we have a section on Note that with the exception of Categorical which explicity warns you to audit your code etc. I don't think any of the changes in Timedelta, Index sub-classing are backward incompatible at all. . |
About "most people don't read everything" -> fully correct, but that is my point a bit: the breaking changes are now spread throughout the whatsnew, so if you want to know what these are, you have to read it all. For that, I think, a clear list of all 'real' breaking api changes would be helpful if you quickly want to skim through them to see if anything would be applicable for your personal code (i.e. "if you possibly have to fix something when going to upgrade"). Now there is no way to do this apart from going to all of the whatsnew docs. I don't think this will be more confusing. Eg about your example about the I am not saying we do a lot of backwards incompatible API changes. It is good that the changes in Timedelta, Index subclassin, categoricals, etc are mostly backwards compatible. But then they also don't belong in such a breaking API changes section. And we should make it more clear that this is the case. By now having a large section 'API changes' we give the impression of having a lot of 'breaking' api changes (I know that is not the same, but then we can just call it enhancements instead of api changes to make this more clear) |
how about a compromise! I like the subsection grouping (if u want to make a 2-level out of this as u suggested ok) combine API and enhancements sections then can make a backwards incompat API section which will be links if needed (eg the Categoical change , timedela compat issue, etc); like 1 line per change. might be a bit duplicative but ok I guess so that this will be a comprehensive list of the backwards incompat API changes but we can still have logical groupings |
good compromise! |
updated whatsnew looks good! (maybe think about actually showing the 3rd level in the menu ) |
Sorry, long issue :-)
In issue #7750 there was some heated discussion about backwards compatibility and the fact we did or did not care enough about it. I don't want to start a new discussion on that topic again, rest assured (or not now :-)), but notwithstanding the at some point rather personal attacks in that discussion, I think we still should look at what we can learn from it.
And what I learned is that we can do a better job at documenting backward incompatible changes.
level
keyword) is an enhancement, not a breaking api change, as with a lot of the other bullet points. For this reason, the 'real' breaking api changes disappear a bit between all the others.What I propose:
Some examples of other libraries: Scipy speaks about "Backwards incompatible changes" (http://docs.scipy.org/doc/scipy-0.14.0/reference/release.0.14.0.html), scikit-learn about "API changes summary" (http://scikit-learn.org/stable/whats_new.html), sqlalchemy about "Behavioral changes" (http://docs.sqlalchemy.org/en/rel_0_9/changelog/migration_09.html#behavioral-changes-orm-09) and matlab about "Compatibility considerations" (http://www.mathworks.nl/help/matlab/release-notes.html).
A possible structure (in the past, in pandas there was also a more rigid structure with new features/api changes):
For comparison, the current table of contents for 0.15 whatsnew
Some points of dicussion:
Thoughts?
The text was updated successfully, but these errors were encountered: