1Release 1.5.0
2=============
3
4Backward-incompatible change
5----------------------------
6
7The name of classes for environment was misnamed as `*Environement`.
8It is now `*Environment`.
9
10New 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
28Internal 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
45Bug 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
54This version was tested with Python 2.6 to 3.7. It was tested with Git
551.7.10.406.gdc801, 2.15.1 and 2.20.1.98.gecbdaf0.
56
57Release 1.4.0
58=============
59
60New 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
77Formatting 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
90Bug 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
111This version was tested with Python 2.6 to 3.5. It also mostly works
112with Python 2.4, but there is one known breakage in the testsuite
113related to non-ascii characters. It was tested with Git
1141.7.10.406.gdc801, 1.8.5.6, 2.1.4, and 2.10.0.rc0.1.g07c9292.
115
116Release 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
124Release 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
154This version has been tested with Python 2.4 and 2.6 to 3.5, and Git
155v1.7.10-406-gdc801e7, 2.1.4 and 2.8.1.339.g3ad15fd.
156
157No change since 1.3 RC1.
158
159Release 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
193Plus all the bugfixes from version 1.1.1.
194
195This version has been tested with Python 2.4 and 2.6 to 3.5, and Git
196v1.7.10-406-gdc801e7, git-1.8.2.3 and 2.6.0. Git versions prior to
197v1.7.10-406-gdc801e7 probably work, but cannot run the testsuite
198properly.
199
200Release 1.1.1 (bugfix-only release)
201===================================
202
203* The SMTP mailer was not working with Python 2.4.
204
205Release 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
250This version has been tested with Python 2.4 to 2.7, and Git 1.7.1 to
2512.4.
252
253Release 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
282Release 0.9.0
283=============
284
285* Initial release.
286