Merge git://ozlabs.org/~paulus/gitk
[git] / contrib / hooks / multimail / CHANGES
1 Release 1.5.0
2 =============
3
4 Backward-incompatible change
5 ----------------------------
6
7 The name of classes for environment was misnamed as `*Environement`.
8 It is now `*Environment`.
9
10 New features
11 ------------
12
13 * A Thread-Index header is now added to each email sent (except for
14   combined emails where it would not make sense), so that MS Outlook
15   properly groups messages by threads even though they have a
16   different subject line. Unfortunately, even adding this header the
17   threading still seems to be unreliable, but it is unclear whether
18   this is an issue on our side or on MS Outlook's side (see discussion
19   here: https://github.com/git-multimail/git-multimail/pull/194).
20
21 * A new variable multimailhook.ExcludeMergeRevisions was added to send
22   notification emails only for non-merge commits.
23
24 * For gitolite environment, it is now possible to specify the mail map
25   in a separate file in addition to gitolite.conf, using the variable
26   multimailhook.MailaddressMap.
27
28 Internal changes
29 ----------------
30
31 * The testsuite now uses GIT_PRINT_SHA1_ELLIPSIS where needed for
32   compatibility with recent Git versions. Only tests are affected.
33
34 * We don't try to install pyflakes in the continuous integration job
35   for old Python versions where it's no longer available.
36
37 * Stop using the deprecated cgi.escape in Python 3.
38
39 * New flake8 warnings have been fixed.
40
41 * Python 3.6 is now tested against on Travis-CI.
42
43 * A bunch of lgtm.com warnings have been fixed.
44
45 Bug fixes
46 ---------
47
48 * SMTPMailer logs in only once now. It used to re-login for each email
49   sent which triggered errors for some SMTP servers.
50
51 * migrate-mailhook-config was broken by internal refactoring, it
52   should now work again.
53
54 This version was tested with Python 2.6 to 3.7. It was tested with Git
55 1.7.10.406.gdc801, 2.15.1 and 2.20.1.98.gecbdaf0.
56
57 Release 1.4.0
58 =============
59
60 New features to troubleshoot a git-multimail installation
61 ---------------------------------------------------------
62
63 * One can now perform a basic check of git-multimail's setup by
64   running the hook with the environment variable
65   GIT_MULTIMAIL_CHECK_SETUP set to a non-empty string. See
66   doc/troubleshooting.rst for details.
67
68 * A new log files system was added. See the multimailhook.logFile,
69   multimailhook.errorLogFile and multimailhook.debugLogFile variables.
70
71 * git_multimail.py can now be made more verbose using
72   multimailhook.verbose.
73
74 * A new option --check-ref-filter is now available to help debugging
75   the refFilter* options.
76
77 Formatting emails
78 -----------------
79
80 * Formatting of emails was made slightly more compact, to reduce the
81   odds of having long subject lines truncated or wrapped in short list
82   of commits.
83
84 * multimailhook.emailPrefix may now use the '%(repo_shortname)s'
85   placeholder for the repository's short name.
86
87 * A new option multimailhook.subjectMaxLength is available to truncate
88   overly long subject lines.
89
90 Bug fixes and minor changes
91 ---------------------------
92
93 * Options refFilterDoSendRegex and refFilterDontSendRegex were
94   essentially broken. They should work now.
95
96 * The behavior when both refFilter{Do,Dont}SendRegex and
97   refFilter{Exclusion,Inclusion}Regex are set have been slightly
98   changed. Exclusion/Inclusion is now strictly stronger than
99   DoSend/DontSend.
100
101 * The management of precedence when a setting can be computed in
102   multiple ways has been considerably refactored and modified.
103   multimailhook.from and multimailhook.reponame now have precedence
104   over the environment-specific settings ($GL_REPO/$GL_USER for
105   gitolite, --stash-user/repo for Stash, --submitter/--project for
106   Gerrit).
107
108 * The coverage of the testsuite has been considerably improved. All
109   configuration variables now appear at least once in the testsuite.
110
111 This version was tested with Python 2.6 to 3.5. It also mostly works
112 with Python 2.4, but there is one known breakage in the testsuite
113 related to non-ascii characters. It was tested with Git
114 1.7.10.406.gdc801, 1.8.5.6, 2.1.4, and 2.10.0.rc0.1.g07c9292.
115
116 Release 1.3.1 (bugfix-only release)
117 ===================================
118
119 * Generate links to commits in combined emails (it was done only for
120   commit emails in 1.3.0).
121
122 * Fix broken links on PyPi.
123
124 Release 1.3.0
125 =============
126
127 * New options multimailhook.htmlInIntro and multimailhook.htmlInFooter
128   now allow using HTML in the introduction and footer of emails (e.g.
129   for a more pleasant formatting or to insert a link to the commit on
130   a web interface).
131
132 * A new option multimailhook.commitBrowseURL gives a simpler (and less
133   flexible) way to add a link to a web interface for commit emails
134   than multimailhook.htmlInIntro and multimailhook.htmlInFooter.
135
136 * A new public function config.add_config_parameters was added to
137   allow custom hooks to set specific Git configuration variables
138   without modifying the configuration files. See an example in
139   post-receive.example.
140
141 * Error handling for SMTP has been improved (we used to print Python
142   backtraces for legitimate errors).
143
144 * The SMTP mailer can now check TLS certificates when the newly added
145   configuration variable multimailhook.smtpCACerts.
146
147 * Python 3 portability has been improved.
148
149 * The documentation's formatting has been improved.
150
151 * The testsuite has been improved (we now use pyflakes to check for
152   errors in the code).
153
154 This version has been tested with Python 2.4 and 2.6 to 3.5, and Git
155 v1.7.10-406-gdc801e7, 2.1.4 and 2.8.1.339.g3ad15fd.
156
157 No change since 1.3 RC1.
158
159 Release 1.2.0
160 =============
161
162 * It is now possible to exclude some refs (e.g. exclude some branches
163   or tags). See refFilterDoSendRegex, refFilterDontSendRegex,
164   refFilterInclusionRegex and refFilterExclusionRegex.
165
166 * New commitEmailFormat option which can be set to "html" to generate
167   simple colorized diffs using HTML for the commit emails.
168
169 * git-multimail can now be ran as a Gerrit ref-updated hook, or from
170   Atlassian BitBucket Server (formerly known as Atlassian Stash).
171
172 * The From: field is now more customizeable. It can be set
173   independently for refchange emails and commit emails (see
174   fromCommit, fromRefChange). The special values pusher and author can
175   be used in these configuration variable.
176
177 * A new command-line option, --version, was added. The version is also
178   available in the X-Git-Multimail-Version header of sent emails.
179
180 * Set X-Git-NotificationType header to differentiate the various types
181   of notifications. Current values are: diff, ref_changed_plus_diff,
182   ref_changed.
183
184 * Preliminary support for Python 3. The testsuite passes with Python 3,
185   but it has not received as much testing as the Python 2 version yet.
186
187 * Several encoding-related fixes. UTF-8 characters work in more
188   situations (but non-ascii characters in email address are still not
189   supported).
190
191 * The testsuite and its documentation has been greatly improved.
192
193 Plus all the bugfixes from version 1.1.1.
194
195 This version has been tested with Python 2.4 and 2.6 to 3.5, and Git
196 v1.7.10-406-gdc801e7, git-1.8.2.3 and 2.6.0. Git versions prior to
197 v1.7.10-406-gdc801e7 probably work, but cannot run the testsuite
198 properly.
199
200 Release 1.1.1 (bugfix-only release)
201 ===================================
202
203 * The SMTP mailer was not working with Python 2.4.
204
205 Release 1.1.0
206 =============
207
208 * When a single commit is pushed, omit the reference changed email.
209   Set multimailhook.combineWhenSingleCommit to false to disable this
210   new feature.
211
212 * In gitolite environments, the pusher's email address can be used as
213   the From address by creating a specially formatted comment block in
214   gitolite.conf (see multimailhook.from in README).
215
216 * Support for SMTP authentication and SSL/TLS encryption was added,
217   see smtpUser, smtpPass, smtpEncryption in README.
218
219 * A new option scanCommitForCc was added to allow git-multimail to
220   search the commit message for 'Cc: ...' lines, and add the
221   corresponding emails in Cc.
222
223 * If $USER is not set, use the variable $USERNAME. This is needed on
224   Windows platform to recognize the pusher.
225
226 * The emailPrefix variable can now be set to an empty string to remove
227   the prefix.
228
229 * A short tutorial was added in doc/gitolite.rst to set up
230   git-multimail with gitolite.
231
232 * The post-receive file was renamed to post-receive.example. It has
233   always been an example (the standard way to call git-multimail is to
234   call git_multimail.py), but it was unclear to many users.
235
236 * A new refchangeShowGraph option was added to make it possible to
237   include both a graph and a log in the summary emails.  The options
238   to control the graph formatting can be set via the new graphOpts
239   option.
240
241 * New option --force-send was added to disable new commit detection
242   for update hook. One use-case is to run git_multimail.py after
243   running "git fetch" to send emails about commits that have just been
244   fetched (the detection of new commits was unreliable in this mode).
245
246 * The testing infrastructure was considerably improved (continuous
247   integration with travis-ci, automatic check of PEP8 and RST syntax,
248   many improvements to the test scripts).
249
250 This version has been tested with Python 2.4 to 2.7, and Git 1.7.1 to
251 2.4.
252
253 Release 1.0.0
254 =============
255
256 * Fix encoding of non-ASCII email addresses in email headers.
257
258 * Fix backwards-compatibility bugs for older Python 2.x versions.
259
260 * Fix a backwards-compatibility bug for Git 1.7.1.
261
262 * Add an option commitDiffOpts to customize logs for revisions.
263
264 * Pass "-oi" to sendmail by default to prevent premature termination
265   on a line containing only ".".
266
267 * Stagger email "Date:" values in an attempt to help mail clients
268   thread the emails in the right order.
269
270 * If a mailing list setting is missing, just skip sending the
271   corresponding email (with a warning) instead of failing.
272
273 * Add a X-Git-Host header that can be used for email filtering.
274
275 * Allow the sender's fully-qualified domain name to be configured.
276
277 * Minor documentation improvements.
278
279 * Add this CHANGES file.
280
281
282 Release 0.9.0
283 =============
284
285 * Initial release.