Concerns about the current status quo around internal PRs #3477
-
Hello all, I would like to start a discussion about the current status quo regarding internal PRs and some concerns that the Mandrel team has about it. It appears that a number of internal PRs end up on the upstream repository through direct pushes to
Our concern is that the sudden appearance of such changes on
Furthermore, it allows internal PRs to bypass the github CI gates which might lead to breaking the github CI gates like in #3433 and #3423. It looks like there is an option for internal PRs to be "mirrored" on github (e.g., #3271), which could help with the above concerns, but it's not enforced at the moment. |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 30 replies
-
Agree on the first two items that they need to be discussed in a PR. Also agreed that the GitHub gates should not be allowed to fail. |
Beta Was this translation helpful? Give feedback.
-
It is interesting that the 3 examples you mention are all from a separate category of improvements:
While we can always write up more "roadmap" issues, the timing when something lands is not really predictable. Sometimes developers just get motivated and fix something that we know was a long-standing architecture improvement. But I agree that we can communicate more and better. What about a regular "Native Image Developer Meeting" where we present what happened and what is going to happen? I like that better than writing up long pieces of text that get stale quickly, and it allows us to provide a outlook and status without formalizing too much. This would be a code-driven technical meeting. |
Beta Was this translation helpful? Give feedback.
-
Also commits to master without running the public tests just seems like a really bad practice. |
Beta Was this translation helpful? Give feedback.
-
so do i get it right - Oracle employees working on graalvm are okey to commit directly to master without public nor internal trace of the work ? I just want to make sure I understand the rationale for why not just opening a PR for these changes? just to compare graal has ~54K commits since 2011 (10 years), Quarkus has ~22K commits since 2018 (3 years) - every commit except possibly the very early days have a PR/issue with at least one reviewer connected. That goes for every core comitter and contributor. generally no excuses unless exceptional scenario. Thus if you are arguing doing PRs for commits hold you back I'll argue you must be doing something we don't do - as I would not call Quarkus as being held back. I would really love to understand and help here where we can. |
Beta Was this translation helpful? Give feedback.
-
The trace is the series of commits landing in master. The general policy is certainly that the sources committed to master and associated commit messages must be self-explanatory; i.e., no side structure is required to interpret the changes. Quarkus seems a GitHub project with an exceptionally large amount of PRs (10k+); but many of them seem auto-generated or with minimal or zero commentary. In majority of cases, the commit message contains all the relevant information; and this is also what I would expect from a project. When cloning the project, I want to be able to understand sources and commit history based on commit messages without having to look up a PR. We can also auto-generate PRs if # of PRs is what we should be optimizing for. If most of your commits look like this it is easy to have a high number ;-) quarkusio/quarkus#17904, quarkusio/quarkus#17943 It seems also here that it is possible to commit to master in Quarkus with only a single engineer involved, because the bot creates the PR, an engineer presses "OK" and then it is merged? |
Beta Was this translation helpful? Give feedback.
-
@maxandersen Zulip is not public, it is behind a login (https://quarkusio.zulipchat.com/login/). My general point is just that no other system or source of information should be required to understand a change other than appropriate commit messages and code comments. It was for example a concern for us that when RedHat suggested a PR for JFR support, the commit message in that PR did not contain much information; and there was no commit history or breakdown of who of the five authors did what kind of changes in those 10k LOC (13292c2). There was information in the PR, but in my point of view that information should have been primarily in the commit message - or better in the multiple commit messages of the individual commits that document how the code was created. It is still unclear to me what source code system (and individual PRs with discussions and explanations) were used by those five engineers when developing this. Is this somewhere publicly accessible? The conditions for merging are the same for all contributors - i.e., commit messages and source code must be understandable without extra context. Changes are ideally split across smaller commits where each explains a step. |
Beta Was this translation helpful? Give feedback.
-
I think it would be a good idea to take some of the heat out of this discussion and get back to why Foivos originally raised the issue. He said
These are actually legitimate concerns that come out of our experience. They do not really have anything to say about who is doing open source better than anyone else. They are concentrated on the ability of non-Oracle contributors to Graal and community users of Graal (especially middleware devs) to coordinate their work with Oracle contributors. A public PR, preferably opened early during development of an internal fix rather than at the point of commit, would help us to know what is being changed and plan for it. I don't think that's a great deal to ask of Oracle's developers but it will help us to make faster and better joint progress. Could we return the discussion to this important core point and see if it would be possible to try to improve this fairly simple element of team working? |
Beta Was this translation helpful? Give feedback.
It is interesting that the 3 examples you mention are all from a separate category of improvements:
--initialize-at-build-time=
is sort-of a necessary cleanup based on "false positive" GitHub issues that increased over the last monthsWhile we can always write up more "roadmap" issues, the timing when something lands is not really predictable. Sometimes developers just get motivated and fix something that we know was a long-standing architecture improvement.
But I agree that we…