Hi Lukasz,

inconsistencies exist because a lot of the things you listed depend on the concrete case. If they wouldn't exist we could write a CI script which does PR reviews or ask ChatGPT to approve them.

That is the reason why it would be good to post on the dev list first if you aren't sure. I tried to give an example in the thread I just opened. Some cleanups have to be split, others we might be able to slip into NetBeans in one go - there is no right answer. Timing is also important since we usually want to avoid merging large PRs while a NB release is baking.

We obviously do want new contributors. Yet we also want to prevent disappointment of eager && motivated contributors opening 10 PRs in advance and then having to close them one by one again due to various reasons.

here an example:
"i want to run refactoring X, it turns out it touches 500 files, does it make sense? how should I split it?"

Possible suggestions could be:
 - one PR with multiple commits
 - several PRs
 - only running the refactoring selectively
 - or even that we rather not want see that particular change

maintainers might also have different opinions on this since apache doesn't work like the borg collective. Maybe someone is willing to sit down with a coffee and review a big changeset, others might not willing to do that - both can be valid and depends on the concrete changeset.


but let me answer a few more of your points inline


On 28.01.23 16:19, Łukasz Bownik wrote:
Hi.
I read the latest discussions and as a relatively new contributor I got
contradictory guidance/experience. What I generally refer to is (in no
particular order):

1. "we welcome contributions" vs "we want less noise"
2. "we want small PRs" vs "we want big PRs"
3. "we want small PRs" vs "we want to save CI resources"

this is already covered. Both sides are correct - there needs to be a balance in the force (and source).

I am also trying to find out if it is possible to bind the workflow approval logic github has to commit rights. The default only asks for approval for first-time contributors - which isn't optimal. Apache projects are configured differently so this may or may not be possible.

A PR sync runs tests for 4-10h. This is a lot of CPU time.


4. "we want new tests" VS "we already have too many tests"
5. "our tests are not good enough" vs "out tests already run for hours"

we have still a lot of tests which are not hooked into CI. Whenever I see a case like this I try to reactivate those if possible.

Realistically we also wouldn't be able to test everything due to resource constrains. So yet again we have to compromise and be smart about it. Some module might indeed have not enough tests - others might be fine.

Test coverage is also only an indicator where a project may or may not need more tests. It is not something we try to have at 100% since its not realistically possible and it would quickly lead to tests testing trivial stuff for better numbers.


6. "we want to improve our tests" vs "test improvement PRs are noise"
7. "we want to keep code clean" vs "code cleanup PRs are noise"
8. "we welcome new contributors" vs "we want high value/impact PRs from day
one"

both sides are true and/or wanted. Depends on the context.

I personally would not advice to rewrite tests unless you wrote them yourself or are very familiar with the module. The benefit of a rewrite is also very likely minimal when compared with the review requirements and risks.


9. "we want contributors to talk to to us" vs "we ignore emails from them"

This can happen. I do my best to answer mails whenever I can. I do this in my free time like many other devs here which is limited.


10. "we want 100% backward compatibility" vs "we let plugins to disappear
from the 'available' list all the time"

Changing public APIs has to be avoided if possible. NetBeans is an IDE with third party plugins, an application platform and recently also became a language server for other editors - so a small change has the chance of causing a lot of trouble.

Plugins need to request verification to be available from the main update center of a new NetBeans release. If you see something disappearing its likely because of that. Maybe a maintainer didn't request verification for the plugin. The reminder mail just went out a week ago so if you have a plugin, please check if it works with NB 17rc and press the "request verification" button. NetBeans does now also have more verifiers.



So I think it might be a good idea for the core theme to sit, discuss

we are doing this right now, I just started a thread a few days ago:

https://lists.apache.org/thread/f7mt7k3rb11sgjj1fo2vlflczvw3oycx


  and
create a document ironing out these issues and laying a general process
that should be followed by contributors.

maybe. Most contributors who want to fix a bug or tweak something in the IDE won't really be affected by this whole discussion since it doesn't apply to them. So the big question is what to put into a guide and what to omit without making it look too scary.

best regards,

michael



Best regards.



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

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to