git-multimail: update to release 1.5.0
[git.git] / contrib / hooks / multimail / CHANGES
blob35791fd02c21e6d43accf26ef8f1e4d4a4c1b62f
1 Release 1.5.0
2 =============
4 Backward-incompatible change
5 ----------------------------
7 The name of classes for environment was misnamed as `*Environement`.
8 It is now `*Environment`.
10 New features
11 ------------
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).
21 * A new variable multimailhook.ExcludeMergeRevisions was added to send
22   notification emails only for non-merge commits.
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.
28 Internal changes
29 ----------------
31 * The testsuite now uses GIT_PRINT_SHA1_ELLIPSIS where needed for
32   compatibility with recent Git versions. Only tests are affected.
34 * We don't try to install pyflakes in the continuous integration job
35   for old Python versions where it's no longer available.
37 * Stop using the deprecated cgi.escape in Python 3.
39 * New flake8 warnings have been fixed.
41 * Python 3.6 is now tested against on Travis-CI.
43 * A bunch of lgtm.com warnings have been fixed.
45 Bug fixes
46 ---------
48 * SMTPMailer logs in only once now. It used to re-login for each email
49   sent which triggered errors for some SMTP servers.
51 * migrate-mailhook-config was broken by internal refactoring, it
52   should now work again.
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.
57 Release 1.4.0
58 =============
60 New features to troubleshoot a git-multimail installation
61 ---------------------------------------------------------
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.
68 * A new log files system was added. See the multimailhook.logFile,
69   multimailhook.errorLogFile and multimailhook.debugLogFile variables.
71 * git_multimail.py can now be made more verbose using
72   multimailhook.verbose.
74 * A new option --check-ref-filter is now available to help debugging
75   the refFilter* options.
77 Formatting emails
78 -----------------
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.
84 * multimailhook.emailPrefix may now use the '%(repo_shortname)s'
85   placeholder for the repository's short name.
87 * A new option multimailhook.subjectMaxLength is available to truncate
88   overly long subject lines.
90 Bug fixes and minor changes
91 ---------------------------
93 * Options refFilterDoSendRegex and refFilterDontSendRegex were
94   essentially broken. They should work now.
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.
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).
108 * The coverage of the testsuite has been considerably improved. All
109   configuration variables now appear at least once in the testsuite.
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.
116 Release 1.3.1 (bugfix-only release)
117 ===================================
119 * Generate links to commits in combined emails (it was done only for
120   commit emails in 1.3.0).
122 * Fix broken links on PyPi.
124 Release 1.3.0
125 =============
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).
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.
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.
141 * Error handling for SMTP has been improved (we used to print Python
142   backtraces for legitimate errors).
144 * The SMTP mailer can now check TLS certificates when the newly added
145   configuration variable multimailhook.smtpCACerts.
147 * Python 3 portability has been improved.
149 * The documentation's formatting has been improved.
151 * The testsuite has been improved (we now use pyflakes to check for
152   errors in the code).
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.
157 No change since 1.3 RC1.
159 Release 1.2.0
160 =============
162 * It is now possible to exclude some refs (e.g. exclude some branches
163   or tags). See refFilterDoSendRegex, refFilterDontSendRegex,
164   refFilterInclusionRegex and refFilterExclusionRegex.
166 * New commitEmailFormat option which can be set to "html" to generate
167   simple colorized diffs using HTML for the commit emails.
169 * git-multimail can now be ran as a Gerrit ref-updated hook, or from
170   Atlassian BitBucket Server (formerly known as Atlassian Stash).
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.
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.
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.
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.
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).
191 * The testsuite and its documentation has been greatly improved.
193 Plus all the bugfixes from version 1.1.1.
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.
200 Release 1.1.1 (bugfix-only release)
201 ===================================
203 * The SMTP mailer was not working with Python 2.4.
205 Release 1.1.0
206 =============
208 * When a single commit is pushed, omit the reference changed email.
209   Set multimailhook.combineWhenSingleCommit to false to disable this
210   new feature.
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).
216 * Support for SMTP authentication and SSL/TLS encryption was added,
217   see smtpUser, smtpPass, smtpEncryption in README.
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.
223 * If $USER is not set, use the variable $USERNAME. This is needed on
224   Windows platform to recognize the pusher.
226 * The emailPrefix variable can now be set to an empty string to remove
227   the prefix.
229 * A short tutorial was added in doc/gitolite.rst to set up
230   git-multimail with gitolite.
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.
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.
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).
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).
250 This version has been tested with Python 2.4 to 2.7, and Git 1.7.1 to
251 2.4.
253 Release 1.0.0
254 =============
256 * Fix encoding of non-ASCII email addresses in email headers.
258 * Fix backwards-compatibility bugs for older Python 2.x versions.
260 * Fix a backwards-compatibility bug for Git 1.7.1.
262 * Add an option commitDiffOpts to customize logs for revisions.
264 * Pass "-oi" to sendmail by default to prevent premature termination
265   on a line containing only ".".
267 * Stagger email "Date:" values in an attempt to help mail clients
268   thread the emails in the right order.
270 * If a mailing list setting is missing, just skip sending the
271   corresponding email (with a warning) instead of failing.
273 * Add a X-Git-Host header that can be used for email filtering.
275 * Allow the sender's fully-qualified domain name to be configured.
277 * Minor documentation improvements.
279 * Add this CHANGES file.
282 Release 0.9.0
283 =============
285 * Initial release.