Changelog drama

It’s not a secret that not all developers systematically update Changelogs when committing to the tree. Sometimes it’s because they’re lazy. Sometimes it’s because they think what they’re committing isn’t worth adding more cruft to the Changelog. Sometimes even they might be right.

Less than two weeks ago the Council members have voted that committing to Changelogs would be mandatory. No exception. The good news is that the QA police is already at work and has filed at least one bug against a developer with threats for more. They have also asked for and obtained one suspension. These guys are obviously rogue developers who defy authority and need to be dealt with utmost severity. Possible sentences include suspension, forced retirement and ban from a specific project for multiple years. Not everybody has been taken care of yet but it will eventually happen, and sooner rather than later, because we know who they are.

All is well that ends well and we can all go to bed with the satisfaction of a job well done.

Except that we are talking about heavy committers, with more commits than most of us, and in one particular instance more commits then anybody else, ever. These guys say they will commit to Changelogs but in some cases they believe it doesn’t make sense. They are not listened too however. I find that interesting because they’re the ones who made Gentoo what it is. You can’t say the same about the council (not this one in particular but councils in general which includes this one). If anything we should simply follow their lead, do what they do, thank them and then shut up. They’re not problematic developers, I’ve unfortunately had to deal with my fair share of these and know how they are. No, those are people who know what they are doing and are proving it thousands of times a month. The only issue with them is that they spend more time working than arguing. Some of them have however been on the Council at some point or another. And we’re saying that their opinion doesn’t matter?

Except also that Gentoo is a community of volunteer developers who donate their time to a project. To some of them it’s even a cause. Is this how such a community should be treated? Apparently yes, Gentoo is now do or die. I can see the fun running away at the speed of light.

All that because faced with its inability to encourage a behavior in a positive way, the Council opted for the easy solution which consists in pulling out the big guns and shooting all around. It’s surprising to see this from a group of Council members that you would otherwise call tame to be polite. I tried explaining to some of them that they had made a wrong turn somewhere and that it wasn’t too late but they won’t admit it. Although one has admitted that this couldn’t end well. I guess it’s been a long year for them. They’ll soon get an opportunity to get a well deserved vacation if they so desire.

There’s more to this story with a Queen of Drama, her unstable temper, her rise to power and her faithful servants. But this one is far from finished yet so I’ll keep watching.

Now please forgive me because I have to go. My popcorn is ready.

22 thoughts on “Changelog drama”

  1. I’m not quite sure why Gentoo still clings onto the Changelog. Certainly if your working from the SCM tree all that information should be available from version control. It seems like there should be an effort to reduce needless duplication of data.

  2. Rather disappointed in this posting of yours; either you weren’t following it end to end, or you’re just misrepresenting what occurred. It’s basically a mixture of FUD and anti-council… which you’re free to state, but that doesn’t make me any less disappointed.

    Do I want to see people getting suspended for not updating ChangeLogs for minor crap? No. What is being discussed isn’t minor crap as you’re painting it- removing versions has direct affect on arch visibility of keywords/depgraphs; there are very valid reasons for requiring it be logged.

    The positive options were opened; find a technical solution (simple script change to dev’s workflow; large scheme, contribute to git to eliminate the need in general); appeal the councils decision, hell alternatively run for the council in a month and replace our supposedly worthless asses.

    In the interim, if the dev body (evidenced via the thread) or the elected council decides “yes, as we’ve always done, you must ChangeLog it” you do it because being a dev is more than just randomly hacking up the tree- it’s working with others, including conveying info for downstream users. This ignores that devmanual and long term zeitgeist of gentoo was such that this sort of logging was required *anyways*, but lets ignore pesky facts of history.

    Point is, you do not just keep on going, and then try pulling shit like asking for early QA elections when you’re *again* called on it after effectively forcing the council to vote on it via your actions.

    I don’t care how many commits a person puts in; we had devs who played games like that, and the public blow up (and devs who left) because of the behaviour best phrased via “fuck you, I’m going to do what I want” doesn’t fly in a community project.

    Does the situation suck? Yep. Don’t care to see a dev suspended, in the same instant it also sucks a “high commiter” forced the @!#*ing situation in the first place and skipped the positive routes you claim were missing.

    It’s stupid, and it’s childish, and frankly it sucks the council (or qa or devrel) even had to be involved- that said ignoring the issues sucks *more*. Damned if you do, damned if you don’t.

    Either way, after a decision, pulling crap like the election angle, or “I commit more than the people complaining” or “I commit more than the council” claims (easily true in my case, although my commit count is more than just gentoo- still heavily true for me) misses the point- the rules have always been “if you want cvs access you have to abide by community defined xyz rules”. The very tests devrel (which you’re heavily part of) makes devs take is to ensure they know the rules, and candidates don’t pass till they get those rules right.

    The whole situation sucks, but that’s usually how it is for things like this; it sucks they pulled this, it sucks council had to be involved, it sucks qa/devrel were involved, and frankly it rather sucks despite your role in tests you’re now claiming “nah, the rules aren’t that important if have a high enough commit count- fuck the others” to paraphrase.

    -a council member annoyed at people playing games and being stupid.

  3. Why not just do what the sunrise overlay do, making svn [cvs, in this case] commit messages mandatory, and using them for the Changelog (which is auto-generated)? Simple, and solves the problem.

  4. It’s really a shame. Personally, I would find changelog entries with worthless entries more wasteful than omitting them. It’s really a shame that one of gentoo’s most active developers cannot commit to the project, just because the council says that the way he has been VERY effectively developing is now wrong. I can completely understand there being disagreement about the situation, but going as far as banning someone from working on gentoo is about as childish as it gets.

  5. I agree with you that “pulling out the big guns” should be a last resort rather than a first one, and we should try as hard as we can to both avoid doing so and to make sure people are aware that this *will* happen if their behavior continues. That said, I want to make two other points:

    – Being the ones committing the most doesn’t mean you’re tracking down problems caused by missing changelog messages the most. Rather, it could mean that you’re creating the most problems that others need to waste unnecessary time dealing with.

    – Refusal to respect your fellow developers by (1) ignoring rules set by the leaders of your community and (2) disobeying multiple requests to change your behavior is very not OK. Particularly when it’s done in a quite hostile manner, as it has in at least one case.

    1. Your last paragraph bothers me. I’m not saying you did or didn’t, but from the wording it is entirely possible you stated a truth in (2) that does not even apply to the particular developers Denis mentioned.

      Also, “at least one case” sounds like it doesn’t apply to these particular developers, though again I’m not saying it does or doesn’t. However, I would be a lot more happy with your post if you clarified that.

  6. You said it best: “Except also that Gentoo is a community of volunteer developers who donate their time to a project.”

    So, why should I waste my volunteer time tracking down a problem that wasn’t listed in the ChangeLog because someone thought it was best to NOT document it…? Especially when there are easy ways to overcome this issue. It is a personality issue, not a technical one at this point.

  7. Donnie, respect has to be earned. If the “leaders of the community” want to be respected, perhaps they ought think a bit before setting the rules.

    Consider the problem at hand: there are two audiences that need to be informed about changes to packages. Namely, the users and the developers.

    Users need information about what will change on their hard drives when they emerge foo; for example, “Version bump. Noteworthy changes: fixed memory leak, added support for WOMBAT3 file format”.

    Developers, on the other hand, need information about every single change to an ebuild, even if it’s just fixing a comment or changing EAPI.

    Samuli informed the users through detailed ChangeLog entries (where he provided more useful information than the vast majority of Gentoo devs). He informed the devs through CVS commit messages.

    Unfortunately, other developers did not like to be informed via CVS commit messages – primarily because CVS is such a horrible tool that littering the ChangeLog files with information relevant only to devs was seen as a more palatable option.

    The correct solution to this problem is to fix the tool by migrating the tree from CVS to Git.

    And the solution that the council chose (enshrine in law the CVS-forced workaround of updating the ChangeLog on every commit, and immediately enforce that law to ban one of Gentoo’s most active developers) is, to put it bluntly, idiotic. And so it has caused many devs (and users) to lose respect for the current council.

  8. I can’t help but point out that all of this mess and more could have been avoided if we had moved to git a year ago. I fail to understand why the council didn’t decree that we should make echangelog obsolete by migrating to git ASAP. Instead, we took the easy solution of forcing everyone to use echangelog to work around the failures of cvs.

    No matter how this issue ends, I will consider this a fallout of our three-year-delayed move to git.

    1. @Nirbeek;

      Decrees do not solve technical issues. Signing in particular, isn’t resolve in git without work being done.

      If you want git, go do it- the signing implementation (specifically validation) I’m looking at implementing right now for exactly that reason; same logic is why I optimized the conversion so it wasn’t ~day.

      Either way… the council could decree that you serve me breakfast everyday. Doesn’t mean it’s going to happen (logistically impossible due to where you live)- this is no different.

  9. Alexandre, even though I am a “dev” I often research breakage on the tree with my user hat on because surely I do not hold the “dev” status on the whole tree. When I try to help the distro with my user hat on, I get frustrated that my time was wasted. It happens over and over. I get annoyed of people saying that I am not a user because I have a email address that ends with “@gentoo.org”

    Yes, I agree. Move to git πŸ™‚

  10. I am very disappointed. VERY! Politics have always been a problem that kills Gentoo from the inside. Because of such politics, one of our best developers will probably forced to leave. Just because policies are policies so everyone must accept them. People forget that this is all about fun, and this is far from fun and joy anymore. Gentoo is bleeding because it constantly demotivates people and slow down *simple* procedures.
    Moreover, every summer, the council members promise that they will definitely speed up the git migration and guess what. No progress at all. Git is not a solution. And it wont be. I hope you really enjoy the current status of Gentoo project. I think we have 2-3 heavy committers left. Feel free to judge them and retire them as appropriate.

    1. Seriously, if you want git, go do it rather than blaming people for it’s absence. The council sets direction and primarily decisions- that doesn’t mean they function as the mules to get everything done.

      The fact of the matter is that the folks who *are* putting time in on it are the people most busy- and no amount of bitching will change that. Contributing your own time however, would *help* (and would be far less annoying, frankly).

      1. I don’t want git because people think that it will magically solve a tons of issues. I am sorry I don’t have more time ( I am doing ~600 commits per month, I am sorry but a day has only 24h ) and I don’t know git that match. And I don’t really care about git

  11. Probably the worst thing is that a lot people can get frustrated over this…
    Actually, I just wanted to point out that there are a lot of people which kind of depend on gentoo and all of them appreciate the tremendous work the gentoo-team invests into the project: so stop getting frustrated πŸ˜‰ !
    Hope you get yourself together and find a suitable solution for that whole issue.

    (just a user opinion from the outside of “the team”)

  12. I hope this all gets sorted out. I just finally got Gentoo installed on a computer,
    and it really does require more learning than I had to do, even back in the day
    of Mandrake 7.1 and RedHat 9.

    svn, cvs, git, changelog, SCM Tree – it’s still all greek to me. But I know some of
    you are more than capable to come up with a system that works. Like some
    enhancements to the programming tree, or the portage system, that will automate
    some of this stuff. Heck, if Gentoo is so ahead of the curve, then why not reinvent the
    wheel and make it run the way it should.

    I once tried reporting a bug with some other version of Linux, and the process itself
    was too confusing. I wonder how a semi-average user like myself (as far as Linux goes
    – my wife calls all Linux users not geeks, but freaks!) could even install Gentoo, but
    for the fact that people have worked on the manuals and the system, so that in five
    years since 2006 when I first tried it, it has gone from the disk not booting to the
    install actually working.

    So what I am saying is, I know there are issues, and I know you guys like solving
    problems. So just for the heck of it, treat it as a problem that needs a solution, and
    not a battle between hurt personalities. Bless others with your wisdom, don’t curse
    them with your vitriol.

    At least, I think that might work.

  13. So, what, specifically, is holding back the git migration? Funtoo does a daily merge of your CVS to their git repo. Why is something a handful of people do daily taking over a hundred devs several years?

  14. this post will have next to nothing to do with the current discussion πŸ™‚

    As longtime gentoo user I have seen this type of scenario before. It seems most devs leave as they get frustrated with whatever; the constant barrage of 0day bumps, bitching on the forums, whiny bug tracker issues and all-around ungrateful fscks…

    Why doesn’t somebody make a site where you can donate money/beer to gentoo devs? After the “humble indie bundles” was such a surprising success I can’t see how this wouldn’t work. I don’t have the time to donate to gentoo but I sure as hell could give some of my money as I bet most people would.

    If gentoo goes away what am I left with? ubuntu? christ… go read the users in those forums if you want some demotivation…

  15. I was rather surprised when I first heard about this as well. I was like. Huh. Isn’t that the same as hg log / svn log / git log?

    Anyway, I suppose the situation has changed some over time, but Mozilla had to handle this a few years ago, including migration. Perhaps they kept some notes on the process.
    http://soberbuildengineer.com/blog/2007/04/version-control-system-shootout-redux-redux/

    Has git’s performance over http improved? That was the reason google code went with mercurial.

  16. ChangeLog in Portage is NEWS file to users. It has always been, and trying to convert it to something else by force won’t fly.

    And despite the number of people yelling, nobody asked the people doing most committing as if nobody appericiated the work and respected the existing workflow.

    And doing so without providing satisfying explanation for the change, other than trying to impose authority on people.

    What we need is serverside ChangeLog generation, with or without git to change the characteristics of the file.

Comments are closed.