Emacs and Magit

There’s been some contretemps lately concerning Emacs and Magit. The issue is that Magit can’t be integrated into Emacs because not all the contributors have filed a copyright assignment. RMS is even on record wishing that someone would recreate Magit so that it could be integrated.

Frankly, I don’t get it. Why, exactly, does it need to be integrated? I see it as a net minus. The situation is parallel to that of Org mode, which has been integrated. The thing is, no one uses the integrated Org mode because it’s always outdated1. Everyone simply loads the Melpa version (or Melpa-stable if they’re paranoid) and stays up to date with the latest version. One thing for sure, the large Magit codebase and its user community certainly don’t need to be replaced simply so its functionality can be “integrated.”

It’s not easier for users, as one of the LWN commenters claimed, if Magit is integrated. A simple use-package with :ensure t will load Magit from Melpa with no more work than is needed to add a require for the integrated package. The package management functionality built into recent Emacs versions make using third-party packages as easy as using built in packages. Again, I don’t see the advantage of the integration other than the cachet associated with being an official part of Emacs.

When aggelos made this same point in the comments, about half of the respondents agreed with him. The other half cited such issues as having the copyright assigned makes copyright enforcement easier. Perhaps, but if that’s the issue then why not address it rather than fussing about integration?

I don’t see a pressing need—or even a non-pressing need—to integrate Magit into Emacs. Having it separate does not, as LWN ludicrously claimed, hinder its wider distribution. Just about everybody in the intersection of Emacs and Git users is already using it. The holdouts have their own reasons for not using Magit and I doubt integrating it will change their minds.

Doubtless, many of you will disagree. I’m interested to hear your reasons.

Footnotes:

1

Just recently Bastien celebrated the fact that the latest version of Org mode had finally been added to the Master branch but we can be sure it will be out of date by the time Emacs 26.1 ships.

This entry was posted in General and tagged , . Bookmark the permalink.
  • Things have gotten soooo much easier in terms of package installation with Emacs that magit integration is certainly not necessary. I'd say the only improvement to the current situation would be some more up front in your face set of instructions for a complete newbie to set up melpa.

    Given that getting to melpa isn't obvious to a newbie, at least I don't think it's obvious, inclusion of org-mode might be useful as it's a killer feature to a wider base of potential users than Magit which is coder centric

    • jcs

      Things have gotten soooo much easier in terms of package installation with Emacs that magit integration is certainly not necessary.

      Indeed. After thinking about it a bit more, I'd expand my remarks to say that we should consider integrating only "hyper-stable" packages, that is, those that hardly ever change. It just doesn't make sense to integrate things like Org and Magit that are still under active development because the integrated version goes out of date too quickly.

      Given that getting to melpa isn't obvious to a newbie...

      I'd like to see Melpa added to the default package repositories so that adding org mode is a simple as a use-package. Of course that's not going to happen and you still need to add use-package. Even better, integrate use-package, perhaps making it part of the package machinery. Of course, use-package is still pretty actively developed so maybe not yet. In the meantime, thankfully, we have your videos to help the n00b along.

  • I have the utmost respect for RMS and the FSF. My member number is 2221.

    That said, I don't always agree with the gentleman. This kinda seems like the same spirit that held back the GCC extension API for so long.

    Unfortunately, RMS is a victim of his own success. Even if he wanted to relax his views, he's so typecast that he can't, or risk getting thrown out for being insufficiently reactionary.

    Poor chap.

  • Jorge Alfaro-Murillo

    I think that the idea would be to move development of magit to ELPA, so there wouldn't be a problem of it being outdated and use-package would also work.

    org mode is part of master, so development is still done in another repo and it needs to be merged to master, although there has also been some discussion about moving org mode to ELPA.

    The problem for RMS of not having magit in emacs a lot of the advice for development of emacs suggests the use of magit, so in a sense magit is becoming a requisite for new emacs collaborators.

    The only problem that I see of integration of magit into emacs is that the paperwork hassle discourages new contributors to magit that could easily contribute via github.

    • jcs

      I think that the idea would be to move development of magit to ELPA, so there wouldn't be a problem of it being outdated and use-package would also work.

      I have to admit that I'm a bit ignorant here. I've always thought of the ELPA packages as being moribund but I guess it makes sense they would be updated more often than Emacs itself. If they update it at, say, the (package) release level and emergency patch level, moving Org and maybe Magit to ELPA would make sense. I can't think why Org would be moved into Master instead.

      The problem for RMS of not having magit in emacs a lot of the advice for development of emacs suggests the use of magit, so in a sense magit is becoming a requisite for new emacs collaborators.

      As far as RMS goes, he has the annoying habit of being proved right in the end so I'm always hesitant to second guess him. Still, I don't understand his desire to replace Magit. First, it simply isn't going to happen and second, if it did it would be sure to piss off a large number of developers who could easily pick up their marbles and leave.

      [T]he paperwork hassle discourages new contributors to magit that could easily contribute via github.

      I hear this all the time but it's really overblown. You download the form, fill it out, digitally sign it, and send it back. What's so hard? Sure, it takes longer than it should to get it cleared but it really isn't much of a hassle.

  • wladimir

    "Frankly, I don’t get it. Why, exactly, does it need to be integrated?"

    Because the FSF is a Stalinist organization at its core and any Free Software that is popular and outside their control scares them. See, for one: all the effort wasted in trying to make bzr a thing.

  • Frankly, I don’t get it. Why, exactly, does it need to be integrated?

    For pragmatic reasons when your only Internet connection is the Sneakernet then
    it is pretty nice to have the “batteries included”.

    For philosophical reasons when you consider that Emacs will have a lifespan of
    at least one or two hundred years then the copyright ownership to the FSF
    keeps the question of copyright ownership answered.

    • jcs

      My problem is the supposed need to have it integrated into Emacs itself. I'm fine with the copyright assignment although I'm less than sanguine about Emacs (or any other contemporary technology) lasting for another 100 years.

      • Gotcha. Well we can have Emacs packages, whose copyright belongs to the FSF, whose code lives on Gitlab, and is distributed through MELPA, right? If we can do this then there is no issue.

  • Phil

    no one uses the integrated Org mode because it’s always outdated

    I use the built-in version, and I'd hazard a guess that you have it backwards and that most people do likewise. It's fine -- people loved org-mode back when that version was brand new, and it hasn't gotten any worse in the meantime.

    I understand the power users wanting the latest and greatest, and that's fine of course, but I'm highly dubious that anyone goes out of their way to install a separate org-mode version unless they have a pressing reason to do so.

    • jcs

      I'd be fine if they updated it with every "official" release of Org but often times it doesn't get a refresh for a year or more. Perhaps that will be better with the new release schedule that John et al. have instituted.

      Org is at the center of a lot of what I do so I like to stay (reasonably) up-to-date. If I used it simply as a TODO list, it wouldn't matter as much.

      In any event, this is, apparently, one of those rare times that you and I disagree. (Not on what others do but on the necessity to update regularly.)

      • Phil

        Whoops, I mucked that up. Let's re-post the thing you replied to...

        no one uses the integrated Org mode because it’s always outdated

        I use the built-in version, and I'd hazard a guess that you have it backwards and that most people do likewise. It's fine -- people loved org-mode back when that version was brand new, and it hasn't gotten any worse in the meantime.

        I understand the power users wanting the latest and greatest, and that's fine of course, but I'm highly dubious that anyone goes out of their way to install a separate org-mode version unless they have a pressing reason to do so.

        • Phil

          And what I was going to respond with was...

          Org is at the center of a lot of what I do

          Which puts you firmly in the org-mode "power user" category, to my mind -- and as such it makes perfect sense that you'd want to keep it updated.

          (For much the same reason, when there is a new Emacs release I always grab it and compile from source, rather than wait for any OS package to become available.)

          My argument is purely that people with no particular motivation to install a non-standard version of something are unlikely to do so, and my guess is that most users of org-mode will not generally have a reason to do so, because for most people's purposes the default version will do what they need it to do, even when the updates are few and far between.

          • jcs

            (For much the same reason, when there is a new Emacs release I always grab it and compile from source, rather than wait for any OS package to become available.)

            Yeah, I do the same thing. Actually, now that I think of it, I keep all my Emacs stuff updated by running the package manager everyday or so, probably for the same reason as Org: Emacs is the center of my workflow. I'm not nearly as compulsive about other software.

            My argument is purely that people with no particular motivation to install a non-standard version of something are unlikely to do so...

            Perhaps I'm projecting. It just never occurred to me that anyone would not want to keep something like Org up to date.

          • NoonianAtall

            If you keep an eye on the Org-mode mailing list, you'll notice that there's a steady stream of minor bugs reported on the master branch as changes are made. I'm thankful that enough people run master to catch these before they make it into a release (which is usually the case), but I want my Org to be stable--I spend enough time messing with it and Emacs as it is. :)

  • Alan Third

    You've clearly never had the pleasure of working behind a corporate firewall. Updating from (M)elpa, NPM, Composer, etc. can turn into a huge nightmare.

    I think the plan in the future is for packages to be updated from Elpa when a major release is cut, rather than actually keeping them in Emacs master. That should at least mean things are more up to date.