Gerrit Contributions
-
Resurrecting this thread due to Code contributions via bug reports and forum posts being allowed. Users are still encouraged to go through the usual route of setting up gerrit and the code review process however.
-
It would be nice to have a place in the forum where people could just post their “casual contribution” so that someone could pick them up while still being 100% covered under the Qt Account contribution model mentioned in the blog.
Maybe a subforum of https://forum.qt.io/category/48/qt-contribution ? -
I'd rather avoid that. Threads on the forum tends to disappear over time and the patches would be really hard to associate with any given bug/problem.
Furthermore, this would pose other problems like having people posting patches that might solve something but break something else.
Also, the forum is not monitored therefore it's going to be even more complicated.
What would be nice is to have tools that help casual contributors to setup their environment to submit their patches. Since they would have already built Qt for their patch, it would really mean just setting up for Gerrit.
-
@SGaist said in Gerrit Contributions:
Threads on the forum tends to disappear over time and the patches would be really hard to associate with any given bug/problem.
This can be fixed by introducing a couple of special rules, so I don't see it as a big problem.
Furthermore, this would pose other problems like having people posting patches that might solve something but break something else.
Happens all the time in gerrit too. This isn't a valid argument in my mind.
Also, the forum is not monitored therefore it's going to be even more complicated.
This would be the biggest problem as I see it. We've been running our own show more or less, Tero being lenient and all. And such "casual" contributions will still need to go through one of QtC's developers (as mentioned in the blog post). It ain't gonna be easy, that's for sure. Also @kkoehne might have something to say for or against here ...
What would be nice is to have tools that help casual contributors to setup their environment to submit their patches. Since they would have already built Qt for their patch, it would really mean just setting up for Gerrit.
This would be very, very nice. The perfect solution, but are you volunteering? I, for one, don't know the infrastructure well enough to even consider helping with such a task ...
-
@kshegunov said in Gerrit Contributions:
@SGaist said in Gerrit Contributions:
Threads on the forum tends to disappear over time and the patches would be really hard to associate with any given bug/problem.
This can be fixed by introducing a couple of special rules, so I don't see it as a big problem.
Any example in mind ?
Furthermore, this would pose other problems like having people posting patches that might solve something but break something else.
Happens all the time in gerrit too. This isn't a valid argument in my mind.
I didn't write my thoughts well. My concern is rather that there will be unexperienced people finding these patches (I know it goes against my suggestion that threads get lost in times), apply them and possibly trigger new bugs that will make their life way harder than it should be.
The patches in gerrit are reviewed and updated until they stop breaking the build and the ones provided in Jira will have more contextual information.Also, the forum is not monitored therefore it's going to be even more complicated.
This would be the biggest problem as I see it. We've been running our own show more or less, Tero being lenient and all. And such "casual" contributions will still need to go through one of QtC's developers (as mentioned in the blog post). It ain't gonna be easy, that's for sure. Also @kkoehne might have something to say for or against here ...
Tero trusted us because we proved our worthiness. For the casual contributions, that's the point: having a simpler way to provide small patch is really nice, but multiplication of the channels where you can provide patches will likely make things more complicated for development. For patches posted on the forum, we will need people to monitor them (maybe a new group of dedicated persons) and ensure that they are properly posted, with enough information. Then the last point is to have someone taking the responsibility of making a submission out of it and continue the process until integration.
Indeed @kkoehne's input will be nice.
What would be nice is to have tools that help casual contributors to setup their environment to submit their patches. Since they would have already built Qt for their patch, it would really mean just setting up for Gerrit.
This would be very, very nice. The perfect solution, but are you volunteering? I, for one, don't know the infrastructure well enough to even consider helping with such a task ...
I have some ideas about that but I don't know yet about the implementation.
-
@SGaist said in Gerrit Contributions:
but multiplication of the channels where you can provide patches will likely make things more complicated for development.
No, I think this is the crucial point, we would keep gerrit as the only development tool.
Take my example:
I opened a bug report ticket
I'm pretty sure I would be able to solve it.
The git configs are too invasive for me to apply to the environment I use everyday and building a VM just for that would be close to madness.
My only option at the moment is to hope some poor sod that (1) doesn't have my restrictions (2) comes across the same issue and (3) can solve it (this combo probably gives me the same chances as winning lotto) comes along and picks it up.Having a forum channel would let me post the 1-method-patch here so that if somebody with a gerrit setup and a few minutes to spare can post it; basically removing 2 and 3 above from the "list of things that need to happen". If the gerrit review fails and the original poster doesn't update it then it's just another dead commit, it's not the first and it will not be the last
-
@VRonin Since you have the ticket, why not post the patch to the ticket directly ? Posting it in a thread here, then posting a link to the forum that contains the patch on that ticket is a bit counter productive as you'd have the information spread in different places when one would be enough. And don't forget the classic formatting trouble that will happen here when grabbing the patch.
Don't get me wrong, I do understand the appeal of having such a channel, I'm not totally against it. However, as already written, I would rather have a tool that allows casual contributors to submit patches more easily to somewhere already monitored and properly managed for somebody to pick and continue.
If possible, a tool that would allow them to setup gerrit and git. On the git note, I agree that the proposed way of setting up git is a bit intrusive, however you can make all these settings local to your Qt repositories.
-
@SGaist said in Gerrit Contributions:
@kshegunov said in Gerrit Contributions:
@SGaist said in Gerrit Contributions:
Threads on the forum tends to disappear over time and the patches would be really hard to associate with any given bug/problem.
This can be fixed by introducing a couple of special rules, so I don't see it as a big problem.
Any example in mind ?
A set of rules how would a drive-by contribution look like and what information it should contain. That'd include the link and ticket number, formatted code - with tags and appropriate code style and perhaps a requirement for a test case. I agree that it'd be better to do this in JIRA, simply as it allows also code to be uploaded directly, not just pasted inside the text as here. Still I do agree that a person should be assigned to at least monitor the hypothetical subforum and to make sure posts there are compliant.
My concern is rather that there will be unexperienced people finding these patches (I know it goes against my suggestion that threads get lost in times), apply them and possibly trigger new bugs that will make their life way harder than it should be.
You mean directly? That's crazy! ;)
Joke aside a big fat disclaimer should deal with that problem - the code is experimental and for Qt's own use, do not apply in your code base - or something along those lines.Tero trusted us because we proved our worthiness.
You may have, but I did no such thing! ;P
I have some ideas about that but I don't know yet about the implementation.
You should open a thread and lay it out for us, maybe an idea will sprout out of it.
however you can make all these settings local to your Qt repositories.
This is what I do. Global configs are evil.
-
@kshegunov said in Gerrit Contributions:
Also, the forum is not monitored therefore it's going to be even more complicated.
This would be the biggest problem as I see it. We've been running our own show more or less, Tero being lenient and all. And such "casual" contributions will still need to go through one of QtC's developers (as mentioned in the blog post). It ain't gonna be easy, that's for sure. Also @kkoehne might have something to say for or against here ...
Let me just say that the legal side has been eased a bit. We can accept patches in forums and bug reports now:
https://blog.qt.io/blog/2018/05/16/code-contributions-via-bug-reports-forum-posts/
I'd recommend sticking to bugreports.qt.io for patches though, not setting up anything in particular in forums. Both other users and reviewers are much more likely to find the patch alongside the bug or feature it fixes, in the bug tracker.
And yes, we should also ease the steps people have to do to contribute via gerrit. I do hope we revisit this soon, after the planned gerrit update...
-
@kkoehne said in Gerrit Contributions:
after the planned gerrit update...
Cool. Are there any information about the planned update?
-
Just an idea to facilitate one-off code submission.
I could prepare a Virtual Box image with a system with all the plumbing in place to contribute to Qt including a small gui to facilitate non pre-configurable actions (like setting up username and password). This should cut down dramatically the time from idea to code.
Thoughts? If you think it's a bad idea say it, I won't be offended -
I just tried to do a full build, but my system stopped "out of memory" in Qt3D.
Disk used so far: 23 GB.
I didn't even include the QtWeb* modules, see below.
perl init-repository --module-subset=default,-qtwebkit,-qtwebkit-examples,-qtwebengine ./configure -developer-build -opensource -nomake examples -nomake tests -confirm-license
Maybe I can get it to fully build tomorrow.
-
What about having it pre-configured and people can start compiling it after they did the modifications they want ?
Another possibility could be to provide a docker container ?
-
Good point, what could be done is to pre-configure Qt, clean everything and just keep the configuration files needed to re-trigger Qt's build.
-
@aha_1980
What about building onlyqtbase
or the essential set of modules? That should be more manageable, even if somewhat constraining?
Something like the following configuration:$> perl init-repository --module-subset=essential $> ./configure -developer-build -opensource -nomake examples -nomake tests -confirm-license $> make module-qtbase $> make module-qtquickcontrols2 $> ...
Good point, what could be done is to pre-configure Qt, clean everything and just keep the configuration files needed to re-trigger Qt's build.
Ehm, you do need
qmake
to retrigger the build, or did you mean something else? My concern is with theqmake
's paths that are compiled into the binary, maybe patching them would do the trick?