]> code.delx.au - gnu-emacs/blobdiff - CONTRIBUTE
; Merge from origin/emacs-25
[gnu-emacs] / CONTRIBUTE
index 323f9b9d060a1e71262b485e9dac815d75b8638b..7cb4a1c7544648a8b228af6a96f3cd27ab81a306 100644 (file)
@@ -184,15 +184,19 @@ If you are fixing a bug that exists in the current release, be sure to
 commit it to the release branch; it will be merged to the master
 branch later.
 
-However, if you know that the change will be difficult to merge to the
-trunk (eg because the trunk code has changed a lot), you can apply the
-change to both trunk and branch yourself.  It could also happen that a
-change is cherry-picked from master to the release branch, and so
-doesn't need to be merged back.  In these cases, indicate in the
-release branch commit log that there is no need to merge the commit to
-the trunk; start the commit message with "Backport:".  gitmerge.el
-will then exclude that commit from the merge to trunk.
-
+However, if you know that the change will be difficult to merge to
+master (eg because the code on master has changed a lot), you can
+apply the change to both master and branch yourself.  It could also
+happen that a change is cherry-picked from master to the release
+branch, and so doesn't need to be merged back.  In these cases,
+indicate in the release branch commit log that there is no need to
+merge the commit to master; start the commit message with "Backport:".
+gitmerge.el will then exclude that commit from the merge to trunk.
+
+Some changes should not be merged to master at all, for whatever
+reasons.  These should be marked by including something like "Do not
+merge to master" or anything that matches gitmerge-skip-regexp (see
+gitmerge.el) in the log message.
 
 ** Other process information
 
@@ -263,7 +267,7 @@ Emacs uses ERT, Emacs Lisp Regression Testing, for testing.  See (info
 for more information on writing and running tests.
 
 If your test lasts longer than some few seconds, mark it in its
-`ert-deftest' definition with ":tags '(:expensive-test)".
+'ert-deftest' definition with ":tags '(:expensive-test)".
 
 To run tests on the entire Emacs tree, run "make check" from the
 top-level directory.  Most tests are in the directory
@@ -274,7 +278,20 @@ top-level directory.  Most tests are in the directory
 Tests which are tagged ":expensive-test" are enabled additionally, if
 you run "make check-expensive" from the top-level directory.  "make
 <filename>" as mentioned above incorporates expensive tests for
-<filename>.el(c).
+<filename>.el(c). You can also define any ert selector on the command
+line. So "make check SELECTOR=nil" is equivalent to "make
+check-expensive".
+
+You could also use predefined selectors of the Makefile. "make
+<filename> SELECTOR='$(SELECTOR_DEFAULT)'" runs all tests for
+<filename>.el(c) except the tests tagged as expensive.
+
+Selectors can be defined with different methods, see (info "(ert)Test
+Selectors") or
+https://www.gnu.org/software/emacs/manual/html_node/ert/Test-Selectors.html
+If your test file contains the tests "test-foo", "test2-foo" and
+"test-foo-remote", and you want to run only the former two tests, you
+could use a regexp: "make <filename> SELECTOR='\"foo$$\"'" .
 
 ** Understanding Emacs Internals.