all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: 조성빈 <pcr910303@icloud.com>
To: rms@gnu.org
Cc: Yuan Fu <casouri@gmail.com>, Emacs developers <emacs-devel@gnu.org>
Subject: Re: Review a blog post about emacs-devel
Date: Fri, 1 May 2020 01:26:05 +0900	[thread overview]
Message-ID: <D34B0896-638E-4B7C-9C7E-1DEA9539CB6A@icloud.com> (raw)
In-Reply-To: <E1jTyvy-0006zq-Vj@fencepost.gnu.org>

Richard Stallman <rms@gnu.org> 작성:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> Would you please talk about "free software" or "libre software", not
> "open source"?
>
> The free software movement campaigns for software to respect users'
> freedom.  See https://gnu.org/philosophy/free-sw.html for the
> explanation of the four essential freedoms.  The ides of the free
> software movement is that denying a user these four freedoms is an
> injustice, and that we aim to end that injustice.  See
> https://gnu.org/philosophy/free-software-even-more-important.html.
>
> In 1998, people who disagreed with the free software movement's
> philosophy coined the term "open source" with the aim of causing the
> free software movement to be hidden behind a dense cloud of "open
> source" so that people would forget about our ideas.  Therefore, we
> must give high proprity to showing people that we shand for free
> software and _not_ for open source.  We never use the words "open
> source", or even "open" as an adjective applied to software,
> except to explain that it is NOT what we stand for.

 From what I read…

> The introduction of the term "open source software" was a deliberate  
> effort to make this field of endeavor more understandable to newcomers  
> and to business, which was viewed as necessary to its spread to a broader  
> community of users. The problem with the main earlier label, "free  
> software," was not its political connotations, but that—to newcomers—its  
> seeming focus on price is distracting.

Is it not true? (That’s from Christine Peterson.)

> See https://gnu.org/philosophy/open-source-misses-the-point.html
> for more explanation.
>
> Also, please don't use GitHub as a standard of comparison.  That would
> promote GitHub, which is counter to what we aim to do.

 From what I understand is that the blog post isn’t a GNU one but a
personal post? I don’t think it’s trying to speak for the GNU project.

> Please don't promote Emacs Lisp packages that we don't have papers
> to include in Emacs or GNU ELPA.  That includes Magit.

Same as above.

> Jonas Bernoulli recently asked for access to the Emacs repo.  That
> suggests that we have made progress on the needed papers and be able
> incorporate Magit into Emacs soon.  Then we could document it here,
> and in the Emacs manual.
>
> But we must not count that chicken until it hatches.  Therefore, I
> have commented out that text with #'s.  The idea is that it should not
> appear in the document we publish, but we should not lose it because
> we will want to include it in the future.
>
> I do not know Org mode syntax, so I may have made errors in editing it.
>
> Here is my edited draft.
>
>
>
> #+SETUPFILE: ../../setup.org
> #+TITLE: Contributing to Emacs
> #+DATE: <2020-04-25 Sat 16:59>
> #+TAGS: Emacs Hacker
> #+OPTIONS: toc:1
>
> Emacs, /the/ editor we all use and love, has been running for decades,  
> receiving contribution from hundreds of hackers along the way. But  
> because it predates “modern” libre software workflows by many years, you  
> can’t do the usual thing—open issues, fork and make PR’s, etc. However,  
> Emacs’s development workflow isn’t as tedious and difficult as many  
> people imagines (in particular, you don’t need Gnus or deal with email in  
> Emacs, or setup anything fancy). In this post I show what I’ve learned as  
> a Emacs new comer about participating the development of Emacs. I hope  
> that by sharing people what does contributing to Emacs look like, more  
> people knows what to expect and feels comfortable to join the development  
> of Emacs.
>
> * Report Emacs bug
>
> I won’t go into details here, because I think most people nowadays are  
> well educated by numerous libre projects on how to properly report a bug.  
> In the case of Emacs, in addition, you want to reproduce the bug with  
> vanilla Emacs, i.e., without your configurations. You can start one with  
> =emacs -Q=. And in Emacs type =M-x report-emacs-bug RET=, then =C-x M-i=  
> to use your mail application to send the bug report through email (Emacs  
> instructs you of all this). Then just wait for a developer to reply your  
> email (see? No setup needed). The only thing to remember is to make sure  
> you use “reply all” when replying emails (more on that in [[The mailing  
> list]].)
>
> * The mailing list
>
> We keep track of pending bug reports using the mailing list. A mailing  
> list has subscribers. When some one sends a mail to (or cc) the mailing  
> list address, the mailing list server forwards that message to every  
> subscribers, so every body sees your mail. To start a new thread, send a  
> mail to the mailing list server; to reply to someone’s message, simply  
> “reply all”. *Make sure you use “reply all” when replying to messages.*  
> If the message isn’t CC’ed to the mailing list server  
> (emacs-devel@gnu.org), other people on the list can’t see it.
>
> ** Subscribe to Emacs-devel mailing list
>
> Go to [[https://lists.gnu.org/mailman/listinfo/emacs-devel][Emacs-devel  
> Info Page]], and fill in the form to subscribe. Make sure you select “No”  
> for “Would you like to receive list mail batched in a daily digest?”. If  
> you select “Yes”, instead of receiving messages, you receive a “daily  
> digest” everyday, which is more or less useless becase 1) you don’t see  
> the full conversation, 2) you can’t participate the discussion.
>
> ** Tips
>
> Emacs-devel is busy, there are a couple dozen messages everyday, if you  
> don’t want your inbox flooded, you better setup a separate mail folder  
> for them. As an example, this is what I do on Gmail: I go to “Settings”,  
> “Filters and Blocked Addresses”, “Create a new filter”, filter any mail  
> that has the words “emacs-devel@gnu.org”, and asks Gmail to skip the  
> inbox and apply “emacs-devel” label. The effect is that all emacs-devel  
> messages don’t appear in your inbox and instead show up in emacs-devel  
> folder.
>
> ** No one replies?
>
> In general, give it a week or so before pinging your message. Normally  
> when no one reply to a new message, it is because people have seen it  
> don’t know enough to say anything intelligent about the topic. On the  
> other hand, don’t send a bug report without a patch to emacs-devel,  
> report it as a bug (even if you are not sure if it should be classified  
> as a bug, report it as a bug).
>
> * Get Emacs’ source
>
> - This is Emacs’ savannah homepage:  
> [[https://savannah.gnu.org/projects/emacs/]]
> - This is Emacs’ git source page:  
> http://git.savannah.gnu.org/cgit/emacs.git
>
> The home page tells you how to clone Emacs’ source:
> #+begin_src shell
> git clone -b master git://git.sv.gnu.org/emacs.git
> #+end_src
>
> Once you have the source, you can find most of the information mentioned  
> in this post in =/CONTRIBUTE=. For example, the first section clearly  
> demonstrates how to compile Emacs:
> #+begin_src shell
> # More info is in INSTALL.
> ./autogen.sh
> # You can use ./configure.sh --help to see the avaliable options.
> # This is the step where you enable/disable optional functionalities
> # like dynamic module, portable dumper, svg, etc.
> ./configure.sh
> make
> #+end_src
>
> And the executable is =/src/emacs=, welcome to the future (release)!
> # --enable-checking=yes --enable-check-lisp-object-type=yes
>
> * I have some code, what now?
> ** The copyright assignment
>
> Every non-trivial contribution to GNU Emacs needs to have a copyright  
> assignment signed. Basically by signing the assignment, you give the  
> copyright of your code to FSF. See more at  
> [[https://www.gnu.org/licenses/why-assign.en.html][Why Copyright  
> Assignment]]. You need to first check with your employer before signing  
> it. Most of the time it’s no problem. To sign the assignment, ask for a  
> form on the mailing list, and someone will send you the form. You fill it  
> in and send to the instructed “FSF clerk”, then he sends you the document  
> to sign, either by email or by mail. You sign it and send it back, and he  
> sends you the final document with FSF signature.
>
> ** Conventions in code
>
> - Write regular sentences in comment, i.e., with capitalization and  
> period. Format comments with =M-q= (~fill-paragraph~).
> - Comments should be in American English and with two spaces after every  
> sentence.
> - Don’t make comment lines longer than 70 columns.
>
> ** Conventions in commit messages
>
> The general format:
> # I added zero width space before each star to prevent Org from  
> considering them as headings
> #+begin_example
> Summary line (no ending period)
>
> Some more info (optional).
>
> ​* file: Change.
> ​* file (variable1): Change.
> ​* file (function1, function2, variable3): Same change.
> ​* file (variable1): Change 1.
> (function2): Change 2.
> (function1, macro2): Same change.
> #+end_example
>
> - The file path is relative to the source root, e.g.,  
> =/lisp/progmodes/gdb-mi.el=.
> - In =Change=, document /what/ changed, not /why/ the change is made.  
> /“Why”/ is better put in the comments.
> - For new function​/​variable​/​macro, It suffice to say “New  
> function​/​variable​/​macro”.
> - Don’t exceed 78 characters each line.
> - Try to use only ASCII characters (so people on limited terminals can  
> view these messages). For example, prefer straight quotes over curly  
> quotes.
> - Sames as comments—American English and two spaces after every sentence.
>
> ** Create patch and send it
>
> Create a single patch for each individual changes. Don’t send a patch  
> with three new features combined, that is harder to review; on the other  
> hand, don’t send a series of patches for a single feature, squash[fn:1]  
> them into one patch. Also, send your patch early and small and update  
> along the way, that also helps other people to review it. To save you  
> from googling, here’s some ways to create a patch:
>
> #1. Use magit. To generate a quick diff patch, create a diff buffer by
> #either =d d= on a change or commit; in the diff buffer, hit =W s=. To
> #generate a patch from a commit or a range of commits, go on to a
> #commit and do =W c c=. This puts the patch file(s) under the project
> #root and isn’t very convenient, I usually just do =! ! git
> #format-patch -<# of commits> --stdout > <file>.=
>
> 2. From command line, =git format-patch -<# of commits, e.g., 1> --stdout  
> > <file>=
>
> To send your patch, write an email to the mailing list:  
> [[mailto:emacs-devel@gnu.org][emacs-devel]]. Drag your patch to the very  
> end of the message, after signatures. Normally this is all it needs.  
> Sometimes the message could be garbled; in that case, changing the  
> message to plain text usually helps. You can also send a patch to  
> debbugs, the bug tracker, if the patch is a bug fix. (See [[Debbugs]].)
>
> * NEWS and manual
>
> If you made a user-visible change, you should document this change in the  
> NEWS file, possibly also update the manual. *You don’t need to worry  
> about these until your patch is finalized, though. So maybe skip this  
> section for now.* And Emacs maintainers will let you know what to do.  
> Below is the relevant section in =/CONTRIBUTE=:
>
> #+begin_quote
> Any change that matters to end-users should have an entry in etc/NEWS.
> Try to start each NEWS entry with a sentence that summarizes the entry
> and takes just one line -- this will allow to read NEWS in Outline
> mode after hiding the body of each entry.
>
> Doc-strings should be updated together with the code.
>
> New defcustom's should always have a ':version' tag stating the first
> Emacs version in which they will appear.  Likewise with defcustom's
> whose value is changed -- update their ':version' tag.
>
> Think about whether your change requires updating the manuals.  If you
> know it does not, mark the NEWS entry with "---".  If you know
> that *all* the necessary documentation updates have been made as part
> of your changes or those by others, mark the entry with "+++".
> Otherwise do not mark it.
>
> If your change requires updating the manuals to document new
> functions/commands/variables/faces, then use the proper Texinfo
> command to index them; for instance, use @vindex for variables and
> @findex for functions/commands.  For the full list of predefined indices,  
> see
> https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Predefined-Indices.html
> or run the shell command 'info "(texinfo)Predefined Indices"'.
> #+end_quote
>
> * Debbugs
>
> [[https://debbugs.gnu.org][Debbugs]] is the bug tracker for GNU operating  
> system. Here is [[https://debbugs.gnu.org/Emacs.html][Emacs’ debbugs home  
> page]]. I’ve covered how to report a bug. After you sent the email  
> reporting the bug, debbugs will reply to you a confirmation email with a  
> bug number. Instead of replying to messages in the bug report, you can  
> also comment by sending a message to =bug-number@gnu.debbugs.org=. When  
> the bug is fixed, you can send a message to  
> =<bug-number>-done@debbugs.gnu.org=, e.g., =40000-done@debbugs.gnu.org=.  
> That closes the bug.
>
> If you want to view currently pending bugs, you can either  
> [[https://debbugs.gnu.org/cgi/pkgreport.cgi?package=emacs;max-bugs=100;base-order=1;bug-rev=1][browse  
> online]], or view them in Emacs: install the package =debbugs= and =M-x  
> debbugs-gnu=. You can click on bugs to view them, and view the  
> conversation. You can even reply by =S w= on a message, and write your  
> message in Emacs, and hit =C-c C-c= to send. Chose “mail client” and  
> Emacs invokes your default mail application to send this mail. Hit =C-c  
> C-k= to cancel the message.
>
> * GNU ELPA
>
> Have a good package? Add it to GNU ELPA! Pros:
> - Get reviews from people that knows Emacs and Emacs Lisp best.
> - Instantly avaliable from vanilla Emacs.
> - You /can/ host your package on other places.
>   Please see https://www.gnu.org/software/repo-criteria-evaluation.html
>   for our comments on some used repo sites.
> - You /can/ push to your package without review, and don’t need to follow  
> Emacs conventions for commit messages.
> - You need to sign the copyright assignment. And make sure all the  
> contributors of your package (with significant contribution, i.e., ~15  
> lines) signs it.
>
> View  
> [[http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/README][README]]  
> for more detailed info.
>
> [fn:1] Squash means combining several commits into one. It is easy to do  
> with Magit: =l l= go to the log buffer; then go to the earliest commit  
> you want to change, hit =r i=; hit =s= on the commits you wan to squash,  
> commits marked with “s” will squash up. You can also use =M-n/p= to move  
> the order of commits; then hit =C-c C-c= to edit the new commit message,  
> and =C-c C-c= again to confirm.
>
>
>
> -- 
> Dr Richard Stallman
> Chief GNUisance of the GNU Project (https://gnu.org)
> Founder, Free Software Foundation (https://fsf.org)
> Internet Hall-of-Famer (https://internethalloffame.org)





  parent reply	other threads:[~2020-04-30 16:26 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-27 20:58 Review a blog post about emacs-devel Yuan Fu
2020-04-27 21:31 ` Noam Postavsky
2020-04-27 21:37   ` Yuan Fu
2020-04-29  6:33 ` Colin Baxter
2020-04-29  6:49 ` Jean-Christophe Helary
2020-04-29 14:08   ` Yuan Fu
2020-04-29 14:51   ` Drew Adams
2020-04-29 16:14     ` Yuan Fu
2020-04-30  2:28 ` Richard Stallman
2020-04-30 15:19   ` Yuan Fu
2020-04-30 16:42     ` Dmitry Gutov
2020-04-30 15:52   ` Stefan Kangas
2020-04-30 16:26   ` 조성빈 [this message]
2020-04-30 16:50     ` Stefan Kangas
2020-05-02 18:58       ` Yuan Fu
2020-05-05  7:56         ` Jean-Christophe Helary
2020-05-07 19:40           ` Yuan Fu
2020-05-15  2:57             ` Yuan Fu
2020-05-15  5:55               ` Clément Pit-Claudel
2020-05-15 16:22                 ` Yuan Fu
2020-05-15  6:52               ` Eli Zaretskii
2020-05-15 16:20                 ` Yuan Fu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D34B0896-638E-4B7C-9C7E-1DEA9539CB6A@icloud.com \
    --to=pcr910303@icloud.com \
    --cc=casouri@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.