Re: Changes to our Git infrastructure
On Tuesday 06 January 2015 08:19:20 Thiago Macieira wrote: Unfortunately, as long as the tool permits line-by-line commenting, you're going to get nitpicking. My experience is that people are linear and will start reading the patch, calling out what they see when they see it. I made some code experience with automatic checking of style issues and similar things (e.g. with https://houndci.com). If a tool gives immediate feedback about these things, reviewers don't have to do the nitpicking, and there is no risk of reviewees taking it personal. If the CI checks and comments the small issues, the review by the human reviewer naturally focuses on more high-level questions. -- Cornelius Schumacher schumac...@kde.org
Re: Changes to our Git infrastructure
On Wednesday, January 07, 2015 08:03:06 Martin Gräßlin wrote: On Tuesday 06 January 2015 12:48:41 Jan Kundrát wrote: On Tuesday, 6 January 2015 07:40:01 CEST, Ian Wadham wrote: ... This has a risk of splitting the discussion about a patch into multiple independent streams where people will have hard time keeping track of all the results, IMHO. The polishing (fixing nitpicks, etc.) should come *after* the stone is cut. That's a good suggestion. I have to disagree here. I'm not able to do a good functional review if the change is full of unintended nitpick things. Each changed line triggers a what is that change for? and if it's just a change like - if (foo) { + if (foo) + { then I have a hard time as a reviewer. For me as a reviewer it's important that the change is free of those nitpick things before I start looking at the functional things. maybe there's a difference between nitpicking on useless changes, as above, (which increase the size of the patch and so make reviewing harder) and style issues in new code, where e.g. the indentation is slightly wrong, but that doesn't increase the patch size and so doesn't make reviewing harder. Maybe there could be separate design/approach review, a coding style review and a code problems review, and a tool could even enforce an order between them. So nitpicking about wrong placement of curly braces in new code would come at the end, after the general idea has been accepted. As I said above, keeping the size of a patch minimal is important. Alex
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 20:57:47 CEST, Frank Reininghaus wrote: Ultimately, a constant stream of newcomers is the only thing that keeps a free software project alive in the long term. Yes, as long as these newcomers eventually get enough interest and enough skills to become maintainers. I agree with the importance of getting new blood in, but there's also a need to educate these contributors so that their skills become better over time. I'm a bit worried that any new patch review system which requires more effort before one can submit a patch for review might put some potential new contributors off. That's a valid point, so yeah, I agree that we should evaluate our tool(s) in light of being usable by newbies as well as by professionals. Thanks for saying that. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Tuesday, 6 January 2015 07:40:01 CEST, Ian Wadham wrote: a) I do not know anything about Dr K, but I will try and find someone who does. b) Unfortunately there is nobody available any more who knows anything about Dr K, but I (or another suggested guy) will try to help. How about we take this offline via email or IRC and then you can walk us through the problem you are trying to fix, its significance and impact and how you are going about fixing it… This has a risk of splitting the discussion about a patch into multiple independent streams where people will have hard time keeping track of all the results, IMHO. The polishing (fixing nitpicks, etc.) should come *after* the stone is cut. That's a good suggestion. Going straight to that mode is inappropriate because it conveys the message, The problem you are trying to fix is unimportant to us. Would it work for you if there was a bot which pointed out these issues to the patch author? That way it would be obvious which part of the review is random nitpicking which is indeed not important when one considers the general direction of the patch, and in addition it would come from a machine so there won't be any bad feelings about people not appreciating the contributor's work. No amount of new technology, neither Gerritt nor the energy of cats confined in a bag, can help. There are management solutions to technical problems, but there are no technical solutions to management problems, as a colleague of mine used to say. Agreed. So the actual problem is lack of skilled maintainers who just aren't around. I agree that tooling cannot fix it -- the tooling can only help by a bit by making their job easier. If the maintainer is simply not here, then you cannot get a proper review, sure. This is an interesting discussion, and I think that there is no problem for it happening in parallel to the current talk about reshaping the git infrastructure -- but maybe in another ML thread. but the problem is that there's completely unmaintained code where nobody feels qualified to sign off patches. Exactly. And there are simple, technology-free solutions to that problem, if anybody is interested. What are these solutions? a) There is no encouragement for the reviewer to build and TEST the patch, independently of the reviewee. My personal opinion is that people should not be approving patches unless they tested them, or unless they have sufficient reason to believe that the change is OK (such as a trivial change with an associated unit test pre-approved by a CI run). How can we motivate people to test these changes without discouraging them from doing reviews at all? c) Patching encourages incremental, evolutionary development, rather than standing back and taking a design view of the way things are developing. BTW, ReviewBoard supports post-commit reviews of several patches or commits together, but that feature is turned off in the KDE usage [1]. So we need another approach (or tool) to help us perform review of the architecture of our software. Got some suggestions? Launchpad blueprints? Wiki pages? Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 22:22:19 CEST, Boudewijn Rempt wrote: Usually, half-way through they ask me, why doesn't KDE use github I do not understand how stuff would change if we used GitHub, though. There would still be that huge gap of not understanding which of the repos to use. I think that this is easy to solve with individual apps, but it's a hard problem when it comes to a platform, or indeed to an environment where the border between the individual pieces is unclear (e.g. which repo contains the plasma clock applet in KDE4, and where is it found in plasma5)? I do not have an answer on how to make this more obvious or beginner friendly. The contributors still have to know what a DVCS is, and have to understand the concept of a commit and what a push means. But all of that applies to GitHub as well. About the only difference that I can see are GitHub's pull requests. I understand that the knowledge of how to create a PR there is pretty widespread among our contributors. The fact that ReviewBoard doesn't allow actual approval (i.e. where it's approved *and* merged into our SCM) doesn't help here at all, that's also true. I would encourage you to read https://techbase.kde.org/Development/Gerrit#Getting_Started . Do you think that the workflow proposed there is reasonably beginner-friendly? We can then discuss ways in which it can be simplified. E.g. the need to set up an extra remote can go away easily *if* we agree on directing pushes to Gerrit once (and if) it's adopted. A website listing all projects can easily show a copy-pasteable link on how to clone and get the change-id hook in place during the initial clone, etc. We can add some scripting to sync SSH keys from LDAP to Gerrit, so that people only have to register with Identity and they'll be all set. That all is possible. What I'm saying here is that I believe that the feature set supported by Gerrit is actually very close to that of GitHub. It's different because there's no fork me button and the concepts do not map 1:1 to each other, but the general ideas are very similar. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 14:03:13 CEST, Thomas Friedrichsmeier wrote: I think there is an easy test for this (well, not a real test, but a useful initial heuristic): Can you explain exactly how to submit a patch for your project - to someone without prior knowledge of the tools involved - without assuming the required tools/keys/accounts are already set up - without any further reading - covering all required steps in sufficient detail in no more than 2000 words, or (if it's based on a web-wizard) in less than 20 minutes? This includes links to other pages which explain how to work with git, but I think that it does qualify: https://techbase.kde.org/Development/Gerrit#Getting_Started Does it match your requirements? That page started as an attempt to provide a documentation for existing KDE developers, so it does go into depth of how to manualy Cc reviewers. If we decide to use Gerrit, then I think it would make a lot of sense to intorduce a single-page Submitting Patches Quickstart which would just describe the absolute basics on one page, including a git primer. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Tue, 6 Jan 2015, Jan Kundrát wrote: On Monday, 5 January 2015 22:22:19 CEST, Boudewijn Rempt wrote: Usually, half-way through they ask me, why doesn't KDE use github I do not understand how stuff would change if we used GitHub, though. I'm just relaying what usually happens when I get a newcomer in #krita. I would encourage you to read https://techbase.kde.org/Development/Gerrit#Getting_Started . Do you think that the workflow proposed there is reasonably beginner-friendly? Well, I find the page not very penetrable, to the point that I don't get the proposed workflow, but that might just be me, or the prose, which certainly needs editing. But I'm the wrong person to ask in any case. What you should do is hang out on #kde-devel and the next time someone comes on the channel who says, Hello! I'm new here. I want to develop on KDE. What do I need to do?, grab him and ask them to go through this process, and make notes whenever they get confused. Boudewijn
Re: Changes to our Git infrastructure
Hello Jan, On 06/01/2015, at 10:48 PM, Jan Kundrát wrote: On Tuesday, 6 January 2015 07:40:01 CEST, Ian Wadham wrote: a) I do not know anything about Dr K, but I will try and find someone who does. b) Unfortunately there is nobody available any more who knows anything about Dr K, but I (or another suggested guy) will try to help. How about we take this offline via email or IRC and then you can walk us through the problem you are trying to fix, its significance and impact and how you are going about fixing it… This has a risk of splitting the discussion about a patch into multiple independent streams where people will have hard time keeping track of all the results, IMHO. No, the review would be suspended while a) or b) occurred. If b) occurs, the operative words are offline via email or IRC (or face-to-face if possible). When both parties have reached an understanding of the problem and the issues involved, the formal review can resume. The polishing (fixing nitpicks, etc.) should come *after* the stone is cut. That's a good suggestion. Thanks. Going straight to that mode is inappropriate because it conveys the message, The problem you are trying to fix is unimportant to us. Would it work for you if there was a bot which pointed out these issues to the patch author? That might be even worse, like joining a telephone queue… And what about Krazy? That way it would be obvious which part of the review is random nitpicking which is indeed not important when one considers the general direction of the patch, and in addition it would come from a machine so there won't be any bad feelings about people not appreciating the contributor's work. No amount of new technology, neither Gerritt nor the energy of cats confined in a bag, can help. There are management solutions to technical problems, but there are no technical solutions to management problems, as a colleague of mine used to say. Agreed. So the actual problem is lack of skilled maintainers who just aren't around. I agree that tooling cannot fix it -- the tooling can only help by a bit by making their job easier. If the maintainer is simply not here, then you cannot get a proper review, sure. This is an interesting discussion, and I think that there is no problem for it happening in parallel to the current talk about reshaping the git infrastructure -- but maybe in another ML thread. Thank you, Jan. I am really glad you find it interesting. but the problem is that there's completely unmaintained code where nobody feels qualified to sign off patches. Exactly. And there are simple, technology-free solutions to that problem, if anybody is interested. What are these solutions? A quote from DOT: https://dot.kde.org/2014/06/03/ian-wadham-venerable-kde-programmer Q. You've gotten the applications into good shape, and are ready to hand them off. What type of person would you like to see take over? What will they get out of working on these applications? A. I would like to see KDE set up a maintenance group and standards for maintainability of code. Programs that reach a reasonably good standard could then be maintained interchangeably by members of the group. The group could be continually changing. Nobody can stay interested in such work for long. Also the group and its stock of programs would be a good source of Junior Jobs and a place for newbies to start. It would need to have some experienced members, or ready access to such people, because some bugs are too hard for trainees to solve. This is not a new idea. It is roughly what has been happening everywhere I have worked since about 1967, when the burden of people quitting jobs and leaving behind unmaintainable, half-finished messes became intolerable for most organizations. Albert's Gardening group is a good start in this direction. Re maintainability: KDE Community code is usually not good in this regard, IMHO. As a result, I was not at all confident about my understanding of Dr Konqi and how to patch it. Luckily Bugzilla had quite good documentation, so *what* to do was fairly clear. Nevertheless, I completely missed the side-effects (re cookies) inherent in XML RPC and kio_http. Those side-effects are not even visible on my platform, only on Linux. a) There is no encouragement for the reviewer to build and TEST the patch, independently of the reviewee. My personal opinion is that people should not be approving patches unless they tested them, or unless they have sufficient reason to believe that the change is OK (such as a trivial change with an associated unit test pre-approved by a CI run). How can we motivate people to test these changes without discouraging them from doing reviews at all? Mainly by example and praise, I would say. Plus maybe a small checklist when clicking Ship It. c) Patching encourages incremental, evolutionary
Re: Changes to our Git infrastructure
On Tue, 06 Jan 2015 13:19:45 +0100 Jan Kundrát j...@kde.org wrote: On Monday, 5 January 2015 14:03:13 CEST, Thomas Friedrichsmeier wrote: I think there is an easy test for this (well, not a real test, but a useful initial heuristic): Can you explain exactly how to submit a patch for your project - to someone without prior knowledge of the tools involved - without assuming the required tools/keys/accounts are already set up - without any further reading - covering all required steps in sufficient detail in no more than 2000 words, or (if it's based on a web-wizard) in less than 20 minutes? This includes links to other pages which explain how to work with git, but I think that it does qualify: https://techbase.kde.org/Development/Gerrit#Getting_Started Does it match your requirements? It's great to see there is a starting point, but no, that's not it, yet (and btw, I was a bit confused when calling 2.000 words the limit. Something on the order of 500 or 600 would be more like it. So the length of that page (the first few sections) looks ok to me, but it's still asking a lot of prior knowledge of a _first time_ contributor. Things I see missing: - What exact commands do you have to run to create and enable your SSH key? (And will these work cross-platform?) - What are the commands to configure name and email in git? - When and where do I do the step of adding the gerrit remote? (And just in case, include the initial git clone command) - What command(s) do I run to create a git branch? What is an example of a good branch name, what is bad branch name? - Explain the basic usage of git commit, and git commit --amend. Including some words on what is or is not a useful commit message. - Also explaining basic usage git diff and git status, of course, for verifying the commit is as desired. - Arguably, some words on undoing undesired changes (before / after staging / committing (/ pushing)) would be rather needful, too. - Might have to explain the Change-Id-thing some more (or does it really happen all automagically, esp. for follow-up commits)? - I am personally unclear on whether I'd need to follow any of the steps after Submitting Changes, in order to actually receive notifications of what happens to my request. Or how - Also, what is the easy / standard way to get the change in, once reviewed? This may sound like nitpicking, but well, all of these are things that you will have to know for your first review, and while many contributors will know some of this, none of this should be assumed, IMO. That page started as an attempt to provide a documentation for existing KDE developers, so it does go into depth of how to manualy Cc reviewers. If we decide to use Gerrit, then I think it would make a lot of sense to intorduce a single-page Submitting Patches Quickstart which would just describe the absolute basics on one page, including a git primer. Absolutely. My point is: Try writing that page, and you'll get an idea of what exactly you're asking a first timer to learn (in addition to the coding) before they can get their first positive feedback. And well, so I have followed you quite some way into discussing gerrit, in particular, here. But I'd like not to go any further on this, at this point. Let's wait for sysadmins to compile their list of candidates (and I'd be rather sure that gerrit will be among the candidate, at least). *Then* we can reasonably discuss the pros and cons of specific alternatives. Regards Thomas signature.asc Description: PGP signature
Re: Re: Changes to our Git infrastructure
On Tuesday 06 January 2015 12:48:41 Jan Kundrát wrote: On Tuesday, 6 January 2015 07:40:01 CEST, Ian Wadham wrote: a) I do not know anything about Dr K, but I will try and find someone who does. b) Unfortunately there is nobody available any more who knows anything about Dr K, but I (or another suggested guy) will try to help. How about we take this offline via email or IRC and then you can walk us through the problem you are trying to fix, its significance and impact and how you are going about fixing it… This has a risk of splitting the discussion about a patch into multiple independent streams where people will have hard time keeping track of all the results, IMHO. The polishing (fixing nitpicks, etc.) should come *after* the stone is cut. That's a good suggestion. I have to disagree here. I'm not able to do a good functional review if the change is full of unintended nitpick things. Each changed line triggers a what is that change for? and if it's just a change like - if (foo) { + if (foo) + { then I have a hard time as a reviewer. For me as a reviewer it's important that the change is free of those nitpick things before I start looking at the functional things. It's also something I expect from a contributor to spend the time to run astyle on the change and configure kate to remove trailing white spaces before requiring my time. For me it's difficult to recognize the true change of a patch if it's full of unintended changes. It just makes everything more difficult. If I have to review a change with such nitpick items I normally do a nitpick round first, then wait for the next patch version to do the proper review. This is optimizing my time as a reviewer. (just to get some feeling on my review costs: since yesterday I received 20 new mails in my reviewboard mail folder). Also I do not think that reviewboard makes nitpicking to easy - if it wouldn't highlight the trailing whitespaces I would still point them out as I consider these things as important. Going straight to that mode is inappropriate because it conveys the message, The problem you are trying to fix is unimportant to us. Would it work for you if there was a bot which pointed out these issues to the patch author? That way it would be obvious which part of the review is random nitpicking which is indeed not important when one considers the general direction of the patch, and in addition it would come from a machine so there won't be any bad feelings about people not appreciating the contributor's work. I would certainly appreciate it. I don't like doing things a computer could do. It might also make my life as a reviewer easier as I can see that the computer already handled it. Qt does that and if I hit such a problem the first thing I do is fixing those items to upload a clean patch. Cheers Martin signature.asc Description: This is a digitally signed message part.
Re: Changes to our Git infrastructure
On Tue, 6 Jan 2015, Thiago Macieira wrote: Unfortunately, as long as the tool permits line-by-line commenting, you're going to get nitpicking. My experience is that people are linear and will start reading the patch, calling out what they see when they see it. They should instead look at the big picture first and that isn't easy. See http://sarah.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/ Lovely article. I know some people would object that the awful indentation makes the patch impossible to read, but apart from that specious argument, it's great advice. I wonder if we can tweak a tool to only allow line-by-line comments after two high-level reviews have been written... Boudewijn
Re: Changes to our Git infrastructure
On Sunday, 4 January 2015 19:32:28 CEST, Jeff Mitchell wrote: I don't follow this line of logic. The end result is software stored in git trees, but how it gets there is a totally different concern. Whether it comes from patches that are then accepted and merged, or direct merging of branches, the end result is the same. - Existing KDE account holders can and do use git for their workflow. - Using non-git workflow for others introduces a different workflow to the mix. - Having two workflows is more complex than having just a single one. Does it make it more understandable? My goal is to help bridge the gap between the existing project maintainers (who produce software in git trees) and the new contributors (who produce patches). KDE purposefully has a very low barrier to entry. A contributor can normally push anywhere. When I said a contributor, I was referring to somebody who is not a KDE developer yet. Please re-read what I wrote again because your understanding assumed that a contributor is someone who can push to git. I can see why you arrived at what you said in that case, but that's not what I said. .NET is a framework, not a language. Maybe you meant C#. ... Thanks for educating me, but I don't think it helps move this discussion forward in a productive manner. I do. Because there are a huge number of languages that have compilers to produce .NET CLI. Some of them are indeed relatively obscure. Saying .NET doesn't mean anything in terms of which languages you are taking issue with. Let's be clear what we're talking about. I was quite obviously referring to any tools which make use of the .NET runtime environment. I do think that mandating these for efficient work with our code review system is a pretty big no-go. As other people have added to the list of requirements, patch management needs to be able to be done via the web UI. Nobody has to install any runtime environment. The requirement I listed was make the changes available as git refs so that I do not use any other tool to work with them. If that is not available, then another requirement is have a nice CLI implemented in a language that is common on KDE desktop. The fact that I can fetch and upload patches via a website does not satisfy this requirement. It's a bandaid help, not a fully usable solution. Those that want to contribute will be required to install a whole slew of development packages. Unless they have e.g. done something with Qt already, or unless they're C++ developers already, etc. Especially if it's only needed if they want to do advanced CLI stuff. Fetching patches is not advanced stuff. It's cool to have a manual bypass for fetching stuff by hand, but that is a hotfix, not a productive solution. The sysadmins appear to have a strong preference for a unified tool to do both. No, our preference is for well-integrated tools, which is the same preference you previously stated. I'm happy to hear this, but then I don't know how to interpret Ben's earlier responses in this thread and our conversations on IRC. Anyway, it's cool that we agree on something :). To put my money where my mouth is, yes, I am willing to maintain the extra systems, and I have been doing this with Gerrit (and CI) for a couple of months already. Yes, because Gerrit is not a tool being provided by the sysadmin team and as such is not in scope for us to maintain. It's great that you're willing to help out, but your offer to help maintain Gerrit has no bearing on whether or not it's what we end up proposing to the community. I'm simply stating that any possible argument saying we prefer a single tool because we don't have manpower to maintain more of them is moot because that manpower is waving its hand and saying I'm gonna do this right now. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Sunday, 4 January 2015 13:21:12 CEST, Thomas Friedrichsmeier wrote: True, but don't forget about the other side of the story: - potential contributors will have to learn more stuff, before they can even _start_ contributing, which may be a real turn-off in some cases. That's a valid concern, so the core question is whether this scenario: - make changes - make a commit - push that commit is any more complex than: - make changes - create a diff - upload that diff via a browser. I have to admit I have no idea which one is *really* easier for a total newbie, and which one is easier for an average contributor. Your project's situation may be very different from mine. Personally, I'm much more worried about keeping the entry barrier as low as possible, than about reducing the amount of effort that I have to put into supporting and educating contributors. That's also a possibility. However, in my experience with Gerrit, GCI students (which are kids aged 12-18, IIRC) were able to upload patches without substantial problems. That's despite our rudimentary state of KDE-specific documentation, and Gerrit having a oh no, let's run away from that beast reputation. In short, I think that there's actually a solution which can be both a low enough barier to entry *and* help maintainers do their job easier. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Mon, Jan 5, 2015 at 10:05 PM, Jan Kundrát j...@kde.org wrote: On Monday, 5 January 2015 06:05:33 CEST, Ben Cooksley wrote: Ease of installation and it's the availability of the necessary interpreters within mainstream distributions should be more than sufficient criteria here. Limiting it by any other criteria is playing pure favouritism to a given set of language(s) and unnecessarily limits our options. Ben, you and Jeff appear to disagree with my point that e.g. requiring a PHP tool to be installed client-side on each developers' and contributors' machine might be a little bit discouraging. It is OK to say that you disagree, but it doesn't prove the point to be any less valid. It's fine to have people assign varying importance to different evaluation criteria, so please do not use your sysadmin hat to unilaterally remove this pure favoritism just because you do not see any value in it. My impression was that we're gathering a list of possible requirements and *then* we, as a community, are going to assign some importance factor to each and every item raised. It is therefore acceptable to have mutually exclusive criteria at this point, or even bits which some of us might find to be totally irrelevant. They are going to be sorted out be community's consensus, I suppose. The list of requirements is first gathered from the community. We then summarize it with items being weighted based on the level of support mentioned by various people and send it back. If everyone is broadly happy we then go ahead and prepare solutions which meet this list of requirements. There is no community level sorting of the items because items don't have a priority - it is a best effort basis to meet all of the requested features and functions. These proposals are accompanied by the pros and cons each faces, along with a recommendation for the one we believe best fits the needs of the community. You can see an example of this in the initial git.kde.org setup which Sysadmin did many years ago (2010 I think). With kind regards, Jan Cheers, Ben -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 06:05:33 CEST, Ben Cooksley wrote: Ease of installation and it's the availability of the necessary interpreters within mainstream distributions should be more than sufficient criteria here. Limiting it by any other criteria is playing pure favouritism to a given set of language(s) and unnecessarily limits our options. Ben, you and Jeff appear to disagree with my point that e.g. requiring a PHP tool to be installed client-side on each developers' and contributors' machine might be a little bit discouraging. It is OK to say that you disagree, but it doesn't prove the point to be any less valid. It's fine to have people assign varying importance to different evaluation criteria, so please do not use your sysadmin hat to unilaterally remove this pure favoritism just because you do not see any value in it. My impression was that we're gathering a list of possible requirements and *then* we, as a community, are going to assign some importance factor to each and every item raised. It is therefore acceptable to have mutually exclusive criteria at this point, or even bits which some of us might find to be totally irrelevant. They are going to be sorted out be community's consensus, I suppose. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Monday 05 January 2015 23:57:40 Ben Cooksley wrote: On Mon, Jan 5, 2015 at 10:05 PM, Jan Kundrát j...@kde.org wrote: On Monday, 5 January 2015 06:05:33 CEST, Ben Cooksley wrote: Ease of installation and it's the availability of the necessary interpreters within mainstream distributions should be more than sufficient criteria here. Limiting it by any other criteria is playing pure favouritism to a given set of language(s) and unnecessarily limits our options. Ben, you and Jeff appear to disagree with my point that e.g. requiring a PHP tool to be installed client-side on each developers' and contributors' machine might be a little bit discouraging. It is OK to say that you disagree, but it doesn't prove the point to be any less valid. It's fine to have people assign varying importance to different evaluation criteria, so please do not use your sysadmin hat to unilaterally remove this pure favoritism just because you do not see any value in it. My impression was that we're gathering a list of possible requirements and *then* we, as a community, are going to assign some importance factor to each and every item raised. It is therefore acceptable to have mutually exclusive criteria at this point, or even bits which some of us might find to be totally irrelevant. They are going to be sorted out be community's consensus, I suppose. The list of requirements is first gathered from the community. We then summarize it with items being weighted based on the level of support mentioned by various people and send it back. If everyone is broadly happy we then go ahead and prepare solutions which meet this list of requirements. There is no community level sorting of the items because items don't have a priority - it is a best effort basis to meet all of the requested features and functions. These proposals are accompanied by the pros and cons each faces, along with a recommendation for the one we believe best fits the needs of the community. You can see an example of this in the initial git.kde.org setup which Sysadmin did many years ago (2010 I think). Hm, why don't we do a prioritization poll? Quite some items raised by others are totally unimportant to me, and probably vice versa. While I agree that it would be nice to make everyone happy, I doubt that's going to work out. If we concentrate on the important aspects first, the admins would have less work and most people are still happy. Bye -- Milian Wolff m...@milianw.de http://milianw.de
Re: Changes to our Git infrastructure
On 4 Jan 2015, at 20:41, Thiago Macieira wrote: On Saturday 03 January 2015 15:35:12 Jeff Mitchell wrote: - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). .NET is a framework, not a language. Maybe you meant C#. Regardless, I fail to see how any of those are obscure. They're three of the most popular and widespread languages in the world. For command-line applications on Linux? A binary's a binary. As I stated in my example, I use git-annex, which is coded in Haskell. It's not a common language for command-line applications on Linux, but it works and is useful. I don't see why it being in an obscure language matters. --Jeff
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 12:43:06 CEST, Milian Wolff wrote: Hm, why don't we do a prioritization poll? Quite some items raised by others are totally unimportant to me, and probably vice versa. While I agree that it would be nice to make everyone happy, I doubt that's going to work out. If we concentrate on the important aspects first, the admins would have less work and most people are still happy. +1, this is exactly what I wanted to say. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Monday 05 January 2015 09:14:36 Jeff Mitchell wrote: On 5 Jan 2015, at 4:05, Jan Kundrát wrote: Ben, you and Jeff appear to disagree with my point that e.g. requiring a PHP tool to be installed client-side on each developers' and contributors' machine might be a little bit discouraging. Yes, because you are repeatedly assuming that such a tool would be required on all developers' and contributors' machines, and are ignoring our repeated statements that this is not a requirement to be a developer or contributor. I think you two are misunderstanding each other. Jan is worried about the cli tools for developers, i.e. what currently is rbt tools. You, otoh, speak about the server-side tools, which of course can be written in any language you are willing to install on the server side. Bye -- Milian Wolff m...@milianw.de http://milianw.de
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 4:37, Jan Kundrát wrote: On Sunday, 4 January 2015 13:21:12 CEST, Thomas Friedrichsmeier wrote: True, but don't forget about the other side of the story: - potential contributors will have to learn more stuff, before they can even _start_ contributing, which may be a real turn-off in some cases. That's a valid concern, so the core question is whether this scenario: - make changes - make a commit - push that commit is any more complex than: - make changes - create a diff - upload that diff via a browser. I have to admit I have no idea which one is *really* easier for a total newbie, and which one is easier for an average contributor. Obviously, you forgot another workflow that has been discussed: - make changes - make a commit - use a CLI tool to push the change up for review --Jeff
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 10:40, Jan Kundrát wrote: On Monday, 5 January 2015 16:23:15 CEST, Thomas Lübking wrote: To sum up my understanding: - Nobody wants to install/use PHP (or, good god, .NET/Mono ;-) on a client. - Nobody remotely intends to *require* this (but one can oc. *offer* tools written on any whatsoever exotic requirement) Phabricator has an equivalent of rbtools/rbt called Arcanist which is written in PHP. There are AFAIK no other tools for automating working with Phabricator's code review subsystem. No, but it's all API driven so you are free to write whatever tools you may like. I claim that requiring PHP or JVM or .NET for each developers'/contributors' productive work is bad. I claim that apt-get install php5-cli is not any more difficult than any other package installations developers may have to perform. Since you brought up Java, if we were talking about a Java tool, I would make the same claim about apt-get install (your pick of default-jre, default-jre-headless, openjdk-7-jre). .NET, apt-get install mono-runtime. Jeff's response is that PHP is not really required because they can just juggle patches by hand and paste them to web interfaces or pipe to `git am`. While this is technically correct, I find this logic misleading So is your characterization of my claims. For one, I've never said anything about juggling patches by hand or piping to git am, only about web interfaces. You have claimed that for the occasional contributor with one to two patches a year that installing such a tool is onerous. I disagree with that, but regardless, I've said that submitting patches via a web interface should be perfectly fine for such occasional contributors and that those that will want the power of the CLI tool are likely to be more advanced developers/contributors -- who I don't believe would find the setup of such a tool to be difficult or onerous. I do not claim that in a Phabricator world that advanced/regular developers would be required to always copy and paste diffs into a web UI (and realistically if using the web UI you'd probably save the diff to a file and then just upload it). Those that prefer such a workflow could use it. Those that don't -- and that don't have unwavering language preferences for their tools -- would have command-line options. and say that in absence of tools which are on-par with Arcanist, PHP is effectively required, and I do find this situation a downside of Phabricator. Your hatred of PHP is well noted. I do not feel so strongly as you about the languages in which useful tools are written. As I said before, I can't speak for the broader KDE development community about that (and I doubt you can either). I also point out that there are other tools which do not require a client-side PHP script. Yes, you've made that abundantly clear. --Jeff
Re: Changes to our Git infrastructure
On Montag, 5. Januar 2015 17:46:51 CEST, Jeff Mitchell wrote: Your hatred of PHP is well noted. I don't think it's hate - but it remains an undeniable fact that it's of little use on typical client systems. Therefore it's a valid concern that people might very well be pushed off by the requirement to install it for the only purpose of pushing reviews via cli. Cheers, Thomas
Re: Changes to our Git infrastructure
On Monday 05 January 2015 12:06:57 Jeff Mitchell wrote: On 5 Jan 2015, at 11:57, Thomas Lübking wrote: On Montag, 5. Januar 2015 17:46:51 CEST, Jeff Mitchell wrote: Your hatred of PHP is well noted. I don't think it's hate - but it remains an undeniable fact that it's of little use on typical client systems. Therefore it's a valid concern that people might very well be pushed off by the requirement to install it for the only purpose of pushing reviews via cli. I really, really don't understand this concern. We're not in the days of 500MB hard drives and nobody is asking anyone to install constantly-running daemons with open ports. I don't shiver with fear when I apt-get install a package and it wants to pull in a bunch of (non-daemon) libraries. Whatever you need to do your job, man. But I recognize that this may be a limitation of my own psyche. Personally, I also fail to see the issue here. PHP is 15.23MiB on my Arch box. Compare that with 34M of karchive build dir when you enable debug symbols (and karchive is small!). Bye -- Milian Wolff m...@milianw.de http://milianw.de
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 11:06, Jan Kundrát wrote: On Monday, 5 January 2015 16:05:07 CEST, Jeff Mitchell wrote: - Existing KDE account holders can and do use git for their workflow. - Using non-git workflow for others introduces a different workflow to the mix. - Having two workflows is more complex than having just a single one. Does it make it more understandable? No. What you're saying is having two tools is more complex. It's still one workflow. I feel like you're just language-lawyering here. The workflow I propose pushes the burden of producing clean patches to the contributor. The workflow you're advocating for appears to center around sending patches around Sending patches around? That's quite the stretch from submitting a diff to a web interface and recalls the KDE 1.0 days. And you're accusing me of language-lawyering? The problem here is that you believe -- incorrectly -- that a single workflow cannot include more than one tool. The reason I can definitively say that you are incorrect is because your own preferred workflow involves more than one tool, regardless of how they interact. And if yours does, you can't complain about other workflows that do. GitHub is a notable example showing that people don't seem to have an issue with a workflow that uses Git + a web-based tool to manage their code reviews. I'm not saying we need to end up with that, I just don't think it's credible to claim that it's too difficult or complex. That isn't an example that proves your point, though. It does if my point was (and it was) that a workflow consisting of producing a commit in Git and having the review take place via a web UI is a very broadly accepted paradigm in software development, and one that is often considered to be friendly to newcomers. and I believe you were saying that it's fine for a CR tool to work on patches and not git trees. Correct. Although I recognize the merits of such an approach, I do not believe that the only acceptable way for a code review tool to work is on git trees instead of via patches. And I do not believe that this one feature is enough to outright dismiss all other options. Given your earlier statements I imagine, but this is only supposition, that one of the reasons you desire such an approach is so that you can have all review actions be performed via SSH commands without requiring either a web UI or external tool. While this is certainly nice to have, I don't believe that it is very usable for newcomers (we've weathered enough complaints over the years about Gitolite SSH commands). Given the earlier distinction you made between contributors and developers, it also requires those that want to contribute patches to have full KDE developer accounts with commit/push access in order to push those diffs up for code review...something not required from a web interface requiring only an Identity account. --Jeff
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 11:57, Thomas Lübking wrote: On Montag, 5. Januar 2015 17:46:51 CEST, Jeff Mitchell wrote: Your hatred of PHP is well noted. I don't think it's hate - but it remains an undeniable fact that it's of little use on typical client systems. Therefore it's a valid concern that people might very well be pushed off by the requirement to install it for the only purpose of pushing reviews via cli. I really, really don't understand this concern. We're not in the days of 500MB hard drives and nobody is asking anyone to install constantly-running daemons with open ports. I don't shiver with fear when I apt-get install a package and it wants to pull in a bunch of (non-daemon) libraries. Whatever you need to do your job, man. But I recognize that this may be a limitation of my own psyche. --Jeff
Re: Changes to our Git infrastructure
On Montag, 5. Januar 2015 18:01:12 CEST, Jeff Mitchell wrote: Sending patches around? That's quite the stretch from submitting a diff to a web interface and recalls the KDE 1.0 days. And you're accusing me of language-lawyering? The problem here is that you believe -- incorrectly -- that a single workflow cannot include more than one tool. I believe this discussions heat turned into talking in absolutes. Your truth - my truth. It's not a matter of what is possible, but of preferences (while we probably all prefer to not return to send patches on mailing lists ;-) Since they may obviously cover a large range, scale seems a major requirement on workflow and tools. Pure CLI access on alinged syntax for efficient pros is as relevant as an easy GUI access for starters. Correct. Although I recognize the merits of such an approach, I do not believe that the only acceptable way for a code review tool to work is on git trees instead of via patches. I'd assume operating on git trees is certainly far more important for CI than for reviewing patches. And I do not believe that this one feature is enough to outright dismiss all other options. See? Absolutes ;-) No feature trumps all others, but it's a matter of ranking and thus all must be taken into fair and objective consideration. distinction you made between contributors and developers, it also requires those that want to contribute patches to have full KDE developer accounts with commit/push access in order to push those diffs up for code review I don't think this is actually a requirement - the review repo (maybe even branches) could easily have other/lower credential requirements than the vanilla one. Cheers, Thomas
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 18:01:12 CEST, Jeff Mitchell wrote: The problem here is that you believe -- incorrectly -- that a single workflow cannot include more than one tool. The reason I can definitively say that you are incorrect is because your own preferred workflow involves more than one tool, regardless of how they interact. And if yours does, you can't complain about other workflows that do. I was complaining about an IMHO artificial split where drive-by people submit changes in a different way than core developers. I stated that this introduces some needless difference to the way devs and contributors work, and that we should check whether there are tools that remove this difference. I know that e.g. Gerrit removes that difference, so I am not thrilled by the idea of using something without that feature. It does if my point was (and it was) that a workflow consisting of producing a commit in Git and having the review take place via a web UI is a very broadly accepted paradigm in software development, and one that is often considered to be friendly to newcomers. You're right, and I apologise for not understanding you correctly, we're in violent agreement after all. and I believe you were saying that it's fine for a CR tool to work on patches and not git trees. Correct. Although I recognize the merits of such an approach, I do not believe that the only acceptable way for a code review tool to work is on git trees instead of via patches. And I do not believe that this one feature is enough to outright dismiss all other options. That's another thing where I should have probably worded my responses better. The requirements I listed were things which I found valuable for my work. I did not mean to say that it's the only possible way of doing reviews, or that I found everybody who disagrees with me to be a moron. It's just that these features are important for me, so I would like to see them and I wanted to make sure they are listed as a requirement in a list of points gathered by the community. Maybe this misunderstanding is caused by sysadmins likely perceiving the requrements as hard ones which MUST be provided by any solution, while my impression is that we were asked to say what is important for us, and the evaluation is to be performed by us all together, not just the sysadmins. Given your earlier statements I imagine, but this is only supposition, that one of the reasons you desire such an approach is so that you can have all review actions be performed via SSH commands without requiring either a web UI or external tool. While this is certainly nice to have, I don't believe that it is very usable for newcomers. I agree that *that* would suck :). Given the earlier distinction you made between contributors and developers, it also requires those that want to contribute patches to have full KDE developer accounts with commit/push access in order to push those diffs up for code review...something not required from a web interface requiring only an Identity account. There is no need for full KDE developer account to upload changes for review with Gerrit. All that is needed is a regular Identity account. Behind the scenes, it works by Gerrit being a special git server which intercepts pushes and stores each of these changes in a separate ref. I'll be happy to go into more detail in another thread, off-list or on IRC. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 12:15, Thomas Lübking wrote: On Montag, 5. Januar 2015 18:01:12 CEST, Jeff Mitchell wrote: It's not a matter of what is possible, but of preferences (while we probably all prefer to not return to send patches on mailing lists ;-) Since they may obviously cover a large range, scale seems a major requirement on workflow and tools. Pure CLI access on alinged syntax for efficient pros is as relevant as an easy GUI access for starters. Totally agree. Correct. Although I recognize the merits of such an approach, I do not believe that the only acceptable way for a code review tool to work is on git trees instead of via patches. I'd assume operating on git trees is certainly far more important for CI than for reviewing patches. Yes, that's correct. But then we need to remember that there is a social component that is not finalized (and discussed in another thread), which is branch policy. Without operating on git trees, a developer could still be working on a feature branch and have a review going for the commits in that feature branch, and the CI could operate on that branch. The harder integration (and by no means should be assumed impossible, I'm just not sure how easy it would be at the moment since I haven't looked) for CI with respect to git trees vs. patches would be for one-off patches that aren't keyed to branches. But, if we're talking about contributors, not KDE developers with commit access, then they can't work with git trees anyways; if someone is already a KDE developer, they could work in a feature branch. Or not. Generally I'm happy providing tools and letting the various projects decide on their own preferred method for handling branches and patches. distinction you made between contributors and developers, it also requires those that want to contribute patches to have full KDE developer accounts with commit/push access in order to push those diffs up for code review I don't think this is actually a requirement - the review repo (maybe even branches) could easily have other/lower credential requirements than the vanilla one. There aren't such things as review repos right now, even on the current infrastructure (you could consider clones to be that, but creating clones and scratch requires full KDE developer accounts). Yes, you are right that highly flexible branch policy may allow something like this, but right now there is no such thing as commit access without having a full developer account. I think changing that -- assuming tool support for this -- would be a deeper policy discussion that is probably best had in a different thread. --Jeff
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 22:26:24, Boudewijn Rempt va escriure: Well, _obviously_ reviewboard supports raising issues and adding comments , but neither facilitates actual conversation, i.e. discussion on what's up with a particular patch at a deeper level. In short, what I meant is that as a tool to dicuss code changes, Reviewboard is a poor thing. It facilitates nit-picking, which is off-putting and useless, but at least gives the reviewer the feeling he's done his job, while it fails at making it easy to discuss the why, wherefore and how of a particular change. Well, how would you want to have a proper discussion then? What's your desired workflow/UI for it? I see what you mean, but to me it seems more a misuse of the tool by the community, not a fault of the tool itself. Cheers, Albert On Mon, 5 Jan 2015, Albert Astals Cid wrote: El Dilluns, 5 de gener de 2015, a les 18:40:54, Boudewijn Rempt va escriure: I do agree, btw, with Ian, that the current reviewboard workflow is badly broken and can be very discouraging. It doesn't support conversation What do you mean it doesn't support conversation? Cheers, Albert
Re: Changes to our Git infrastructure
On Montag, 5. Januar 2015 22:26:24 CEST, Boudewijn Rempt wrote: In short, what I meant is that as a tool to dicuss code changes, Reviewboard is a poor thing. It facilitates nit-picking, which is off-putting and useless, but at least gives the reviewer the feeling he's done his job, while it fails at making it easy to discuss the why, wherefore and how of a particular change. I don't think this is a problem w/ RB. When RRs get on k-c-d, many devs who can provide an abstract review are addressed. They can take /this/ load from the actual maintainer/main developer. But if nobody feels in charge for the addressed component, you won't get an informed response. Before Ian started the DrKonqui patches I had not seen the drkonqui code even one single time and my idea who worked on it was from the git history Bottom line: things are maintained by an individuum or not at all. If everybody is in charge, nobody actually is. Cheers, Thomas
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 22:29:36, Thomas Lübking va escriure: On Montag, 5. Januar 2015 21:36:54 CEST, Albert Astals Cid wrote: What's the problem with php? Dynamic typing ;-) I don't think there's a particular issue with php in this context. To me the concern seemed to have more been around try to not require stuff that's not likely around anyway We have ruby scripts Where (wrt code submission?)? Oh, rbtools is python, somehow i thought it was ruby. Well goes to show it doesn't matter the least what a tool is written on, you just install it and run it :) Cheers, Albert
Re: Changes to our Git infrastructure
Well, this getting to a pretty useless discussion. You set out to prove that you find it all very simple, and I am sure you find it simple. You don't have to rebut everything I say point by point to prove whatever you think you are proving because the point is this: you find it simple, others don't. What you have to do is accept is this: others don't. The rest of the world is fine with accepting that you think it's simple, that's not the point of the discussion. So, yes, you cannot write a git-for-dummies manual, for that we need a genius like David Revoy. Just get this: you hope everyone has met a DVCS. I regularly meet people for whom git is a magic way of getting new features, and who have _no_ idea at all about what version control is, or what source code is. And many of them turn out to be awesome contributors, and some even, after a year or two, help with git bisecting a particular bug. So all I want to make sure here is that participation in KDE is as accessible as possible to the great majority of the world that doesn't want to play the 'serious software engineer', qt-project.org-style. That is why I've given the link to what non-engineers active in #krita think about KDE's infrastructure, and that's why I've tried to show you how intimidating something you find very simple actually is, how many steps that you know are optional, or necessary, you actually forgot to mention in your little list. On Mon, 5 Jan 2015, Albert Astals Cid wrote: El Dilluns, 5 de gener de 2015, a les 22:22:19, Boudewijn Rempt va escriure: On Mon, 5 Jan 2015, Albert Astals Cid wrote: I think this is due to the fact that it's quite simple git clone kde:repo This requires: * setting up gitconfig with the kde: alias. That requires finding the right info on techbase, as well as the awareness that techbase exists. You can always just use the full url. * figuring out the reponame for a particular project (and that isn't as easy as just downloading the entire trunk of kde's svn repo -- even if I never did that myself) Sure, if you don't know the repo name you're out of luck, not that downloading the whole trunk would help you much more (you can still grep but it may take ages) do coding git commit * using the commit template You don't really need a commit template (though it's nice if you use it) * with the relevant keywords You don't really need to use the keywrods (though it's nice if you use it) * having a grasp of what a git commit is, especially that a commit isn't visbile to anyone else Any modern (i.e. DVCS) has that concept, sure it's complicated for cvs/svn people, i'd like to think most of us has worked with a DVCS at the moment. git push But not before you have * realized that you need to push, i.e. what local and remote is Same as above, it's DCVS. * figured out what branches are for, and how different projects handle those Right, that's hardly documentable though (and will get old soon most probably) * got your kde indenity Every system needs it's own identity system, we use ours. * posted it on the right reviewboard Reviewboard is not mandatory (though it's nice) * to the right reviewers Yes, you either have to pick the reviewers or let a robot do your job. That said, i'm not saying contributing is easy, i'm just saying the pure git part is not that hard, it's all the project overhead (branches, review, account, etc) that really makes it harder (in my opinion). Cheers, Albert
Re: Changes to our Git infrastructure
On Montag, 5. Januar 2015 22:58:43 CEST, Boudewijn Rempt wrote: For me, personally, RB's mails are even worse. Ok, but that's pretty much OT, isn't? (Same problem with this thread, or rather mailing list. Why the heck do I need to get two copies of every reply to a mail of mine... One is _enough_. And yes, I know about the whole reply-to-mangling-is-dangerous lunacy.) You get them, because you send them. kcd is cc'd by your mails what will in the end make mail clients reply to all rather than just to the mailing list. Reviewboard isn't limited to kde-core-devel. It's not only not limited, it's not even bound to kcd. The receivers depend on the groups you attach to the RR. And it doesn't answer my main complaint: reviewboard, by its design, is made to whine about whitespace, extra white at the end of lines and other one-line complaints. a) breaking coding style is bad style anyway. Get a better editor, don't introduce tabs and trailing spaces and weird indention etc. and there'll be no complains. b) You missed my argument. MANY ppl. can give you an abstract review (whitespace, hot loop, performs crap, this may crash) but only VERY FEW ppl. can make a feature comment. If none of the latter ever shows up because the component has vacant maintainance, you might oc. feel that ppl. only nitpick, but the alternative is that your patch remains entirely uncommented and if you at some point just push it, you'd introduce unnecessary style breaks and bad code on top of that. It gives the reviewer a happy feeling of a job well-done That's nonsense. It ideally maintains general code quality by many eyes. If you are in charge of a component and have fundamental comments, you certainly won't restrict yourself to comment the patch on an abstract level. and the submitter a cold shower. Eye of the beholder? It's a tasklist. Nothing more, nothing less. If that scares you, you probably would not want to hear fundamental concerns at all. There might be a cultural gap between rather polite (lying) and rather direct (offending) societies, but that won't be fixed by any communcation tool in the near future. Cheers, Thomas
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 23:46:18, Alexander Neundorf va escriure: On Monday, January 05, 2015 22:35:23 Albert Astals Cid wrote: El Dilluns, 5 de gener de 2015, a les 22:22:19, Boudewijn Rempt va escriure: ... * figured out what branches are for, and how different projects handle those Right, that's hardly documentable though (and will get old soon most probably) this is IMO one of the main issues. This really should be documented, and ideally should be consistent for all KDE repositories. And this policy also shouldn't change often. How to deal with branches correctly, i.e. how the project maintainers expect it, is a big part what can make using git hard. But that hasn't changed since svn, no? (Not saying it's good or bad, just saying i don't see this is a difference in git) Cheers, Albert E.g. using git for cmake is easier, because there the workflow (how to branch etc.) is fully documented. Alex
Re: Changes to our Git infrastructure
I'm just trying to make clear that reviewboard is a crappy tool inciting people to write crappy reviews that drive people away. Apart from any other nonsense about cultural differences (the standard cop-out from Dutchmen and Germans -- I ain't rude, I'm just honest, it's cultural!), I think that people should read Ian's mail, with attention: Speaking for myself, I find this a huge turnoff in the KDE world and am now planning to retire from KDE as soon as I can. But then I am 76 and git is my 10th source-code control system since 1965-66, so I have little interest in mastering it. I have also found ReviewBoard utterly counter-productive this year, either because one writes an entry and nobody reviews it, or nobody understands it, or because one gets nitpicked about syntax and white space when one is really looking for helpful advice about how better to solve the problem at hand. I think I must have lost a month or two on ReviewBoard during the year, with very little helpful advice gained. I consider nitpick reviews harmful. If you have nothing better to do than nitpick, don't, and reviewboard is a tool which encourages you to do. On Mon, 5 Jan 2015, Thomas Lübking wrote: On Montag, 5. Januar 2015 22:58:43 CEST, Boudewijn Rempt wrote: For me, personally, RB's mails are even worse. Ok, but that's pretty much OT, isn't? (Same problem with this thread, or rather mailing list. Why the heck do I need to get two copies of every reply to a mail of mine... One is _enough_. And yes, I know about the whole reply-to-mangling-is-dangerous lunacy.) You get them, because you send them. kcd is cc'd by your mails what will in the end make mail clients reply to all rather than just to the mailing list. Reviewboard isn't limited to kde-core-devel. It's not only not limited, it's not even bound to kcd. The receivers depend on the groups you attach to the RR. And it doesn't answer my main complaint: reviewboard, by its design, is made to whine about whitespace, extra white at the end of lines and other one-line complaints. a) breaking coding style is bad style anyway. Get a better editor, don't introduce tabs and trailing spaces and weird indention etc. and there'll be no complains. b) You missed my argument. MANY ppl. can give you an abstract review (whitespace, hot loop, performs crap, this may crash) but only VERY FEW ppl. can make a feature comment. If none of the latter ever shows up because the component has vacant maintainance, you might oc. feel that ppl. only nitpick, but the alternative is that your patch remains entirely uncommented and if you at some point just push it, you'd introduce unnecessary style breaks and bad code on top of that. It gives the reviewer a happy feeling of a job well-done That's nonsense. It ideally maintains general code quality by many eyes. If you are in charge of a component and have fundamental comments, you certainly won't restrict yourself to comment the patch on an abstract level. and the submitter a cold shower. Eye of the beholder? It's a tasklist. Nothing more, nothing less. If that scares you, you probably would not want to hear fundamental concerns at all. There might be a cultural gap between rather polite (lying) and rather direct (offending) societies, but that won't be fixed by any communcation tool in the near future. Cheers, Thomas
Re: Changes to our Git infrastructure
On Monday, January 05, 2015 23:53:02 Boudewijn Rempt wrote: I'm just trying to make clear that reviewboard is a crappy tool inciting people to write crappy reviews that drive people away. Apart from any other nonsense about cultural differences (the standard cop-out from Dutchmen and Germans -- I ain't rude, I'm just honest, it's cultural!), I think that people should read Ian's mail, with attention: Speaking for myself, I find this a huge turnoff in the KDE world and am now planning to retire from KDE as soon as I can. But then I am 76 and git is my 10th source-code control system since 1965-66, so I have little interest in mastering it. I have also found ReviewBoard utterly counter-productive this year, either because one writes an entry and nobody reviews it, or nobody understands it, or because one gets nitpicked about syntax and white space when one is really looking for helpful advice about how better to solve the problem at hand. I think I must have lost a month or two on ReviewBoard during the year, with very little helpful advice gained. I consider nitpick reviews harmful. If you have nothing better to do than nitpick, don't, and reviewboard is a tool which encourages you to do. I wouldn't blame it on reviewboard, I don't have the impression it differs in this regard e.g. from gerrit. Alex
Re: Changes to our Git infrastructure
On Monday, January 5, 2015 22.26:24 Boudewijn Rempt wrote: In short, what I meant is that as a tool to dicuss code changes, Reviewboard is a poor thing. It facilitates nit-picking, which is off-putting and useless, but at least gives the reviewer the feeling he's done his job, while it fails at making it easy to discuss the why, wherefore and how of a particular change. That is a development culture issue than no tool can fix. Reviewboard is great for discussing changes in the hands of people who value that sort of interaction. It also can be used to deliver only nitpicking in a non- constructive manner. The difference in experience comes down to the what the people using it value. Where reviewboard is not good enough is in making it easy to quickly try the patch (bi-directional scm integration) ... but the commenting and discussion features are pretty much as good as it gets. -- Aaron J. Seigo signature.asc Description: This is a digitally signed message part.
Re: Changes to our Git infrastructure
On Mon, 5 Jan 2015, Aaron J. Seigo wrote: On Monday, January 5, 2015 22.26:24 Boudewijn Rempt wrote: In short, what I meant is that as a tool to dicuss code changes, Reviewboard is a poor thing. It facilitates nit-picking, which is off-putting and useless, but at least gives the reviewer the feeling he's done his job, while it fails at making it easy to discuss the why, wherefore and how of a particular change. That is a development culture issue than no tool can fix. Not fix, but a tool can encourage one way or another. Reviewboard is great for discussing changes in the hands of people who value that sort of interaction. It also can be used to deliver only nitpicking in a non- constructive manner. The difference in experience comes down to the what the people using it value. Where reviewboard is not good enough is in making it easy to quickly try the patch (bi-directional scm integration) ... but the commenting and discussion features are pretty much as good as it gets. -- Aaron J. Seigo
Re: Changes to our Git infrastructure
On Montag, 5. Januar 2015 23:53:02 CEST, Boudewijn Rempt wrote: I'm just trying to make clear that reviewboard is a crappy tool inciting people to write crappy reviews that drive people away. And I was trying to make clear that those crappy reviews are just the house cleaning stuff that should ideally go along w/ the functional reviews. That you believe it's the only kind of review you get implies that you would simply not have gotten any other review otherwise. Not ideal, but rather unrelated. Apart from any other nonsense about cultural differences (the standard cop-out from Dutchmen and Germans -- I ain't rude, I'm just honest, it's cultural!) Sorry, I was just trying to understand what could get anyone scared about a very simple and direct please fix this, this and that list - it would have to be fixed anyway at some point. I'm sorry if you or anyone feels offended by the way it's presented, but to change that, one would first need to have a remote idea, what's so driving away about it. And sorry again, but I really cannot even imagine - wheter you may call that rude or dumb. Ian and the DrKonqui bug: --- I think that people should read Ian's mail, with attention: I have read Ian's mail and I do recall his review requests on DrKonqi. I agree that the process was anything but fluid - though ultimately successful. Apparently nobody actually felt in charge of DrKonqi then (and now, since Ian will apparently be sadly lost, again), so other developers, unfamiliar w/ DrKonqi commented on the patches - the first two of them actually focussing on OSX specific (or rather triggered) issues. The last one addressed DrKonqi being broken due to bugzilla changes. It was presented first on 30/9/2014, saw an immediate coding style and function design review, resolved 3/10/2014. Followed up by a minor nitpick to not use fprintf, but kdebug and a call for someone w/ experience on the codebase to review on 5/10/2014 On 6/10/2014 Ian worried that he's perhaps the person most familiar with the codebase of Dr Konqi, having worked on it for a few months now and sugested to push the patch within the next 24h. This raised immediate concerns from the release team about the size of the patch, discouraging to submit it to 4.14 what caused a hyperactive 7/10/2014 with the discussion leading to the consensus that a vastly simplified version of the patch would still be the best option for 4.14 (and suggestions on how to simplify things) with the result being finally presented 9/10/2014 and submitted and submitted in time 23h later. I would fully agree that 7/10/2014 should have been 30/9/2014, but the most important thing is: IT TOOK A VETO FROM THE RELEASE TEAM and thus THE THREAT OF A BROKEN DR KONQI FOR KDE SC4 to cause major interest in the patch, what is, given the DrKonqi bug was reported long before, a clear sign that nobody actually had a special interest. In the end, blind ppl. were supposed to guide the one-eyed. AND NO TOOL ON EARTH WILL EVER FIX SUCH A SITUATION. Tools are as good or bad as the ppl. that use them. The problem is *not* that RB encourages nitpicks, but the problem is that there's completely unmaintained code where nobody feels qualified to sign off patches. Ian is certainly the one person permitted to retire whenever he feels like, but /actually/, now that the worst time is passed, he would be the one to fix *this* problem for DrKonqi, ie. become the person to sign off patches. Cheers, Thomas
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 12:40, Boudewijn Rempt wrote: All this back-and-forth about cli tools actually sounds weird to me. I know that the beginners who start hacking on Krita would never use any of them. Git on the command line is often already something they can be rightly proud of when they master the beginnings. Heck, I myself haven't used rbtools, even though the reviewboard site urges it strongly. Let the real experts use cli tools, and they can handle a bit of obscurity. So I don't think obscure cli tools matter even one whit -- what matters is having the nicest possible web tools that make life for people as easy as possible. Ideally, people shouldn't need a kde identity to submit something (patch, bug report, idea, screenshot, plea for help), and reviewers should be able to drop into a private conversation with only very little effort. Agreed. We've been looking for more friendly, better-integrated, and more usable tools for a long time. Not just for newcomers, but especially for newcomers. When you're an old hand at development, minimal setup of a useful tool is just not a huge burden. I do disagree about needing a KDE identity to submit things like bug reports; it is not useful to be unable to follow-up with someone, and if they don't have an email address they're much less likely to remember to check back. Not to mention link spam and all sorts of other nastiness. Possibly allowing non-Identity account providers for non-developers is a good middle ground (Google, Twitter, Facebook, GitHub). --Jeff
Re: Changes to our Git infrastructure
On Mon, 5 Jan 2015, Jeff Mitchell wrote: I do disagree about needing a KDE identity to submit things like bug reports; it is not useful to be unable to follow-up with someone, and if they don't have an email address they're much less likely to remember to check back. Not to mention link spam and all sorts of other nastiness. Possibly allowing non-Identity account providers for non-developers is a good middle ground (Google, Twitter, Facebook, GitHub). Yes, that should be totally fine. The intersection of people who don't want a kde identity (or find it too much bother) and those people who feel g, t, f, gh are too invasive is really small, and, honestly, likely too individual to be helpful. Boudewijn
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 12:39, Jan Kundrát wrote: On Monday, 5 January 2015 18:01:12 CEST, Jeff Mitchell wrote: The problem here is that you believe -- incorrectly -- that a single workflow cannot include more than one tool. The reason I can definitively say that you are incorrect is because your own preferred workflow involves more than one tool, regardless of how they interact. And if yours does, you can't complain about other workflows that do. I was complaining about an IMHO artificial split where drive-by people submit changes in a different way than core developers. I stated that this introduces some needless difference to the way devs and contributors work, and that we should check whether there are tools that remove this difference. I know that e.g. Gerrit removes that difference, so I am not thrilled by the idea of using something without that feature. Understandable, although I think that as our policy currently stands over who can commit to repos, this is necessary anyways (since you need a developer account to commit, and once you have that you could work on a topic branch). It's also pretty common -- e.g. most GitHub repos don't allow people to commit directly, but rather go through a merge request workflow. But I understand why you feel that this would be a regression. That's another thing where I should have probably worded my responses better. The requirements I listed were things which I found valuable for my work. I did not mean to say that it's the only possible way of doing reviews, or that I found everybody who disagrees with me to be a moron. It's just that these features are important for me, so I would like to see them and I wanted to make sure they are listed as a requirement in a list of points gathered by the community. OK, sorry for misunderstanding. Maybe this misunderstanding is caused by sysadmins likely perceiving the requrements as hard ones which MUST be provided by any solution, while my impression is that we were asked to say what is important for us, and the evaluation is to be performed by us all together, not just the sysadmins. It's definitely why Ben put out a call for people to list requirements. We want to make sure that we understand what people are looking for. But it did seem like some people (not just you) were essentially saying if it doesn't have X we must not use it, regardless of whether a solution has A, B, C, ... Given the earlier distinction you made between contributors and developers, it also requires those that want to contribute patches to have full KDE developer accounts with commit/push access in order to push those diffs up for code review...something not required from a web interface requiring only an Identity account. There is no need for full KDE developer account to upload changes for review with Gerrit. All that is needed is a regular Identity account. OK. I was unaware of that since (normally speaking) Gerrit intercepts pushed refs and then pushes them into g.k.o. --Jeff
Re: Changes to our Git infrastructure
Hi, 2015-01-05 19:03 GMT+01:00 Jeff Mitchell: On 5 Jan 2015, at 12:40, Boudewijn Rempt wrote: All this back-and-forth about cli tools actually sounds weird to me. I know that the beginners who start hacking on Krita would never use any of them. Git on the command line is often already something they can be rightly proud of when they master the beginnings. Heck, I myself haven't used rbtools, even though the reviewboard site urges it strongly. Let the real experts use cli tools, and they can handle a bit of obscurity. So I don't think obscure cli tools matter even one whit -- what matters is having the nicest possible web tools that make life for people as easy as possible. Ideally, people shouldn't need a kde identity to submit something (patch, bug report, idea, screenshot, plea for help), and reviewers should be able to drop into a private conversation with only very little effort. Agreed. We've been looking for more friendly, better-integrated, and more usable tools for a long time. Not just for newcomers, but especially for newcomers. yes, I fully agree. It certainly makes sense to improve our tools such that they are more convenient for maintainers and others who contribute very frequently, but taking the needs of newcomers into account is also very important. Ultimately, a constant stream of newcomers is the only thing that keeps a free software project alive in the long term. I have read a large number of bug reports during the past few years, and I have very often seen first-time contributions which consisted of a patch which was generated by redirecting the output of git diff to a file and then attached to the bug report. In my experience, thanking the new contributor for their efforts and asking them to upload their patch file to http://reviewboard.kde.org/ via the web interface has a success rate of close to 100%, and often, the contributors will then continue to fix bugs and submit more patches. I'm a bit worried that any new patch review system which requires more effort before one can submit a patch for review might put some potential new contributors off. And I'm not talking about the requirement to not introduce unit test regressions or follow the coding style or fix white space issues here - that certainly makes sense! - but the effort that is required before one can even use the patch review system. Having said that, I do acknowledge that tools which are best suited for newcomers may not be the most efficient to use for frequent contributors and maintainers (and I appreciate all efforts that try to improve the situation for the latter). I just wanted to highlight that as little setup effort as possible may be a desirable property of a patch review system if attracting many newcomers is considered an important goal. Cheers, Frank
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 17:57:19, Thomas Lübking va escriure: On Montag, 5. Januar 2015 17:46:51 CEST, Jeff Mitchell wrote: Your hatred of PHP is well noted. I don't think it's hate - but it remains an undeniable fact that it's of little use on typical client systems. Therefore it's a valid concern that people might very well be pushed off by the requirement to install it for the only purpose of pushing reviews via cli. Is there any logical reason people would people be pushed off? Or is it just irrational? Cheers, Albert Cheers, Thomas
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 12:47, Thomas Lübking wrote: Stuff that relies on present and known libraries/executables has a lower barrier. I've no gtk3 installation atm. and when I need to pick among different tools, the one that doesn't require gtk3 wins. That may be irrational, but still happens. I'd put window-oriented tools in a different class than CLI tools, because the tool using gtk3 may have a very different look and feel, which many users can find legitimately jarring. Whatever you need to do your job, man. Erheemmm i doubt need to do your job holds for potential new contributors in any aspect :-P This was a comment to package X wanting to pull in a bunch of non-daemon libraries...not to people. :-) --Jeff
Re: Changes to our Git infrastructure
On Montag, 5. Januar 2015 16:10:51 CEST, Jeff Mitchell wrote: Not at all. I perfectly understand what Jan is talking about. To sum up my understanding: - Nobody wants to install/use PHP (or, good god, .NET/Mono ;-) on a client. - Nobody remotely intends to *require* this (but one can oc. *offer* tools written on any whatsoever exotic requirement) Is that correct? In case and as this does not imply a real disagreement, the issue necessarily /is/ a simple misunderstanding - and apparent ambiguity on the other side :-P Cheers, Thomas
Re: Changes to our Git infrastructure
On 5 Jan 2015, at 10:23, Thomas Lübking wrote: On Montag, 5. Januar 2015 16:10:51 CEST, Jeff Mitchell wrote: Not at all. I perfectly understand what Jan is talking about. To sum up my understanding: - Nobody wants to install/use PHP (or, good god, .NET/Mono ;-) on a client. Jan doesn't want to. I can't speak for the entire developer community. - Nobody remotely intends to *require* this (but one can oc. *offer* tools written on any whatsoever exotic requirement) Correct. --Jeff
Re: Changes to our Git infrastructure
On Monday, 5 January 2015 16:05:07 CEST, Jeff Mitchell wrote: - Existing KDE account holders can and do use git for their workflow. - Using non-git workflow for others introduces a different workflow to the mix. - Having two workflows is more complex than having just a single one. Does it make it more understandable? No. What you're saying is having two tools is more complex. It's still one workflow. I feel like you're just language-lawyering here. The workflow I propose pushes the burden of producing clean patches to the contributor. The workflow you're advocating for appears to center around sending patches around, so by definition in your workflow there's a big difference in the way 3rd party contributors work as opposed to what KDE developers do. My proposal aims at closing this gap. GitHub is a notable example showing that people don't seem to have an issue with a workflow that uses Git + a web-based tool to manage their code reviews. I'm not saying we need to end up with that, I just don't think it's credible to claim that it's too difficult or complex. That isn't an example that proves your point, though. The GitHub workflow actually involves a `git push` to be done by the contributor. That means that the GitHub workflow relies on contributors to curate git trees, and as such I like that workflow [1] because both core developers and contributors produce the same sort of artefacts. It's a different workflow from uploading patches via browser or via some client-side tool, though, and I believe you were saying that it's fine for a CR tool to work on patches and not git trees. [1] GitHub manages to screwup things when one does a rebase, but that's an implementation detail for the purposes of this discussion. Yes, it does make the workflow hardly usable for me. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 18:40:54, Boudewijn Rempt va escriure: I do agree, btw, with Ian, that the current reviewboard workflow is badly broken and can be very discouraging. It doesn't support conversation What do you mean it doesn't support conversation? Cheers, Albert
Re: Changes to our Git infrastructure
On Monday, January 05, 2015 16:15:09 Ian Wadham wrote: ... I wonder also how many people have just tiptoed quietly away from the KDE Community rather than speak out about frustrations they may have been feeling. Where *did* all those people go in the last few years? And why? I didn't really walk away, but the move from svn to git has made contributing to KDE for me harder/less fun. Just svn up in trunk/ was really nice. Now we have hundreds of repositories, and as far as I know there is still no using-git-for-KDE-development-for-dummies documentation (maybe because there is no common workflow for all of these many repositories). Having said that, the mail flood I get from Qt gerrit also isn't fun. After every comment a new review is requested... I don't have that time. Having a system where every repository (project) automatically has its own wiki and bug tracker is something I would really like to have. I think this is especially useful with the frameworks effort. I'd really like to see a homepage for each of the frameworks, and such a wiki page would be a natural place to put it. Alex
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 21:51:34, Alexander Neundorf va escriure: On Monday, January 05, 2015 16:15:09 Ian Wadham wrote: ... I wonder also how many people have just tiptoed quietly away from the KDE Community rather than speak out about frustrations they may have been feeling. Where *did* all those people go in the last few years? And why? I didn't really walk away, but the move from svn to git has made contributing to KDE for me harder/less fun. Just svn up in trunk/ was really nice. Now we have hundreds of repositories, and as far as I know there is still no using-git-for-KDE-development-for-dummies documentation (maybe because there is no common workflow for all of these many repositories). I think this is due to the fact that it's quite simple git clone kde:repo do coding git commit git push Obviously i think it is simple but you think it's not, i can't write a guide for dummies because i think it's simple and you can't write it because you don't know how to write it, it'd need to people to collaborate on it. If you can write somewhere your questions I'm sure we can find people to write the answers :) Cheers, Albert Having said that, the mail flood I get from Qt gerrit also isn't fun. After every comment a new review is requested... I don't have that time. Having a system where every repository (project) automatically has its own wiki and bug tracker is something I would really like to have. I think this is especially useful with the frameworks effort. I'd really like to see a homepage for each of the frameworks, and such a wiki page would be a natural place to put it. Alex
Re: Changes to our Git infrastructure
El Dilluns, 5 de gener de 2015, a les 17:25:48, Thomas Lübking va escriure: On Montag, 5. Januar 2015 16:40:52 CEST, Jan Kundrát wrote: Phabricator has an equivalent of rbtools/rbt called Arcanist which is written in PHP. So this is actually a concern on a particular tool. Leaving aside that Phabricator seems to be owned/maintained by Facebook Inc. (what alone may cause significant, though irrational, veto...) this is sth. that needed to be accounted. You should check your facts before calling for an irrational veto :) http://phabricator.org - Phabricator's development is lead by Phacility, Inc. Cheers, Albert How much of a problem it is is imo. atm out of scope, but eg. it would be less a problem on a fork/pullrequest driven workflow (esp. if a smart git hook would eg. support a PULLTHIS! keyword) but pretty much a showstopper for a RB/gerrit like approach. == The only relevant question to be answered in the current discussion is whether Just install php! is an acceptable answer to such concerns. I'd say no (because php /is/ uncommon on client systems...) - but there's also phc which *might* cure this particular problem for Phabricator. Cheers, Thomas
Re: Changes to our Git infrastructure
On Mon, 5 Jan 2015, Albert Astals Cid wrote: I think this is due to the fact that it's quite simple git clone kde:repo This requires: * setting up gitconfig with the kde: alias. That requires finding the right info on techbase, as well as the awareness that techbase exists. * figuring out the reponame for a particular project (and that isn't as easy as just downloading the entire trunk of kde's svn repo -- even if I never did that myself) do coding git commit * using the commit template * with the relevant keywords * having a grasp of what a git commit is, especially that a commit isn't visbile to anyone else git push But not before you have * realized that you need to push, i.e. what local and remote is * figured out what branches are for, and how different projects handle those * got your kde indenity * posted it on the right reviewboard * to the right reviewers Of course it's doable, but even with cats just getting source and building it poses hurdles that need articles like http://www.davidrevoy.com/article193/building-krita-on-linux-for-cats to help people jump them. I am a very fortunate and happy person: there is hardly a week when I don't have to guide someone through the process. Usually, half-way through they ask me, why doesn't KDE use github (or, less often) phabricator. Then I point them at the manifesto, and we usually spend another half hour discussing that -- most often with good results! Our story about not using github is not hard, but our contribution process often is. Obviously i think it is simple but you think it's not, i can't write a guide for dummies because i think it's simple and you can't write it because you don't know how to write it, it'd need to people to collaborate on it. If you can write somewhere your questions I'm sure we can find people to write the answers :) Cheers, Albert Having said that, the mail flood I get from Qt gerrit also isn't fun. After every comment a new review is requested... I don't have that time. Having a system where every repository (project) automatically has its own wiki and bug tracker is something I would really like to have. I think this is especially useful with the frameworks effort. I'd really like to see a homepage for each of the frameworks, and such a wiki page would be a natural place to put it. Alex
Re: Changes to our Git infrastructure
Well, _obviously_ reviewboard supports raising issues and adding comments , but neither facilitates actual conversation, i.e. discussion on what's up with a particular patch at a deeper level. In short, what I meant is that as a tool to dicuss code changes, Reviewboard is a poor thing. It facilitates nit-picking, which is off-putting and useless, but at least gives the reviewer the feeling he's done his job, while it fails at making it easy to discuss the why, wherefore and how of a particular change. On Mon, 5 Jan 2015, Albert Astals Cid wrote: El Dilluns, 5 de gener de 2015, a les 18:40:54, Boudewijn Rempt va escriure: I do agree, btw, with Ian, that the current reviewboard workflow is badly broken and can be very discouraging. It doesn't support conversation What do you mean it doesn't support conversation? Cheers, Albert
Re: Changes to our Git infrastructure
On Sun, 04 Jan 2015 00:37:49 +0100 Jan Kundrát j...@kde.org wrote: My goal is to help bridge the gap between the existing project maintainers (who produce software in git trees) and the new contributors (who produce patches). If we can offload the management of git trees to the contributors, then the following happens: - contributors learn to master the same tools as the maintainers, - there's one less thing for a maintainer to do on a contributor's behalf, - maintainers have more time to process more incoming reviews, - contributors can eventually transition to maintainers more easily because they already know the tools. True, but don't forget about the other side of the story: - potential contributors will have to learn more stuff, before they can even _start_ contributing, which may be a real turn-off in some cases. Your project's situation may be very different from mine. Personally, I'm much more worried about keeping the entry barrier as low as possible, than about reducing the amount of effort that I have to put into supporting and educating contributors. Regards Thomas signature.asc Description: PGP signature
Re: Changes to our Git infrastructure
On Sun, 4 Jan 2015, Thomas Friedrichsmeier wrote: True, but don't forget about the other side of the story: - potential contributors will have to learn more stuff, before they can even _start_ contributing, which may be a real turn-off in some cases. Your project's situation may be very different from mine. Personally, I'm much more worried about keeping the entry barrier as low as possible, than about reducing the amount of effort that I have to put into supporting and educating contributors. Getting first-timers and non-coders to even create a patch and post it to a bug is often already a challenge. But I managed to make someone do a proper and succesful git bisect! Anyway, and coincidentally, Here's something artists and other interested people wrote up for Krita, some time ago: https://notes.kde.org/p/YWlSAP98tl (Needs a KDE identity to access...) Boudewijn
Re: Changes to our Git infrastructure
Just to make sure -- I didn't write any of this, this is stuff that committed users of Krita were coming up with some time ago when the question arose of why is krita not on github (which got answered satisfactorily, but then sequed in what people are missing). On Sun, 4 Jan 2015, Boudewijn Rempt wrote: On Sun, 4 Jan 2015, Thomas Friedrichsmeier wrote: True, but don't forget about the other side of the story: - potential contributors will have to learn more stuff, before they can even _start_ contributing, which may be a real turn-off in some cases. Your project's situation may be very different from mine. Personally, I'm much more worried about keeping the entry barrier as low as possible, than about reducing the amount of effort that I have to put into supporting and educating contributors. Getting first-timers and non-coders to even create a patch and post it to a bug is often already a challenge. But I managed to make someone do a proper and succesful git bisect! Anyway, and coincidentally, Here's something artists and other interested people wrote up for Krita, some time ago: https://notes.kde.org/p/YWlSAP98tl (Needs a KDE identity to access...) Boudewijn
Re: Changes to our Git infrastructure
On Saturday 03 January 2015 15:31:26 Ben Cooksley wrote: (...excellent summary of discussion...) Commentary on the above would be appreciated. There are two questions which aren't addressed int he summary, but which I think are important to have good answers for before we can take a decision. The first question is: Who do we want to address? We obviously want to address existing contributors and for that the list represents the needs quite well. But to what degree do we want to address new contributors? Collecting requirements on kde-core-devel won't give us the input we need, if we want to address people who are not already part of our community. The second question is: What are our requirements for hosting? Do we want to host it ourselves, or would we be ok with a third party hosting the infrastructure as well, and under which conditions? Both questions are related to GitHub, which has been mentioned in the discussion quite a bit. It would address a lot of our requirements and it is something especially new contributors are familiar with. I'm not saying we should simply move to GitHub, but as it is brought up so often, we maybe should review our position, and make sure that we know why we are not going with the flow, and why we are paying the price of a higher barrier of entry and the additional effort of hosting our own infrastructure. -- Cornelius Schumacher schumac...@kde.org
Re: Changes to our Git infrastructure
On 3 Jan 2015, at 18:37, Jan Kundrát wrote: On Saturday, 3 January 2015 21:35:12 CEST, Jeff Mitchell wrote: On 3 Jan 2015, at 14:00, Jan Kundrát wrote: - Working on git trees, not patches. This directly translates into making the contributors familiar with our workflow, and therefore getting them immersed into what we're doing and helping bridge the gap between maintainers and contributors. I agree that this is missing from the list of things people brought up but I'd appreciate an explanation as to how this is directly translates into our workflow. As far as I can tell our workflow is what we make it; if contributions from outside a core team are done through a patch-based review instead of a git tree-based review, then patch-based review is our workflow. Because what we together produce is software stored in git trees, not series of patches. I don't follow this line of logic. The end result is software stored in git trees, but how it gets there is a totally different concern. Whether it comes from patches that are then accepted and merged, or direct merging of branches, the end result is the same. My goal is to help bridge the gap between the existing project maintainers (who produce software in git trees) and the new contributors (who produce patches). KDE purposefully has a very low barrier to entry. A contributor can normally push anywhere. Unless you set access permissions otherwise, there's no reason that a contributor, after having a patch reviewed, can't be the one to push it into the main repo. The difference is a social one; until you've been given the say so, usually new contributors do the right thing and run their changes by the maintainers. If we can offload the management of git trees to the contributors, then the following happens: - contributors learn to master the same tools as the maintainers, This will happen regardless of which tools are chosen. - there's one less thing for a maintainer to do on a contributor's behalf, This is only something the maintainer needs to do if you restrict access in the first place, which is not our normal way. - maintainers have more time to process more incoming reviews, Same as above. - contributors can eventually transition to maintainers more easily because they already know the tools. Same as above. - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). .NET is a framework, not a language. Maybe you meant C#. Thanks for educating me, but I don't think it helps move this discussion forward in a productive manner. I do. Because there are a huge number of languages that have compilers to produce .NET CLI. Some of them are indeed relatively obscure. Saying .NET doesn't mean anything in terms of which languages you are taking issue with. Let's be clear what we're talking about. Regardless, I fail to see how any of those are obscure. I sincerely believe that pushing Yet Another Runtime Environment to our contributors is something which reduces chances of them contributing. Would I install e.g. PHP to contribute to Qt? I probably would because Qt is an excellent and high profile software project. I don't think I would do this just to e.g. send a patch to a random KDE app that I use twice a year, though, and I also can't imagine people doing this to contribute to Trojita. As other people have added to the list of requirements, patch management needs to be able to be done via the web UI. Nobody has to install any runtime environment. Even if you wanted to stick to command-line only, it's too bad that you think that sending a patch to a part of KDE is not worth the same amount of effort as sending a patch to Qt, but I suppose we can't all consider KDE to be an excellent and high profile software project. They're three of the most popular and widespread languages in the world. The popularity has to be judged with our target audience in mind Yes... because we still haven't achieved dominance even on Linux, and absolutely not on other OSes. Which has what to do with it? I think that most of our contributors don't come from the pool of PHP programmers, Java programmers, or those who use the .NET framework or the most popular desktop OSes. Me neither. I still fail to see how that's relevant. These languages/frameworks/environments have historically been alien to us, and we are talking about tools that need to be on each contributor's machine in order to participate in the development. I have used git-annex successfully despite not knowing how to program in Haskell. You are free to disagree with my impression that e.g. requiring to install PHP or Mono on a dev machine provides an extra step for contributors to pass, though. Those that want to contribute will be required to install a whole slew of development packages. I absolutely disagree that adding one more to the list of packages they copy and paste from the wiki will be the straw
Re: Changes to our Git infrastructure
On 4 Jan 2015, at 10:15, Cornelius Schumacher wrote: On Saturday 03 January 2015 15:31:26 Ben Cooksley wrote: (...excellent summary of discussion...) Commentary on the above would be appreciated. There are two questions which aren't addressed int he summary, but which I think are important to have good answers for before we can take a decision. The first question is: Who do we want to address? We obviously want to address existing contributors and for that the list represents the needs quite well. But to what degree do we want to address new contributors? Collecting requirements on kde-core-devel won't give us the input we need, if we want to address people who are not already part of our community. The second question is: What are our requirements for hosting? Do we want to host it ourselves, or would we be ok with a third party hosting the infrastructure as well, and under which conditions? Both questions are related to GitHub, which has been mentioned in the discussion quite a bit. It would address a lot of our requirements and it is something especially new contributors are familiar with. I'm not saying we should simply move to GitHub, but as it is brought up so often, we maybe should review our position, and make sure that we know why we are not going with the flow, and why we are paying the price of a higher barrier of entry and the additional effort of hosting our own infrastructure. GitHub has been mentioned as a comparison point, but I can't credibly believe that we're willing to migrate to GitHub en masse, no matter what the flow of the industry is. I'm not stating my personal preferences on the matter, but the direction and feedback to the sysadmins has always been FOSS-only. If GitHub *is* on the table, then we need to consider other non-FOSS possibilities as well. I do agree that we want the barrier to entry to be as low as possible. As is often the case, I think that may conflict somewhat with what some of the more/very experienced developers might find to be most useful to them personally. Finding the best balance is a difficult task. --Jeff
Re: Changes to our Git infrastructure
On Mon, Jan 5, 2015 at 4:15 AM, Cornelius Schumacher schumac...@kde.org wrote: On Saturday 03 January 2015 15:31:26 Ben Cooksley wrote: (...excellent summary of discussion...) Commentary on the above would be appreciated. There are two questions which aren't addressed int he summary, but which I think are important to have good answers for before we can take a decision. The first question is: Who do we want to address? We obviously want to address existing contributors and for that the list represents the needs quite well. But to what degree do we want to address new contributors? Collecting requirements on kde-core-devel won't give us the input we need, if we want to address people who are not already part of our community. Good point. Traditionally we've addressed the requirements of new contributors by keeping the barrier to entry low. Considering we have all passed the barrier though it is a bit hard to see potential trip points ourselves I think. May I suggest we look at the pad Boud posted as a starting point for that? The second question is: What are our requirements for hosting? Do we want to host it ourselves, or would we be ok with a third party hosting the infrastructure as well, and under which conditions? Both questions are related to GitHub, which has been mentioned in the discussion quite a bit. It would address a lot of our requirements and it is something especially new contributors are familiar with. I'm not saying we should simply move to GitHub, but as it is brought up so often, we maybe should review our position, and make sure that we know why we are not going with the flow, and why we are paying the price of a higher barrier of entry and the additional effort of hosting our own infrastructure. -- Cornelius Schumacher schumac...@kde.org Cheers, Ben
Re: Changes to our Git infrastructure
On Sunday 04 January 2015 13:38:09 Jeff Mitchell wrote: GitHub has been mentioned as a comparison point, but I can't credibly believe that we're willing to migrate to GitHub en masse, no matter what the flow of the industry is. I'm not stating my personal preferences on the matter, but the direction and feedback to the sysadmins has always been FOSS-only. If GitHub *is* on the table, then we need to consider other non-FOSS possibilities as well. FOSS-only is a too simple requirement for a hosted service. It might be perfectly possible and fine to use a service which is not running free software as long as it doesn't force you to run non-free software. The issues are elsewhere (recommeded reading is Richard Stallman's text about this problem [1]). That's why I'm asking what exactly are our requirement there, and do the arguments we had last time we took a decision still hold? And yes, while GitHub is the poster child here, that doesn't mean we shouldn't look at other service providers, if we generally consider this to be an option. I do agree that we want the barrier to entry to be as low as possible. As is often the case, I think that may conflict somewhat with what some of the more/very experienced developers might find to be most useful to them personally. Finding the best balance is a difficult task. That's true, and that's exactly the reason why we should consciously decide what our target is. It might be perfectly valid to focus on current contributors and go with something like a gerrit-based solution, but if we want to focus on new people there might be better solutions. [1]: https://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html -- Cornelius Schumacher schumac...@kde.org
Re: Changes to our Git infrastructure
On Mon, Jan 5, 2015 at 12:45 PM, Cornelius Schumacher schumac...@kde.org wrote: On Sunday 04 January 2015 13:38:09 Jeff Mitchell wrote: GitHub has been mentioned as a comparison point, but I can't credibly believe that we're willing to migrate to GitHub en masse, no matter what the flow of the industry is. I'm not stating my personal preferences on the matter, but the direction and feedback to the sysadmins has always been FOSS-only. If GitHub *is* on the table, then we need to consider other non-FOSS possibilities as well. FOSS-only is a too simple requirement for a hosted service. It might be perfectly possible and fine to use a service which is not running free software as long as it doesn't force you to run non-free software. The issues are elsewhere (recommeded reading is Richard Stallman's text about this problem [1]). That's why I'm asking what exactly are our requirement there, and do the arguments we had last time we took a decision still hold? And yes, while GitHub is the poster child here, that doesn't mean we shouldn't look at other service providers, if we generally consider this to be an option. At least as far as I know the only hosted service we have looked at is Gitorious, and that was undertaken in part by the Board. Others have been around longer than me and may be able to comment on more though. The messaging around things we're willing to adopt has certainly always been FOSS only. Otherwise we would probably have some Atlassian products deployed already... I do agree that we want the barrier to entry to be as low as possible. As is often the case, I think that may conflict somewhat with what some of the more/very experienced developers might find to be most useful to them personally. Finding the best balance is a difficult task. That's true, and that's exactly the reason why we should consciously decide what our target is. It might be perfectly valid to focus on current contributors and go with something like a gerrit-based solution, but if we want to focus on new people there might be better solutions. There is of course a difference in preferences within our contributors as well, which we have to take into account as well. [1]: https://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html -- Cornelius Schumacher schumac...@kde.org
Re: Changes to our Git infrastructure
On Saturday 03 January 2015 15:35:12 Jeff Mitchell wrote: - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). .NET is a framework, not a language. Maybe you meant C#. Regardless, I fail to see how any of those are obscure. They're three of the most popular and widespread languages in the world. For command-line applications on Linux? -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
Re: Changes to our Git infrastructure
On Mon, Jan 5, 2015 at 2:41 PM, Thiago Macieira thi...@kde.org wrote: On Saturday 03 January 2015 15:35:12 Jeff Mitchell wrote: - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). .NET is a framework, not a language. Maybe you meant C#. Regardless, I fail to see how any of those are obscure. They're three of the most popular and widespread languages in the world. For command-line applications on Linux? We're now extremely far off topic. Let's get it back on topic here please. Ease of installation and it's the availability of the necessary interpreters within mainstream distributions should be more than sufficient criteria here. Limiting it by any other criteria is playing pure favouritism to a given set of language(s) and unnecessarily limits our options. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 Regards, Ben
Re: Changes to our Git infrastructure
On 05/01/2015, at 10:45 AM, Cornelius Schumacher wrote: On Sunday 04 January 2015 13:38:09 Jeff Mitchell wrote: I do agree that we want the barrier to entry to be as low as possible. As is often the case, I think that may conflict somewhat with what some of the more/very experienced developers might find to be most useful to them personally. Finding the best balance is a difficult task. That's true, and that's exactly the reason why we should consciously decide what our target is. It might be perfectly valid to focus on current contributors and go with something like a gerrit-based solution, but if we want to focus on new people there might be better solutions. And what about *current* developers who are NOT more or very experienced? What is the cost to them (and the KDE Community) of having to learn new tools, not to mention new libraries and porting to new libraries? Speaking for myself, I find this a huge turnoff in the KDE world and am now planning to retire from KDE as soon as I can. But then I am 76 and git is my 10th source-code control system since 1965-66, so I have little interest in mastering it. I have also found ReviewBoard utterly counter-productive this year, either because one writes an entry and nobody reviews it, or nobody understands it, or because one gets nitpicked about syntax and white space when one is really looking for helpful advice about how better to solve the problem at hand. I think I must have lost a month or two on ReviewBoard during the year, with very little helpful advice gained. So how will a new tool change that? As we used to say when I was working, New technology is the answer, but what is the question? Are the reviewers going to change their style? Nevertheless, it is refreshing to see Jeff and Ben conducting what looks like a proper requirements analysis. Good on you! I wonder also how many people have just tiptoed quietly away from the KDE Community rather than speak out about frustrations they may have been feeling. Where *did* all those people go in the last few years? And why? All the best, Ian W.
Re: Changes to our Git infrastructure
On Sat, Jan 3, 2015 at 8:57 PM, Aaron J. Seigo ase...@kde.org wrote: On Saturday, January 3, 2015 15.31:26 Ben Cooksley wrote: - System should automatically set the CC / Reviewers / etc for a review rather than the submitter needing to know who to set. It would be nice if there was an opt-out for this. I receive a large number of emails from gerrit for reviews which I have been automatically subscribed to which I have absolutely zero interest in. I'd imagine that you would only be subscribed to reviews automatically if you had requested it. Auto subscribing you to reviews when you have no interest is wrong (and i'd consider it to be spam). -- Aaron J. Seigo Cheers, Ben
Re: Changes to our Git infrastructure
On Saturday, January 3, 2015 15.31:26 Ben Cooksley wrote: - System should automatically set the CC / Reviewers / etc for a review rather than the submitter needing to know who to set. It would be nice if there was an opt-out for this. I receive a large number of emails from gerrit for reviews which I have been automatically subscribed to which I have absolutely zero interest in. -- Aaron J. Seigo signature.asc Description: This is a digitally signed message part.
Re: Changes to our Git infrastructure
On Saturday, 3 January 2015 03:31:26 CEST, Ben Cooksley wrote: Regrettably there were one or two items which conflicted. I sided with the option which kept the barrier to entry as low as possible as that seemed to be the greater consensus within the thread. Hi Ben, thanks for compiling a list. However, I was hoping that the result from this first phase would include every mentioned feature (perhaps on a wiki page?), so that we can then discuss how many people find each of these features valuable. I did not include some of the bits which others already expressed when I wrote my reply. Things I miss from the list you just gathered: - Working on git trees, not patches. This directly translates into making the contributors familiar with our workflow, and therefore getting them immersed into what we're doing and helping bridge the gap between maintainers and contributors. - Being able to tweak small bits of the review request straight from the web application (in the nice-to-have category; this is different from Developers can tweak proposed changes easily before they are landed without the involvement of the submitter.). - Retaining proper autorship (git author) of the original author without extra work. I think it's also reasonable to add: - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). - Not needing a CLI tool or an explicit authorization at all for operations such as download patch. - Project Management: - Coherent and Performant - One canonical place to get the desired information (no more duplication) - Can either be links to elsewhere or directly hosted by the system - Covers items like documentation (wiki, api), bug tracking, task boards, CI, code browsing and reviews, etc. I'm confused by this part. This thread is called Changes to our Git infrastructure. I see that code review is very relevant to that because some efficient tools do extend Git, but I don't understand why this list contains information about wikis, bug tracking and task boards. I do not think that we should be looking for a single tool to do everything (and the kitchen sink), so I would appreciate a bit more information on what exactly your opinion is here, and why so. - A weaker case exists for clone repositories - making them more nice to have than critical. I believe that people requested a place to store their changes which for some reason cannot be easily upstreamed, but at the same time they do not want to bother other folks by having a visible branch in your face in the main repo. If that is indeed the case, we should focus on this *concept* and put away the fact that it's right now implemented as GitHub-style repository clones. Other tools might very well support such a scenario by something entirely different from clone repos. - Integrated: A single application which handles everything will always be able to offer a better and more coherent experience than several applications we have connected to each other. I do not agree with that. Well-integrated applications which work well together while doing one thing well are superior to a single tool which tries to do everything. There is also a lower maintenance burden from an integrated application, as it is one piece of software to update - not 3 or 4. I am volunteering to get my hands dirty, and I believe others have expressed their willing to join the sysadmin team as well. In particular, I'll be happy to take care of the Gerrit deployment and help others perform day-to-day maintenance of Gerrit. This includes participating in the rest of the Git-hosting business, anongit, repo hooks, etc. I'm also interested in CI, which is another area in which I can help. I've worked as a sysadmin for a couple of years and am pretty familiar with treating the physical infrastructure of servers and gear as code. - Scalable: The applications which make up our infrastructure need to be able to handle the demands we place on them without consuming resources unnecessarily. That's a good goal, but seems very vague to me. When we move to next phases, it is important to spell out what these demands are to prevent possible misunderstandings. As this is quite an extensive list of requirements, we won't be able to get everyone what they're after. We'll have to do things on a best effort basis - depending on what is available, what features are missing, etc. Unfortunately there is no perfect solution here - it just does not exist. I can see all of the above fulfiled with Gerrit, but I'm OK with waiting with a proper evaluation when we call for one. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
For Gerrit: - Code Reviews: - CLI client to make changes to the code review system and to manage the review (including retrieving the commits/patches) Check. It's ssh host gerrit subcommand Client should have good documentation. - System should automatically set the CC / Reviewers / etc for a review rather than the submitter needing to know who to set. Check. Also, from experience with Tizen's Gerrit: if the automatic list has more than 3 people, all reviews stop getting done since everyone will be overwhelmed by reviews and they will thinki it's someone else's problem on this one. - Changes should be shown per-commit. Check. - Updates to reviews should leave prior reviews intact. Check. - Patches should be readable, commentable on line by line. Check. - Proposed changes are vetted by the CI system (compilability, tests, etc). Check. The most common use is to run before merging into the official tree; Qt is the only project I know that does it after. - Ability to accept the changes through the code review system Check. - Can mark a review as Bad (Don't Ship This) / Okay (Fine with it going in) / Good (Ship It) Check. And you can change at will, add more categories, roles, etc. - Can determine whether the review was by someone with commit rights. Check. Not obvious, but it is doable, since you can look up people's group memberships. Might make a nicer feature to list the group(s) they're member of in the UI. - Can produce a list of review requests given a certain set of criteria easily (preferrably savable) Vague requirement without knowing what criteria were in mind here. So I'm going to go and say check since it can look up the criteria I want. - Developers can tweak proposed changes easily before they are landed without the involvement of the submitter. Check, you can push a new commit with the same Change-Id. - Post Commit Review: - Be able to comment on reviews, other than by replying to a mail on kde-commits Check. - Project Management: - Coherent and Performant It's Java, but unlike Jenkins, we don't seem to have had problems with it for Qt. - One canonical place to get the desired information (no more duplication) Vague requirement. - Can either be links to elsewhere or directly hosted by the system Check. - Covers items like documentation (wiki, api), bug tracking, task boards, CI, code browsing and reviews, etc. Vague. Assuming items like documentation ... are in Git, everything works. - Repository Hosting: - Strong case has been made for retaining scratch repositories. Out of scope, needs separate website and tools. - A weaker case exists for clone repositories - making them more nice to have than critical. Out of scope, needs separate website and tools. Though it might be possible with the command-line, just not the web UI. I need to investigate. - Anongit propagation should be within 1 minute. Totally out of scope. - Overall: Sensible email notifications Check, requires modifications from the Qt Project, since the default email notifications are not sensible. - Overall: Capable web APIs for the system as a whole Check. There are also a couple of items which come from sysadmin, to make things easier for us in the long run: - Supported well: Upstream should be stable with a viable future. We should also be able to build a relationship with one or more developers who authored/maintain the application. This is helpful in obtaining assistance should it be necessary and assists us in getting additions upstreamed. Check. Dozens of projects use Gerrit. - Integrated: A single application which handles everything will always be able to offer a better and more coherent experience than several applications we have connected to each other. There is also a lower maintenance burden from an integrated application, as it is one piece of software to update - not 3 or 4. Not check, since Gerrit alone will not correspond to KDE's desires (project creation, scratch clones, etc.) - Care about compatibility: Upstream should have an interest in stable interfaces, both externally facing (Web APIs) and internal (application plugins, etc) As the recent Dr Konqi problems have demonstrated, upstreams which act without regard for backwards compatibility can introduce significant problems for us. Check. - Scalable: The applications which make up our infrastructure need to be able to handle the demands we place on them without consuming resources unnecessarily. I understand it is, but you'll have to speak to other sysadmins. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
Re: Changes to our Git infrastructure
On Saturday 03 January 2015 12:39:42 Lydia Pintscher wrote: On Sat, Jan 3, 2015 at 12:07 PM, Thiago Macieira thi...@kde.org wrote: For Gerrit: I think before checking Ben's list against specific implementations we should make sure the list is actually correct and complete. It's the basis for an important decision so let's do this step-by-step? :) I was only going to comment on the request to automatically add reviewers but then I thought I might as well give more information instead of a single paragraph. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
Re: Changes to our Git infrastructure
On Sat, Jan 3, 2015 at 12:07 PM, Thiago Macieira thi...@kde.org wrote: For Gerrit: I think before checking Ben's list against specific implementations we should make sure the list is actually correct and complete. It's the basis for an important decision so let's do this step-by-step? :) Cheers Lydia -- Lydia Pintscher - http://about.me/lydia.pintscher KDE e.V. Board of Directors / KDE Community Working Group http://kde.org - http://open-advice.org
Re: Changes to our Git infrastructure
On 3 Jan 2015, at 14:00, Jan Kundrát wrote: - Working on git trees, not patches. This directly translates into making the contributors familiar with our workflow, and therefore getting them immersed into what we're doing and helping bridge the gap between maintainers and contributors. I agree that this is missing from the list of things people brought up but I'd appreciate an explanation as to how this is directly translates into our workflow. As far as I can tell our workflow is what we make it; if contributions from outside a core team are done through a patch-based review instead of a git tree-based review, then patch-based review is our workflow. - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). .NET is a framework, not a language. Maybe you meant C#. Regardless, I fail to see how any of those are obscure. They're three of the most popular and widespread languages in the world. I'm confused by this part. This thread is called Changes to our Git infrastructure. I see that code review is very relevant to that because some efficient tools do extend Git, but I don't understand why this list contains information about wikis, bug tracking and task boards. I do not think that we should be looking for a single tool to do everything (and the kitchen sink), so I would appreciate a bit more information on what exactly your opinion is here, and why so. The subject line is unfortunately a bit narrow, but since code ties into everything, changes to our hosting necessarily affects all of our other systems. Changing our git infrastructure is a reasonable time to look at changing other things as well. There are a number of capabilities we'd like to provide and a number of systems we'd like to be able to consolidate. - A weaker case exists for clone repositories - making them more nice to have than critical. I believe that people requested a place to store their changes which for some reason cannot be easily upstreamed, but at the same time they do not want to bother other folks by having a visible branch in your face in the main repo. If that is indeed the case, we should focus on this *concept* and put away the fact that it's right now implemented as GitHub-style repository clones. Other tools might very well support such a scenario by something entirely different from clone repos. In this example it's the same as a scratch repo concept. The clones were meant for GH-style forks, as Gitolite eventually got the capability to do merge requests. A single application which handles everything will always be able to offer a better and more coherent experience than several applications we have connected to each other. I do not agree with that. Well-integrated applications which work well together while doing one thing well are superior to a single tool which tries to do everything. I don't think this broad generalization is any more valid than a broad generalization that single applications are always better. Regardless, we have never found a single application that handles everything acceptably, so I think this point is moot. I am volunteering to get my hands dirty, and I believe others have expressed their willing to join the sysadmin team as well. In particular, I'll be happy to take care of the Gerrit deployment I believe you are on the hook for this regardless :-) As this is quite an extensive list of requirements, we won't be able to get everyone what they're after. We'll have to do things on a best effort basis - depending on what is available, what features are missing, etc. Unfortunately there is no perfect solution here - it just does not exist. I can see all of the above fulfiled with Gerrit, but I'm OK with waiting with a proper evaluation when we call for one. I can see the above fulfilled with many tools. Gerrit is not automatically the choice simply because it checks many boxes. --Jeff
Re: Changes to our Git infrastructure
El Dissabte, 3 de gener de 2015, a les 15:31:26, Ben Cooksley va escriure: Hi all, I've gone over the comments everyone has made thus far and came up with the following community wishlist as it were. It represents a combination of what everyone has said, in a fairly distilled form. Regrettably there were one or two items which conflicted. I sided with the option which kept the barrier to entry as low as possible as that seemed to be the greater consensus within the thread. - Code Reviews: - CLI client to make changes to the code review system and to manage the review (including retrieving the commits/patches) Client should have good documentation. - System should automatically set the CC / Reviewers / etc for a review rather than the submitter needing to know who to set. - Changes should be shown per-commit. - Updates to reviews should leave prior reviews intact. - Patches should be readable, commentable on line by line. - Proposed changes are vetted by the CI system (compilability, tests, etc). - Ability to accept the changes through the code review system - Can mark a review as Bad (Don't Ship This) / Okay (Fine with it going in) / Good (Ship It) - Can determine whether the review was by someone with commit rights. - Can produce a list of review requests given a certain set of criteria easily (preferrably savable) - Developers can tweak proposed changes easily before they are landed without the involvement of the submitter. I'm missing a - Can upload patches without a CLI (i.e. via web) in the list. Cheers, Albert
Re: Changes to our Git infrastructure
On Saturday, 3 January 2015 21:35:12 CEST, Jeff Mitchell wrote: On 3 Jan 2015, at 14:00, Jan Kundrát wrote: - Working on git trees, not patches. This directly translates into making the contributors familiar with our workflow, and therefore getting them immersed into what we're doing and helping bridge the gap between maintainers and contributors. I agree that this is missing from the list of things people brought up but I'd appreciate an explanation as to how this is directly translates into our workflow. As far as I can tell our workflow is what we make it; if contributions from outside a core team are done through a patch-based review instead of a git tree-based review, then patch-based review is our workflow. Because what we together produce is software stored in git trees, not series of patches. My goal is to help bridge the gap between the existing project maintainers (who produce software in git trees) and the new contributors (who produce patches). If we can offload the management of git trees to the contributors, then the following happens: - contributors learn to master the same tools as the maintainers, - there's one less thing for a maintainer to do on a contributor's behalf, - maintainers have more time to process more incoming reviews, - contributors can eventually transition to maintainers more easily because they already know the tools. - Not needing a CLI tool in an obscure language (PHP, Java, .NET,...). .NET is a framework, not a language. Maybe you meant C#. Thanks for educating me, but I don't think it helps move this discussion forward in a productive manner. Regardless, I fail to see how any of those are obscure. I sincerely believe that pushing Yet Another Runtime Environment to our contributors is something which reduces chances of them contributing. Would I install e.g. PHP to contribute to Qt? I probably would because Qt is an excellent and high profile software project. I don't think I would do this just to e.g. send a patch to a random KDE app that I use twice a year, though, and I also can't imagine people doing this to contribute to Trojita. They're three of the most popular and widespread languages in the world. The popularity has to be judged with our target audience in mind because we still haven't achieved dominance even on Linux, and absolutely not on other OSes. I think that most of our contributors don't come from the pool of PHP programmers, Java programmers, or those who use the .NET framework or the most popular desktop OSes. These languages/frameworks/environments have historically been alien to us, and we are talking about tools that need to be on each contributor's machine in order to participate in the development. You are free to disagree with my impression that e.g. requiring to install PHP or Mono on a dev machine provides an extra step for contributors to pass, though. The subject line is unfortunately a bit narrow, but since code ties into everything, changes to our hosting necessarily affects all of our other systems. Changing our git infrastructure is a reasonable time to look at changing other things as well. There are a number of capabilities we'd like to provide and a number of systems we'd like to be able to consolidate. It isn't clear to me what exactly is being reconsidered at this point. I was told that CI is specifically not in scope, and now I read that wiki pages and issue tracking is being considered. I don't understand where the line was drawn and why. My impression is that the goals for a code review tool are very different from needs for a project management tool. The sysadmins appear to have a strong preference for a unified tool to do both. As a (non-KDE) sysadmin, I understand the general reasoning, but at the same time, as a developer I do not really care about that, and am strongly against using an inferior tool just because it was easier to install and takes less effort to maintain. To put my money where my mouth is, yes, I am willing to maintain the extra systems, and I have been doing this with Gerrit (and CI) for a couple of months already. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
Hi all, I've gone over the comments everyone has made thus far and came up with the following community wishlist as it were. It represents a combination of what everyone has said, in a fairly distilled form. Regrettably there were one or two items which conflicted. I sided with the option which kept the barrier to entry as low as possible as that seemed to be the greater consensus within the thread. - Code Reviews: - CLI client to make changes to the code review system and to manage the review (including retrieving the commits/patches) Client should have good documentation. - System should automatically set the CC / Reviewers / etc for a review rather than the submitter needing to know who to set. - Changes should be shown per-commit. - Updates to reviews should leave prior reviews intact. - Patches should be readable, commentable on line by line. - Proposed changes are vetted by the CI system (compilability, tests, etc). - Ability to accept the changes through the code review system - Can mark a review as Bad (Don't Ship This) / Okay (Fine with it going in) / Good (Ship It) - Can determine whether the review was by someone with commit rights. - Can produce a list of review requests given a certain set of criteria easily (preferrably savable) - Developers can tweak proposed changes easily before they are landed without the involvement of the submitter. - Post Commit Review: - Be able to comment on reviews, other than by replying to a mail on kde-commits - Project Management: - Coherent and Performant - One canonical place to get the desired information (no more duplication) - Can either be links to elsewhere or directly hosted by the system - Covers items like documentation (wiki, api), bug tracking, task boards, CI, code browsing and reviews, etc. - Repository Hosting: - Strong case has been made for retaining scratch repositories. - A weaker case exists for clone repositories - making them more nice to have than critical. - Anongit propagation should be within 1 minute. - Overall: Sensible email notifications - Overall: Capable web APIs for the system as a whole There are also a couple of items which come from sysadmin, to make things easier for us in the long run: - Supported well: Upstream should be stable with a viable future. We should also be able to build a relationship with one or more developers who authored/maintain the application. This is helpful in obtaining assistance should it be necessary and assists us in getting additions upstreamed. - Integrated: A single application which handles everything will always be able to offer a better and more coherent experience than several applications we have connected to each other. There is also a lower maintenance burden from an integrated application, as it is one piece of software to update - not 3 or 4. - Care about compatibility: Upstream should have an interest in stable interfaces, both externally facing (Web APIs) and internal (application plugins, etc) As the recent Dr Konqi problems have demonstrated, upstreams which act without regard for backwards compatibility can introduce significant problems for us. - Scalable: The applications which make up our infrastructure need to be able to handle the demands we place on them without consuming resources unnecessarily. Commentary on the above would be appreciated. As this is quite an extensive list of requirements, we won't be able to get everyone what they're after. We'll have to do things on a best effort basis - depending on what is available, what features are missing, etc. Unfortunately there is no perfect solution here - it just does not exist. Thanks, Ben
Re: Changes to our Git infrastructure
On Tuesday 23 December 2014 13.21:37 Milian Wolff wrote: On Wednesday 24 December 2014 00:20:18 Ben Cooksley wrote: Hi all, As has been made evident in the prior thread there are quite a few interesting ideas floating around about what our Git infrastructure should be capable of. Our current one was constructed when KDE first seriously migrated to Git following the Gitorious experiments, and it shows. (As a sysadmin I can attest that parts of it are held together by digital glue and tape). Before we go ahead and jump to a new platform though - we need to know what we want. Can everyone please suggest what they think are the things they'd like to see feature wise? In doing so, please refrain from mentioning any existing solutions - all we want to do at this point is construct a wishlist of what people would like to see the system be capable of. Items that we (sysadmin) would like to see community comment on include the code review system, clone and scratch repositories and how they function, and whether people would be bothered by repository locations changing as they move around. Also useful would be comment on how anongit and other systems that rely on the Git infastructure work. Here's a list of things that I'd like to have for my workflow, which is basically two folded: On one hand, I actively develop new software and new features. On the other hand, I spent a considerable amount of KDE time reviewing other peoples work. ## The Developer For productivity, I'd love to have the ability to push changes directly from the command line to somewhere others can then review the code. This should support both, individual commits as well as feature branches. I.e. when pushing a merge request for review, I still want others to see individual commits. Updating such reviews should be trivial and keeps the review history intact. I can just continue hacking and push new changes as they come without influencing the previous patches sent for review. Optimally, I'm never forced to go to a website to manipulate the review. I.e. to add reviewers, or select branches or other metadata. Nor do I want to be forced to manually publish a review, I just pushed it for review after all. ## The Reviewer Here, my biggest wish reflects that of the developer: I want to be able to see the developers intent, i.e. individual commits that make up one bigger mergeable hunk. I want to comment directly on lines of code in the patch. The patch should be displayed as easily readable as possible, with syntax highlighting and side-by-side diff view. As much as possible should be shown on a single page, I do not want to be forced to navigate between different files or the like, I need to see the big picture. Optimally, I could apply hotfixes, such as whitespace changes, directly when doing the review. Finally, once the review is good to go, I want to click a button (or better: hotkey) to merge the patch into the upstream branch. Furthermore, I'd like to use the same review mechanism for post-review. When a patch is triggering problems, I'd like to start a discussion in the context of the commit that was merged. Again, I want to annotate source lines. So rather than sending mails to kde-commits which are then lost, I want to have that tracked on a website for others to see. Excellent summary, I fully agree. Cheers, Christian
Re: Changes to our Git infrastructure
On Monday 29 December 2014 11.23:19 Ben Cooksley wrote: Hi all, Based on the current feedback: 1) It seems people see no use in clone repositories. 2) Little commentary has been made on the merits of scratch repositories, with some dismissing them as pointless. Therefore sysadmin proposes that both clone and scratch repositories be eliminated as a concept with the next iteration of our Git infrastructure. Having some mechanism where a developer can just create his own repositories that may or may not be shared with others is IMO essential. With the current infrastructure scratch repositories provide this mechanism and if not replaced with something similar I don't think it would be a good idea to remove this functionality. I find clones useful to publish my private branches somewhere, either as backup, or to share with someone. I also use force-pushes sometimes on those to i.e. cleanup a patch queue, and to avoid proliferation of branches by using $branchv1, $branchv2, ... If we established that everyone pushes his branches into a prefix (cmollekopf/lksjflsjdf), and we can force-push and delete branches, then clones become IMO less important. Cheers, Christian
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 17:13, Thomas Lübking wrote: On Montag, 29. Dezember 2014 22:25:33 CEST, Jeff Mitchell wrote: They don't. If I remember conversations of four years ago correctly, it's partly out of the fear of horrible rants from users that decide two years later that in fact they *did* want that code that they pushed up and left sitting there. :-) Maybe I'm stupid, but one could just send a mail WARNING: your scratch repo foobar will be automatically deleted due to inactivity within 1 month / 2 weeks / 1 week / 5/3/2/1 days (Saturday, May 16th) See https://www.kde.org/dontspamourgit.html on scratch repo policy details. Of course we could do that and we've thought of doing so but have not implemented such a policy so far. --Jeff
Re: Changes to our Git infrastructure
On Dienstag, 30. Dezember 2014 16:31:20 CEST, Martin Klapetek wrote: Not necessarily, some projects may just be finished and don't need more commits. Yes, of course - but I'd assume they'd be transferred from scratch to playground/extragear/whatever then? Also I did not mean to imply you didn't commit yesterday, gone is your stuff, but starting to ping the user after half a year of inactivity, opting in for prolongation click here - the idea should be to get bit rot out, not to destroy anyones work. Cheers, Thomas
Re: Changes to our Git infrastructure
On 30 Dec 2014, at 10:56, Thomas Lübking wrote: On Dienstag, 30. Dezember 2014 16:31:20 CEST, Martin Klapetek wrote: Not necessarily, some projects may just be finished and don't need more commits. Yes, of course - but I'd assume they'd be transferred from scratch to playground/extragear/whatever then? Also I did not mean to imply you didn't commit yesterday, gone is your stuff, but starting to ping the user after half a year of inactivity, opting in for prolongation click here - the idea should be to get bit rot out, not to destroy anyones work. This is all a sidebar anyways, as the current problems with scratch repos are not really relevant. The solutions we're looking at to replace our current infrastructure do not have the necessary bits to support this kind of workflow *right now*. This does not mean that they could not in the future, even the near future. But in the *short term* they would require a manual step by sysadmins or by those that want to help out the sysadmins with this and are given privs to do so. There's a useful metric, which is that if you take the number of current scratch repos and divide them by the number of days we've had the current infrastructure, you end up with something close enough to 0.5. As in, on average, someone creates a new scratch repo once every two days. If you then look at the length of time since last commit for the vast majority of the repositories, you'll see that within the last couple of years, that number is way, way lower. The point being that having a manual step in some near term doesn't mean that dozens of scratch repos a day are going to be sitting waiting on someone to create them. Yes, it's useful to be able to have a repo *right now*, but up until such a thing could be automated again, I'd like to try to take advantage of our international nature and get some interested parties to simply help try to ensure that there is 24/7 coverage so turnaround time is short. In addition, once a solution is finalized, someone could take on the task of working with sysadmins and upstream to get such a solution implemented. Most people are using scratch to have a place to store a new experiment, where pushing code from their local repo to the new scratch repo in a few hours instead of right now isn't that big a deal. I've seen the mail about how someone needed a repo that they could get distributed to multiple boxes *this very second* and complained about the anongits taking a while to get that new repo distributed, so they ended up using GitHub (presumably, in the short term). I'd prefer to avoid that needing to be necessary, but this is really not a widespread problem. The numbers just don't back it up. --Jeff
Re: Changes to our Git infrastructure
N not scratch repos. I can see clones being useless as branches in the actual repos should be used instead, but I personally consider scratch repos a very useful thing, for example to host simple projects that shouldn't be part of any main/big module - they are much more easier to set up than proper repositories - mostly because they don't require manual sysadmin actions (and fileing tickets by the developer), it's a personal git space readily available. +1, I also think scratch repos are useful and shouldn't be removed mostly for the reasons Martin quoted.
Re: Changes to our Git infrastructure
On Sun, Dec 28, 2014 at 5:23 PM, Ben Cooksley bcooks...@kde.org wrote: Hi all, Based on the current feedback: 1) It seems people see no use in clone repositories. Personal clones are for forks. If you can't get a patch set accepted by upstream, its equally unlikely that upstream are going to let you put a private branch in their repo for sharing that patch set. I'm sure I'm not the only one carrying patches that are arguably sharable but not upstreamable. I've also used clones to share an experiment that may not belong in the proper repo now or ever. Making everyone who uses the main repo pay to carry an experimental branch is somewhat unfriendly, especially if you're not normally involved with the project. You may also wish to avoid the scrutiny of the others involved in the main project until you're ready, which the sudden appearance of a new branch during checkout would certainly invite. 2) Little commentary has been made on the merits of scratch repositories, with some dismissing them as pointless. As I see it, scratch repos are the first stage in a project's life cycle. Before playground, you might fiddle with something, drop it in a scratch repo and share the link on IRC. Deleting it is painless when you discover that your idea is terrible, or already exists elsewhere. Therefore sysadmin proposes that both clone and scratch repositories be eliminated as a concept with the next iteration of our Git infrastructure. We've now begun the process of shortlisting candidate software for evaluation, so those who haven't yet responded are urged to do so soon. There are probably still quite a few people away for the holiday season, perhaps this decision can be deferred for a couple of weeks until its more likely that everyone is back and paying attention? Thanks, Ben
Re: Changes to our Git infrastructure
On Monday, 29 December 2014 17:03:25 CEST, argonel wrote: Personal clones are for forks. If you can't get a patch set accepted by upstream, its equally unlikely that upstream are going to let you put a private branch in their repo for sharing that patch set. This is a social issue, then. What yuo describe makes sense -- if a patch is extremely dirty, for example, I can imagine a project maintainer not willing to carry it as a visible branch in their repo. However, the personal prefixes appear to solve this problem semi-neatly. A perfect solution would be refs that aren't getting included in clones (and guess what, there's one review system which works exactly like that). I'm sure I'm not the only one carrying patches that are arguably sharable but not upstreamable. Got an example so that I know what you're describing? I've also used clones to share an experiment that may not belong in the proper repo now or ever. Making everyone who uses the main repo pay to carry an experimental branch is somewhat unfriendly, especially if you're not normally involved with the project. You may also wish to avoid the scrutiny of the others involved in the main project until you're ready, which the sudden appearance of a new branch during checkout would certainly invite. That's a valid concern. On the other hand, it's a pretty simple way of enforcing collaboration. There were keynotes during the last Akademy where people mentioned their worrying about development moving into isolated silos. Disabling clones leads directly to sort of an enforced collaboration (or, failing that, to people pushing stuff to GitHub). As I see it, scratch repos are the first stage in a project's life cycle. Before playground, you might fiddle with something, drop it in a scratch repo and share the link on IRC. Deleting it is painless when you discover that your idea is terrible, or already exists elsewhere. I agree with scratch repos being useful as a first step. There are probably still quite a few people away for the holiday season, perhaps this decision can be deferred for a couple of weeks until its more likely that everyone is back and paying attention? +1, and sending a mail to kde-cvs-announce to make sure all KDE account holders are aware of both this and the other thread is a good idea. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 11:36, Jan Kundrát wrote: As I see it, scratch repos are the first stage in a project's life cycle. Before playground, you might fiddle with something, drop it in a scratch repo and share the link on IRC. Deleting it is painless when you discover that your idea is terrible, or already exists elsewhere. I agree with scratch repos being useful as a first step. Except nobody deletes it. That's a large problem. Scratch is nice in concept but it's a sysadmin nightmare. Out of the 846 repos I currently count in scratch/, nearly all of them haven't seen a commit in years. Meanwhile that's an extra 846 repos that have to be hosted, distributed to anongits, and backed up. That's not just a lot; that's the largest piece of our Git hosting. There are more scratch repos than normal repos. If clone repos were excluded, scratch repos would actually be a majority of all repos -- and again, most of them haven't been touched in years. People complain about propagation delay of repos to anongits -- syncing all these totally outdated repos is a major reason. I understand the reason people like them -- as a place to test out early concepts before making them official projects -- but I think that a combination of social changes and technical changes can address losing them. One social change would be divesting ourselves of the idea that getting a Git repo from sysadmins is onerous. You can start a git repo locally and push it up later; the extra few hours or even a day it might take to get a hosted version should really not be the reason that your project simply cannot see the light of day. Another social change, in combination with a technical change, would be to get interested people who would like to see this kind of thing happen faster and have them take on specific sysadmin tasks -- for instance, creating repos on request as soon as possible, spreading the workload out so that any given request is likely to be handled faster (your standard task queue). The reason it's semi-onerous now (but we should stop thinking that it is, see above) is due to lack of manpower. But volunteers can be given rights to handle specific ticket types without having to become full sysadmins. Like anything else, if people think it takes too long, get involved. Clones (336 of them) are also nice in concept but with better code review and/or auditing capabilities (especially pre-commit capabilities), I think they will become less important, and remarks on this thread seem to back that idea up. On GitHub they're mostly used to prepare branches for merge requests because random user X can't commit to a branch in repo Y, but KDE's open-to-all-by-default policy, and generally decent project communication (IRC, mailing lists, and other means), makes that less necessary. Approved developers discussing improvements with developers are more likely to get approved to have a branch in the main repo; tiny fixes can be approved via a pre-commit audit. IOW, I think losing clones can be dealt with by some reasonable workflow rejiggering and social engineering. Remember, we don't have the resources of GitHub or Bitbucket. No solution will be 100%. We're trying to decide what solution will, on balance, be closest to that 100%. But this also needs to factor in actual sysadmin time constraints/availability. Sorry to be the sad-sack voice in this conversation. Ben and I have been having many conversations about alternate hosting mechanisms over the past few days, weeks, months, and (yes, really) years, and he's definitely Good Cop and I'm definitely Bad Cop when it comes to meeting every single desire of every single community member. We'd both love to do it (again, really), but I'm trying to be pragmatic, not the least because my availability is very hit and miss now and so even more burden falls on Ben. I don't want the minimal sysadmin staff we have getting crushed by the weight of requirements. Again -- I'd like to see us get as close to 100% as possible, and I think that some features that a few people find very useful -- but that can fairly effectively be addressed through other means -- and that cause amazing amounts of sysadmin and system burden should be up on the chopping block unless there are truly compelling arguments against. --Jeff
Re: Changes to our Git infrastructure
On Mon, Dec 29, 2014 at 11:36 AM, Jan Kundrát j...@kde.org wrote: On Monday, 29 December 2014 17:03:25 CEST, argonel wrote: Personal clones are for forks. If you can't get a patch set accepted by upstream, its equally unlikely that upstream are going to let you put a private branch in their repo for sharing that patch set. This is a social issue, then. What yuo describe makes sense -- if a patch is extremely dirty, for example, I can imagine a project maintainer not willing to carry it as a visible branch in their repo. In one case, *I* am technically that maintainer. I have a personal clone that has a very invasive patch set, that I rebase just about every time I touch it. Once the design is entirely hammered out I'll share the changes, but I think if it were a branch in the main repo it would be quite annoying for others - and maybe for me if someone decided to help. As a personal clone I can disclaim liability for being annoying with the rebasing, and it comes with a sense of privacy in that maybe I don't want any help. I also have a patch set that requires a forked KMessageWidget. (This was from before it was moved to KWidgetsAddons). If I hadn't been the only developer interested in experimenting with my changes to KMW, I could have created a scratch repo for a lib containing only the modified KMW, and a personal clone of Konversation that used it. In KDE3 times, I had a fork of QTextEdit. Since we had qt-copy, I could have used a personal clone to house that fork instead of importing it into Konversation. I think I still could, since we have qt.git. However, the personal prefixes appear to solve this problem semi-neatly. A perfect solution would be refs that aren't getting included in clones (and guess what, there's one review system which works exactly like that). I'm sure I'm not the only one carrying patches that are arguably sharable but not upstreamable. Got an example so that I know what you're describing? Well, to avoid any undesirable discussion, lets use something contrived instead of.. fraught.. as an example: Konversation uses a treeview that acts exactly like a tab view. Which means that when you scroll the treelist via the mouse scrollwheel, it moves the selection instead of scrolling the list. Upstream disagrees with mixing the metaphors and therefore has rejected my patch. (In truth, I didn't feel strongly enough about the idea to even create a patch) With enough activity around said personal clone, an argument to the maintainer might be made for a configuration option, maybe even one that's visible in the config dialog. I have a couple of other UI patches of similar nature, that have bitrotted since I moved to Fedora. In theory, had I shared them in personal clones, someone else might have continued to keep the patches up to date. In the first example above, in time those of us using the forked KMessageWidget might have been able to finally win our case with the KMessageWidget maintainer to cause my changes to be included. (In reality though, my changes are probably useless and have never been shared except as screenshots) I've also used clones to share an experiment that may not belong in the proper repo now or ever. Making everyone who uses the main repo pay to carry an experimental branch is somewhat unfriendly, especially if you're not normally involved with the project. You may also wish to avoid the scrutiny of the others involved in the main project until you're ready, which the sudden appearance of a new branch during checkout would certainly invite. That's a valid concern. On the other hand, it's a pretty simple way of enforcing collaboration. There were keynotes during the last Akademy where people mentioned their worrying about development moving into isolated silos. Disabling clones leads directly to sort of an enforced collaboration (or, failing that, to people pushing stuff to GitHub). I wasn't there so I don't have any context for this. As I see it, scratch repos are the first stage in a project's life cycle. Before playground, you might fiddle with something, drop it in a scratch repo and share the link on IRC. Deleting it is painless when you discover that your idea is terrible, or already exists elsewhere. I agree with scratch repos being useful as a first step. There are probably still quite a few people away for the holiday season, perhaps this decision can be deferred for a couple of weeks until its more likely that everyone is back and paying attention? +1, and sending a mail to kde-cvs-announce to make sure all KDE account holders are aware of both this and the other thread is a good idea. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Mon, Dec 29, 2014 at 12:13 PM, Jeff Mitchell mitch...@kde.org wrote: On 29 Dec 2014, at 11:36, Jan Kundrát wrote: As I see it, scratch repos are the first stage in a project's life cycle. Before playground, you might fiddle with something, drop it in a scratch repo and share the link on IRC. Deleting it is painless when you discover that your idea is terrible, or already exists elsewhere. I agree with scratch repos being useful as a first step. Except nobody deletes it. That's a large problem. Scratch is nice in concept but it's a sysadmin nightmare. I thought they expired automatically, perhaps others are under that impression as well? Out of the 846 repos I currently count in scratch/, nearly all of them haven't seen a commit in years. Meanwhile that's an extra 846 repos that have to be hosted, distributed to anongits, and backed up. That's not just a lot; that's the largest piece of our Git hosting. There are more scratch repos than normal repos. If clone repos were excluded, scratch repos would actually be a majority of all repos -- and again, most of them haven't been touched in years. People complain about propagation delay of repos to anongits -- syncing all these totally outdated repos is a major reason. I understand the reason people like them -- as a place to test out early concepts before making them official projects -- but I think that a combination of social changes and technical changes can address losing them. One social change would be divesting ourselves of the idea that getting a Git repo from sysadmins is onerous. You can start a git repo locally and push it up later; the extra few hours or even a day it might take to get a hosted version should really not be the reason that your project simply cannot see the light of day. Another social change, in combination with a technical change, would be to get interested people who would like to see this kind of thing happen faster and have them take on specific sysadmin tasks -- for instance, creating repos on request as soon as possible, spreading the workload out so that any given request is likely to be handled faster (your standard task queue). The reason it's semi-onerous now (but we should stop thinking that it is, see above) is due to lack of manpower. But volunteers can be given rights to handle specific ticket types without having to become full sysadmins. Like anything else, if people think it takes too long, get involved. Sign me up, I'll do this. I'd also be willing to chase down the owners of old scratch repos and personal clones, similar to Albert's maintenance of stale open reviews. My availability isn't perfect, but I am in UTC-5:00 which might come in handy. Clones (336 of them) are also nice in concept but with better code review and/or auditing capabilities (especially pre-commit capabilities), I think they will become less important, and remarks on this thread seem to back that idea up. On GitHub they're mostly used to prepare branches for merge requests because random user X can't commit to a branch in repo Y, but KDE's open-to-all-by-default policy, and generally decent project communication (IRC, mailing lists, and other means), makes that less necessary. Approved developers discussing improvements with developers are more likely to get approved to have a branch in the main repo; tiny fixes can be approved via a pre-commit audit. IOW, I think losing clones can be dealt with by some reasonable workflow rejiggering and social engineering. Remember, we don't have the resources of GitHub or Bitbucket. No solution will be 100%. We're trying to decide what solution will, on balance, be closest to that 100%. But this also needs to factor in actual sysadmin time constraints/availability. Sorry to be the sad-sack voice in this conversation. Ben and I have been having many conversations about alternate hosting mechanisms over the past few days, weeks, months, and (yes, really) years, and he's definitely Good Cop and I'm definitely Bad Cop when it comes to meeting every single desire of every single community member. We'd both love to do it (again, really), but I'm trying to be pragmatic, not the least because my availability is very hit and miss now and so even more burden falls on Ben. I don't want the minimal sysadmin staff we have getting crushed by the weight of requirements. Again -- I'd like to see us get as close to 100% as possible, and I think that some features that a few people find very useful -- but that can fairly effectively be addressed through other means -- and that cause amazing amounts of sysadmin and system burden should be up on the chopping block unless there are truly compelling arguments against. --Jeff
Re: Changes to our Git infrastructure
Hi, On Mon, 29 Dec 2014 12:13:38 -0500 Jeff Mitchell mitch...@kde.org wrote: On 29 Dec 2014, at 11:36, Jan Kundrát wrote: I agree with scratch repos being useful as a first step. Except nobody deletes it. That's a large problem. Scratch is nice in concept but it's a sysadmin nightmare. Out of the 846 repos I currently count in scratch/, nearly all of them haven't seen a commit in years. Meanwhile that's an extra 846 repos that have to be hosted, distributed to anongits, and backed up. That's not just a lot; that's the largest piece of our Git hosting. There are more scratch repos than normal repos. If clone repos were excluded, scratch repos would actually be a majority of all repos -- and again, most of them haven't been touched in years. People complain about propagation delay of repos to anongits -- syncing all these totally outdated repos is a major reason. ok, I can see your point. But, personally, I was absolutely unaware of that problem, so far. And, while it's absolutely possible that I've simply missed the relevant discussions(*), I tend to think that I may not be the only one. In fact, at a cursory glance, I cannot even find any relevant words of caution on either - https://sysadmin.kde.org/services/code-repositories/ or - https://community.kde.org/Sysadmin/GitKdeOrgManual . So lets not abandon a very useful concept without giving some soft measures a try, first: - Call for deletion of obsolete scratch repositories every once in a while. In fact, as a reaction to your mail, I will go ahead and delete my current (obsolete) scratch repo, right away. - Clearly state in the docs that scratch repos should be used with resource consumption in mind. - Every once in a while (fully automated or not), identify repositories that have not seen a commit in a year (most of them, as you say), and send mail to their owners requesting to do some sort of ping. Delete / archive repositories that have not seen a ping or other activity after a sensible grace period. Regards Thomas (*) I'm only just moving my main project to kde.org; but I have been contributing on-and-off, and following kde-core-devel on-and-off, for years. signature.asc Description: PGP signature
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 14:00, Thomas Friedrichsmeier wrote: Out of the 846 repos I currently count in scratch/, nearly all of them haven't seen a commit in years. Meanwhile that's an extra 846 repos that have to be hosted, distributed to anongits, and backed up. That's not just a lot; that's the largest piece of our Git hosting. There are more scratch repos than normal repos. If clone repos were excluded, scratch repos would actually be a majority of all repos -- and again, most of them haven't been touched in years. People complain about propagation delay of repos to anongits -- syncing all these totally outdated repos is a major reason. ok, I can see your point. But, personally, I was absolutely unaware of that problem, so far. And, while it's absolutely possible that I've simply missed the relevant discussions(*), I tend to think that I may not be the only one. In fact, at a cursory glance, I cannot even find any relevant words of caution on either - https://sysadmin.kde.org/services/code-repositories/ or - https://community.kde.org/Sysadmin/GitKdeOrgManual . So lets not abandon a very useful concept without giving some soft measures a try, first: I just want to point out that scratch repos may be useful to some people, but are also the easiest repo type for anyone to host anywhere, including on their own local filesystem. The concept was a bit flawed from the beginning -- it turned our Git hosting into a generic repository hosting system, even if only for confirmed developers. Yes, it's nice to have remote backup, but you can also get this from many other providers, your own server, your own laptop, or more. I'm not saying that it shouldn't be easy for developers to get repositories to play around with on KDE infrastructure. I'm just questioning the idea (as in my original email, which is not part of your quote) that actually asking a sysadmin for one is too onerous a burden, so onerous that such projects will simply immediately fail to thrive, instead of the developer simply waiting an extra X hours to be able to push up to a central hosted repo from the local system. Those that feel that this is just too high a price to pay could help reduce it by handling repo requests. Scratch repos are also not just problematic in terms of all of the out-of-date repositories; they're very much a feature enabled by our current system (they were enabled because we could do it, so why not). If we want to move to a new system and the many other benefits it might provide, the kind of sandboxing that makes scratch a safe place for developers to create repos at will may be hard to provide without more of the types of unmaintainable patches and customizing that cause Ben to describe our system as being held together with glue and duct tape. (The current scratch area itself is already entirely custom-coded on top of Gitolite, and that means it must be maintained.) --Jeff
Re: Changes to our Git infrastructure
Hi, On Mon, 29 Dec 2014 14:41:03 -0500 Jeff Mitchell mitch...@kde.org wrote: I just want to point out that scratch repos may be useful to some people, but are also the easiest repo type for anyone to host anywhere, including on their own local filesystem. The concept was a bit flawed from the beginning -- it turned our Git hosting into a generic repository hosting system, even if only for confirmed developers. Yes, it's nice to have remote backup, but you can also get this from many other providers, your own server, your own laptop, or more. well, in many but not all cases, this may be true. Here's my example use case: I am currently considering hosting an i18n supplement in a scratch repo. The idea would be to make it easy for developers or build-systems to clone translations from this. Not quite sure the idea will fly, so I'm shy to request a real repo for this. But also, a local repo would be pointless, and using a separate provider would feel wrong. Branching is equally out of question, as this is separate data. I'm not saying that it shouldn't be easy for developers to get repositories to play around with on KDE infrastructure. I'm just questioning the idea (as in my original email, which is not part of your quote) that actually asking a sysadmin for one is too onerous a burden, so onerous that such projects will simply immediately fail to thrive, instead of the developer simply waiting an extra X hours to be able to push up to a central hosted repo from the local system. Those that feel that this is just too high a price to pay could help reduce it by handling repo requests. No, having to ask a sysadmin is not necessarily a show-stopper to me. But it certainly does create the aura of don't do this unless you are sure you know what you are doing. Also note that currently the wording on the wiki is: Note that we have deliberately decided not to allow the direct creation of KDE Playground projects; the path to existence for a KDE Playground repository project always leads through a personal scratch space first. This is to give you the power to decide whether your project is ready, and also to force you to deliberate whether it truly is. Well, that could be changed. And the psychological barrier could further be lowered by providing a dedicated web form, for instance. Note that I'm not really attached to the exact process of creating a scratch repo. But the _concept_ of being able to create a repo - without _any_ questions asked (other than the name) - in a not-quite-as-visible area / prefix - following more liberal rules, e.g. about force pushing seems important to me. Scratch repos are also not just problematic in terms of all of the out-of-date repositories; they're very much a feature enabled by our current system (they were enabled because we could do it, so why not). If we want to move to a new system and the many other benefits it might provide, the kind of sandboxing that makes scratch a safe place for developers to create repos at will may be hard to provide without more of the types of unmaintainable patches and customizing that cause Ben to describe our system as being held together with glue and duct tape. (The current scratch area itself is already entirely custom-coded on top of Gitolite, and that means it must be maintained.) I am absolutely not qualified to comment on the pain this is causing to you sysadmins. But are we talking about / is the problem inherent to the _concept_ of scratch repos, or is it a problem of the implementation of how exactly scratch repos are created? Regards Thomas signature.asc Description: PGP signature
Re: Changes to our Git infrastructure
On Monday, 29 December 2014 20:41:03 CEST, Jeff Mitchell wrote: (The current scratch area itself is already entirely custom-coded on top of Gitolite, and that means it must be maintained.) Can we take a look at these custom patches? I'm asking because I see this exact feature described at upstream's manual at [1]. What are the KDE-specific additions? With kind regards, Jan [1] http://gitolite.com/gitolite/wild.html#deleting-a-wild-repo -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On Monday, 29 December 2014 19:44:21 CEST, Jeremy Whiting wrote: 2. The students typically change their commits quite often after review (sometimes many times to finally get it right) and force pushing isn't permitted, but is on clones. I guess 2 could be solved with more commits rather than changing the commits though. In my personal opinion. the moment we adjust our workflow from a good one (rebase locally, force push) to a worse one (with commits such as fix missing semicolon) just to work around an ACL setup of a git hosting, we're doing things very wrong. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 15:23, Jan Kundrát wrote: On Monday, 29 December 2014 20:41:03 CEST, Jeff Mitchell wrote: (The current scratch area itself is already entirely custom-coded on top of Gitolite, and that means it must be maintained.) Can we take a look at these custom patches? I'm asking because I see this exact feature described at upstream's manual at [1]. What are the KDE-specific additions? In sysadmin/repo-management as always. The custom stuff is not the ability to delete. It's keying scratch and clone commands to specific users to ensure that users can a) only put these in proper locations and b) only access and perform commands on the right repos. Also, some of our stuff got upstreamed to Gitolite over time. --Jeff
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 15:20, Thomas Friedrichsmeier wrote: well, in many but not all cases, this may be true. Here's my example use case: I am currently considering hosting an i18n supplement in a scratch repo. The idea would be to make it easy for developers or build-systems to clone translations from this. Not quite sure the idea will fly, so I'm shy to request a real repo for this. But also, a local repo would be pointless, and using a separate provider would feel wrong. Branching is equally out of question, as this is separate data. Right -- so my suggestion is that we work to get rid of that shyness. That's a social issue. See below... I'm not saying that it shouldn't be easy for developers to get repositories to play around with on KDE infrastructure. I'm just questioning the idea (as in my original email, which is not part of your quote) that actually asking a sysadmin for one is too onerous a burden, so onerous that such projects will simply immediately fail to thrive, instead of the developer simply waiting an extra X hours to be able to push up to a central hosted repo from the local system. Those that feel that this is just too high a price to pay could help reduce it by handling repo requests. No, having to ask a sysadmin is not necessarily a show-stopper to me. But it certainly does create the aura of don't do this unless you are sure you know what you are doing. Also note that currently the wording on the wiki is: Note that we have deliberately decided not to allow the direct creation of KDE Playground projects; the path to existence for a KDE Playground repository project always leads through a personal scratch space first. This is to give you the power to decide whether your project is ready, and also to force you to deliberate whether it truly is. Exactly, so this is the root of the social issue. And for the current git hosting solution, this is correct. But for the next gen solution, it doesn't have to be. Well, that could be changed. And the psychological barrier could further be lowered by providing a dedicated web form, for instance. Note that I'm not really attached to the exact process of creating a scratch repo. But the _concept_ of being able to create a repo - without _any_ questions asked (other than the name) - in a not-quite-as-visible area / prefix - following more liberal rules, e.g. about force pushing seems important to me. Sure. So I think this is something that can be accommodated except for the you-do-it-yourselfness. And for what it's worth, it's possible that the do-it-yourselfness could still be accommodated but would require custom patching -- currently -- and that is something that we are somewhat loathe to do to the greatest extent possible. It has been the root of many a problem, especially in Bugzilla. Scratch repos are also not just problematic in terms of all of the out-of-date repositories; they're very much a feature enabled by our current system (they were enabled because we could do it, so why not). If we want to move to a new system and the many other benefits it might provide, the kind of sandboxing that makes scratch a safe place for developers to create repos at will may be hard to provide without more of the types of unmaintainable patches and customizing that cause Ben to describe our system as being held together with glue and duct tape. (The current scratch area itself is already entirely custom-coded on top of Gitolite, and that means it must be maintained.) I am absolutely not qualified to comment on the pain this is causing to you sysadmins. But are we talking about / is the problem inherent to the _concept_ of scratch repos, or is it a problem of the implementation of how exactly scratch repos are created? I'm honestly not sure how to answer that; scratch repos are very much an implementation because we had a solution. It seemed like something that could be useful, and we had the capability with the current software, so we did it. In hindsight, it has been problematic. --Jeff
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 13:38, argonel wrote: Except nobody deletes it. That's a large problem. Scratch is nice in concept but it's a sysadmin nightmare. I thought they expired automatically, perhaps others are under that impression as well? They don't. If I remember conversations of four years ago correctly, it's partly out of the fear of horrible rants from users that decide two years later that in fact they *did* want that code that they pushed up and left sitting there. :-) --Jeff
Re: Changes to our Git infrastructure
On Mon, 29 Dec 2014 16:19:37 -0500 Jeff Mitchell mitch...@kde.org wrote: On 29 Dec 2014, at 15:20, Thomas Friedrichsmeier wrote: I am absolutely not qualified to comment on the pain this is causing to you sysadmins. But are we talking about / is the problem inherent to the _concept_ of scratch repos, or is it a problem of the implementation of how exactly scratch repos are created? I'm honestly not sure how to answer that; scratch repos are very much an implementation because we had a solution. It seemed like something that could be useful, and we had the capability with the current software, so we did it. In hindsight, it has been problematic. What I mean is, it seems somewhat unclear what aspects exactly of scratch repos are the problem. So I'll try to clarify: To me, the essence of the concept of a scratch repo is the three points, I listed, i.e. (reiterating), creating a repo - without _any_ questions asked (other than the name) - in a not-quite-as-visible area / prefix - following more liberal rules, e.g. about force pushing A different aspect, that is not so important to me, is that scratch repos can be created instantly via certain SSH commands without any interaction with sysadmins. This is what I referred to as implementation. In these terms, concept is what I care about. And if this concept can be preserved, consider me happy with any implementation. Regards Thomas signature.asc Description: PGP signature
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 16:40, Thomas Friedrichsmeier wrote: On Mon, 29 Dec 2014 16:19:37 -0500 Jeff Mitchell mitch...@kde.org wrote: On 29 Dec 2014, at 15:20, Thomas Friedrichsmeier wrote: I am absolutely not qualified to comment on the pain this is causing to you sysadmins. But are we talking about / is the problem inherent to the _concept_ of scratch repos, or is it a problem of the implementation of how exactly scratch repos are created? I'm honestly not sure how to answer that; scratch repos are very much an implementation because we had a solution. It seemed like something that could be useful, and we had the capability with the current software, so we did it. In hindsight, it has been problematic. What I mean is, it seems somewhat unclear what aspects exactly of scratch repos are the problem. So I'll try to clarify: To me, the essence of the concept of a scratch repo is the three points, I listed, i.e. (reiterating), creating a repo - without _any_ questions asked (other than the name) - in a not-quite-as-visible area / prefix - following more liberal rules, e.g. about force pushing A different aspect, that is not so important to me, is that scratch repos can be created instantly via certain SSH commands without any interaction with sysadmins. This is what I referred to as implementation. In these terms, concept is what I care about. And if this concept can be preserved, consider me happy with any implementation. Concept can be preserved. Implementation may or may not be able to be preserved. Or, implementation may not be preserved initially, and will be fully preserved eventually (as in, when new custom patches are written). --Jeff
Re: Changes to our Git infrastructure
We agreed on IRC that these patches are used for personal clones. The support for scratch space, i.e. self-service repo creation, is implemented by upstream Gitolite, and no custom patches for that are in production now. With kind regards, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/
Re: Changes to our Git infrastructure
On 29 Dec 2014, at 16:56, Jan Kundrát wrote: We agreed on IRC that these patches are used for personal clones. The support for scratch space, i.e. self-service repo creation, is implemented by upstream Gitolite, and no custom patches for that are in production now. ...what does that have to do with anything? --Jeff
Re: Changes to our Git infrastructure
On Montag, 29. Dezember 2014 22:25:33 CEST, Jeff Mitchell wrote: They don't. If I remember conversations of four years ago correctly, it's partly out of the fear of horrible rants from users that decide two years later that in fact they *did* want that code that they pushed up and left sitting there. :-) Maybe I'm stupid, but one could just send a mail WARNING: your scratch repo foobar will be automatically deleted due to inactivity within 1 month / 2 weeks / 1 week / 5/3/2/1 days (Saturday, May 16th) See https://www.kde.org/dontspamourgit.html on scratch repo policy details. - IMO, a scratch repo should be hyperactive by concept and if it isn't, it probably settled and is good for deletion unless explicit veto. Cheers, Thomas