<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Interesting Background Information:<div><br></div><div>Why do we have modelines?</div><div><br></div><div>Termie put them in all the files of the first version of nova</div><div><br></div><div>Why did he put in modelines instead of configuring his editor?</div><div><br></div><div>Termie does a lot of python coding and he prefers a tabstop of 2 on all his personal projects[1]</div><div><br></div><div>I really don't see much value outside of people who prefer other tabstops</div><div><br></div><div>+1 to remove them</div><div><br></div><div>Vish</div><div><br></div><div>[1] <a href="https://github.com/termie/git-bzr-ng/blob/master/git-bzr">https://github.com/termie/git-bzr-ng/blob/master/git-bzr</a><br><div><div>On Oct 24, 2013, at 5:38 AM, Joe Gordon <<a href="mailto:joe.gordon0@gmail.com">joe.gordon0@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Since the beginning of OpenStack we have had vim modelines all over the codebase, but after seeing this patch <a href="https://review.openstack.org/#/c/50891/">https://review.opeenstack.org/#/c/50891/</a> I took a further look into vim modelines and think we should remove them. Before going any further, I should point out these lines don't bother me too much but I figured if we could get consensus, then we could shrink our codebase by a little bit.<div>
<br></div><div>Sidenote: This discussion is being moved to the mailing list because it 'w<span style="font-family: 'Arial Unicode MS', Arial, sans-serif; ">ould be better to have a mailing list thread about this rather than bits and pieces of discussion in gerrit</span>' as this change requires multiple patches. <a href="https://review.openstack.org/#/c/51295/">https://review.openstack.org/#/c/51295/</a>.</div>
<div><br></div><div><br></div><div>Why remove them?</div><div><br></div><div>* Modelines aren't supported by default in debian or ubuntu due to security reasons: <a href="https://wiki.python.org/moin/Vim">https://wiki.python.org/moin/Vim</a></div>
<div>* Having modelines for vim means if someone wants we should support modelines for emacs (<a href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Specifying-File-Variables">http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Specifying-File-Variables</a>) etc. as well. And having a bunch of headers for different editors in each file seems like extra overhead.</div>
<div>* There are other ways of making sure tabstop is set correctly for python files, see <a href="https://wiki.python.org/moin/Vim">https://wiki.python.org/moin/Vim</a>. I am a vIm user myself and have never used modelines.</div>
<div>* We have vim modelines in only 828 out of 1213 python files in nova (68%), so if anyone is using modelines today, then it only works 68% of the time in nova</div><div>* Why have the same config 828 times for one repo alone? This violates the DRY principle (Don't Repeat Yourself).</div>
<div><br></div><div><br></div><div>Related Patches:</div><div><a href="https://review.openstack.org/#/c/51295/">https://review.openstack.org/#/c/51295/</a><br></div><div><a href="https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:noboilerplate,n,z">https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:noboilerplate,n,z</a><br>
</div><div><br></div><div>best,</div><div>Joe</div></div>
_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev<br></blockquote></div><br></div></body></html>