Wait. What? I must be old school then, with my ~12 years of experience, because I think email is much more approachable than some of the modern communication methods. I create text and send it in an email. I get an email back. Repeat until complete.
Or do people really think it's better to go out and sign up for yet another account with Slack (or is that Github? Or Discourse? Or HipChat? Or BitBucket? or...), verify my email (ironic, no?), get into a chat room, try and get a dev's attention in the rolling spam of giffy links... Or perhaps I'll create yet another gitlab issue and pull request, so they can get lost in the thousands of others, due to the lack of organization capability present in most email clients. Yeah, I prefer email, personally.
> the Old Guard and the Next Generation
An excellent way to alienate the people you're trying to get help from.
> put a Code of Conduct in place for all communications on gitlab.
Sigh. This again?
> If Emacs could move onto gitlab and use a pull request workflow
What real benefits does this offer, over an email patch?
If this is the "New Guard", perhaps it's best they are scared away by email.
Also, I hate the pull request workflow; it's a big barrier to entry for people dipping their toes in with small changes. If you're trying to recruit more participants, or encourage an open-source project to open itself up to more participants, why on earth would you adopt a workflow which requires more up-front folderol on the part of the patch submitter? Just let people send in their patches and be gracious about accepting them. You can gently suggest that they start jumping through git branching hoops and other project-specific processes later, when they're already on board and committed to participation.
Codes of conduct are a direct response to ongoing harassment and stalking against various contributors of various open-source projects, followed by inaction on the part of the project maintainers or the excuse of "that just can't handle criticism".
What is so offensive about saying "make it about the code, not about the person" and "don't stalk, dox, or harass people"?
A code of conduct is a signal that juvenile behavior won't be tolerated and that if your code reviewer starts sending you dick pics they'll get banned from the project. It doesn't do anything by itself - if the project maintainers don't follow through it is worthless but like security lights and door locks the signaling value has an effect on people's behavior.
And for the record it protects while males too.
A very common clause in codes of conduct is that people who are identified with a project must uphold the code of contact when they are communicating, even when they do so outside the context of the project. Usually "identified with a project" is defined loosely enough that it can be used fairly indiscriminately. It has happened that people who voiced objectionable ideas outside the context of a project have been forcibly removed from those projects.
For some, this is a triumph of justice. For others (and I include myself in this camp) it is further fostering an "us" vs "them" viewpoint, vilifying those whose ideas differ. Interpersonal conflict is difficult and requires considerable skill to moderate. A code of conduct, while it can simply be a communication of the ideals that the project strives towards, can be used as a scaffolding to attack those who we disagree with and wish to punish.
Perhaps it is generational, and the new guard will eventually win this battle one funeral at a time. But as a politically liberal curmudgeon, 'codes of conduct' feel like the beta release of 'safe spaces'.
please go back to Pokemon Go-ing on my lawn... quietly. Daddy has to focus on writing code.
Hardly: a code of conduct is juvenile behaviour. It's like when I was a little kid and drafted a huge constitution for my amazing awesome cool club — that was just me.
Adults don't need to write down a code of conduct, because they adhere to an unwritten code of conduct. Children whinge, 'you shouldn't do that, because this says not to!'; adults don't do that, because they know that they oughtn't — and they refrain from associating with others who do. Children want their clique to gang up on the people they don't like; adults simply walk away from those people.
Childhood is all about, 'you can't'; adulthood is all about 'I won't.'
I do see a lot of complaints about heated arguments about having a code of conduct, and plenty of evidence of those arguments existing.
Code of conducts are a sane effort to highlight behavior that won't be tolerated, such that it's written down and no longer implicit.
That being said, one is free to disagree with the content of a particular code of conduct if the content does not appeal, but a mere presence of one should not result in becoming dismissive of a project.
I'd also love to see actual stats showing a CoC improved a project on objective criteria. Less defects or something.
> Sigh. This again?
+1. Whenever I see a Code of Conduct I think, 'these people aren't going to be welcoming, and indeed there's a very good chance that they will slam the door in my face.'
Do you have a burning desire to call people "honkey" in code reviews? Can't live without calling people stupid for being old/young? Is being prohibited from stalking other contributors so you can call their workplace and get them in trouble a huge problem for you?
This sounds like unjustified whining without any basis in actual fact or experience... iow "get off my lawn damn kids!!!".
A code of conduct is usually just shorthand for "don't be a jerk, be a professional".
"We will not act on complaints regarding ‘reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’"
That they even use the term "reverse racism" is telling. This is from a company that, in internal training, has anti-white material. "This is not work for white people", "biggest barriers to progress are white women". https://m.imgur.com/7YaVYUx?r
I don't particularly care, but if you're going to be inclusive, it should be technically inclusive, not loaded with politics. I'd bet there's a lot of people like me, thinking a egalitarian would be far less of an issue though I don't like curtailing expression, abrasive it may be, nor policing people in their personal lives.
No CoC is ever going to stop a jerk from being a jerk. It will just prompt the jerks to work around it and cause even more headaches for the contributors. Worse, it brings about those who only want to criticize the CoC, either because it's too strict, or too lenient.
Taking the time to address critiques on a CoC is time taken away from actually developing on a project and building a community who cares about the project, not the CoC.
> This freedom from the inanities of corporate life attracts proponents of Agile Methodologies, and scares the begeebers (you can’t use the word ‘shit’ in a professional paper) out of traditionalists.
This isn't a healthy attitude to have toward an open-source project -- as a "New Guarder" myself, I would be very sad to see Emacs contributions dry up.
There are plenty of established projects that don't use a "pull request" workflow, Emacs only recently migrated to Git; I don't have the discussion from ESR around migrating Emacs to Git handy, but it was a pretty slow process to "bring Emacs into the 21st century" and encourage contributions from new devs. There is simply no way the entire development workflow would change based on this critique. Never mind the fact that Emacs is RMS' baby, the suggestions are so far-fetched as to be laughable.
> the vast majority of modern software developers do not want to use email as their communication channel
This sounds more like "the vast majority of software developers like me" and I'm not sure how much value there is in debating something like that. Mark me down for "disagree". I have, in the past, skipped over projects when the only means of contribution or discussion is "sign up for our Slack/Gitter/etc. channel".
Being able to setup your own server is a benefit, not a negative. Much like twitter it seems to be another regressions from an open internet to corporate control.
The only positive I can see is rich text, but that has extremely limited value in a chat program. History is nice too but IME too painful to use (scroll, load, scroll, load, scroll, load) to be of any practical benefit.
In short: Slack is what you get when you have a team managing an IRC server with all the nice plugins and bots and building a single UI that does everything. You can spend your time setting up the same thing, or you can go to Slack.
Why not make IRC easier to setup?
> I don’t think it would be right for Emacs to use github.com. I don’t even think it is right for ENSIME to use github, but I’m scared of moving in-case we lose contributor momentum. The FSF gave github.com a bad score and it’s not libre, which makes me nervous.
This is what scares me about the power of GH too. But let's be honest, as this came up with Stuart Sierra yesterday as well in his post on open source rewards stupid bug fixes and not hard work.
https://stuartsierra.com/2016/07/18/apathy-of-the-commons
If the work is boring, people won't do it.
A corollary: if the tooling sucks, people avoid the tooling, and then things stay on the backburner and never complete.
I hate the whole Slack/Gitter/IM channel as well, but the idea of avoiding tooling (e.g. git), which did take Emacs forever, leads to far less contributors like me.
Can we at least work on documenting contributor workflow? How do I build an Emacs test environment and harness system? These things must be bookmarked to emacs-devel and other mailing lists on MARC archives and what-not, as I have yet to find even good blog posts (not that I say that as a standard, but in this case more of what I don't want) of how to set this up.
I do not expect a Github wiki linking to a Gitter channel about setting up a Docker dev containter for emacs-25.x, but can we at least have better tooling for pulling from git repos and running the test suite? Document it in the manual?
It is documented. Look at the file "CONTRIBUTE" in the root of the Emacs source.
That file is also cited in the manual: https://www.gnu.org/software/emacs/manual/html_node/emacs/Co...
And that manual page is the first Google result for "contributing to emacs".
This nice, but I have screwed around with open source for a long time. So, things like:
> Ref: The "Tips" Appendix in the Emacs Lisp Reference.
Example Novice (not me in this case): How do I get to that?
> After you have downloaded the repository source, you should read the file INSTALL.REPO for build instructions (they differ to some extent from a normal build).
> Ref: http://savannah.gnu.org/projects/emacs
Example Novice (not me in this case): What am I downloading from there? I guess I will go visit that page.
> See the existing ChangeLog files for format and content. Note that, unlike some other projects, we do require ChangeLogs also for documentation, i.e. Texinfo files.
> Ref: "Change Log Concepts" node of the GNU Coding Standards Info Manual, for how to write good log entries.
Example Novice (not me in this case): What the hell is Texinfo?
My point is this is a good high-level view. It asks me to visit half a dozen different manuals and asks I fill out a CLA.
I am not saying this is even god awful by open source standards, it is good. The problem is I am on the tail end of Linux/FLOSS culture, where a lot of people want more tooling and less learning. I know that is asking a lot. I give counter-examples in this space (Fedora, Mozilla, Start-a-flame-with-Node-NPM-dev-groups) and more focus on onboarding and get on the ground running.
Re your point on Google, I am embarassed. I looked up on DDG, and with !g for Google "emacs volunteer" "emacs hack" initially and never found these documents at first. I later did, but cloning the code is not where I see the issue here.
This stuff does not inhibit me from contributing. The problem with Linux and emacs is I must spam many thousands of people with git patches via email, and I want a way to build a reliable system in a VM or container without shitting all over my system emacs (it is a shell and editor for me) and finding a mentor so I do not get yelled at for spamming THOUSANDS of veteran Emacs devs I respect. I do not want every to use the damn Vagrantfile, but I would an emacs novice devel list or wiki or anything where I can build up to being one of those people, with simplified environments, and admit I need training wheels to contribute to one of the oldest and most important active FLOSS projects in existence. I know I demand a lot, but you seem to know this stuff. In my position, would you contribute a patch without anyone else helping you just given this material and not expect nastygrams back?
Yes, we have a CONTRIBUTE page that links to a dozen manuals is a good start, but is the kind of reaction that leads to the blog posts we see here. I do not mean to target you, but git clone I can do. Moving from that to being a member of emacs-devel that is not yelled at to the stop screwing up is different.
I find that more intimidating and think that is something worth focusing on.
I'm not a fan of this, but lets not act like A LOT of new projects aren't going in this direction because they are.
> the suggestions are so far-fetched as to be laughable.
Yeah, considering git still is a source of contention on the list changing anything in their process seems nuts.
> I have, in the past, skipped over projects when the only means of contribution or discussion is "sign up for our Slack/Gitter/etc. channel".
I understand - and i'm not a fan, but that goes both ways - lot of folks have skipped over projects when the primary forms of communication are mailing lists/irc - stuff that is foreign to them or seems like a hassle.
I do think that stuff like emacs does get hurt by their processes - moving to git was a big step. The devel list is less than welcoming and at times very hostile.
My two cents come from two experiences: submitting a patch to an open source GNU project on GNU Savannah, and asking for directions to the emacs-devel mailing list in order to read the GNU Emacs codebase (because I want to do weird/neat/crazy/nasty stuff with Emacs buffers).
So:
1) Gnu Savannah. It's okay. It's a bit weird but it does everything it should do. Most open source development happens on GitHub nowadays, and this basically means that savannah is weird to work with. Imho it should just be more documented, possibly in a "visual way" (ie, video).
2) The emacs-devel mailing list. It just works. The access barrier is low (can you receive emails? can you send emails? then you can come hack with us) and it really is that simple. I really don't understand what people don't get about mailing lists.
For short, most of the article says that emacs development has not enough colours and and buzzwords.
p.s: GNU Emacs the whole GNU project had a "code of conduct" way before this was the "cool" thing: it's the GNU Manifesto.
I thought the cliche was meant to be that old developers don't know new tech and don't want to know.
Now it seems that there are even more new developers that don't want to know old tech.
You're argument is predicated on the idea that because the "new guard" don't need to rely on IRC and email anymore that the "old guard" who have been doing this since the only way to contribute to projects WAS IRC and email need to change their ways to accommodate others.
That isn't a bad thing at all, in fact most people (myself included) think it would be a good idea, but you have to remember that the FSF isn't just a software organization, but it is also more or less a political organization as well, and their processes will reflect the values of those whose interests align. While Emacs indeed does have new leadership under John Wiegley, as a whole, the project cannot change without the blessing of the GNU elders.
I feel your point might loose a bit of steam when your main argument for moving towards a pull-request model is based on "this is how they do it on Github", given that as you acknowledged, it is a non-free project that the FSF looks unfavorably on.
This isn't true. It's just that the GNU elders are elders for a reason - their opinion is respected, explicitly sought out, and generally correct.
I'm not saying that experience is worthless, I'll be the first in defending it, but I also know, first hand, that as we get a little older, we get too used to our ways, even if there are others more efficient, that require change.
I would suggest reconsidering the suggestion to use proprietary software and fad approaches. Consider digging a bit deeper before criticizing.
Just because something isn't up to date with the latest bling doesn't mean it's bad, wrong, or unwise.
I agree that email is not a VCS, but it's worked relatively well for 30 years. I would carefully consider where the actual problem is.
[0] A code of conduct seems unnecessary.
How does one know which of those four channels to use? Are people expected to follow all four of them if they want to keep informed about the project?
Wouldn't it be easier to have just one channel that is universally available? Email would be the obvious choice, and since you have to provide an email address to sign up at Github, you are already implicitly requiring your contributors to have email.
http://sachachua.com/blog/2015/12/2015-12-10-emacs-chat-john...
http://www.youtube.com/watch?v=udNb4E4smbM
To the consternation of many, I love Emacs. I even eschewed tmux for multi-term, trying to move to notmuch.el for Gmail-esque email, and even consider moving away from a dedicated PDF reader and consider doc-mode if not for its lagginess (it is doing impressive stuff).
But how do I contribute to Emacs?
I like the Old Guard, I do, but I think there is something to be said for a few orgs philosophy, not implementation, such as Fedora, Mozilla, and their attempts to onboard volunteer effort.
They have good wiki material, they have the badge process to show hip ways to contribute. I too find the latter kind of off-putting, but my point is they try to signal to novices like me what to do and what of those things can be valued and by whom. I recently set up an account with Fedora and will try to work on the project not because I particularly fond of the distro (I prefer Debian, which I also want to start pitching in on), but as a culture I want to understand them and leverage their community handling tactics and use it later. They seem to know something, I want to know how they got there, why, and immitate it elsewhere needed.
Traditional projects have far less material on this. I appreciate a good static page/wiki/doc system more in the post-JS monstrosity that is the web (again, scary is the number of sites weekly I cannot visit with JS blocking to READ DOCUMENTATION; Emacs is thankfully one, or any GNU project, I worry about in this regard), but we find no good information about how to get involved with Emacs.
I have intended to email John about this. Can we consider this post to mean I am not the only one at a loss?
And a smile gripe: I have started to use ensime for a Scala Coursera course, and if the author of that post is here, I find your docs polished but confusing. Basic concepts (I need to really focus on sbt-mode to get interactive, ensime does not help with that and other stuff, you need to set up SBT first for ensime integration and the server) is there, but is linked to GH issue tracking and other stuff. You insist on reading the FAQ section that links to that, but I ended very tired one night going in circles. Resting AND trying again next day I got what you guys did, but you will lose idiots like me every time.