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
LaTeX: remove some internal \dimen registers #11105
Conversation
Linting with Ruff fails for unrelated reasons (this patch only modifies latex style files). |
I am currently quite confused regarding our modified branch model how we are supposed to make PR introducing breaking changes not to be included in the (currently) 6.x series (which is master branch now). So I created a branch 7.x and created this PR for merge into it. But, on second thoughts, this branch could probably be renamed to clarification needed... ping Adam @AA-Turner |
There should be no A |
So this means delaying "breaking merges" to the time of Another remark is that what "breaking" means may need clarification. When I initially started contributing to this project I would have deemed breaking a LaTeX change which can impact the pdf page layout by only one millimeter, because a single millimeter can easily shift some lines to next page and end up causing distant changes. But, I feel "breaking" is here more in terms of API changes, or dependencies changes, so it would mean almost nothing in LaTeX support is "breaking". If we agree on this, then it would mean I can change PDF renderings pretty much anytime ? |
I will rebase this on current 6.x. It does not contain a modification to CHANGES but what the patch does is already announced in CHANGES. Then I will delete the 7.x branch which I added earlier. |
f32d6c0
to
72bfa47
Compare
I would phrase it as "breaking merges" cause an X.0 release, and we as maintainers co-ordinate on how many such breaking merges go into a release. On the extreme end of the scale, I do have a goal of making each release smaller in terms of the commits it contains (likely meaning more frequent X.Y.0 releases) as this makes it easier to locate when a bug was introduced from users' reports.
I would take the view of if on an update a user's documentation fails to compile it is a breaking change. We mitigate these via 2 releases worth of deprecation warnings though. For layour changes, it is slightly trickier -- in the HTML builder, major layout shifts with CSS (e.g. the recent footnotes issues with Docutils 0.19) I think would be considered breaking, but e.g. a one milimeter shift for spacing I would not consider breaking -- it is a judgement call on the part of the maintainer. (Sorry not to have a clear cut answer!) A |
Thanks @AA-Turner for taking the time to explain. I need to think about it. A real-life case can be seen with issue #11079. In order to avoid some images to simply disappear from PDF, perhaps I will need to add to the output latex mark-up a dummy paragraph via a |
@AA-Turner just noticed that this was scheduled for 6.2.0 -- these are just suggestions if it makes life easier... if this is a deprecation warning that's only by means of documentation, then it's probably better to put the deprecation warning in the documentation of these features. If the features do not have documentation and/or documentation warnings cannot be issued during builds, then I think it might be wise to have a list "Upcoming deprecations" at the very top of the CHANGES.rst or as a separate list referenced clearly in CHANGES.rst. if you want to save the minor version bump, I would say that it's perfectly fine to introduce deprecations in patch releases. In fact, the earlier the better. |
In the case at hand it is not so much the features but some underlying LaTeX code to implement them. TBH I feel I should not have made such a big fuss of it and avoid this prominent notice to start with, and silently remove the LaTeX things (already at 5.1.0). It can only break people who would have read the LaTeX code and decided to use directly such or such thing. It is a clash of culture here, because in world of LaTeX packages these things happen all the time and here I had made the mistake some years back to use names with no scary character such as
At that time I did not know yet that a 6.1.2 would indeed be released, and I did not feel like adding such a notice to the patch release. But yes, you are right that once the patch release is known to happen we can take advantage to announce deprecations. I feel I would have saved lots of noise if I had simply merged this PR immediately and not added the announcement from CHANGES that you quoted. It has never been said that people could use any piece of the LaTeX code and hope for no changes to break it. And 99,999% Sphinx users are not going to hack into the LaTeX code. The LaTeX code is not part of the Sphinx API. But there are a few notable extensions which do things spatialaudio/nbsphinx with LaTeX and in the past we have taken some steps to maintain old interface for compatibility. If nobody objects for me merging this immediately and remove the prominent notice you quoted, I am all in favour of it. Besides those who read the LaTeX code have seen the deprecation mentioned in it since 5.1.0. |
@AA-Turner I am thinking of merging this immediately in 6.x (with some changes so that the LaTeX code comments refer to 6.2.0 not 7.0.0) and reformulate the 6.2.0 CHANGES entry to be much shorter and simply say "hey folks, we have removed internal LaTeX stuff that you were not really allowed to use directly anyhow, so don't come complain". |
Sounds good! A |
great, I will merge after testing completes. I hope it is ok if I do a merge commit... we did that formerly and it helps keep my git with less dangling shas |
@AA-Turner this is very strange I could swear the github interface told me all tests were ok and only later did I see that Ruff (now at 0.0.215) had complained...(I must be delusional) I merged without seeing the red cross... |
The red cross had become a green cross, I am dreaming awake ! Time for a break ! |
The interface is recording Ruff as having passed for me... A |
No worries :) Thank you! A |
@AA-Turner only for the record,
Maybe because I forked sphinx-doc/sphinx so long ago something is ill-configured, but it does looks as if CI proceeds on it differently. The most curious thing is when I saw a red cross here on this page, and seconds later it had become a green checkmark! It is as if Github was running two separate CIs at same time, the first one in an environment from my fork, the other one here... |
internal refactoring, but as these internal registers have semi-public names, delayed to 7.0.0
EDITED: finally it was decided to merge immediately in time for 6.2.0. This has never been public API.
they are either unused or used with aliased names since 5.1.0