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.