vlsi commented on PR #124:
URL: https://github.com/apache/xalan-java/pull/124#issuecomment-1815846729

   > Moreover, it makes life harder for developers who manage multiple PRs 
depending on each other
   
   @kriegaex ,
   There are two issues here:
   1) Certain projects (Xalan included) lack review power, commit power, and 
code quality at the same time. It forces contributors to run into "multiple 
depending PRs" or "wait N+1 years in-between the PRs so they are merged".
   ^^ I am not sure it is something that can be fixed in Xalan. There are 
virtually no active committers, committers rarely review others code, and the 
code quality is wonderful.
   
   2) Sure it was a bad idea to squash 
https://github.com/apache/xalan-java/pull/122 into a single commit. +100500 to 
what you say.
   
   > In any case: Normally I'd only squish upon merge into the main stream. 
Which should normally be after regression testing has been passed, unlike the 
individual commits
   
   @jkesselm , please re-read what @kriegaex says. There are several very valid 
reasons to keep commits like in https://github.com/apache/xalan-java/pull/122 
separate, and I 100% agree with @kriegaex that structuring PR122 as five 
independent commits, and merging it as 5 independent commits was the best idea 
possible.
   
   Take this as an example
   
   >kriegaex: If I can use git bisect on many small commits, I can more easily 
spot the commit that broke something than by finding one big commit
   
   Imagine I upgrade Xalan in my enterprise app, and imagine it produces a 
weird NullPointerException after the upgrade.
   I might try isolating the problematic change in Xalan that introduced the 
failure, and I could use [git bisect](https://git-scm.com/docs/git-bisect) to 
find the first Xalan commit that causes the NPE.
   
   Since PR122 was merged in a single commit, the best I would get is "ok, 
commit 4af37e7a84a81f59af991a5a887e2e88e540d7b2 modified multiple unrelated 
files which introduced the NPE".
   It would be harder for me to understand the intention behind the commit, and 
it would be hard to understand the reasons for NPE.
   
   If the commits were individual, then `git bisect` would properly tell me 
which one is problematic.
   
   Of course, backing out a single commit does not guarantee the system would 
work, however, having five commits would simplify the analysis and review a lot.
   
   > I can understand the ask, though I think the need was overstated, 
especially as the arguably easier review enabled by that separation doesn't 
actually seem to have produced much additional review feedback.
   
   I think you refer to 
https://github.com/apache/xalan-java/pull/105#issuecomment-1767849230, however, 
it seems you thought the key reason was to simplify Maven PR review.
   
   Let me clarify: I never cared reviewing Maven scripts as those are a waste 
of time.
   Of course, having commits separate would help review for those who care to 
review, however, it was not the sole motivation.
   
   Later, in [my comment I highlighted **other** 
reasons](https://github.com/apache/xalan-java/pull/105#issuecomment-1771368046) 
to split "file move" into a separate commit:
   1) Just like with "git bisect" sample above, separating "move files" to its 
commit would help analysis of Xalan misbehavior. Imagine I upgrade Xalan, I get 
ArrayIndexOutOfBoundsException, and then I open Git sources to see why the 
particular line was changed. It would be way easier to ignore "move files" 
commits when doing such an analysis rather than trying to decipher what was 
changed
   2) Many tools perform badly when dealing with big diffs. If you commit 
"moving of 1000 files and making some changes" into a single commit, then it 
would be hard to view such diff in GitHub UI (e.g. when analyzing a bug later), 
in IDEs, and in other tools. It is just like "The formerly logical separation 
of concerns in small commits" @kriegaex mentions
   3) Technical commits can be hidden by default in GitHub UI and IDEs with 
`git-blame-ignore-revs` feature, so it is yet another reason for splitting 
"move many files" from other changes.
   
   Let me remind you that the effort we were talking about was [15 
minutes](https://github.com/apache/xalan-java/pull/105#issuecomment-1774104757),
 so "overstated" does not sound right, especially since the benefits of 
separating "file move" extend far beyond "merging the PR". The benefits are for 
everybody analyzing Xalan failures later in their systems, and for those who 
would maintain Xalan.
   Having "move files" as a separate commit easily saves 15+ minutes for 
everybody looking into that commit (e.g. reviewing the PR or analyzing the 
system failure when upgrading Xalan).
   
   > The more serious continuous integration system we had running for 
Websphere Liberty still worked in terms of PRs rather than commits, since that 
was the level at which automatically backing out interacting or otherwise 
suspicious changes was practical. Backing out individual commit points would 
have left the system between stable versions, since non-squashed commits are 
not promised to be complete enough or isolated enough to accept individually.
   
   That is not relevant. If you were to say "all logical contributions must be 
filed as separate PRs", then just say so. I can't understand how the mention of 
Websphere Liberty relates to PR122.
   
   >doesn't actually seem to have produced much additional review feedback.
   
   Well, fixing the build system for Xalan is a couple of days activity. I 
would be surprised if one could produce "much review feedback" out of that. 
There's just nothing to review. 
   I would like to remind you that as you separated file movements, I noticed 
issues with `xalan2taglet.jar`, `package.html`, and `xalan2jdoc.jar`: 
https://github.com/apache/xalan-java/pull/105#issuecomment-1774580602
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org
For additional commands, e-mail: dev-h...@xalan.apache.org

Reply via email to