CHANGELOG.md 22.6 KB
Newer Older
paz's avatar
paz committed
1 2 3 4 5
Change Log
==========

This project adheres to [Semantic Versioning](http://semver.org/).

6 7 8 9 10 11
## [3.4.1] / 2019-06-XX

### Fixed

* Do not crash on protected header emails generated by mutt (#430)

paz's avatar
paz committed
12
## [3.4.0] / 2019-02-14
13 14 15 16

### Fixed

* Stop leaking keywords to third parties by stripping HTML from multipart/alternative messages if they contain keywords. (#399)
17 18 19 20 21 22 23 24
* Avoid shelling out in a test-case to avoid an occasional error occurring in CI runs that complains about invalid data in ASCII-8BIT strings.

### Changed

* Update the dependency 'mail' to version 2.7.x., and allow carriage returns (CR) in test-cases as mail-2.7 puts those out.
* Update the dependency 'sqlite3' to version 1.3.x.
* Adapt fixtures and factories for factorybot version 5.x.
* Let schleuder-code load the filter files in test-mode, avoid explicit path names (which make headaches when running tests on installed packages).
25 26


paz's avatar
paz committed
27
## [3.3.0] / 2018-09-04
28

29 30
### Fixed

31
* Handle missing arguments for several keywords and reply with a helpful error-message.
32
* Send replies to keyword-usage and notices to admins regardless of the delivery-flag of their subscription. (#354)
33
* X-UNSUBSCRIBE will refuse to unsubscribe the last admin of a list. (#357)
34
* Handle "protected subjects" in a way that Thunderbird/Enigmail recognize. (#74)
35
* X-SET-FINGERPRINT will not anymore allow setting an empty fingerprint. (#360)
36 37


38 39 40
### Added

* To remove a fingerprint from a subscription one can use the new keyword X-UNSET-FINGERPRINT (#360).
41
* Extend the pseudoheaders configuration option to support 'sig' and 'enc' as configurable and sortable fields.
42 43


44 45 46 47
### Changed

* The output of the keywords 'X-ADD-KEY' and 'X-DELETE-KEY' now also show the "oneline"-format to represent keys (which includes fingerprint, primary email-address, date of generation and possible expiry). (#295)
* In the response to 'X-ADD-KEY', differentiate between 'newly imported' and 'updated' keys.
48
* Parse keywords up to the first line detected as mail content, this addresses a first part of #249.
49

paz's avatar
paz committed
50

paz's avatar
paz committed
51 52
## [3.2.3] / 2018-05-14

53 54 55
### Fixed

* `X-SUBSCRIBE` now in all cases correctly sets the values for admin and delivery_enabled, if they are given as third and fourth argument, respectively.
georg's avatar
georg committed
56
* To identify broken Microsoft Exchange messages, check if the headers include 'X-MS-Exchange' instead of specific domain names. Before this, we've missed mails sent by Exchange installations not operated by Microsoft or mails with a different "originating organisation domain" than Hotmail or Outlook. (#333)
57
* Do not anymore fail on emails containing any PGP boundaries as part of their plain text. As a sideeffect we will not anymore validate an email a second time. Hence, a message part containing an additional signature within an encrypted (and possibly signed) email won't be validated and removed. (#261)
58
* Exit with code 1 if a CLI-subcommand was not found (#339).
paz's avatar
paz committed
59 60
* Fix finding keywords in request-messages that were sent from Thunderbird/Enigmail with enabled "protected subject".
* Fix leaking the "protected subject" sent from Thunderbird/Enigmail.
61
* Error messages are converted into human readable text now, instead of giving their class-name. (#338)
62
* Require mail-gpg >= 0.3.3, which fixes a bug that let some equal-signs disappear under specific circumstances. (#287)
63

64

65 66 67
### Known issues

* With the current used mail library version schleuder uses, there are certain malformed emails that can't be parsed. See #334 for background. This will be fixed in future releases of the mail library.
68

69 70 71 72
### Added

* Enable to load external filters, similar to how we allow external plugins. (#282)

73
### Changed
paz's avatar
paz committed
74

georg's avatar
georg committed
75
* Use schleuder.org as website and team@schleuder.org as contact email.
76
* Check environment variable if code coverage check should be executed. (#342)
77
* Transform GPG fingerprints to upper case before saving to database. (#327)
78
* CLI-commands that (potentially) change data now remind the system admin to check file system permission if the command was run with root privileges. (#326)
georg's avatar
georg committed
79 80


paz's avatar
paz committed
81
## [3.2.2] / 2018-02-06
paz's avatar
paz committed
82 83 84 85

### Changed

* Temporarily depend on the ruby-library "mail" version 2.6. 2.7.0 seems to be a rough release (broke 8bit-characters, changed newline-styles) that needs to be ironed out before we can use it.
86
* Changed wording of error-message in case of a missing or incorrect "X-LIST-NAME"-keyword. (Thanks, anarcat!)
87
* Keys are now shuffled before refreshing them. This randomizes the way how we are querying keyservers for updated keys to avoid fingerprinting of a list's keyring.
paz's avatar
paz committed
88
* Be more robust when dirmngr fails while refreshing keys, especially when updating over an onion service. Fixes #309.
paz's avatar
paz committed
89

90

paz's avatar
paz committed
91 92 93
### Fixed

* Fix handling of emails with large first mime parts. We removed the code that limited the parsing of keywords to the first 1000 lines, as that broke the handling of certain large emails.
ng's avatar
ng committed
94
* Fix output of Keys with a broken character set. This mainly affected schleuder-api.
95
* Exit install-script if setting up the database failed.
georg's avatar
georg committed
96
* Reveal less errors to public, and improve messages to admins. Previously errors about list-config etc. would have been included in bounces to the sender of the incoming email. Now only the admins get to know the details (which now also include the list the error happened with). Email-bounces only tell about a fatal error — except if the list could not be found, that information is still sent to the sender of the incoming email.
ng's avatar
ng committed
97
* Make sure dirmngr is killed for a list after refreshing a list's keyring. Avoids servers getting memory exhausted. Fixes #289
98
* Fixed the API-daemon's interpretation of listnames that start with a number (previously the listname "1list" caused errors because it was taken as the integer 1).
99

paz's avatar
paz committed
100

paz's avatar
paz committed
101 102 103 104
## [3.2.1] / 2017-10-24

### Changed

105
* Explicitly depend on the latest version of ruby-gpgme (2.0.13) to force existing setups to update. This fixes the problem where unusable keys were not identified as such. (Previous versions of ruby-gpgme failed to properly provide the capabilities of a key.)
paz's avatar
paz committed
106 107


paz's avatar
paz committed
108
## [3.2.0] / 2017-10-23
109

110 111
### Added

georg's avatar
georg committed
112
* Internal footer: to be appended to each email that is sent to a subscribed address. Will not be included in messages to non-subscribed addresses. This change requires a change to the database, don't forget to run `schleuder install` after updating the code.
113
* Optionally use an OS-wide defined keyserver by configuring a blank value for the keyserver.
ng's avatar
ng committed
114
* Added keywords `X-RESEND-UNENCRYPTED` and `X-RESEND-CC-UNENCRYPTED` to enforce outgoing email(s) in cleartext regardless of whether we would find a key for the recipient or not.
115 116


117 118
### Changed

119
* Public footer: Whitespace is not anymore stripped from the value of public_footer.
120
* The API does not include anymore each key's key-data in response to `/keys.json`. This avoids performance problems with even medium sized keyrings.
121
* The short representation of GnuPG keys became more human-friendly. Besides the fingerprint we now show the email-address of the first UID, the generation-date, and optionally the expiration-date.
122
* Log the full exception when sending a message fails. (Thanks, Lunar!)
123
* When creating a new list, we do not anymore look for a matching key for the admin-address in the list's keyring. We don't want to look up keys for subscriptions by email at all. (This was anyway only useful in the corner case where you prefilled a keyring to use for the new list.)
124
* API: Access to `/status.json` is now allowed without authentication.
125
* Deprecate X-LISTNAME in favour of X-LIST-NAME, for the sake of consistency in spelling keywords (but X-LISTNAME is still supported). (Thanks, maxigas!)
126

127 128 129
### Fixed

* X-SUBSCRIBE now handles the combination of space-separated fingerprint and additional arguments (admin-flag, delivery-enabled-flag) correctly.
paz's avatar
paz committed
130
* Fixed broken encoding of certain character-sequences in encrypted+signed messages.
paz's avatar
paz committed
131
* X-LIST-KEYS again works without arguments.
132
* X-RESEND now checks the given arguments to be valid email-addresses, and blocks resending if any one is found invalid.
133
* X-RESEND now respects the encoding the mail was sent with. (Thanks, Lunar!)
134 135


136
## [3.1.2] / 2017-07-13
ng's avatar
ng committed
137

138 139 140 141
### Changed

* Sort lists alphabetically by email per default.

ng's avatar
ng committed
142 143 144
### Fixed

* Fix dropping mails on certain headers (e.g. spam), as the headers weren't checked properly so far.
145
* Fix processing of bounced messages. If a bounced messaged contained a PGP message (which most messages sent by schleuder have), schleuder tried to decrypt it before processing as a bounced message. This failed in nearly all cases, leading to double bounces. (#234)
146
* Fix reading messages with empty Content-Type-header. Some automatically sent messages don't have one.
147
* Do not try to fix text/plain messages from outlook (#246)
148

ng's avatar
ng committed
149

paz's avatar
paz committed
150
## [3.1.1] / 2017-06-24
151

ng's avatar
ng committed
152 153
### Added

paz's avatar
paz committed
154 155 156 157 158
* New cli-command `pin_keys` to pin the subscriptions of a list to a respective key (#225). Running this fixes the shortcoming of the code for list-migration mentioned below.

### Changed

* Allow to run `refresh_keys` only for a given list.
ng's avatar
ng committed
159

160 161
### Fixed

paz's avatar
paz committed
162
* **When migrating a v2-list, lookup keys for subscriptions** and assign the fingerprint if it was a distinct match. Otherwise people that had no fingerprint set before will receive plaintext emails — because in v3 we're not anymore looking up keys for subscriptions by email address. (To fix this for already migrated lists please use `schleuder pin_keys $listname`).
paz's avatar
paz committed
163 164
* When migrating a v2-list, assign the looked up fingerprint to an admin only if it was a distinct match.
* When migrating a v2-list, do not enable delivery for admins that weren't a member. (#213)
paz's avatar
paz committed
165
* When migrating a v2-list, subscribe duplicated members only once (#208)
paz's avatar
paz committed
166
* When migrating a v2-list, properly deal with admins that have no (valid) key. (#207)
paz's avatar
paz committed
167
* When creating a list, only use distinctly found keys for admins.
paz's avatar
paz committed
168
* Skip unusable keys when resending.
169
* Don't report unchanged keys when refreshing keys.
paz's avatar
paz committed
170
* Fix adding the subject-prefix to an empty subject (#226)
paz's avatar
paz committed
171
* Do not detect emails sent from cron-scripts as bounces (#205)
paz's avatar
paz committed
172
* Fix working with multipart/alternative-messages that contain inline OpenPGP-data. We're now stripping the HTML-part to enable properly handling the ciphertext.
173
* Validate that an email address can be subscribed only once per list.
paz's avatar
paz committed
174
* Fixed settings subscription-attributes (admin, delivery_enabled) when suscribing through schleuder-web.
paz's avatar
paz committed
175 176 177 178
* schleuder-api-daemon SysV init script: Fix formatting and styling, add recommend and required commands {status,reload,force-reload} by Lintian. (#230)
* Don't require database-adapter early. Helps when using a different database-system than sqlite.
* Fix text of admin-notification from plugin-runners.
* Avoid loops on notifying list admins (#229)
179 180


paz's avatar
paz committed
181
## [3.1.0] / 2017-05-21
182

paz's avatar
paz committed
183 184 185 186 187 188 189 190 191 192
### Added

* `X-GET-LOGFILE`. Sends you the logfile of the list.
* `X-ATTACH-LISTKEY`. Attaches the list's key to a message. Useful in combination with `X-RESEND`.
* `X-GET-VERSION`. Sends you the version of Schleuder that is running your list.
* API-endpoint to trigger sending the list's key to all subscriptions.

### Changed

* Don't write errors of list-plugins into the list of pseudo-headers. List-plugins must handle errors on their own.
193
* Allow request-plugins to return attachments.
paz's avatar
paz committed
194 195
* Fix x-get-key for multiple keys per match, and attach the resulting keys.
* Tolerate 0x-prefix on input for fingerprints of subscriptions.
196
* Tolerate spaces on input for fingerprints in keywords.
paz's avatar
paz committed
197
* `X-GET-KEY` returns keys as attachments now.
198
* `X-SIGN-THIS` returns attachments now, too.
199
* The texts that describe the forwarded automated messages now reflect that not all of those were bounces.
200 201
* Use single SQL-query instead of five, in select-statement in postfix/schleuder_sqlite.cf.
* Use sender() to specify the return-address, instead of setting a Return-Path.
paz's avatar
paz committed
202

203 204
### Fixed

paz's avatar
paz committed
205 206 207 208
* Make `public_footer` appear at the bottom of messages, not at the top.
* Remove excessive empty lines in output of refresh-keys.
* Amended list of dependencies in README.
* Fix `X-GET-KEY` for multiple keys per match.
209
* Also report if a key-import didn't change a present key.
210
* Fix bounce-address in postfix/schleuder_sqlite.cf.
211 212


paz's avatar
paz committed
213 214 215 216 217 218 219 220 221 222 223 224 225 226
## [3.0.4] / 2017-04-15

### Changed

* Harmonize format of key `check` and `update` texts.


### Fixed

* Fix unlegible messages (we mis-handled base64-encoded message-parts under some circumstances).
* Avoid run-on paragraphs in key `check` and `update` reports (Thanks, dkg!)
* Let schleuder-cli request check keys (allow /keys/check_keys.json to be reached).


paz's avatar
paz committed
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
## [3.0.3] / 2017-02-16

### Changed

* Require fingerprints of lists and subscriptions to be at least 32 characters long. Previously it was possible to assign shorter hexadecimal strings.
* Key lookup for arguments to X-keywords is stricter than before: if you supply a string containing an "@", gnupg will be told to only match it against email-addresses; if you send a hexadecimal string, gnupg will be told to only match it against fingerprints.
* Fixed and improved X-DELETE-KEY to only allow deletion of a single key, and only if no matching secret key is present.
* Fixed and improved X-FETCH-KEY to use the configured keyserver; to handle URLs, fingerprints, and email-addresses alike; and to send internationalized messages.
* Go back to make mock SKS-server listen on 127.0.0.1 — the former IP resulted in errors on some systems.


### Fixed

* Don't break multipart/alternative-parts when inserting our pseudo-headers.
* X-ADD-KEY handles inline content from Thunderbird correctly.
* X-SIGN-THIS now looks recursively for attachments to sign.
* Fixed unsubscribing oneself with X-UNSUBSCRIBE.
* Fixed setting fingerprint for other subscription than oneself with X-SET-FINGERPRINT.
* Better output of X-LIST-SUBSCRIPTIONS if no subscriptions are present.
* Sensible error message if X-GET-KEY doesn't find a matching key.
* Allow '0x'-prefix of fingerprints when given as keyword-argument.
* If no keyword generates output, a sensible error message is used.


### Added

* More rspec-tests.


paz's avatar
paz committed
256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
## [3.0.2] / 2017-02-01

### Changed

* Use less usual IP and port number for mock SKS-server. Previously this conflicted with actual SKS-servers running on the same machine.


### Added

* Call refresh_keys in provided crontab-script.


### Fixed

* Fixed importing member-fingerprints when migrating a list.
* Fix clearing passphrase during list-migration with GnuPG 2.0.x by actually shipping the required pinentry-script.
* Corrected english phrasing and spelling for error message in case of wrong argument to listname-keyword. (Thanks, dkg!)


paz's avatar
paz committed
275 276 277 278 279 280 281 282 283 284
## [3.0.1] / 2017-01-26

### Fixed

* Fixed setting admin- and delivery-flags on subscription. Requests from schleuder-cli were interpreted wrongly, which led to new lists having no admins.
* A short description for the man-page of schleuder-api-daemon to satisfy the lintian.
* Listing openssl as dependency in README. If the openssl header-files are not present when eventmachine compiles its native code, schleuder-api-daemon cannot use TLS.
* Removed reference to Github from Code of Conduct.


paz's avatar
paz committed
285
## [3.0.0] / 2017-01-26
paz's avatar
paz committed
286 287 288 289

### Changed

* **API-keys always required!** From now on all requests to schleuder-api-daemon require API-keys, even via localhost. This helps protecting against rogue non-root-accounts or -scripts on the local machine.
paz's avatar
paz committed
290
* **TLS always used!** schleuder-api-daemon now always uses TLS.
paz's avatar
paz committed
291 292 293 294 295
* Switched project-site and git-repository to <https://0xacab.org/schleuder/schleuder>.
* Set proper usage flags when creating a new OpenPGP-key: the primary key gets "SC", the subkey "E". (Thanks, dkg!)
* Avoid possible future errors by ignoring every unknown output of gpg (like GnuPG's doc/DETAILS recommends). (Thanks, dkg!)
* Friendlier error message if delivery to subscription fails.
* Set list-email as primary address after adding UIDs. Previously it was a little random, for reasons only known to GnuPG.
georg's avatar
georg committed
296
* Only use temporary files where necessary, and with more secure paths.
georg's avatar
georg committed
297
* Tighten requirements for valid email-addresses a little: The domain-part may now only contain alphanumeric characters, plus these: `._-`
paz's avatar
paz committed
298
* Required version of schleuder-cli: 0.0.2.
paz's avatar
paz committed
299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320

### Added

* X-LISTNAME: A **new mandatory keyword** to accompany all keywords. From now on every message containing keywords must also include the listname-keyword like this: `X-LISTNAME: list@hostname`

  The other keywords will only be run if the given listname matches the email-address of the list that the message is sent to. This mitigates replay-attacks among different lists.
* Also send helpful message if a subscription's key is present but unusable.
* Provide simpler postfix integration, now using virtual_domains and an sql-script. (Thanks, dkg!)
* Enable refreshing keys from keyservers: A script that is meant to be run regularly from cron. It refreshes each key of each list one by one from a configurable keyserver, and sends the result to the respective list-admins.
* Import attached, ascii-armored keys from messages with `add-key`-keyword. (Thanks, Kéfir!)
* Check possible key-material for expected format before importing it. (Thanks, Kéfir!)

### Fixed

* Allow fingerprints to be prefixed with '0x' in `subscribe`-keyword.
* Also delete directory of list-logfile on deletion if that resides outside of the list-dir.
* Sign and possibly encrypt error notifications.
* Fix setting admin- and delivery-flags while subscribing.
* Fix subscribing from schleuder-cli.
* Fix finding subscriptions from signatures made by a signing-capable sub-key.


321
## [3.0.0.beta17] / 2017-01-12
paz's avatar
paz committed
322 323 324 325 326

### Changed

* Stopped using SCHLEUDER_ROOT in specs. Those make life difficult for packaging for debian.
* While running specs, ensure smtp-daemon.rb has been stopped before starting it anew.
327

328
### Added
paz's avatar
paz committed
329 330 331 332

* A Code of Conduct.


333 334 335 336 337 338 339 340 341 342 343 344 345
## [3.0.0.beta16] / 2017-01-11

### Fixed

* Fix running `schleuder migrate...`.
* Fix assigning list-attributes when migrating a list.

### Added

* Import the secret key and clear its passphrase when migrating a list from v2.
* More tests.


346
## [3.0.0.beta15] / 2017-01-10
347

paz's avatar
paz committed
348
### Changed
349

350
* Default `lists_dir` and `listlogs_dir` to `/var/lib/schleuder`.
351 352 353
* Use '/usr/local/bin' as daemon PATH in schleuder-api-daemon sysvinit
  script.

paz's avatar
paz committed
354 355 356 357 358 359 360 361
### Fixed

* Fix running for fresh lists if `lists_dir` is different from `listlogs_dir`
  (by creating logfile-basedir, closes Debian bug #850545).
* Fix error-message from ListBuilder if given email is invalid.
* Fix checking for sufficient gpg-version (previously '2.1' didn't suffice if
  '2.1.0' was required).

362 363 364
### Added

* Cron job file to check keys.
paz's avatar
paz committed
365 366 367 368 369
* Show when delivery is disabled for a subscription (in reply to
  'list-subscriptions'-keyword).
* Add timeout to default sqlite-config (avoids errors in the case that the
  DB-file is locked on first attempt).
* Provide method to call gpg-executable.
paz's avatar
paz committed
370 371
* Also add additional UIDs to generated PGP-keys when using gpg 2.0.
* Specs for ListBuilder.
372 373


374
## [3.0.0.beta14] / 2016-12-29
Nina's avatar
Nina committed
375 376 377 378 379 380 381

### Fixed

* Fix key expiry check
* Fix link to schleuder.nadir.org in List-Help header
* Fix deleting listdir

382 383 384 385 386
### Added

 * Runner and integration tests
 * More fixtures

387 388 389 390 391 392 393
## [3.0.0.beta13] / 2016-12-22

### Fixed

 * Fix creating new lists.


394
## [3.0.0.beta12] / 2016-12-22
paz's avatar
paz committed
395 396 397 398 399 400

### Changed

 * Show file permission warning if cert is being generated as root.
 * Use hard-coded defaults as base to merge config-file over.

paz's avatar
paz committed
401 402 403 404
### Added

 * New keyword `x-resend-cc` to send a message to multiple recipients that should know of each another. The ciphertext will be encrypted only once to all recipients, too.
 * More specs.
paz's avatar
paz committed
405
 * Skript for schleuder-api-daemon under sysvinit.
paz's avatar
paz committed
406

paz's avatar
paz committed
407 408 409
### Fixed

 * Fix tests for non-default listlogs_dir.
paz's avatar
paz committed
410 411
 * Fix pseudo-header "Sig" for unknown keys.
 * Fix adding subject_prefix_in for unencrypted messages.
412
 * Fix checking permissions of listdir and list.log for newly created lists.
paz's avatar
paz committed
413
 * Fix occasionally empty 'date'-pseudo-header.
paz's avatar
paz committed
414

415 416 417 418 419 420 421 422 423 424 425 426
## [3.0.0.beta11] / 2016-12-07

### Changed

 * Fixed recognition and validation of clearsigned-inline messages.
 * Fix log-file rotation (for list.log).
 * Show hint to set `use_tls: true` after generation of certificate.

### Added

 * During installation, show error message and exit if data of an installation of schleuder-2.x is found in the configured lists_dir.
 * More tests.
paz's avatar
paz committed
427

paz's avatar
paz committed
428

429 430 431 432 433 434
## [3.0.0.beta10] / 2016-12-05

### Changed

 * Fixed tarball to contain correct version and state of changelog.

435

paz's avatar
paz committed
436 437
## [3.0.0.beta9] / 2016-12-02

paz's avatar
paz committed
438 439 440
### Added

 * Include tarball into release.
441
 * Make basedir of list-logs configurable (`listlogs_dir`). No operational change with the default value.
paz's avatar
paz committed
442 443 444
 * Recognize "encapsulated" signatures (RFC 3156, 6.1). (These signatures might still be reported as invalid, that's a bug in mail-gpg which will probably be fixed in their next release.)
 * Make installed schleuder-files accessible for owner and group only.
 * Make list-logs accessible to owner and group only.
paz's avatar
paz committed
445 446 447 448 449

### Changed

 * Improved documentation.

paz's avatar
paz committed
450 451 452 453 454
### Fixed

 * Fix checking for empty messages for nested multiparts (e.g. Thunderbird with memoryhole-headers).
 * Fix `schleuder install` to respect config settings (e.g. `lists_dir`)

paz's avatar
paz committed
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520
## [3.0.0.beta8] / 2016-11-27

### Changed

 * Add network and local-filesystem as dependencies in systemd-unit-file.
 * Improved documentation.

### Fixed

 * Declare dependency on thin.


## [3.0.0.beta7] / 2016-11-23

### Added

 * `man`-page for schleuder(8).
 * schleuder-api-daemon: optionally use TLS.
 * schleuder-api-daemon: authenticate client by API-key if TLS is used.

### Changed

 * Sign git-tags, gems, and tarballs as 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3.
 * Rename schleuderd to schleuder-api-daemon.
 * schleuder-api-daemon: bind to `localhost` by default.
 * schleuder-api-daemon: changed name of `bind` config option to `host`.
 * schleuder-api-daemon: return 204 if not content is being sent along.
 * Refactor and improve model validations.

### Fixed

 * Fixed creating lists.
 * Fixed default config.
 * Log errors to syslog-logger in case of problems with list-dir.


## [3.0.0.beta6] / 2016-11-13

### Added

 * Add `-v`, `--version` arguments to CLI.
 * New model validators.
 * Translations (de, en) and better wording for validation error messages.
 * Specs (test-cases) for the list model.
 * Use Travis to automate testing.
 * Test listname to be a valid email address before creating list.
 * A simple contribution guide.
 * Check that GnuPG >= 2.0 is being used.
 * Enable to specify path to gpg-executable in GPGBIN environment variable.
 * A simple schleuder-only MTA to help with development.

### Changed

 * schleuderd: use GET instead of OPTIONS to work around bug in ruby 2.1.
 * Allow "inline"-pgp for request-messages (mail-gpg 0.2.7 fixed their issue).

### Fixed

 * Fix testing nested messages for emptiness.
 * Fix bouncing a message if it was found to be empty.
 * Fix truncated 'adding UID failed' message (transported via HTTP-headers).

## ...

---------

521 522
The format of this file is based on [Keep a Changelog](http://keepachangelog.com/).

paz's avatar
paz committed
523 524 525 526 527 528 529 530 531 532
Template, please ignore:

## [x.x.x] / YYYY-MM-DD
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security