emacs-pretesters 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. Here are the guidelines for being an Emacs pretester.
  2. If you would like to do this, say so, and I'll add you to
  3. the pretest list.
  4. Information for Emacs Pretesters
  5. The purpose of Emacs pretesting is to verify that the new Emacs
  6. distribution, about to be released, works properly on your system *with
  7. no change whatever*, when installed following the precise
  8. recommendations that come with the Emacs distribution.
  9. Here are some guidelines on how to do pretesting so as to make it
  10. helpful. All of them follow from common sense together with the
  11. nature of the purpose and the situation.
  12. Please save this file, and reread it when a new series of pretests
  13. starts.
  14. * Get the pretest from gnu/emacs/pretest/emacs-MM.0.NN.tar.gz
  15. on alpha.gnu.org.
  16. * After a few days of testing, if there are no problems, please report
  17. that Emacs works for you and what configuration you are testing it on.
  18. * If you want to communicate with other pretesters, send mail to
  19. emacs-pretesters@gnu.org. I don't use that mailing list when I send
  20. to you because I've found that mailing lists tend to amplify random
  21. noise into long discussions or even arguments, and that can waste a
  22. lot of time. But when you have a reason to ask other pretesters for
  23. help, you can do it that way.
  24. * It is absolutely vital that you report even the smallest change or
  25. departure from the standard sources and procedure.
  26. Otherwise, you are not testing the same program that we asked you to
  27. test. Testing a different program is usually of no use whatever. It
  28. can even cause trouble, if you fail to tell us that you tested some
  29. other program instead of what we are about to release. We might think
  30. that Emacs works, when in fact it has not even been tried, and might
  31. have a glaring fault.
  32. * Don't use a site-load.el file or a site-init.el file when you pretest.
  33. Using either of those files means you are not testing Emacs as a typical
  34. site would use it.
  35. Actually, it does no harm to test Emacs with such customizations *as
  36. well as* testing it "out of the box". Anything you do that could find
  37. a bug is useful, as long as you make sure we know exactly what you
  38. did. The important point is that testing with local changes is no
  39. substitute for testing Emacs exactly as it is distributed.
  40. * Even changing the compilation options counts as a change in the
  41. program. The Emacs sources specify which compilation options to use.
  42. Some of them are specified in makefiles, and some in machine-specific
  43. configuration files. They also give you ways to override this--but if
  44. you do, then you are not testing what ordinary users will do.
  45. Therefore, when pretesting, it is vital to test with the default
  46. compilation options.
  47. (Testing with a different set of options can be useful *in addition*,
  48. but not *instead of* the default options.)
  49. * The machine and system configuration files of Emacs are parts of
  50. Emacs. So when you test Emacs, you need to do it with the
  51. configuration files that come with Emacs.
  52. If Emacs does not come with configuration files for a certain machine,
  53. and you test it with configuration files that don't come with Emacs,
  54. this is effectively changing Emacs. Because the crucial fact about
  55. the planned release is that, without changes, it doesn't work on that
  56. machine.
  57. To make Emacs work on that machine, we would need to install new
  58. configuration files. That is not out of the question, since it is
  59. safe--it certainly won't break any other machines that already work.
  60. But you will have to rush in the legal papers to give the FSF
  61. permission to use such a large piece of text.
  62. * Look in the etc/MACHINES file.
  63. The etc/MACHINES file says which configuration files to use for your
  64. machine, so use the ones that are recommended. If you guess, you might
  65. guess wrong and encounter spurious difficulties. What's more, if you
  66. don't follow etc/MACHINES then you aren't helping to test that its
  67. recommendations are valid.
  68. The etc/MACHINES file may describe other things that you need to do
  69. to make Emacs work on your machine. If so, you should follow these
  70. recommendations also, for the same reason.
  71. * Send your problem reports to bug-gnu-emacs@gnu.org.
  72. Sometimes we won't know what to do about a system-dependent issue, and
  73. we may need people to say what happens if you try a certain thing on a
  74. certain system. When this happens, we'll send out a query.
  75. * Don't delay sending information.
  76. When you test on a system and encounter no problems, please report it
  77. right away. That way, we will know that someone has tested Emacs on
  78. that kind of system.
  79. Please don't wait for several days "to see if it really works before
  80. you say anything." Tell us right away that Emacs seems basically to
  81. work; then, if you notice a problem a few days later, tell us
  82. immediately about that when you see it.
  83. It is okay if you double check things before reporting a problem, such
  84. as to see if you can easily fix it. But don't wait very long. A good
  85. rule to use in pretesting is always to report every problem on the
  86. same day you encounter it, even if that means you can't find a
  87. solution before you report the problem.
  88. I'd much rather hear about a problem today and a solution tomorrow
  89. than get both of them tomorrow at the same time.
  90. * Make each bug report self-contained.
  91. If you refer back to another message, whether from you or from someone
  92. else, then it will be necessary for anyone who wants to investigate
  93. the bug to find the other message. This may be difficult, it is
  94. probably time-consuming.
  95. To help save our time, simply copy the relevant parts of any previous
  96. messages into your own bug report.
  97. In particular, if we ask you for more information because a bug report
  98. was incomplete, it is best to send me the *entire* collection of
  99. relevant information, all together. If you send just the additional
  100. information, that makes extra work for us. There is even a risk that
  101. we won't remember what question you are sending the answer to.
  102. * When you encounter a bug that manifests itself as a Lisp error,
  103. try setting debug-on-error to t and making the bug happen again.
  104. Then you will get a Lisp backtrace. Including that in your bug report
  105. is very useful.
  106. * For advice on debugging, see etc/DEBUG.
  107. * Debugging optimized code is possible, if you compile with GCC, but
  108. in some cases the optimized code can be confusing. If you are not
  109. accustomed to that, recompile Emacs without -O. One way to do this is
  110. make clean
  111. make CFLAGS=-g
  112. * Configure tries to figure out what kind of system you have by
  113. compiling and linking programs which calls various functions and looks
  114. at whether that succeeds. The file config.log contains any messages
  115. produced by compilers while running configure, to aid debugging if
  116. configure makes a mistake. But note that config.cache reads:
  117. # Giving --cache-file=/dev/null disables caching, for debugging configure.
  118. or more simply,
  119. rm config.cache
  120. ./configure
  121. * Don't try changing Emacs *in any way* during pretest unless it fails
  122. to work unchanged.
  123. * Always be precise when talking about changes you have made. Show
  124. things rather than describing them. Use exact filenames (relative to
  125. the main directory of the distribution), not partial ones. For
  126. example, say "I changed Makefile" rather than "I changed the
  127. makefile". Instead of saying "I defined the MUMBLE macro", send a
  128. diff.
  129. * Always use `diff -c' to make diffs. If you don't include context, it
  130. may be hard for us to figure out where you propose to make the
  131. changes. So we might ignore your patch.
  132. * When you write a fix, keep in mind that we can't install a change
  133. that *might* break other systems without the risk that it will fail to
  134. work and therefore require an additional cycle of pretesting.
  135. People often suggest fixing a problem by changing config.h or
  136. src/Makefile to do something special that a particular system needs.
  137. Sometimes it is totally obvious that such changes would break Emacs
  138. for almost all users. We can't possibly make a change like that. All
  139. we can do is ask you to find a fix that is safe to install.
  140. Sometimes people send fixes that *might* be an improvement in
  141. general--but it is hard to be sure of this. I can install such
  142. changes some of the time, but not during pretest, when I am trying to
  143. get a new version to work reliably as quickly as possible.
  144. The safest changes for us to install are changes to the s- and m-
  145. files. At least those can't break other systems.
  146. Another safe kind of change is one that uses a conditional to make
  147. sure it will apply only to a particular kind of system. Ordinarily,
  148. that is a bad way to solve a problem, and I would want to find a
  149. cleaner alternative. But the virtue of safety can make it superior at
  150. pretest time.
  151. * Don't suggest changes during pretest to add features or make
  152. something cleaner. Every change risks introducing a bug, so I won't
  153. install a change during pretest unless it is *necessary*.
  154. * If you would like to suggest changes for purposes other than fixing
  155. user-visible bugs, don't wait till pretest time. Instead, send them
  156. after we have made a release that proves to be stable. That is the
  157. easiest time to consider such suggestions. If you send them at
  158. pretest time, we will have to defer them till later, and that might
  159. mean we forget all about them.
  160. * In some cases, if you don't follow these guidelines, your
  161. information might still be useful, but we would have to do more work
  162. to make use of it. That might cause it to fall by the wayside.
  163. Local Variables:
  164. mode: text
  165. End: