commit 9ac52d508566a4200be37262e9dd1afa85f4ac8e Author: Philipp Winter phw@nymity.ch Date: Thu May 14 14:33:31 2020 -0700
Re-flow indentation of bugfix items.
The excessive 8-character indentation has been bothering me forever. This patch reduces indentation to four characters and re-flows all bugfix items. --- CHANGELOG | 2443 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1184 insertions(+), 1259 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG index cfee3f9..5ac9e0b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,1549 +1,1474 @@ - * FIXES https://bugs.torproject.org/31528 - BridgeDB's UI uses a bunch of obscure "chatspeak" references in its UI. - One example is that it responds with "Uh oh, spaghettios!" if there are - currently no bridges available. While funny to some, this is difficult - to translate and shouldn't be part of software that's used by an - international audience. This patch removes such references. - - * FIXES https://bugs.torproject.org/12802 - Add a script that sends a bridge request over email, and then checks if - it received a response from BridgeDB. We use this script as part of - our nagios setup, so we notice when our autoresponder breaks. - - * FIXES https://bugs.torproject.org/17548 - This patch removes PGP support. BridgeDB's signing key expired on - 2015-09-11. Nobody ever complained and maintaining the bits and pieces - necessary to sign emails isn't worth the effort, so this patch removes - that feature. - - * FIXES https://bugs.torproject.org/30941 - Make our email responder more usable. This patch removes the concept of - "valid" email commands and returns bridges (obfs4, for now) no matter - what the user sends. BridgeDB still supports email commands in case the - user needs a vanilla or IPv6 bridge. - - * FIXES https://bugs.torproject.org/29686 - Rename files that contain "Bridges" to "bridgerings", to eliminate - headache on file systems that are case insensitive. + * FIXES https://bugs.torproject.org/31528 + BridgeDB's UI uses a bunch of obscure "chatspeak" references in its UI. One + example is that it responds with "Uh oh, spaghettios!" if there are + currently no bridges available. While funny to some, this is difficult to + translate and shouldn't be part of software that's used by an international + audience. This patch removes such references. + + * FIXES https://bugs.torproject.org/12802 + Add a script that sends a bridge request over email, and then checks if it + received a response from BridgeDB. We use this script as part of our nagios + setup, so we notice when our autoresponder breaks. + + * FIXES https://bugs.torproject.org/17548 + This patch removes PGP support. BridgeDB's signing key expired on + 2015-09-11. Nobody ever complained and maintaining the bits and pieces + necessary to sign emails isn't worth the effort, so this patch removes that + feature. + + * FIXES https://bugs.torproject.org/30941 + Make our email responder more usable. This patch removes the concept of + "valid" email commands and returns bridges (obfs4, for now) no matter what + the user sends. BridgeDB still supports email commands in case the user + needs a vanilla or IPv6 bridge. + + * FIXES https://bugs.torproject.org/29686 + Rename files that contain "Bridges" to "bridgerings", to eliminate headache + on file systems that are case insensitive.
Changes in version 0.10.0 - 2020-04-01
- * FIXES https://bugs.torproject.org/30317 - Update our "howto" box, which explains how one adds bridges to Tor - Browser. In addition to updating the instructions, this patch also - links to instructions for Android. + * FIXES https://bugs.torproject.org/30317 + Update our "howto" box, which explains how one adds bridges to Tor Browser. + In addition to updating the instructions, this patch also links to + instructions for Android.
- * FIXES https://bugs.torproject.org/33631 - So far, BridgeDB remembered only the first distribution mechanism it - ever learned for a given bridge. That means that if a bridge would - change its mind and re-configure its distribution mechanism using - BridgeDistribution, BridgeDB would ignore it. This patch changes this - behavior, so bridges can actually change their distribution mechanism. + * FIXES https://bugs.torproject.org/33631 + So far, BridgeDB remembered only the first distribution mechanism it ever + learned for a given bridge. That means that if a bridge would change its + mind and re-configure its distribution mechanism using BridgeDistribution, + BridgeDB would ignore it. This patch changes this behavior, so bridges can + actually change their distribution mechanism.
- * FIXES https://bugs.torproject.org/31967 - Use a CSPRNG for selecting cached CAPTCHAs. + * FIXES https://bugs.torproject.org/31967 + Use a CSPRNG for selecting cached CAPTCHAs.
- * FIXES https://bugs.torproject.org/33008 - Add an info page, available at bridges.torproject.org/info. Relay - Search links to this info page to explain to bridge operators what their - bridge distribution mechanism means. + * FIXES https://bugs.torproject.org/33008 + Add an info page, available at bridges.torproject.org/info. Relay Search + links to this info page to explain to bridge operators what their bridge + distribution mechanism means.
Changes in version 0.9.4 - 2020-02-19
- * FIXES https://bugs.torproject.org/30946 - This patch ports BridgeDB to Python 3. Python 2 is no longer supported - since Jan 1, 2020. + * FIXES https://bugs.torproject.org/30946 + This patch ports BridgeDB to Python 3. Python 2 is no longer supported + since Jan 1, 2020.
Changes in version 0.9.3 - 2020-02-18
- * FIXES https://bugs.torproject.org/33299 - This patch disables the distribution of FTE, ScrambleSuit, and obfs3. + * FIXES https://bugs.torproject.org/33299 + This patch disables the distribution of FTE, ScrambleSuit, and obfs3.
Changes in version 0.9.2 - 2020-02-04
- * FIXES https://bugs.torproject.org/31427 - This patch updates the AUTHORS file, HACKING.md, contact information, - the Trac URL to report bugs, our instructions on BridgeDB's landing - page, and it fixes a small bug in descriptor generation. + * FIXES https://bugs.torproject.org/31427 + This patch updates the AUTHORS file, HACKING.md, contact information, the + Trac URL to report bugs, our instructions on BridgeDB's landing page, and it + fixes a small bug in descriptor generation.
Changes in version 0.9.1 - 2019-10-29
- * FIXES https://bugs.torproject.org/32203 - The metrics code used to weed out vanilla bridges, so they did not show - up in our metrics. This patch fixes this issue. + * FIXES https://bugs.torproject.org/32203 + The metrics code used to weed out vanilla bridges, so they did not show up + in our metrics. This patch fixes this issue.
- * FIXES https://bugs.torproject.org/32134 - While implementing our language switcher (#26543), we added a new - string, "Language", that requires translations. This patch adds a new - translation request and also updates our instructions on how to request - new translations. + * FIXES https://bugs.torproject.org/32134 + While implementing our language switcher (#26543), we added a new string, + "Language", that requires translations. This patch adds a new translation + request and also updates our instructions on how to request new + translations.
- * FIXES https://bugs.torproject.org/32105 - Mention an undocumented OS-level dependency: python3-dkim. + * FIXES https://bugs.torproject.org/32105 + Mention an undocumented OS-level dependency: python3-dkim.
Changes in version 0.9.0 - 2019-10-16
- * FIXES https://bugs.torproject.org/26543 - Implement a language switcher that allows users to override the locale - that BridgeDB automatically selects by inspecting the client's request - headers. + * FIXES https://bugs.torproject.org/26543 + Implement a language switcher that allows users to override the locale that + BridgeDB automatically selects by inspecting the client's request headers.
Changes in version 0.8.3 - 2019-10-03
- * FIXES https://bugs.torproject.org/31903 - Update existing translations and request new translations. Thanks to - all volunteers who helped translate BridgeDB! + * FIXES https://bugs.torproject.org/31903 + Update existing translations and request new translations. Thanks to all + volunteers who helped translate BridgeDB!
- * FIXES https://bugs.torproject.org/31780 - We implemented BridgeDB's metrics in #9316 but haven't specified its - format until now. In addition to adding a specification, this patch - also makes our implementation consistent with our (slightly updated) - specification. + * FIXES https://bugs.torproject.org/31780 + We implemented BridgeDB's metrics in #9316 but haven't specified its format + until now. In addition to adding a specification, this patch also makes our + implementation consistent with our (slightly updated) specification.
- * FIXES https://bugs.torproject.org/29484 - Update BridgeDB's requirements to the latest respective versions. Among - others, this patch set updates Twisted to 19.7.0, pyOpenSSL to 19.0.0, - and replaces (the abandoned) PyCrypto with PyCryptodome, which fixes - security vulnerabilities. + * FIXES https://bugs.torproject.org/29484 + Update BridgeDB's requirements to the latest respective versions. Among + others, this patch set updates Twisted to 19.7.0, pyOpenSSL to 19.0.0, and + replaces (the abandoned) PyCrypto with PyCryptodome, which fixes security + vulnerabilities.
Changes in version 0.8.2 - 2019-09-20
- Updated translations for the following languages: - bn, da, eo, fa, it, ko, nl, pt_BR, pt_PT, sr, zh_CN. + Updated translations for the following languages: + bn, da, eo, fa, it, ko, nl, pt_BR, pt_PT, sr, zh_CN.
Changes in version 0.8.1 - 2019-09-11
- * FIXES https://bugs.torproject.org/17626 - BridgeDB gets confused when users reply to a "get help" email. The - issue is that BridgeDB interprets commands anywhere in the email body, - even if it's in quoted text. To fix this issue, we are ignoring - commands whose email body line starts with a '>' character, which is - typically used for email quotes. + * FIXES https://bugs.torproject.org/17626 + BridgeDB gets confused when users reply to a "get help" email. The issue is + that BridgeDB interprets commands anywhere in the email body, even if it's + in quoted text. To fix this issue, we are ignoring commands whose email + body line starts with a '>' character, which is typically used for email + quotes.
- * FIXES https://bugs.torproject.org/28533 - The frontdesk is seeing plenty of empty bogus emails. This fix removes - the email links and instead encourages users to take a look at the Tor - Browser Manual and at our Support Portal. + * FIXES https://bugs.torproject.org/28533 + The frontdesk is seeing plenty of empty bogus emails. This fix removes the + email links and instead encourages users to take a look at the Tor Browser + Manual and at our Support Portal.
Changes in version 0.8.0 - 2019-08-20
- * FIXES https://bugs.torproject.org/9316 - Make BridgeDB export usage metrics every 24 hours. At the end of each - 24-hour measurement interval, BridgeDB will append usage metrics to the - file METRICS_FILE, which is configured in bridgedb.conf. Our metrics - keep track of the number of (un)successful requests per transport type - per country code (or email provider) per distribution method. This way, - we get to learn that, say, over the last 24 hours there were 31-40 users - in Iran who successfully requested an obfs4 bridge over Moat. - - * FIXES #26542 https://bugs.torproject.org/26542 - Make BridgeDB distribute vanilla IPv6 bridges again. - - * FIXES #22755 https://bugs.torproject.org/22755 - Use stem instead of leekspin to create test descriptors. We now don't - need to depend on leekspin anymore. - - * FIXES #31252 https://bugs.torproject.org/31252 - Add an anti-bot mechanism that allows us to detect bots by matching - HTTP request headers for blacklisted patterns. For example, bots may - have their Accept-Language set to "Klingon". Blacklisted patterns are - configured in BLACKLISTED_REQUEST_HEADERS_FILE. When BridgeDB detects - a bot request, we can answer their request with a decoy bridge that's - only handed out to bots. Decoy bridges are configured in - DECOY_BRIDGES_FILE. + * FIXES https://bugs.torproject.org/9316 + Make BridgeDB export usage metrics every 24 hours. At the end of each + 24-hour measurement interval, BridgeDB will append usage metrics to the file + METRICS_FILE, which is configured in bridgedb.conf. Our metrics keep track + of the number of (un)successful requests per transport type per country code + (or email provider) per distribution method. This way, we get to learn + that, say, over the last 24 hours there were 31-40 users in Iran who + successfully requested an obfs4 bridge over Moat. + + * FIXES #26542 https://bugs.torproject.org/26542 + Make BridgeDB distribute vanilla IPv6 bridges again. + + * FIXES #22755 https://bugs.torproject.org/22755 + Use stem instead of leekspin to create test descriptors. We now don't need + to depend on leekspin anymore. + + * FIXES #31252 https://bugs.torproject.org/31252 + Add an anti-bot mechanism that allows us to detect bots by matching HTTP + request headers for blacklisted patterns. For example, bots may have their + Accept-Language set to "Klingon". Blacklisted patterns are configured in + BLACKLISTED_REQUEST_HEADERS_FILE. When BridgeDB detects a bot request, we + can answer their request with a decoy bridge that's only handed out to bots. + Decoy bridges are configured in DECOY_BRIDGES_FILE.
Changes in version 0.7.1 - 2019-06-07
- * FIXES #28496 https://bugs.torproject.org/28496 - Remove Yahoo from the list of allowed email domains. Yahoo allows you - to create up to 500 disposable email addresses, which BridgeDB - interprets as unique: - https://bugs.torproject.org/28496#comment:8 - We could address this issue in BridgeDB but at this point we seem better - off dropping support for Yahoo because the provider likely also fell - behind in Sybil protection. + * FIXES #28496 https://bugs.torproject.org/28496 + Remove Yahoo from the list of allowed email domains. Yahoo allows you to + create up to 500 disposable email addresses, which BridgeDB interprets as + unique: + https://bugs.torproject.org/28496#comment:8 + We could address this issue in BridgeDB but at this point we seem better off + dropping support for Yahoo because the provider likely also fell behind in + Sybil protection.
Changes in version 0.7.0 - 2019-06-07
- * FIXES #28655 https://bugs.torproject.org/28655 - When a bridge supports an active probing-resistant transport, it should - not give out flavors that are vulnerable to active probing. For - example, if a bridge supports obfs4 and obfs3, it should only give out - obfs4. + * FIXES #28655 https://bugs.torproject.org/28655 + When a bridge supports an active probing-resistant transport, it should not + give out flavors that are vulnerable to active probing. For example, if a + bridge supports obfs4 and obfs3, it should only give out obfs4.
- * FIXES #30706 https://bugs.torproject.org/30706 - Do some simple BridgeDB housekeeping: Add missing CHANGELOG entries, add - Philipp's contact info to the support section, fix a broken Trac URL, - and turn HTTP link into HTTPS. + * FIXES #30706 https://bugs.torproject.org/30706 + Do some simple BridgeDB housekeeping: Add missing CHANGELOG entries, add + Philipp's contact info to the support section, fix a broken Trac URL, and + turn HTTP link into HTTPS.
- * FIXES #30157: https://bugs.torproject.org/30157 - Update BridgeDB translations. This ticket both adds new translations - and updates existing ones. + * FIXES #30157: https://bugs.torproject.org/30157 + Update BridgeDB translations. This ticket both adds new translations and + updates existing ones.
Changes in version 0.6.9 - 2018-11-20
- * FIXES #23894 https://bugs.torproject.org/23894 - Really change the contact address, in the correct place this time. + * FIXES #23894 https://bugs.torproject.org/23894 + Really change the contact address, in the correct place this time.
Changes in version 0.6.8 - 2018-11-19
- * FIXES #28528 https://bugs.torproject.org/28528 - Change maintainer info. + * FIXES #28528 https://bugs.torproject.org/28528 + Change maintainer info.
- * FIXES #23894 https://bugs.torproject.org/23894 - Change contact email address. + * FIXES #23894 https://bugs.torproject.org/23894 + Change contact email address.
Changes in version 0.6.7 - 2018-05-21
- Print fingerprints in hex thank you very much. + Print fingerprints in hex thank you very much.
Changes in version 0.6.6 - 2018-05-21
- * FIXES #26150 https://bugs.torproject.org/26150 - Hotfix for strange bridges missing address fields. + * FIXES #26150 https://bugs.torproject.org/26150 + Hotfix for strange bridges missing address fields.
Changes in version 0.6.5 - 2018-05-04
- * FIXES #26023 https://bugs.torproject.org/26023 - There's few bridges whose ed25519 certificates contain the year 491869, - which the datetime module (called from Stem) believes "out of range". So - instead we'll parse the descriptors one at a time and catch the errors - as we go. + * FIXES #26023 https://bugs.torproject.org/26023 + There's few bridges whose ed25519 certificates contain the year 491869, + which the datetime module (called from Stem) believes "out of range". So + instead we'll parse the descriptors one at a time and catch the errors as we + go.
- * FIXES #25246 https://bugs.torproject.org/25246 - Add script for assigning unallocated bridges to another distributor. + * FIXES #25246 https://bugs.torproject.org/25246 + Add script for assigning unallocated bridges to another distributor.
Changes in version 0.6.4 - 2018-02-13
- * FIXES #24432 https://bugs.torproject.org/24432 - Add config option to skip loopback addresses in X-Forwarded-For parsing. + * FIXES #24432 https://bugs.torproject.org/24432 + Add config option to skip loopback addresses in X-Forwarded-For parsing.
Changes in version 0.6.3 - 2018-01-23
- * FIXES #24432 https://bugs.torproject.org/24432 - The production moat server had issues related to redirecting to - resources properly, which are now fixed. + * FIXES #24432 https://bugs.torproject.org/24432 + The production moat server had issues related to redirecting to resources + properly, which are now fixed.
- * FIXES #24701 https://bugs.torproject.org/24701 - Adds a special surprise for the special someone who has been - automatedly requesting bridges not through driving a browser, but - through a script which is so thoroughly stupid that it doesn't - even send the URL parameters for the CAPTCHA challenge and solution. - Their script will now be delayed for quite some time and then - rickrolled. Mess with the best, die like the rest. + * FIXES #24701 https://bugs.torproject.org/24701 + Adds a special surprise for the special someone who has been automatedly + requesting bridges not through driving a browser, but through a script which + is so thoroughly stupid that it doesn't even send the URL parameters for the + CAPTCHA challenge and solution. Their script will now be delayed for quite + some time and then rickrolled. Mess with the best, die like the rest.
- * FIXES #24704 https://bugs.torproject.org/24704 - Bridges returned to a single request are now filtered such that - there will never be two bridges from the same IPv4 /16 or IPv6 /64. + * FIXES #24704 https://bugs.torproject.org/24704 + Bridges returned to a single request are now filtered such that there will + never be two bridges from the same IPv4 /16 or IPv6 /64.
And includes the following general changes:
- * ADDS unittests for the legacy code in bridgedb/Bridges.py, - bringing the total test coverage above 90% for the first time. - + * ADDS unittests for the legacy code in bridgedb/Bridges.py, + bringing the total test coverage above 90% for the first time.
Changes in version 0.6.2 - 2017-12-20
- * FIXES #24636 https://bugs.torproject.org/24636 - The moat API specification included an extra response type which - could be sent if there was no overlap between transports the - client supported and those which the server supported. This has - been removed from the specification, which now describes the - behaviour moat has always exhibited: if there is no overlap, the - server responds with a CAPTCHA image response which includes the - list of transports it does support. - - * FIXES #24637 https://bugs.torproject.org/24637 - The moat server did not respond correctly with the specified JSON - API error type when there were no bridges available. It now - responds correctly with a 404 error whose details describe why the - request could not be fulfilled. The moat server also now logs - messages if there were not the configured - MOAT_BRIDGES_PER_RESPONSE number of bridges available. - + * FIXES #24636 https://bugs.torproject.org/24636 + The moat API specification included an extra response type which could be + sent if there was no overlap between transports the client supported and + those which the server supported. This has been removed from the + specification, which now describes the behaviour moat has always exhibited: + if there is no overlap, the server responds with a CAPTCHA image response + which includes the list of transports it does support. + + * FIXES #24637 https://bugs.torproject.org/24637 + The moat server did not respond correctly with the specified JSON API error + type when there were no bridges available. It now responds correctly with a + 404 error whose details describe why the request could not be fulfilled. + The moat server also now logs messages if there were not the configured + MOAT_BRIDGES_PER_RESPONSE number of bridges available.
Changes in version 0.6.1 - 2017-12-13
- * ADDS a shell script, scripts/test-moat, for testing either a - locally-running moat server, or a remote one through a meek - tunnel. - Thanks to David Fifield for his work on meek, assistance setting - it up, and providing the first version of this script. - - * FIXES #24433 https://bugs.torproject.org/24433 - The test-moat script wasn't sending an X-Forwarded-For header, - which triggered a bug in the moat server, since the CAPTCHA - solution includes an HMAC based on the client's IP (forwarded - through all the several layers of tunnels/proxies). - - * FIXES #24443 https://bugs.torproject.org/24443 - Due to a difference between how booleans are parsed by Python's - json library and normal Python booleans, the moat server was - generating and returning QRCodes… regardless of whether the remote - client application asked for one. This is now fixed. - - * FIXES #24460 https://bugs.torproject.org/24460 - There was an unhandled error when sending certain (what appears to - be possibly malicious? but in a very strange way) requests to - BridgeDB's HTTPS distributor. The robots making the requests were - attempting to request bridges, but were presenting a CAPTCHA - solution without the correct HTML form field parameters present, - which isn't possible through normal usage of the web interface. - Whoever or whatever is doing this is now going to be endlessly - redirected so that they may forever spiral in their own private - internet hell. I reserve the right come up with a worse fate for - them later, should I get bored. - - * FIXES #3015 https://bugs.torproject.org/3015 - BridgeDB has had a partially-implemented concept of "buckets" - since the age of the dinosaurs: write some of the unallocated - bridges to a file which should (somehow) be manually distributed. - In addition to be unused and untested, there were several issues - with the buckets, the most significant of which were the inability - to request pluggable transports in a bucket and the fact that - buckets were not persistent in any way (e.g. if i request a bucket - of 50 bridges for Gomez and another with 50 for Morticia, they - might end up with some of the same bridges, further, tomorrow - they'll end up with 50 possibly different bridges than those they - received today). All of this code is now removed. + * ADDS a shell script, scripts/test-moat, for testing either a + locally-running moat server, or a remote one through a meek tunnel. Thanks + to David Fifield for his work on meek, assistance setting it up, and + providing the first version of this script. + + * FIXES #24433 https://bugs.torproject.org/24433 + The test-moat script wasn't sending an X-Forwarded-For header, which + triggered a bug in the moat server, since the CAPTCHA solution includes an + HMAC based on the client's IP (forwarded through all the several layers of + tunnels/proxies). + + * FIXES #24443 https://bugs.torproject.org/24443 + Due to a difference between how booleans are parsed by Python's json library + and normal Python booleans, the moat server was generating and returning + QRCodes… regardless of whether the remote client application asked for one. + This is now fixed. + + * FIXES #24460 https://bugs.torproject.org/24460 + There was an unhandled error when sending certain (what appears to be + possibly malicious? but in a very strange way) requests to BridgeDB's HTTPS + distributor. The robots making the requests were attempting to request + bridges, but were presenting a CAPTCHA solution without the correct HTML + form field parameters present, which isn't possible through normal usage of + the web interface. Whoever or whatever is doing this is now going to be + endlessly redirected so that they may forever spiral in their own private + internet hell. I reserve the right come up with a worse fate for them + later, should I get bored. + + * FIXES #3015 https://bugs.torproject.org/3015 + BridgeDB has had a partially-implemented concept of "buckets" since the age + of the dinosaurs: write some of the unallocated bridges to a file which + should (somehow) be manually distributed. In addition to be unused and + untested, there were several issues with the buckets, the most significant + of which were the inability to request pluggable transports in a bucket and + the fact that buckets were not persistent in any way (e.g. if i request a + bucket of 50 bridges for Gomez and another with 50 for Morticia, they might + end up with some of the same bridges, further, tomorrow they'll end up with + 50 possibly different bridges than those they received today). All of this + code is now removed.
And includes the following general changes:
- * FIXES issues with JSON quote syntax and a mistaken JSON API - "type" parameter in the specification of the moat server (in the - README). - Thanks to Mark Smith and Kathy Brade for pointing out the issues. - + * FIXES issues with JSON quote syntax and a mistaken JSON API + "type" parameter in the specification of the moat server (in the README). + Thanks to Mark Smith and Kathy Brade for pointing out the issues.
Changes in version 0.6.0 - 2017-11-15
- * ADDS a new JSON API distributor called "moat", which is intended - for use for Tor Launcher to use to build an in-browser UI for - retrieving bridges. - - * CHANGES the organisation of code to add a new - bridgedb.distributors package as well as a - bridgedb.distributors.common package for code shared between - multiple distributors. + * ADDS a new JSON API distributor called "moat", which is intended + for use for Tor Launcher to use to build an in-browser UI for retrieving + bridges.
+ * CHANGES the organisation of code to add a new + bridgedb.distributors package as well as a bridgedb.distributors.common + package for code shared between multiple distributors.
Changes in version 0.5.0 - 2017-10-28
- * FIXES #23957 https://bugs.torproject.org/23957 - BridgeDB now supports bridge operators choosing how their bridge - will be distributed. See the "BridgeDistribution" torrc option in - tor's manpage for details. - - * FIXES #16650 https://bugs.torproject.org/16650 - BridgeDB is now accessible via select remote user interfaces - through a meek tunnel. + * FIXES #23957 https://bugs.torproject.org/23957 + BridgeDB now supports bridge operators choosing how their bridge will be + distributed. See the "BridgeDistribution" torrc option in tor's manpage for + details.
- * FIXES #22998 https://bugs.torproject.org/23033 - * FIXES #23033 https://bugs.torproject.org/23033 - * FIXES #23034 https://bugs.torproject.org/23034 - Upgrades BridgeDB to newer versions of Twisted and PyOpenSSL, and - fixes several issues due to non-backwards compatible changes - within those libraries. + * FIXES #16650 https://bugs.torproject.org/16650 + BridgeDB is now accessible via select remote user interfaces through a meek + tunnel.
+ * FIXES #22998 https://bugs.torproject.org/23033 + * FIXES #23033 https://bugs.torproject.org/23033 + * FIXES #23034 https://bugs.torproject.org/23034 + Upgrades BridgeDB to newer versions of Twisted and PyOpenSSL, and fixes + several issues due to non-backwards compatible changes within those + libraries.
Changes in version 0.4.0 - 2017-01-09
- * FIXES #21162 https://bugs.torproject.org/21162 - BridgeDB now supports arbitrarily blacklisting suspected bad - bridges from being distributed to clients. This is in response - to a suspected sybil attack by an unknown party. For more - details, see: - https://lists.torproject.org/pipermail/tor-project/2016-December/000851.html - + * FIXES #21162 https://bugs.torproject.org/21162 + BridgeDB now supports arbitrarily blacklisting suspected bad bridges from + being distributed to clients. This is in response to a suspected sybil + attack by an unknown party. For more details, see: + https://lists.torproject.org/pipermail/tor-project/2016-December/000851.html
Changes in version 0.3.8 - 2016-09-22
- * FIXES #20088 https://bugs.torproject.org/20088 - BridgeDB now supports receiving descriptors from multiple Bridge - Authorities. See also #19690. - - * FIXES #20087 https://bugs.torproject.org/20087 - BridgeDB's version of Stem now supports parsing transport lines in - bridge extrainfo descriptors which contain IPv6 addresses - contained within square brackets. + * FIXES #20088 https://bugs.torproject.org/20088 + BridgeDB now supports receiving descriptors from multiple Bridge + Authorities. See also #19690.
+ * FIXES #20087 https://bugs.torproject.org/20087 + BridgeDB's version of Stem now supports parsing transport lines in bridge + extrainfo descriptors which contain IPv6 addresses contained within square + brackets.
Changes in version 0.3.7 - 2016-08-04
- * FIXES #19691 https://bugs.torproject.org - BridgeDB (as running on Tor Project infrastructure) is now - invocated with a redirection of stdout and stderr to the flog - utility, in order to ensure that file handles are properly closed - and reopened when BridgeDB receives a SIGHUP. + * FIXES #19691 https://bugs.torproject.org + BridgeDB (as running on Tor Project infrastructure) is now invocated with a + redirection of stdout and stderr to the flog utility, in order to ensure + that file handles are properly closed and reopened when BridgeDB receives a + SIGHUP.
And includes the following general changes:
- * ADDS some files which were missing from BridgeDB PyPI packages - to the MANIFEST.in, so that they are now included. - + * ADDS some files which were missing from BridgeDB PyPI packages + to the MANIFEST.in, so that they are now included.
Changes in version 0.3.6 - 2016-07-28
- * FIXES #18237 https://bugs.torproject.org/18237 - During descriptor parsing, BridgeDB saves copies of descriptor files - which couldn't be parsed, for later debugging purposes. To avoid - filing up the runtime directory with these files, we now delete files - older than 24 hours, every 24 hours. - - * FIXES #18949 https://bugs.torproject.org/18949 - Since we've upgraded the host machine which runs The Tor Project's - BridgeDB instance to Debian Jessie, this patch updates the testing - configurations and continuous integration infrastructure to run - tests on versions of Python dependencies in Debian Jessie and Stretch. + * FIXES #18237 https://bugs.torproject.org/18237 + During descriptor parsing, BridgeDB saves copies of descriptor files which + couldn't be parsed, for later debugging purposes. To avoid filing up the + runtime directory with these files, we now delete files older than 24 hours, + every 24 hours.
+ * FIXES #18949 https://bugs.torproject.org/18949 + Since we've upgraded the host machine which runs The Tor Project's BridgeDB + instance to Debian Jessie, this patch updates the testing configurations and + continuous integration infrastructure to run tests on versions of Python + dependencies in Debian Jessie and Stretch.
Changes in version 0.3.4 - 0.3.5 - 2015-11-30
- * FIXES #14685 https://bugs.torproject.org/14685 - This disables distribution of obfs2 bridges. This pluggable - transport has known distiguishers which allow adversaries to - identify client connections to obfs2 bridges, which in turn allows - these connections to be blocked/censored. With numerous obfs3 and - obfs4 bridges both readily available, users should not be - presented with an easily-configurable choice that is known to be - unsafe for the majority of users. + * FIXES #14685 https://bugs.torproject.org/14685 + This disables distribution of obfs2 bridges. This pluggable transport has + known distiguishers which allow adversaries to identify client connections + to obfs2 bridges, which in turn allows these connections to be + blocked/censored. With numerous obfs3 and obfs4 bridges both readily + available, users should not be presented with an easily-configurable choice + that is known to be unsafe for the majority of users.
And includes the following general changes:
- * ADDS error pages to BridgeDB's web interface, to provide - friendlier explanations for downtime, missing pages, and internal - server errors. For example: https://bridges.torproject.org/404 - + * ADDS error pages to BridgeDB's web interface, to provide + friendlier explanations for downtime, missing pages, and internal server + errors. For example: https://bridges.torproject.org/404
Changes in version 0.3.3 - 2015-10-25
- * FIXES #12029 https://bugs.torproject.org/12029 - BridgeDB now has an API for creating Bridge Distributors. - See the bridgedb.distribute module, or its developer documentation - at https://pythonhosted.org/bridgedb/bridgedb.distribute.html. - - * FIXES PART OF #12506 https://bugs.torproject.org/12506 - BridgeDB's two Distributors (HTTPS and Email) are now entirely - modularised and self-contained within separate subdirectories in - the source code. This is the first step to redesigning these - Distributors into their own separate processes, which will allow - the Distributors to remain functional while BridgeDB is reparsing - bridge descriptors. - - * FIXES #15968 https://bugs.torproject.org/15968 - BridgeDB now sends a Content-Security-Policy header which - explicitly allows Javascript, images, CSS, and fonts, from - https://bridges.torproject.org. All other types of content are - forbidden, including: - - embedding https://bridges.torproject.org within - <iframe>, <embed>, or <object>, and attempting to source - additional resources into its embedded context - - inline Javascript, including Javascript within SVG files - - inline CSS - - externally hosted fonts - - inline SVG, e.g. via the HTML5 <svg> tag - - any and all connections made via Javascript XMLHttpRequests, - WebSockets, sendBeacon(), and Web Workers - - plugins - - applets - BridgeDB's Content-Security-Policy does not yet make use of - certain newer, lesser supported, Content-Security-Policy v2.0 - directives, such as "reflected-xss" and "frame-ancestors", but may - someday. - - * FIXES #16273 https://bugs.torproject.org/16273 - Several links to Tor Project gitweb URLs within the developer - documentation were outdated in that they still used the old gitweb - URL format. These are now updated. - Thanks to David Fifield for the bug report and patches. - - * FIXES #16330 https://bugs.torproject.org/16330 - BridgeDB can now handle bridge-server-descriptors with - extra-info-digest fields which have two values, as well as both - bridge-server-descriptors and bridge-extrainfo descriptors which - contain Ed25519 key material and signatures. See Tor proposals - #220 and #228 for more information on the changes to these - descriptors. Note that BridgeDB can now parse this information, - but does not yet make use of any Ed25519 cryptographic material - within bridge descriptors. - https://gitweb.torproject.org/torspec.git/tree/proposals/220-ecc-id-keys.txt - https://gitweb.torproject.org/torspec.git/tree/proposals/228-cross-certifica... - Thanks to Atagar for patching Stem. - - * FIXES #16616 https://bugs.torproject.org/16616 - The HSDir flag can now be included within bridge-networkstatus - documents. BridgeDB now has unittests which guarantee that its - parsers safely ignore this flag, as well as any flags unknown to - BridgeDB which may appear in the future. - Thanks to Roger Dingledine for alerting me about the change. - - * FIXES #16649 https://bugs.torproject.org/16649 - Mobile users, and other users with small screen pixel ratios, will - find that the UI of BridgeDB's HTTPS Distributor has greatly - increased in usability and readability. - + * FIXES #12029 https://bugs.torproject.org/12029 + BridgeDB now has an API for creating Bridge Distributors. See the + bridgedb.distribute module, or its developer documentation at + https://pythonhosted.org/bridgedb/bridgedb.distribute.html. + + * FIXES PART OF #12506 https://bugs.torproject.org/12506 + BridgeDB's two Distributors (HTTPS and Email) are now entirely modularised + and self-contained within separate subdirectories in the source code. This + is the first step to redesigning these Distributors into their own separate + processes, which will allow the Distributors to remain functional while + BridgeDB is reparsing bridge descriptors. + + * FIXES #15968 https://bugs.torproject.org/15968 + BridgeDB now sends a Content-Security-Policy header which explicitly allows + Javascript, images, CSS, and fonts, from https://bridges.torproject.org. + All other types of content are forbidden, including: + - embedding https://bridges.torproject.org within + <iframe>, <embed>, or <object>, and attempting to source + additional resources into its embedded context + - inline Javascript, including Javascript within SVG files + - inline CSS + - externally hosted fonts + - inline SVG, e.g. via the HTML5 <svg> tag + - any and all connections made via Javascript XMLHttpRequests, + WebSockets, sendBeacon(), and Web Workers + - plugins + - applets + BridgeDB's Content-Security-Policy does not yet make use of certain newer, + lesser supported, Content-Security-Policy v2.0 directives, such as + "reflected-xss" and "frame-ancestors", but may someday. + + * FIXES #16273 https://bugs.torproject.org/16273 + Several links to Tor Project gitweb URLs within the developer documentation + were outdated in that they still used the old gitweb URL format. These are + now updated. Thanks to David Fifield for the bug report and patches. + + * FIXES #16330 https://bugs.torproject.org/16330 + BridgeDB can now handle bridge-server-descriptors with extra-info-digest + fields which have two values, as well as both bridge-server-descriptors and + bridge-extrainfo descriptors which contain Ed25519 key material and + signatures. See Tor proposals #220 and #228 for more information on the + changes to these descriptors. Note that BridgeDB can now parse this + information, but does not yet make use of any Ed25519 cryptographic material + within bridge descriptors. + https://gitweb.torproject.org/torspec.git/tree/proposals/220-ecc-id-keys.txt + https://gitweb.torproject.org/torspec.git/tree/proposals/228-cross-certifica... + Thanks to Atagar for patching Stem. + + * FIXES #16616 https://bugs.torproject.org/16616 + The HSDir flag can now be included within bridge-networkstatus documents. + BridgeDB now has unittests which guarantee that its parsers safely ignore + this flag, as well as any flags unknown to BridgeDB which may appear in the + future. Thanks to Roger Dingledine for alerting me about the change. + + * FIXES #16649 https://bugs.torproject.org/16649 + Mobile users, and other users with small screen pixel ratios, will find that + the UI of BridgeDB's HTTPS Distributor has greatly increased in usability + and readability.
And includes the following general changes:
- * FIXES an error when requesting the non-HTML version of the - bridges page (e.g. https://bridges.torproject.org/bridges?format=plain) - - * REMOVES the `bridgedb test` commandline option. - BridgeDB's tests can be run via `python setup.py test` or `make - test` (or `make coverage` for generating HTML test coverage - statistics). + * FIXES an error when requesting the non-HTML version of the + bridges page (e.g. https://bridges.torproject.org/bridges?format=plain)
- * CHANGES the HTTPS Distributor to HTML-encode Bridge Lines. - Previously, a malicious Pluggable Transport Bridge could include - in its PT arguments something like "evil=<script>[…]</script>" and - if such a Bridge were to be distributed to a user, that user's web - browser would execute the script (if Javacript was enabled). - Other characters, including non-ASCII, control characters, double - quotes, and backslashes, are also sanitised from Bridge Lines. - Thanks to Robert Ransom for the patches. + * REMOVES the `bridgedb test` commandline option. + BridgeDB's tests can be run via `python setup.py test` or `make test` (or + `make coverage` for generating HTML test coverage statistics).
- * CHANGES BridgeDB's module/package version numbers to be - compliant with PEP440. + * CHANGES the HTTPS Distributor to HTML-encode Bridge Lines. + Previously, a malicious Pluggable Transport Bridge could include in its PT + arguments something like "evil=<script>[…]</script>" and if such a Bridge + were to be distributed to a user, that user's web browser would execute the + script (if Javacript was enabled). Other characters, including non-ASCII, + control characters, double quotes, and backslashes, are also sanitised from + Bridge Lines. Thanks to Robert Ransom for the patches.
- * CHANGES the layout of BridgeDB's source code directories. - Rather than storing BridgeDB's source in "lib/bridgedb/", it is - now kept in "bridgedb/". Similarly, the directory containing - BridgeDB's tests has been moved from "lib/bridgedb/test/" to - "test/", which means that the tests are no longer installed when - running `python setup.py install` or `make install`. + * CHANGES BridgeDB's module/package version numbers to be compliant with + PEP440.
- * ADDS several improvements to the developer documentation at - https://pythonhosted.org/bridgedb. + * CHANGES the layout of BridgeDB's source code directories. + Rather than storing BridgeDB's source in "lib/bridgedb/", it is now kept in + "bridgedb/". Similarly, the directory containing BridgeDB's tests has been + moved from "lib/bridgedb/test/" to "test/", which means that the tests are + no longer installed when running `python setup.py install` or `make + install`.
- * UPDATE English (en_US) translations. + * ADDS several improvements to the developer documentation at + https://pythonhosted.org/bridgedb.
- * UPDATE English (en) translations. + * UPDATE English (en_US) translations.
- * ADD Serbian (sr) translations. - Thanks to obj.petit.a, Ivan Radeljic, and Milenko Doder. + * UPDATE English (en) translations.
- * UPDATE Arabic (ar) translations. - Thanks to A. Hassan, debo debo, KACIMI LAMINE, and Nudroid A. + * ADD Serbian (sr) translations. + Thanks to obj.petit.a, Ivan Radeljic, and Milenko Doder.
- * UPDATE Catalan (ca) translations. - Thanks to laia_. + * UPDATE Arabic (ar) translations. + Thanks to A. Hassan, debo debo, KACIMI LAMINE, and Nudroid A.
- * UPDATE Czech (cs) translations. - Thanks to Tomas Palik and Vlastimil Burián. + * UPDATE Catalan (ca) translations. + Thanks to laia_.
- * UPDATE Danish (da) translations. - Thanks to Mogelbjerg. + * UPDATE Czech (cs) translations. + Thanks to Tomas Palik and Vlastimil Burián.
- * UPDATE German (de) translations. - Thanks to jschfr, Junge Limba, and Toralf Förster. + * UPDATE Danish (da) translations. + Thanks to Mogelbjerg.
- * UPDATE English (en_GB) translations. - Thanks to Andi Chandler. + * UPDATE German (de) translations. + Thanks to jschfr, Junge Limba, and Toralf Förster.
- * UPDATE Farsi (fa) translations. - Thanks to some awesome anonymous person for helping out. + * UPDATE English (en_GB) translations. + Thanks to Andi Chandler.
- * UPDATE Finish (fi) translations. - Thanks to Riku Viitanen. + * UPDATE Farsi (fa) translations. + Thanks to some awesome anonymous person for helping out.
- * UPDATE French (fr) translations. - Thanks to elouann, Trans-fr, and Towinet. + * UPDATE Finish (fi) translations. + Thanks to Riku Viitanen.
- * UPDATE French (fr_CA) translations. - Thanks to Trans-fr. + * UPDATE French (fr) translations. + Thanks to elouann, Trans-fr, and Towinet.
- * UPDATE Croatian (hr_HR) translations. - Thanks to some awesome anonymous person for helping out. + * UPDATE French (fr_CA) translations. + Thanks to Trans-fr.
- * UPDATE Hungarian (hu) translations. - Thanks to some awesome anonymous person for helping out. + * UPDATE Croatian (hr_HR) translations. + Thanks to some awesome anonymous person for helping out.
- * UPDATE Indonesian (id) translations. - Thanks to Anthony Santana, Astryd Viandila Dahlan, cholif yulian, - constantius damar wicaksono, Dwi Cahyono, L1Nus, km242saya, and - Zamani Karmana. + * UPDATE Hungarian (hu) translations. + Thanks to some awesome anonymous person for helping out.
- * UPDATE Italian (it) translations. - Thanks to Random_R. + * UPDATE Indonesian (id) translations. + Thanks to Anthony Santana, Astryd Viandila Dahlan, cholif yulian, + constantius damar wicaksono, Dwi Cahyono, L1Nus, km242saya, and Zamani + Karmana.
- * UPDATE Japanese (ja) translations. - Thanks to ABE Tsunehiko. + * UPDATE Italian (it) translations. + Thanks to Random_R.
- * UPDATE Latvian (lv) translations. - Thanks to Ojārs Balcers. + * UPDATE Japanese (ja) translations. + Thanks to ABE Tsunehiko.
- * UPDATE Norwegian Bokmål (nb) translations. - Thanks to Erik Matson and Kristian Andre Henriksen. + * UPDATE Latvian (lv) translations. + Thanks to Ojārs Balcers.
- * UPDATE Dutch (nl) translations. - Thanks to Mart3000. + * UPDATE Norwegian Bokmål (nb) translations. + Thanks to Erik Matson and Kristian Andre Henriksen.
- * UPDATE Polish (pl) translations. - Thanks to Karol Obartuch. + * UPDATE Dutch (nl) translations. + Thanks to Mart3000.
- * UPDATE Portuguese (pt) translations. - Thanks to Bruno D. Rodrigues and MMSRS. + * UPDATE Polish (pl) translations. + Thanks to Karol Obartuch.
- * UPDATE Brazillian Portuguese (pt_BR) translations. - Thanks to Communia. + * UPDATE Portuguese (pt) translations. + Thanks to Bruno D. Rodrigues and MMSRS.
- * UPDATE Romanian (ro) translations. - Thanks to Ana, axel_89, and Di N. + * UPDATE Brazillian Portuguese (pt_BR) translations. + Thanks to Communia.
- * UPDATE Russian (ru) translations. - Thanks to Ivan. + * UPDATE Romanian (ro) translations. + Thanks to Ana, axel_89, and Di N.
- * UPDATE Slovak (sk_SK) translations. - Thanks to StefanH. + * UPDATE Russian (ru) translations. + Thanks to Ivan.
- * UPDATE Albanian (sq) translations. - Thanks to some awesome unknown anonymous person who didn't add their - name to the list of translators. + * UPDATE Slovak (sk_SK) translations. + Thanks to StefanH.
- * UPDATE Swedish (sv) translations. - Thanks to Peter Michanek. + * UPDATE Albanian (sq) translations. + Thanks to some awesome unknown anonymous person who didn't add their name + to the list of translators.
- * UPDATE Turkish (tr) translations. - Thanks to Bullgeschichte and Fomas. + * UPDATE Swedish (sv) translations. + Thanks to Peter Michanek.
- * UPDATE Ukranian (uk) translations. - Thanks to Yasha. + * UPDATE Turkish (tr) translations. + Thanks to Bullgeschichte and Fomas.
- * UPDATE Chinese Mandarin (zh_CN) translations. - Thanks to khi. + * UPDATE Ukranian (uk) translations. + Thanks to Yasha.
- * UPDATE Taiwanese Mandarin (zh_TW) translations. - Thanks to x4r. + * UPDATE Chinese Mandarin (zh_CN) translations. + Thanks to khi.
+ * UPDATE Taiwanese Mandarin (zh_TW) translations. + Thanks to x4r.
Changes in version 0.3.2 - 2015-05-01
- * FIXES a problem with the calculation of Levenshtein distances - between blacklisted email addresses and those on incoming - email. This fixes a problem with the fuzzy matching implemented in - #9385: https://bugs.torproject.org/9385. - - * FIXES #1839 https://bugs.torproject.org/1839 - BridgeDB's distributors now rotate their hashrings at - configurable scheduled intervals. - - * FIXES #4771 https://bugs.torproject.org/4771 - BridgeDB now records which of the HTTPS Distributor's - sub-hashrings are used for clients coming from Tor Exit nodes and - other known proxies. - - * FIXES #12504 https://bugs.torproject.org/12504 - Which Pluggable Transports BridgeDB distributes is now easily - configurable via the bridgedb.conf configuration file. - - * FIXES #13202 https://bugs.torproject.org/13202 - Old bridges running Tor-0.2.4.x with Pluggable Transports like - scramblesuit and obfs4proxy have a bug which causes them to not - include the PT arguments in the `transport` line they submit to - the BridgeAuthority in their extrainfo descriptors. This causes - BridgeDB to have broken bridge lines for these bridges. - For example, scramblesuit requires a `password=` in the - `ClientTransportPlugin` for clients to connect to it. If BridgeDB - receives a line in that bridge's extrainfo which says - `transport scramblesuit 1.2.3.4:1234` (without a password), then - when BridgeDB gives clients a bridge line for that bridge, it'll - look like "Bridge scramblesuit 1.2.3.4:1234" - meaning that it won't - work. This fixes the issue by excluding broken transports from - being distributed to clients. - - * FIXES #15517 https://bugs.torproject.org/15517 - For all clients who are coming from IPv6 addresses and are not - using Tor, who go to https://bridges.torproject.org, BridgeDB now - groups these clients together by /32. This "grouping" causes all - IPv6 clients within the same IPv6 /32 to get the same bridges. - Previously, BridgeDB grouped IPv6 clients by /64 (which is - ridiculously small, considering standard IPv6 allocation sizes). - - For all clients who are coming from IPv4 addresses and are not - using Tor, BridgeDB now groups these clients together by /16. - Previously, BridgeDB grouped IPv4 clients by /24. (This latter - change was technically made as part of #4771.) - - * FIXES #15464 https://bugs.torproject.org/15464 - The setup procedure for creating a BridgeDB Continuous Integration - build machine is now simplified and generalised to include build - environments like Jenkins, not just TravisCI. - - * FIXES #15866 https://bugs.torproject.org/15866 - BridgeDB now ignores nearly all the information in the - networkstatus-bridges file created by the BridgeAuthority. - - * ADDS benchmark tests to BridgeDB's test suite, and some of - BridgeDB's algorithms have been revised to improve their speed. - + * FIXES a problem with the calculation of Levenshtein distances + between blacklisted email addresses and those on incoming email. This fixes + a problem with the fuzzy matching implemented in #9385: + https://bugs.torproject.org/9385. + + * FIXES #1839 https://bugs.torproject.org/1839 + BridgeDB's distributors now rotate their hashrings at configurable scheduled + intervals. + + * FIXES #4771 https://bugs.torproject.org/4771 + BridgeDB now records which of the HTTPS Distributor's sub-hashrings are used + for clients coming from Tor Exit nodes and other known proxies. + + * FIXES #12504 https://bugs.torproject.org/12504 + Which Pluggable Transports BridgeDB distributes is now easily configurable + via the bridgedb.conf configuration file. + + * FIXES #13202 https://bugs.torproject.org/13202 + Old bridges running Tor-0.2.4.x with Pluggable Transports like scramblesuit + and obfs4proxy have a bug which causes them to not include the PT arguments + in the `transport` line they submit to the BridgeAuthority in their + extrainfo descriptors. This causes BridgeDB to have broken bridge lines for + these bridges. For example, scramblesuit requires a `password=` in the + `ClientTransportPlugin` for clients to connect to it. If BridgeDB receives + a line in that bridge's extrainfo which says `transport scramblesuit + 1.2.3.4:1234` (without a password), then when BridgeDB gives clients a + bridge line for that bridge, it'll look like "Bridge scramblesuit + 1.2.3.4:1234" - meaning that it won't work. This fixes the issue by + excluding broken transports from being distributed to clients. + + * FIXES #15517 https://bugs.torproject.org/15517 + For all clients who are coming from IPv6 addresses and are not using Tor, + who go to https://bridges.torproject.org, BridgeDB now groups these clients + together by /32. This "grouping" causes all IPv6 clients within the same + IPv6 /32 to get the same bridges. Previously, BridgeDB grouped IPv6 clients + by /64 (which is ridiculously small, considering standard IPv6 allocation + sizes). + + For all clients who are coming from IPv4 addresses and are not using Tor, + BridgeDB now groups these clients together by /16. Previously, BridgeDB + grouped IPv4 clients by /24. (This latter change was technically made as + part of #4771.) + + * FIXES #15464 https://bugs.torproject.org/15464 + The setup procedure for creating a BridgeDB Continuous Integration build + machine is now simplified and generalised to include build environments like + Jenkins, not just TravisCI. + + * FIXES #15866 https://bugs.torproject.org/15866 + BridgeDB now ignores nearly all the information in the networkstatus-bridges + file created by the BridgeAuthority. + + * ADDS benchmark tests to BridgeDB's test suite, and some of + BridgeDB's algorithms have been revised to improve their speed.
Changes in version 0.3.1 - 2015-03-24
- * FIXES #14065 https://bugs.torproject.org/14065 - When requesting vanilla IPv6 bridges from - https://bridges.torproject.org, BridgeDB would respond with IPv4 - addresses. It now correctly responds with IPv6 addresses. + * FIXES #14065 https://bugs.torproject.org/14065 + When requesting vanilla IPv6 bridges from https://bridges.torproject.org, + BridgeDB would respond with IPv4 addresses. It now correctly responds with + IPv6 addresses.
And includes the following general changes:
- * FIXES an issue with the filtering of hashrings while answering - requests for Pluggable Transports. (commit 3ef37df6) - - * FIXES the return value from the GnuPG interface initialization - function (bridgedb.crypto.initializeGnuPG) when creating a test - signature has failed. - - * CHANGES the way BridgeDB handles the case where it parses to - duplicate extrainfo descriptors (for the same Bridge) which also - have identical timestamps. Before, we assumed this wasn't - possible. It turns out that it not only is possible, but that - usually every batch of descriptors has at least one Bridge with - such a set of perfectly identical extrainfo descriptors. Even - stranger, it appears that only Bridges started for the first time - quite recently (within the last eight hours) display this - behaviour. BridgeDB now logs these errors, rather than leaving - them unhandled. - (commit a27d7905) - - * ADDS an environment variable check to setup.py which controls - whether the setup.py script tries to install the dependencies - listed in the requirements.txt file with easy_install. If the - environment variable BRIDGEDB_INSTALL_DEPENDENCIES=0, then - setup.py will not use easy_install. When BridgeDB is installed - via `make install` the default is to not use easy_install; - however, when installed via `python setup.py install`, the default - is to use easy_install to check for, find, and install - dependencies. (NOTE: the latter is *not* recommended.) - (commit d035fe64) - + * FIXES an issue with the filtering of hashrings while answering + requests for Pluggable Transports. (commit 3ef37df6) + + * FIXES the return value from the GnuPG interface initialization + function (bridgedb.crypto.initializeGnuPG) when creating a test signature + has failed. + + * CHANGES the way BridgeDB handles the case where it parses to + duplicate extrainfo descriptors (for the same Bridge) which also have + identical timestamps. Before, we assumed this wasn't possible. It turns + out that it not only is possible, but that usually every batch of + descriptors has at least one Bridge with such a set of perfectly identical + extrainfo descriptors. Even stranger, it appears that only Bridges started + for the first time quite recently (within the last eight hours) display this + behaviour. BridgeDB now logs these errors, rather than leaving them + unhandled. (commit a27d7905) + + * ADDS an environment variable check to setup.py which controls + whether the setup.py script tries to install the dependencies listed in the + requirements.txt file with easy_install. If the environment variable + BRIDGEDB_INSTALL_DEPENDENCIES=0, then setup.py will not use easy_install. + When BridgeDB is installed via `make install` the default is to not use + easy_install; however, when installed via `python setup.py install`, the + default is to use easy_install to check for, find, and install dependencies. + (NOTE: the latter is *not* recommended.) (commit d035fe64)
Changes in version 0.3.0 - 2015-03-21
- * FIXES #2895 https://bugs.torproject.org/2895 - BridgeDB no longer assumes that any extrainfo descriptor files are - in chronological order. - - * FIXES #4405 https://bugs.torproject.org/4405 - BridgeDB now has a built-in timer mechanism for scheduling - cronjobesque events. This is now used to routinely download and - parse the list of Tor exit relays in a completely asynchronous - manner. - - * FIXES #9380 https://bugs.torproject.org/9380 - BridgeDB now uses Stem (https://stem.torproject.org) for its - parsers, and has better classes for parsing and storing - information on Bridges and their Pluggable Transports. - Additionally, all of BridgeDB's parses and the new - Bridge/PluggableTransport classes all have 100% unittest and - integration test coverage. - - * FIXES #10385 https://bugs.torproject.org/10385 - BridgeDB now uses python-gnupg (https://pypi.python.org/gnupg) - instead of GPGME (libgpgme11 and pygpgme). Previously, when using - GPGME, BridgeDB was unable to sign emails with a subkey whose - master private key was not present, causing all signing to be - broken. Additionally, GPGME tried to access and modify the - BridgeDB users $HOME directory, and GPGME would also try to create - signatures with encryption-only subkeys, and try to - encrypt/decrypt with signing-only subkeys. All of these issues are - no more, because the writhing tangled mass of bugs known ad GPGME - is gone for good. - - * FIXES #11216 https://bugs.torproject.org/11216 - BridgeDB no longer parses any extrainfo descriptor files - cumulatively. Before, a Bridge which had a descriptor in - cached-extrainfo and in cached-extrainfo.new and supported obfs3, - obfs4, and scramblesuit transports would be parsed twice, - resulting in the Bridge having six transports. This is no longer - the case. - - * HOTFIXES an issue with non-deterministic unittest failures in - the Mechanize-based integrations tests in - lib/bridgedb/test/test_https.py. hotfix/0.2.4-mechanize-tags - - * FIXES part of #12507 https://bugs.torproject.org/12507 - BridgeDB now has semi-automated developer documentation builds at - https://pythonhosted.org/bridgedb/. - - * FIXES #12805 https://bugs.torproject.org/12805 - BridgeDB is now packaged on PyPI, in the hopes that someday other - organisations will be able to run their own BridgeDBs. - - * FIXES #12843 https://bugs.torproject.org/12843 - BridgeDB will no longer distribute bridges which it believes are - located in Iran or Syria. - - * FIXES #12872 https://bugs.torproject.org/12872 - BridgeDB now has geolocational information for Bridges, telling it - which country each Bridge's primary ORAddress is within, as well - as geolocational information for each PluggableTransport address. - Thanks to Alden S. Page for the patches. - - * FIXES #15155 https://bugs.torproject.org/15155 - The instructions for obtaining a copy of Tor Browser should now be - more clear. - Thanks to Jens Kubieziel, Nick Mathewson, and Peter Palfrader. + * FIXES #2895 https://bugs.torproject.org/2895 + BridgeDB no longer assumes that any extrainfo descriptor files are in + chronological order. + + * FIXES #4405 https://bugs.torproject.org/4405 + BridgeDB now has a built-in timer mechanism for scheduling cronjobesque + events. This is now used to routinely download and parse the list of Tor + exit relays in a completely asynchronous manner. + + * FIXES #9380 https://bugs.torproject.org/9380 + BridgeDB now uses Stem (https://stem.torproject.org) for its parsers, and + has better classes for parsing and storing information on Bridges and their + Pluggable Transports. Additionally, all of BridgeDB's parses and the new + Bridge/PluggableTransport classes all have 100% unittest and integration + test coverage. + + * FIXES #10385 https://bugs.torproject.org/10385 + BridgeDB now uses python-gnupg (https://pypi.python.org/gnupg) instead of + GPGME (libgpgme11 and pygpgme). Previously, when using GPGME, BridgeDB was + unable to sign emails with a subkey whose master private key was not + present, causing all signing to be broken. Additionally, GPGME tried to + access and modify the BridgeDB users $HOME directory, and GPGME would also + try to create signatures with encryption-only subkeys, and try to + encrypt/decrypt with signing-only subkeys. All of these issues are no more, + because the writhing tangled mass of bugs known ad GPGME is gone for good. + + * FIXES #11216 https://bugs.torproject.org/11216 + BridgeDB no longer parses any extrainfo descriptor files cumulatively. + Before, a Bridge which had a descriptor in cached-extrainfo and in + cached-extrainfo.new and supported obfs3, obfs4, and scramblesuit transports + would be parsed twice, resulting in the Bridge having six transports. This + is no longer the case. + + * HOTFIXES an issue with non-deterministic unittest failures in + the Mechanize-based integrations tests in lib/bridgedb/test/test_https.py. + hotfix/0.2.4-mechanize-tags + + * FIXES part of #12507 https://bugs.torproject.org/12507 + BridgeDB now has semi-automated developer documentation builds at + https://pythonhosted.org/bridgedb/. + + * FIXES #12805 https://bugs.torproject.org/12805 + BridgeDB is now packaged on PyPI, in the hopes that someday other + organisations will be able to run their own BridgeDBs. + + * FIXES #12843 https://bugs.torproject.org/12843 + BridgeDB will no longer distribute bridges which it believes are located in + Iran or Syria. + + * FIXES #12872 https://bugs.torproject.org/12872 + BridgeDB now has geolocational information for Bridges, telling it which + country each Bridge's primary ORAddress is within, as well as geolocational + information for each PluggableTransport address. Thanks to Alden S. Page + for the patches. + + * FIXES #15155 https://bugs.torproject.org/15155 + The instructions for obtaining a copy of Tor Browser should now be more + clear. Thanks to Jens Kubieziel, Nick Mathewson, and Peter Palfrader.
And includes the following general changes: - * CHANGES BridgeDB's continuous integration infrastructure to run - tests for: - - Twisted-13.2.0 (Debian Wheezy version), - - Twisted-14.0.2 (Debian Jessie version), and - - Twisted-15.0.0 (latest and greatest) - As well as testing both: - - pyOpenSSL-0.13.1 (Debian Wheezy version), and - - pyOpenSSL-0.14 (Debian Jessie version). - See https://travis-ci.org/isislovecruft/bridgedb/builds + * CHANGES BridgeDB's continuous integration infrastructure to run + tests for: + - Twisted-13.2.0 (Debian Wheezy version), + - Twisted-14.0.2 (Debian Jessie version), and + - Twisted-15.0.0 (latest and greatest) + As well as testing both: + - pyOpenSSL-0.13.1 (Debian Wheezy version), and + - pyOpenSSL-0.14 (Debian Jessie version). + See https://travis-ci.org/isislovecruft/bridgedb/builds
- * FIXES an issue with the $PYTHON_EGG_CACHE directory being group - writable on Travis-CI build machines. + * FIXES an issue with the $PYTHON_EGG_CACHE directory being group + writable on Travis-CI build machines.
- * UPDATE English (en_US) translations. + * UPDATE English (en_US) translations.
- * UPDATE English (en) translations. + * UPDATE English (en) translations.
- * ADD Tamil (ta) translations. - Thanks to git12a. + * ADD Tamil (ta) translations. + Thanks to git12a.
- * ADD Albanian (sq) translations. - Thanks to Bujar Tafili. + * ADD Albanian (sq) translations. + Thanks to Bujar Tafili.
- * ADD Slovenian (sl_SI) translations. - Thanks to Dušan, marko, and Nwolfy. + * ADD Slovenian (sl_SI) translations. + Thanks to Dušan, marko, and Nwolfy.
- * ADD Slovak (sk_SK) translations. - Thanks to once. + * ADD Slovak (sk_SK) translations. + Thanks to once.
- * ADD Esperanto (eo) translations. - Thanks to identity, Rico Chan, and trio. + * ADD Esperanto (eo) translations. + Thanks to identity, Rico Chan, and trio.
- * ADD Bulgarian (bg) translations. - Thanks to aramaic. + * ADD Bulgarian (bg) translations. + Thanks to aramaic.
- * ADD Azerbaijani (az) translations. - Thanks to E. + * ADD Azerbaijani (az) translations. + Thanks to E.
- * UPDATE Chinese (zh_TW) translations. - Thanks to LNDDYL. + * UPDATE Chinese (zh_TW) translations. + Thanks to LNDDYL.
- * UPDATE Chinese (zh_CN) translations. - Thanks to Wu Ming Shi and YF. + * UPDATE Chinese (zh_CN) translations. + Thanks to Wu Ming Shi and YF.
- * UPDATE Ukranian (uk) translations. - Thanks to Eugene ghostishev, LinuxChata, Oleksii Golub, and - Андрій Бандура. + * UPDATE Ukranian (uk) translations. + Thanks to Eugene ghostishev, LinuxChata, Oleksii Golub, and + Андрій Бандура.
- * UPDATE Turkish (tr) translations. - Thanks to eromytsatiffird, Emir Sarı, Idil Yuksel, ozkansib, - Volkan Gezer, and zeki. + * UPDATE Turkish (tr) translations. + Thanks to eromytsatiffird, Emir Sarı, Idil Yuksel, ozkansib, + Volkan Gezer, and zeki.
- * UPDATE Swedish (sv) translations. - Thanks to Anders Jensen-Urstad, Emil Johansson, GabSeb, ph AA, phst, - and leveebreaks. + * UPDATE Swedish (sv) translations. + Thanks to Anders Jensen-Urstad, Emil Johansson, GabSeb, ph AA, phst, + and leveebreaks.
- * UPDATE Slovak (sk) translations. - Thanks to elo, FooBar, Michal Slovák, Roman 'Kaktuxista' Benji, and - StefanH. + * UPDATE Slovak (sk) translations. + Thanks to elo, FooBar, Michal Slovák, Roman 'Kaktuxista' Benji, and + StefanH.
- * UPDATE Russian (ru) translations. - Thanks to Andrey Yoker Ogurchikov, Evgrafov Denis, foo, - joshuaridney, Oleg, Sergey Briskin, Valid Olov, and Vitaliy Grishenko. + * UPDATE Russian (ru) translations. + Thanks to Andrey Yoker Ogurchikov, Evgrafov Denis, foo, + joshuaridney, Oleg, Sergey Briskin, Valid Olov, and Vitaliy Grishenko.
- * UPDATE Romanian (ro) translations. - Thanks to Isus Satanescu, laura berindei, and clopotel. + * UPDATE Romanian (ro) translations. + Thanks to Isus Satanescu, laura berindei, and clopotel.
- * UPDATE Portuguese (pt_BR) translations. - Thanks to João Paulo S.S. + * UPDATE Portuguese (pt_BR) translations. + Thanks to João Paulo S.S.
- * UPDATE Portuguese (pt) translations. - Thanks to alfalb.as, André Monteiro, kagazz, Manuela Silva, - alfalb_mansil, Andrew_Melim, Pedro Albuquerque, Sérgio Marques, and - TiagoJMMC. + * UPDATE Portuguese (pt) translations. + Thanks to alfalb.as, André Monteiro, kagazz, Manuela Silva, + alfalb_mansil, Andrew_Melim, Pedro Albuquerque, Sérgio Marques, and + TiagoJMMC.
- * UPDATE Polish (pl) translations. - Thanks to Aron, JerBen, bogdrozd, Dawid, Rikson, Krzysztof Łojowski, - oirpos, and seb. + * UPDATE Polish (pl) translations. + Thanks to Aron, JerBen, bogdrozd, Dawid, Rikson, Krzysztof Łojowski, + oirpos, and seb.
- * UPDATE Dutch (nl) translations. - Thanks to Adriaan Callaerts, Ann Boen, Cleveridge, Dick, - Johann Behrens, Shondoit Walker, Marco Brohet, guryman, Marco - Brohet, Tom Becht, Tonko Mulder, math1985, and BBLN. + * UPDATE Dutch (nl) translations. + Thanks to Adriaan Callaerts, Ann Boen, Cleveridge, Dick, + Johann Behrens, Shondoit Walker, Marco Brohet, guryman, Marco + Brohet, Tom Becht, Tonko Mulder, math1985, and BBLN.
- * UPDATE Norwegian Bokmål (nb) translations. - Thanks to Allan Nordhøy, Harald, lateralus, Per Thorsheim, - and thor574. + * UPDATE Norwegian Bokmål (nb) translations. + Thanks to Allan Nordhøy, Harald, lateralus, Per Thorsheim, + and thor574.
- * UPDATE Latvian (lv) translations. - Thanks to Ojārs Balcers and ThePirateDuck. + * UPDATE Latvian (lv) translations. + Thanks to Ojārs Balcers and ThePirateDuck.
- * UPDATE Khmer (km) translations. - Thanks to Seng Sutha, Sokhem Khoem, and Sok Sophea. + * UPDATE Khmer (km) translations. + Thanks to Seng Sutha, Sokhem Khoem, and Sok Sophea.
- * UPDATE Japanese (ja) translations. - Thanks to brt, ABE Tsunehiko, タカハシ, Masaki Saito, and - 藤前 甲. + * UPDATE Japanese (ja) translations. + Thanks to brt, ABE Tsunehiko, タカハシ, Masaki Saito, and + 藤前 甲.
- * UPDATE Italian (it) translations. - Thanks to fetidyoo, Francesca Ciceri, HostFat, ironbishop, and - Jacob Appelbaum. + * UPDATE Italian (it) translations. + Thanks to fetidyoo, Francesca Ciceri, HostFat, ironbishop, and + Jacob Appelbaum.
- * UPDATE Hungarian (hu) translations. - Thanks to Blackywantscookies, Lajos Pasztor, Cerbo, and vargaviktor. + * UPDATE Hungarian (hu) translations. + Thanks to Blackywantscookies, Lajos Pasztor, Cerbo, and vargaviktor.
- * UPDATE Croatian (hr) translations. - Thanks to Ana B, Armando Vega, skiddiep, Tomislav Siroglavić, - and gogo. + * UPDATE Croatian (hr) translations. + Thanks to Ana B, Armando Vega, skiddiep, Tomislav Siroglavić, + and gogo.
- * UPDATE French (fr_CA) translations. - Thanks to Lunar, mehditaileb, Onizuka, and yahoe.001. + * UPDATE French (fr_CA) translations. + Thanks to Lunar, mehditaileb, Onizuka, and yahoe.001.
- * UPDATE French (fr) translations. - Thanks to apaddlingduck, fayçal fatihi, Boubou, Cryptie, - Frisson Reynald, hpatte, Lucas Leroy, Lunar, Onizuka, and mehditaileb. + * UPDATE French (fr) translations. + Thanks to apaddlingduck, fayçal fatihi, Boubou, Cryptie, + Frisson Reynald, hpatte, Lucas Leroy, Lunar, Onizuka, and mehditaileb.
- * UPDATE Finnish (fi) translations. - Thanks to Jorma Karvonen, Spacha, Ossi Kallunki, Sami Kuusisto, - viljaminojonen, and Finland355. + * UPDATE Finnish (fi) translations. + Thanks to Jorma Karvonen, Spacha, Ossi Kallunki, Sami Kuusisto, + viljaminojonen, and Finland355.
- * UPDATE Farsi (fa) translations. - Thanks to arashaalaei, signal89, ardeshir, Gilberto, johnholzer, - Mohammad Hossein, perspolis, and Setareh. + * UPDATE Farsi (fa) translations. + Thanks to arashaalaei, signal89, ardeshir, Gilberto, johnholzer, + Mohammad Hossein, perspolis, and Setareh.
- * UPDATE Spanish (es) translations. - Thanks to dark_yoshi, toypurina, BL, NinjaTuna, Noel Torres, - Paola Falcon, strel, and Jonis. + * UPDATE Spanish (es) translations. + Thanks to dark_yoshi, toypurina, BL, NinjaTuna, Noel Torres, + Paola Falcon, strel, and Jonis.
- * UPDATE English (en_GB) translations. - Thanks to Andi Chandler, Richard Shaylor, and ronnietse. + * UPDATE English (en_GB) translations. + Thanks to Andi Chandler, Richard Shaylor, and ronnietse.
- * UPDATE Greek (el) translations. - Thanks to Adrian Pappas, andromeas, oahanx, isv31, and kotkotkot. + * UPDATE Greek (el) translations. + Thanks to Adrian Pappas, andromeas, oahanx, isv31, and kotkotkot.
- * UPDATE German (de) translations. - Thanks to trantor, Ettore Atalan, unknwon_anonymous, konstibae, - Locke, Tobias Bannert, qbi, Sebastian, and debakel. + * UPDATE German (de) translations. + Thanks to trantor, Ettore Atalan, unknwon_anonymous, konstibae, + Locke, Tobias Bannert, qbi, Sebastian, and debakel.
- * UPDATE Danish (da) translations. - Thanks to Christian Villum, David Nielsen, OliverMller, torebjornson, - Thomas Pryds, and Tore Bjørnson. + * UPDATE Danish (da) translations. + Thanks to Christian Villum, David Nielsen, OliverMller, torebjornson, + Thomas Pryds, and Tore Bjørnson.
- * UPDATE Czech (cs) translations. - Thanks to A5h8d0wf0x, Adam Slovacek, Elisa, Sanky, Jiří Vírava, - mxsedlacek, and Radek Bensch. + * UPDATE Czech (cs) translations. + Thanks to A5h8d0wf0x, Adam Slovacek, Elisa, Sanky, Jiří Vírava, + mxsedlacek, and Radek Bensch.
- * UPDATE Catalan (ca) translations. - Thanks to Albert, Assumpta Anglada, Eloi García i Fargas, Humbert, - and laia_. + * UPDATE Catalan (ca) translations. + Thanks to Albert, Assumpta Anglada, Eloi García i Fargas, Humbert, + and laia_.
- * UPDATE Arabic (ar) translations. - Thanks to Ash and Valetudinarian. + * UPDATE Arabic (ar) translations. + Thanks to Ash and Valetudinarian.
Changes in version 0.2.4 - 2015-02-03
- * HOTFIXES a UnicodeDecodeError resulting from patches for #12627. - https://bugs.torproject.org/12627 - - * FIXES #9874 https://bugs.torproject.org/9874 - BridgeDB now has integration tests for all bridge distributors. - Thanks to trygve for the patches. - - * FIXES #12871 https://bugs.torproject.org/12871 - Bridge Buckets now work, even if the code for calculating Bridge - stability is disabled. - Thanks to Matt Finkel for the patches. - - * FIXES part of #12029 https://bugs.torproject.org/12029 - Major sections of the bridgedb.Bridges module, which holds - BridgeDB's main data structures for storing and parsing Bridges, - have been refactored in preparation for upcoming changes to use - Stem's parsers (see #9380 https://bugs.torproject.org/9380) - - * FIXES #12932 https://bugs.torproject.org/12932 - Arguments for Pluggable Transports in the bridge lines which - BridgeDB distributes to users are now properly - space-separated. This issue was affecting the deployment of the - obfs4 PT (see #12130 https://bugs.torproject.org/12130). - - * FIXES #13123 https://bugs.torproject.org/13123 - Previously, there were two additional whitespace characters at the - beginning of bridge lines handed out by BridgeDB's HTTPS - distributor, which would be annoyingly copy+pasted into TorLauncher - and torrcs, etc. These are now gone. - - * FIXES #12664 https://bugs.torproject.org/12664 - Previously, for the bridge lines handed out by BridgeDB's HTTPS - distributor, the newlines were not properly pasted when a user - would copy+paste the lines. This is now fixed. Additionally, there - is now a "Select All" button (JS must be enabled) to select all - text for the bridge lines, to attempt to reduce user copy+paste - errors. If the display area which contains the bridge lines is - clicked, and JS is enabled, it has the same effect as clicking the - "Select All" button. - - * FIXES #14064 https://bugs.torproject.org/14064 - The bridge lines handed out by BridgeDB's HTTPS distributor are - now displayed with a horizontal scrollbar if they are too long to - fit into the display area. - - * FIXES #11345 https://bugs.torproject.org/11345 - BridgeDB now supports giving users QRCodes for their bridge lines, - to facilitate getting bridges into Tails and onto mobile devices. - - * FIXES #12130 https://bugs.torproject.org/12130 - BridgeDB's distributors now have options to distribute obfs4 bridges. + * HOTFIXES a UnicodeDecodeError resulting from patches for #12627. + https://bugs.torproject.org/12627 + + * FIXES #9874 https://bugs.torproject.org/9874 + BridgeDB now has integration tests for all bridge distributors. Thanks to + trygve for the patches. + + * FIXES #12871 https://bugs.torproject.org/12871 + Bridge Buckets now work, even if the code for calculating Bridge stability + is disabled. Thanks to Matt Finkel for the patches. + + * FIXES part of #12029 https://bugs.torproject.org/12029 + Major sections of the bridgedb.Bridges module, which holds BridgeDB's main + data structures for storing and parsing Bridges, have been refactored in + preparation for upcoming changes to use Stem's parsers (see #9380 + https://bugs.torproject.org/9380) + + * FIXES #12932 https://bugs.torproject.org/12932 + Arguments for Pluggable Transports in the bridge lines which BridgeDB + distributes to users are now properly space-separated. This issue was + affecting the deployment of the obfs4 PT (see #12130 + https://bugs.torproject.org/12130). + + * FIXES #13123 https://bugs.torproject.org/13123 + Previously, there were two additional whitespace characters at the beginning + of bridge lines handed out by BridgeDB's HTTPS distributor, which would be + annoyingly copy+pasted into TorLauncher and torrcs, etc. These are now + gone. + + * FIXES #12664 https://bugs.torproject.org/12664 + Previously, for the bridge lines handed out by BridgeDB's HTTPS distributor, + the newlines were not properly pasted when a user would copy+paste the + lines. This is now fixed. Additionally, there is now a "Select All" button + (JS must be enabled) to select all text for the bridge lines, to attempt to + reduce user copy+paste errors. If the display area which contains the + bridge lines is clicked, and JS is enabled, it has the same effect as + clicking the "Select All" button. + + * FIXES #14064 https://bugs.torproject.org/14064 + The bridge lines handed out by BridgeDB's HTTPS distributor are now + displayed with a horizontal scrollbar if they are too long to fit into the + display area. + + * FIXES #11345 https://bugs.torproject.org/11345 + BridgeDB now supports giving users QRCodes for their bridge lines, to + facilitate getting bridges into Tails and onto mobile devices. + + * FIXES #12130 https://bugs.torproject.org/12130 + BridgeDB's distributors now have options to distribute obfs4 bridges.
And includes the following general changes: - * CHANGES the integration tests based on Mechanize to only run on - CI servers, not locally on developers laptops, since it requires - the running BridgeDB test/staging instance to offer a plaintext - HTTP interface. See commit 24acf6a72. - https://gitweb.torproject.org/bridgedb.git/commit/?id=24acf6a72931c602631c97... - - * ADDS better installation instructions in README.rst for - developers who wish to test their changes to BridgeDB. - Thanks to Alden Page for the patch. + * CHANGES the integration tests based on Mechanize to only run on + CI servers, not locally on developers laptops, since it requires the running + BridgeDB test/staging instance to offer a plaintext HTTP interface. See + commit 24acf6a72. + https://gitweb.torproject.org/bridgedb.git/commit/?id=24acf6a72931c602631c97...
+ * ADDS better installation instructions in README.rst for + developers who wish to test their changes to BridgeDB. Thanks to Alden Page + for the patch.
Changes in version 0.2.3 - 2014-07-26
- * FIXES #5463 https://bugs.torproject.org/5463 - BridgeDB can now OpenPGP sign outgoing emails. - - * FIXES #9385 https://bugs.torproject.org/9385 - BridgeDB now has the ability to blacklist email addresses, and - configurable options to fuzzy match and block addresses which are - similar enough to those in the blacklist. - - * FIXES #11139 https://bugs.torproject.org/11139 - You can now email BridgeDB from Riseup email addresses! - - * FIXES #12147 https://bugs.torproject.org/12147 - An additional issue with BridgeDB's code for scheduling actions - was identified by Robert Ransom, who also provided a unittest to - demonstrate the issue and test for future regressions. The issue - pointed out has also been fixed. - - * FIXES #12635 https://bugs.torproject.org/12635 - The links in BridgeDB's email and HTTPS distributor UIs have been - changed from the obsolete - https://www.torproject.org/projects/torbrowser.html.en#downloads-beta - to https://www.torproject.org/projects/torbrowser.html. - - * FIXES #12650 https://bugs.torproject.org/12650 - BridgeDB's translation files sometimes take a little while to - update because real live human volunteers need to go to - Transifex.org and convert the strings between languages. Then I - need to import the strings, check all of them by hand to make sure - there's no funny business which could harm users in them, and then - commit all the diffs. Sadly, there isn't much more we can do to - speed up this process, so sometimes BridgeDB's UI falls back to + * FIXES #5463 https://bugs.torproject.org/5463 + BridgeDB can now OpenPGP sign outgoing emails. + + * FIXES #9385 https://bugs.torproject.org/9385 + BridgeDB now has the ability to blacklist email addresses, and configurable + options to fuzzy match and block addresses which are similar enough to those + in the blacklist. + + * FIXES #11139 https://bugs.torproject.org/11139 + You can now email BridgeDB from Riseup email addresses! + + * FIXES #12147 https://bugs.torproject.org/12147 + An additional issue with BridgeDB's code for scheduling actions was + identified by Robert Ransom, who also provided a unittest to demonstrate the + issue and test for future regressions. The issue pointed out has also been + fixed. + + * FIXES #12635 https://bugs.torproject.org/12635 + The links in BridgeDB's email and HTTPS distributor UIs have been changed + from the obsolete + https://www.torproject.org/projects/torbrowser.html.en#downloads-beta + to + https://www.torproject.org/projects/torbrowser.html. + + * FIXES #12650 https://bugs.torproject.org/12650 + BridgeDB's translation files sometimes take a little while to update because + real live human volunteers need to go to Transifex.org and convert the + strings between languages. Then I need to import the strings, check all of + them by hand to make sure there's no funny business which could harm users + in them, and then commit all the diffs. Sadly, there isn't much more we can + do to speed up this process, so sometimes BridgeDB's UI falls back to English when it doesn't have new enough translations files. Sorry!
And includes the following general changes:
- * UPDATE translation: Chinese - Taiwan (zh_TW) - THANKS TO danfong. - * UPDATE translation: Chinese - China (zh_CN) - THANKS TO Meng3, leungsookfan, and Wu Ming Shi. - * UPDATE translation: Turkish (tr) - THANKS TO eromytsatiffird, Emre, Idil Yuksel, ozkansib, - Volkan Gezer, and zeki. - * UPDATE translation: Swedish (sv) - THANKS TO Anders Jensen-Urstad, GabSeb, and phst. - * UPDATE translation: Russian (ru) - THANKS TO Evgrafov Denis, Eugene, foo, Sergey Briskin, - Valid Olov, and Vitaliy Grishenko. - * UPDATE translation: Brazilian Portuguese (pt_BR) - THANKS TO Isabel Ferreira, and Rodrigo Emmanuel Santana - Borges. - * UPDATE translation: Portuguese (pt) - THANKS TO André Monteiro, kagazz, Manuela Silva, - Andrew_Melim, and Sérgio Marques. - * UPDATE translation: Polish (pl) - THANKS TO Aron, Dawid, Krzysztof Łojowski, and seb. - * UPDATE translation: Norwegian Bokmål (nb) - THANKS TO Allan Nordhøy, Harald, and thor574. - * UPDATE translation: Malay (ms_MY) - THANKS TO shahril. - * UPDATE translation: Latvian (lv) - THANKS TO Ojārs Balcers. - * UPDATE translation: Khmer (km) - THANKS TO Seng Sutha, Sokhem Khoem, and Sok Sophea. - * UPDATE translation: Hungarian (hu) - THANKS TO Blackywantscookies, and Cerbo. - * UPDATE translation: Croatian (hr_HR) - THANKS TO Ana B. - * UPDATE translation: Hebrew (he) - THANKS TO Elifelet. - * UPDATE translation: Canadian French (fr_CA) - THANKS TO yahoe.001. - * UPDATE translation: French (fr) - THANKS TO fayçal fatihi, Frisson Reynald, hpatte, Lunar, - Onizuka, themen, Towinet, and Yannick Heintz. - * UPDATE translation: Finish (fi) - THANKS TO viljaminojonen, and Finland355. - * UPDATE translation: Farsi (fa) - THANKS TO Mohammad Hossein. - * UPDATE translation: Spanish - Chile (es_CL) - THANKS TO Pablo Lezaeta. - * UPDATE translation: Spanish (es) - THANKS TO Paola Falcon. - * UPDATE translation: British English (en_GB) - THANKS TO richardshaylor. - * UPDATE translation: Greek (el) - THANKS TO Adrian Pappas, andromeas, isv31, and Wasilis - Mandratzis. - * UPDATE translation: German (de) - THANKS TO Tobias Bannert. - * UPDATE translation: Danish (da) - THANKS TO autofunk78. - * UPDATE translation: Arabic (ar) - THANKS TO Ahmad Gharbeia, Mohamed El-Feky, AnonymousLady, - 0xidz, Sherief Alaa , and محيي الدين. - + * UPDATE translation: Chinese - Taiwan (zh_TW) + THANKS TO danfong. + * UPDATE translation: Chinese - China (zh_CN) + THANKS TO Meng3, leungsookfan, and Wu Ming Shi. + * UPDATE translation: Turkish (tr) + THANKS TO eromytsatiffird, Emre, Idil Yuksel, ozkansib, + Volkan Gezer, and zeki. + * UPDATE translation: Swedish (sv) + THANKS TO Anders Jensen-Urstad, GabSeb, and phst. + * UPDATE translation: Russian (ru) + THANKS TO Evgrafov Denis, Eugene, foo, Sergey Briskin, + Valid Olov, and Vitaliy Grishenko. + * UPDATE translation: Brazilian Portuguese (pt_BR) + THANKS TO Isabel Ferreira, and Rodrigo Emmanuel Santana + Borges. + * UPDATE translation: Portuguese (pt) + THANKS TO André Monteiro, kagazz, Manuela Silva, + Andrew_Melim, and Sérgio Marques. + * UPDATE translation: Polish (pl) + THANKS TO Aron, Dawid, Krzysztof Łojowski, and seb. + * UPDATE translation: Norwegian Bokmål (nb) + THANKS TO Allan Nordhøy, Harald, and thor574. + * UPDATE translation: Malay (ms_MY) + THANKS TO shahril. + * UPDATE translation: Latvian (lv) + THANKS TO Ojārs Balcers. + * UPDATE translation: Khmer (km) + THANKS TO Seng Sutha, Sokhem Khoem, and Sok Sophea. + * UPDATE translation: Hungarian (hu) + THANKS TO Blackywantscookies, and Cerbo. + * UPDATE translation: Croatian (hr_HR) + THANKS TO Ana B. + * UPDATE translation: Hebrew (he) + THANKS TO Elifelet. + * UPDATE translation: Canadian French (fr_CA) + THANKS TO yahoe.001. + * UPDATE translation: French (fr) + THANKS TO fayçal fatihi, Frisson Reynald, hpatte, Lunar, + Onizuka, themen, Towinet, and Yannick Heintz. + * UPDATE translation: Finish (fi) + THANKS TO viljaminojonen, and Finland355. + * UPDATE translation: Farsi (fa) + THANKS TO Mohammad Hossein. + * UPDATE translation: Spanish - Chile (es_CL) + THANKS TO Pablo Lezaeta. + * UPDATE translation: Spanish (es) + THANKS TO Paola Falcon. + * UPDATE translation: British English (en_GB) + THANKS TO richardshaylor. + * UPDATE translation: Greek (el) + THANKS TO Adrian Pappas, andromeas, isv31, and Wasilis + Mandratzis. + * UPDATE translation: German (de) + THANKS TO Tobias Bannert. + * UPDATE translation: Danish (da) + THANKS TO autofunk78. + * UPDATE translation: Arabic (ar) + THANKS TO Ahmad Gharbeia, Mohamed El-Feky, AnonymousLady, + 0xidz, Sherief Alaa , and محيي الدين.
Changes in version 0.2.2 - 2014-06-06
- * FIXES #9874 https://bugs.torproject.org/9874 - BridgeDB's email and HTTPS distributors were written in a manner - that makes them largely impossible to write unittests for. Since - the recent rewrite of BridgeDB's email distributor server backends - for version 0.2.1, BridgeDB email distributor is now testable and - has near 100% code coverage, see - https://coveralls.io/r/isislovecruft/bridgedb - - * FIXES #12086 https://bugs.torproject.org/12086 - BridgeDB was found to accept incoming emails sent to any email - address whose local part included the word bridges, e.g. emails - sent to 'givemebridges@serious.ly' would be responded to as if - they were destined for BridgeDB's real email address. - - BridgeDB now strictly checks that the local part of the email - address that an incoming email was sent to (after removing plus - aliases, i.e. '+es_ES', '+fa', etc.) exactly matches BridgeDB - configured email address username. - - BridgeDB now checks that the domain name portion of the email - address that an incoming email was sent to either matches the - domain name portion of BridgeDB's configured email address, or - is a subdomain of that domain. - - * FIXES #12089 https://bugs.torproject.org/12089 - There has been a bug for quite some time now where BridgeDB could - be used to email arbitrary email addresses (as long as these - addresses were ones which BridgeDB allows, i.e. Gmail or Yahoo - email addresses). This was due to BridgeDB not checking that the - email address used in the SMTP 'MAIL FROM:' command on an incoming - message matched the one used in that email's 'From:' - header. - - BridgeDB now checks that the email addresses in the SMTP 'MAIL - FROM:' and the 'From:' header on that incoming email match, in - addition to the previous checks that the email address' domain - is in the set of allowed domains. - - * FIXES #12090 https://bugs.torproject.org/12090 - BridgeDB has been replying with an empty email. I don't actually - know for sure if this one is fixed. Before deploying version - 0.2.1, the continuous integration tests showed email responses - being correctly generated, and I was also able to receive - correctly formed email responses from BridgeDB on a local testing - instance on my laptop. It appears that this bug occurs only on the - deployment server at ponticum.torproject.org, possibly due to the - outdated Python version in Debian Wheezy. I have not been able to - reproduce this bug on any other machine. - - * FIXES #12091 https://bugs.torproject.org/12091 - BridgeDB wasn't properly ignoring emails whose DKIM signature - verification header read "X-DKIM-Authentication-Results: dunno". - - Bridgedb now marks incoming emails which have a - "X-DKIM-Authentication-Results: dunno" header as invalid and - ignores them. - - * FIXES #12147 https://bugs.torproject.org/12147 - If a user refreshed https://bridges.torproject.org/bridges after - successfully solving a CAPTCHA, BridgeDB would reply with a new - set of bridges for each page refresh. This was due to the use of - `getInterval()` in `IPBasedDistributor.getBridgesForIP()`. The - correct function to use is `getIntervalStart()`. This had been - noted in a "XXX FIXME" comment above the call for quite some time, - however, when the `bridgedb.schedule` (previously called - `bridgedb.Time`) module was revised to support CAPTCHA timeouts - (#11215), the call to `getInterval()` was mistakenly not replaced - with the correct function. - - BridgeDB CAPTCHAs must be solved within 10 minutes. - - Hashring rotation for bridges in BridgeDB HTTPS distributor - occurs every 3 hours. Refreshing the page with bridges on it - will return these same bridges for that time period, and - afterwards redirect back to the CAPTCHA page. - THANKS TO francisco on IRC and arma for reporting the bug. - - * FIXES #12212 https://bugs.torproject.org/12122 - TRANSLATOR comments are now properly extracted into the gettext PO - template file. + * FIXES #9874 https://bugs.torproject.org/9874 + BridgeDB's email and HTTPS distributors were written in a manner that makes + them largely impossible to write unittests for. Since the recent rewrite of + BridgeDB's email distributor server backends for version 0.2.1, BridgeDB + email distributor is now testable and has near 100% code coverage, see + https://coveralls.io/r/isislovecruft/bridgedb + + * FIXES #12086 https://bugs.torproject.org/12086 + BridgeDB was found to accept incoming emails sent to any email address whose + local part included the word bridges, e.g. emails sent to + 'givemebridges@serious.ly' would be responded to as if they were destined + for BridgeDB's real email address. + - BridgeDB now strictly checks that the local part of the email address + that an incoming email was sent to (after removing plus aliases, i.e. + '+es_ES', '+fa', etc.) exactly matches BridgeDB configured email address + username. + - BridgeDB now checks that the domain name portion of the email address + that an incoming email was sent to either matches the domain name + portion of BridgeDB's configured email address, or is a subdomain of + that domain. + + * FIXES #12089 https://bugs.torproject.org/12089 + There has been a bug for quite some time now where BridgeDB could be used to + email arbitrary email addresses (as long as these addresses were ones which + BridgeDB allows, i.e. Gmail or Yahoo email addresses). This was due to + BridgeDB not checking that the email address used in the SMTP 'MAIL FROM:' + command on an incoming message matched the one used in that email's 'From:' + header. + - BridgeDB now checks that the email addresses in the SMTP 'MAIL FROM:' + and the 'From:' header on that incoming email match, in addition to the + previous checks that the email address' domain is in the set of allowed + domains. + + * FIXES #12090 https://bugs.torproject.org/12090 + BridgeDB has been replying with an empty email. I don't actually know for + sure if this one is fixed. Before deploying version 0.2.1, the continuous + integration tests showed email responses being correctly generated, and I + was also able to receive correctly formed email responses from BridgeDB on a + local testing instance on my laptop. It appears that this bug occurs only on + the deployment server at ponticum.torproject.org, possibly due to the + outdated Python version in Debian Wheezy. I have not been able to reproduce + this bug on any other machine. + + * FIXES #12091 https://bugs.torproject.org/12091 + BridgeDB wasn't properly ignoring emails whose DKIM signature verification + header read "X-DKIM-Authentication-Results: dunno". + - Bridgedb now marks incoming emails which have a + "X-DKIM-Authentication-Results: dunno" header as invalid and ignores + them. + + * FIXES #12147 https://bugs.torproject.org/12147 + If a user refreshed https://bridges.torproject.org/bridges after + successfully solving a CAPTCHA, BridgeDB would reply with a new set of + bridges for each page refresh. This was due to the use of `getInterval()` in + `IPBasedDistributor.getBridgesForIP()`. The correct function to use is + `getIntervalStart()`. This had been noted in a "XXX FIXME" comment above + the call for quite some time, however, when the `bridgedb.schedule` + (previously called `bridgedb.Time`) module was revised to support CAPTCHA + timeouts (#11215), the call to `getInterval()` was mistakenly not replaced + with the correct function. + - BridgeDB CAPTCHAs must be solved within 10 minutes. + - Hashring rotation for bridges in BridgeDB HTTPS distributor occurs every + 3 hours. Refreshing the page with bridges on it will return these same + bridges for that time period, and afterwards redirect back to the + CAPTCHA page. THANKS TO francisco on IRC and arma for reporting the + bug. + + * FIXES #12212 https://bugs.torproject.org/12122 + TRANSLATOR comments are now properly extracted into the gettext PO template + file.
And include the following general changes: - * FIXES an issue where, when verifying GnuPG signatures made by - BridgeDB's email distributor, GnuPG would error, saying, "invalid - armor header". - - * ADD Korean (ko) translations. - Thanks to ilbe123, cwt96, Dr.what, and pCsOrI. + * FIXES an issue where, when verifying GnuPG signatures made by + BridgeDB's email distributor, GnuPG would error, saying, "invalid armor + header".
- * UPDATE Ukranian (uk) translations. - Thanks to LinuxChata and ghostishev. + * ADD Korean (ko) translations. + Thanks to ilbe123, cwt96, Dr.what, and pCsOrI.
- * UPDATE Turkish (tr) translations. - Thanks to volkangezer. + * UPDATE Ukranian (uk) translations. + Thanks to LinuxChata and ghostishev.
- * UPDATE Brazilian Portuguese (pt_BR) translations. - Thanks to Communia, Humberto Sartini, Anastasia01, and recognitium. + * UPDATE Turkish (tr) translations. + Thanks to volkangezer.
- * UPDATE Polish (pl) translations. - Thanks to hoek, yodaa, maxxx, and sebx. + * UPDATE Brazilian Portuguese (pt_BR) translations. + Thanks to Communia, Humberto Sartini, Anastasia01, and recognitium.
- * UPDATE Dutch (nl) translations. - Thanks to Ann Boen, erwindelaat, guryman, and BBLN. - You guys are extra awesome for translating the phrase: - "Uh oh, spaghettios!" - into the Dutch: - "Helaas pindakaas!" - which, in English, literally means: - "Unfortunately, peanut butter!" - You guys totally just made my day. Thanks. + * UPDATE Polish (pl) translations. + Thanks to hoek, yodaa, maxxx, and sebx.
- * UPDATE Japanese (ja) translations. - Thanks to plazmism, who is extra awesome for translating the phrase: - "Uh oh, spaghettios!" - into the Japanese: - "おっとスパゲッティ!" - which apparently the literal English translation is: - "Husband spaghetti!" + * UPDATE Dutch (nl) translations. + Thanks to Ann Boen, erwindelaat, guryman, and BBLN. + You guys are extra awesome for translating the phrase: + "Uh oh, spaghettios!" + into the Dutch: + "Helaas pindakaas!" + which, in English, literally means: + "Unfortunately, peanut butter!" + You guys totally just made my day. Thanks.
- * UPDATE Italian (it) translations. - Thanks to Random_R. + * UPDATE Japanese (ja) translations. + Thanks to plazmism, who is extra awesome for translating the phrase: + "Uh oh, spaghettios!" + into the Japanese: + "おっとスパゲッティ!" + which apparently the literal English translation is: + "Husband spaghetti!"
- * UPDATE Canadian French (fr_CA) translations. - Thanks to Lunar. + * UPDATE Italian (it) translations. + Thanks to Random_R.
- * UPDATE Spanish (es) translations. - Thanks to dark_yoshi and strel. + * UPDATE Canadian French (fr_CA) translations. + Thanks to Lunar.
- * UPDATE Greek (el) translations. - Thanks to pappasadrian. + * UPDATE Spanish (es) translations. + Thanks to dark_yoshi and strel.
- * UPDATE German (de) translations. - Thanks to trantor and unknwon_anonymous. + * UPDATE Greek (el) translations. + Thanks to pappasadrian.
- * UPDATE Danish (da) translations. - Thanks to autofunk78 and DavidNielsen. + * UPDATE German (de) translations. + Thanks to trantor and unknwon_anonymous.
+ * UPDATE Danish (da) translations. + Thanks to autofunk78 and DavidNielsen.
Changes in version 0.2.1 - 2014-05-16 - * FIXES #5463 https://bugs.torproject.org/5463 - Emails sent from BridgeDB's email distributor should now be signed. - - BridgeDB's emails will be signed with its online GnuPG keypair. The - public key has the following fingerprint: - DF81 1109 E17C 8BF1 34B5 EEB6 8DC4 3A28 4882 1E32 - The online keypair rotates (a new one is placed on the server once - per year), and it will ALWAYS be signed with BridgeDB's offline - keypair. - - The online keypair above contains two subkeys. The signing subkey - has the fingerprint: - 9FE3 9D1A 7438 9223 3B3F 66F2 21B5 54E9 5938 F4D0 - - BridgeDB's offline keypair has the following fingerprint: - 7B78 4370 15E6 3DF4 7BB1 270A CBD9 7AA2 4E8E 472E - All of BridgeDB's keys may be found on the public keyservers, as - well as at https://bridges.torproject.org/keys - - * FIXES #7547 https://bugs.torproject.org/7547 - BridgeDB's email distributor will now send you a message - explaining how to use it, including valid commands and the list of - Pluggable Transport TYPES currently supported. To receive help - with the email distributor, simply send an email to - mailto:bridges@torproject.org. - - Any emails which do not contain a valid command will receive - the help text in response. - - Otherwise, to specifically request the help text, just say - "get help" - in the body of your email. - - * FIXES #7550 https://bugs.torproject.org/7550 - BridgeDB's email responder is now interactive, as described in the - above entry for ticket #7547. - - * FIXES #8241 https://bugs.torproject.org/8241 - BridgeDB's HTTP distributor won't tell you how to get obfs3 - bridges through email, although a blank email, or an email - containing "get help" will. - - * CLOSES #9678 https://bugs.torproject.org/9678 - A "Select Language" button was requested for the HTTP distributor - on https://bridges.torproject.org. Instead, translated pages are - distributed automatically (via detecting the "Accept-Language" - header which can be set in the Settings panel of all modern - browers). - - To request a specific translation, the "lang=LOCALE" argument - can be added to the URL of any page. For example: - https://bridges.torproject.org/options?lang=ar - will provide the bridge options selection page in Arabic. - - * FIXES #11215 https://bugs.torproject.org/11215 - BridgeDB's usage of gimp-captcha, which creates a local cache of - CAPTCHA for use on the HTTP distributor, now supports timeouts. If - a CAPTCHA is not solved within 30 minutes of being served to a - client, the solution is invalid regardless of its correctness. - - * FIXES #11475 https://bugs.torproject.org/11475 - BridgeDB's email responder, up until this point, explained how to - use bridges with Vidalia. It now uses the same help text as found - at https://bridges.torproject.org/howto which explains how to - enter bridges into TorLauncher (used by Tor Browser and Tails). - - * FIXES #11522 https://bugs.torproject.org/11522 - There were several errors and bugs in BridgeDB's email - distributor. The entire system of server supporting BridgeDB's - email distribution system was rewritten. - - * FIXES #11664 https://bugs.torproject.org/11664 - Due to changes in the Python language builtin `buffer` in Python3, - which were backported to Python 2.7.6, but neither backported to - Python 2.6.x nor to Python <= 2.7.5, BridgeDB's use of - `io.StringIO` and `io.BytesIO` combined with buffers had to be - revised to support both the new and old Python `buffer` APIs. - - * FIXES #11753 https://bugs.torproject.org/11753 - BridgeDB's emails should now be translated. - - The translations system for BridgeDB, as well as the template - system for emails, was completely rewritten. By default, email - responses are in English. To receive an alternate translation, - send an email to bridges+LOCALE@torproject.org, where "LOCALE" is - a locale specifier. - - For example, to receive BridgeDB emails translated into - Chinese, use mailto:bridges+zh_CN@torproject.org. - - Or for Farsi translations, use mailto:bridges+fa@torproject.org. - - For the full list of currently supported LOCALE codes, see + * FIXES #5463 https://bugs.torproject.org/5463 + Emails sent from BridgeDB's email distributor should now be signed. + - BridgeDB's emails will be signed with its online GnuPG keypair. The + public key has the following fingerprint: + DF81 1109 E17C 8BF1 34B5 EEB6 8DC4 3A28 4882 1E32 + The online keypair rotates (a new one is placed on the server once per + year), and it will ALWAYS be signed with BridgeDB's offline keypair. + - The online keypair above contains two subkeys. The signing subkey has + the fingerprint: + 9FE3 9D1A 7438 9223 3B3F 66F2 21B5 54E9 5938 F4D0 + - BridgeDB's offline keypair has the following fingerprint: + 7B78 4370 15E6 3DF4 7BB1 270A CBD9 7AA2 4E8E 472E + All of BridgeDB's keys may be found on the public keyservers, as well as at + https://bridges.torproject.org/keys + + * FIXES #7547 https://bugs.torproject.org/7547 + BridgeDB's email distributor will now send you a message explaining how to + use it, including valid commands and the list of Pluggable Transport TYPES + currently supported. To receive help with the email distributor, simply send + an email to mailto:bridges@torproject.org. + - Any emails which do not contain a valid command will receive the help + text in response. + - Otherwise, to specifically request the help text, just say "get help" in + the body of your email. + + * FIXES #7550 https://bugs.torproject.org/7550 + BridgeDB's email responder is now interactive, as described in the above + entry for ticket #7547. + + * FIXES #8241 https://bugs.torproject.org/8241 + BridgeDB's HTTP distributor won't tell you how to get obfs3 bridges through + email, although a blank email, or an email containing "get help" will. + + * CLOSES #9678 https://bugs.torproject.org/9678 + A "Select Language" button was requested for the HTTP distributor on + https://bridges.torproject.org. Instead, translated pages are distributed + automatically (via detecting the "Accept-Language" header which can be set + in the Settings panel of all modern browers). + - To request a specific translation, the "lang=LOCALE" argument can be + added to the URL of any page. For example: + https://bridges.torproject.org/options?lang=ar will provide the bridge + options selection page in Arabic. + + * FIXES #11215 https://bugs.torproject.org/11215 + BridgeDB's usage of gimp-captcha, which creates a local cache of CAPTCHA for + use on the HTTP distributor, now supports timeouts. If a CAPTCHA is not + solved within 30 minutes of being served to a client, the solution is + invalid regardless of its correctness. + + * FIXES #11475 https://bugs.torproject.org/11475 + BridgeDB's email responder, up until this point, explained how to use + bridges with Vidalia. It now uses the same help text as found at + https://bridges.torproject.org/howto which explains how to enter bridges + into TorLauncher (used by Tor Browser and Tails). + + * FIXES #11522 https://bugs.torproject.org/11522 + There were several errors and bugs in BridgeDB's email distributor. The + entire system of server supporting BridgeDB's email distribution system was + rewritten. + + * FIXES #11664 https://bugs.torproject.org/11664 + Due to changes in the Python language builtin `buffer` in Python3, which + were backported to Python 2.7.6, but neither backported to Python 2.6.x nor + to Python <= 2.7.5, BridgeDB's use of `io.StringIO` and `io.BytesIO` + combined with buffers had to be revised to support both the new and old + Python `buffer` APIs. + + * FIXES #11753 https://bugs.torproject.org/11753 + BridgeDB's emails should now be translated. + - The translations system for BridgeDB, as well as the template system for + emails, was completely rewritten. By default, email responses are in + English. To receive an alternate translation, send an email to + bridges+LOCALE@torproject.org, where "LOCALE" is a locale specifier. + - For example, to receive BridgeDB emails translated into Chinese, use + mailto:bridges+zh_CN@torproject.org. + - Or for Farsi translations, use mailto:bridges+fa@torproject.org. + - For the full list of currently supported LOCALE codes, see https://gitweb.torproject.org/user/isis/bridgedb.git/tree/HEAD:/lib/bridgedb...
And includes the following general changes: - * UPDATES the Italian (it) gettext file. - Thanks to Francesca Ciceri. - * ADD Welsh (cy) translations. - Thanks to huwwaters and littlegreykida. - * ADD Slovak (sk) translations. - Thanks to Michelozzo and Svistwarrior273. - * UPDATES the bridgedb.pot translation template file. All the new - strings in the email and HTTP user interfaces will now need - translation! To help out with translations, please see: - https://www.transifex.com/projects/p/torproject/resource/2-bridgedb-bridgedb... - * FIXES several typos in the BridgeDB's code documentation. - * ADDS code documentation for several previously undocumented modules. + * UPDATES the Italian (it) gettext file. + Thanks to Francesca Ciceri. + * ADD Welsh (cy) translations. + Thanks to huwwaters and littlegreykida. + * ADD Slovak (sk) translations. + Thanks to Michelozzo and Svistwarrior273. + * UPDATES the bridgedb.pot translation template file. All the new + strings in the email and HTTP user interfaces will now need + translation! To help out with translations, please see: + https://www.transifex.com/projects/p/torproject/resource/2-bridgedb-bridgedb... + * FIXES several typos in the BridgeDB's code documentation. + * ADDS code documentation for several previously undocumented modules.
Changes in version 0.2.0 - 2014-04-19 - * FIXES #5232 Perform long running and blocking transactions in - background threads. Primarily this moves bridge descriptor - reparsing into another thread, which significantly increases - the availability of BridgeDB. - * FIXES #9119 BridgeDB's logger now automatically sanitises all email - and IP addresses when the SAFELOGGING config option is enabled. - * FIXES #9875 BridgeDB logger now has 100% unittest coverage. - * FIXES #10803 Vidalia is no longer mentioned on - https://bridges.torproject.org, and instead there are new - instructions on how to enter bridges into TBB>=3.5 (with - TorLauncher). - * FIXES #11346 The web interface now has a homepage link. By clicking - "BridgeDB" in the upper left corner, users can go back to the - start of TBB downloading and bridge selection instructions at - https://bridges.torproject.org. - * FIXES #11370 We were using an old (and deprecated) module when we - created our email responses. Now we use the newer version. - * FIXES #11377 CAPTCHAs on BridgeDB's HTTPS interface are now - case-insensitive. - Thanks to Kostas Jakeliunas for the patch. - * FIXES #11522 fixes several issues with encodings and exception - handling in the email distributor. + * FIXES #5232 Perform long running and blocking transactions in + background threads. Primarily this moves bridge descriptor reparsing + into another thread, which significantly increases the availability + of BridgeDB. + * FIXES #9119 BridgeDB's logger now automatically sanitises all email + and IP addresses when the SAFELOGGING config option is enabled. + * FIXES #9875 BridgeDB logger now has 100% unittest coverage. FIXES #10803 + * Vidalia is no longer mentioned on + https://bridges.torproject.org, and instead there are new + instructions on how to enter bridges into TBB>=3.5 (with + TorLauncher). + * FIXES #11346 The web interface now has a homepage link. By clicking + "BridgeDB" in the upper left corner, users can go back to the start + of TBB downloading and bridge selection instructions at + https://bridges.torproject.org. + * FIXES #11370 We were using an old (and deprecated) module when we + created our email responses. Now we use the newer version. + * FIXES #11377 CAPTCHAs on BridgeDB's HTTPS interface are now + case-insensitive. Thanks to Kostas Jakeliunas for the patch. + * FIXES #11522 fixes several issues with encodings and exception + handling in the email distributor.
And includes the following general changes: - * NEW interface design for https://bridges.torproject.org, including - updated CSS stylesheets, fonts, and HTML templates. In - particular, the https://bridges.torproject.org/options page has - been redesigned completely. - Thanks to Xengi for providing a modified design of the "roots" - Tor Project logo, which is used to link to - https://www.torproject.org. - * CHANGES the TBB download link on the main web interface page to link - to the new TBB-3.6.x-beta bundles, which include patches by - David Fifield to unify TBB and PTTBB into one browser, so that - Pluggable Transports (PTs) are only enabled when the user - includes a bridge line which uses that PT. - * FIXES plaintext responses on https://bridges.torproject.org, - these can be requested by using the 'format' HTTP parameter, - like so: https://bridges.torproject.org/bridges?format=plain - * FIXES the logging of all lines of (including headers!) of incoming - emails. - * FIXES logfile rotation so that the files are only reable/writable - by the running process owner, and no other user. - * CHANGES the data format used for encrypted-then-HMACed CAPTCHAs - to assume that the HMAC is the first 20 bytes. Before we - assumed that the HMAC was separated from the encrypted data - with a ';' character, which causes intermittent issues with - some encoding and CAPTCHA solution values. - * REFACTORS some of the translations handling code, so that soon emails - will be translated (see #7550), and - https://bridges.torproject.org should have a "Select Language" - button (see #9678). - * BUMPS leekspin version to 0.1.3. + * NEW interface design for https://bridges.torproject.org, including + updated CSS stylesheets, fonts, and HTML templates. In particular, + the https://bridges.torproject.org/options page has been redesigned + completely. Thanks to Xengi for providing a modified design of the + "roots" Tor Project logo, which is used to link to + https://www.torproject.org. + * CHANGES the TBB download link on the main web interface page to link + to the new TBB-3.6.x-beta bundles, which include patches by David + Fifield to unify TBB and PTTBB into one browser, so that Pluggable + Transports (PTs) are only enabled when the user includes a bridge + line which uses that PT. + * FIXES plaintext responses on https://bridges.torproject.org, + these can be requested by using the 'format' HTTP parameter, like + so: https://bridges.torproject.org/bridges?format=plain + * FIXES the logging of all lines of (including headers!) of incoming + emails. + * FIXES logfile rotation so that the files are only reable/writable + by the running process owner, and no other user. + * CHANGES the data format used for encrypted-then-HMACed CAPTCHAs + to assume that the HMAC is the first 20 bytes. Before we assumed + that the HMAC was separated from the encrypted data with a ';' + character, which causes intermittent issues with some encoding and + CAPTCHA solution values. + * REFACTORS some of the translations handling code, so that soon emails + will be translated (see #7550), and https://bridges.torproject.org + should have a "Select Language" button (see #9678). + * BUMPS leekspin version to 0.1.3.
Changes in version 0.1.6 - 2014-03-26 BridgeDB 0.1.6 includes fixes for the following bugs: - * FIXES #11196 BridgeDB should use leekspin - * FIXES #11218 ReCaptchaProtectedResource.checkSolution() - doesn't expect a deferred - * FIXES #11219 BridgeDB's twisted version doesn´t have a - `t.w.client.HTTPConnectionPool` class - * FIXES #11231 BridgeDB's txrecaptcha returns the "No bridges - available!" page if 'captcha_response_field' is blank + * FIXES #11196 BridgeDB should use leekspin + * FIXES #11218 ReCaptchaProtectedResource.checkSolution() + doesn't expect a deferred + * FIXES #11219 BridgeDB's twisted version doesn´t have a + `t.w.client.HTTPConnectionPool` class + * FIXES #11231 BridgeDB's txrecaptcha returns the "No bridges + available!" page if 'captcha_response_field' is blank
And includes the following general changes: - * ADDS several new translations languages. + * ADDS several new translations languages.
Changes in version 0.1.5 - 2014-02-27 BridgeDB 0.1.5 includes fixes for the following bugs: - * FIXES #9264 Problem with transport lines in BridgeDB's bridge - pool assignment files - * FIXES #10809 reCAPTCHA on bridges.torproject.org are impossible - to solve for humans - * FIXES #10834 Configurable reCAPTCHA remoteip - * FIXES #11127 reCaptcha verification is hardcoded to use - plaintext HTTP + * FIXES #9264 Problem with transport lines in BridgeDB's bridge + pool assignment files + * FIXES #10809 reCAPTCHA on bridges.torproject.org are impossible + to solve for humans + * FIXES #10834 Configurable reCAPTCHA remoteip + * FIXES #11127 reCaptcha verification is hardcoded to use + plaintext HTTP
And includes the following general changes: - * CHANGES the way the client's IP address is reported to the - reCaptcha API server. Previously, for each client request, a - completely random IP address was generated, and BridgeDB lied to - the reCaptcha server by sending this random IP and saying that it - was the client's IP. With these changes, BridgeDB can be - configured to report a static IP address (it's own IP) as the - client's IP, in the hopes that the IP whitelisting used by - reCaptcha makes the returned CAPTCHAs less impossible to solve. - * ADDS the ability to use a local cache of CAPTCHAs created by - scripting Gimp with Python. See: - https://github.com/isislovecruft/gimp-captcha - * USES TLS during CAPTCHA solution verification when using - reCaptcha. - + * CHANGES the way the client's IP address is reported to the + reCaptcha API server. Previously, for each client request, a completely + random IP address was generated, and BridgeDB lied to the reCaptcha server + by sending this random IP and saying that it was the client's IP. With these + changes, BridgeDB can be configured to report a static IP address (it's own + IP) as the client's IP, in the hopes that the IP whitelisting used by + reCaptcha makes the returned CAPTCHAs less impossible to solve. + * ADDS the ability to use a local cache of CAPTCHAs created by + scripting Gimp with Python. See: + https://github.com/isislovecruft/gimp-captcha + * USES TLS during CAPTCHA solution verification when using + reCaptcha.
Changes in version 0.1.4 - 2014-02-21 BridgeDB 0.1.4 includes fixes for the following bugs: - * FIXES an RTL encoding issue in the "Step 2" text on index.html - of the HTTPS distributor. - + * FIXES an RTL encoding issue in the "Step 2" text on index.html + of the HTTPS distributor.
Changes in version 0.1.3 - 2014-02-21 BridgeDB 0.1.3 includes fixes for the following bugs: - * FIXES #9264 Problem with transport lines in BridgeDB's bridge - pool assignment files - * FIXES a bug caused by attempts to convert descriptor digests - which could not be parsed into hexadecimal. - * FIXES a unicode decoding error within the bridgedb.persistent - module. - * REMOVES continuous integration testing for Python 2.6. + * FIXES #9264 Problem with transport lines in BridgeDB's bridge + pool assignment files + * FIXES a bug caused by attempts to convert descriptor digests + which could not be parsed into hexadecimal. + * FIXES a unicode decoding error within the bridgedb.persistent + module. + * REMOVES continuous integration testing for Python 2.6.
Including the following general changes: - * ADD volunteer page text for GSoC 2014 applications. - + * ADD volunteer page text for GSoC 2014 applications.
Changes in version 0.1.2 - 2014-02-05 BridgeDB 0.1.2 includes fixes for the following bugs: - * FIXES #10811 BridgeDB's assignments.log files are not being updated - + * FIXES #10811 BridgeDB's assignments.log files are not being updated
Changes in version 0.1.1 - 2014-02-03 BridgeDB 0.1.1 includes fixes for the following bugs: - * FIXES #9127 Users can't ask for ipv6 bridges with the new bridgedb - interface - * FIXES #9988 Refactor BridgeDB's use of `sha` module to use `hashlib` - * FIXES #10724 Most of the time spent in testing, as well as most - of the time spent when "BridgeDB is down" (i.e. when I reply - with "BridgeDB is single-threaded (see #5232) and is parsing - millions of descriptors"), is within the same - `bridgedb.Stability.addOrUpdateBridgeHistory()` function (see - #10724). This function is pretty brutal on CPU and memory, is - blocking, and it needs to runs thousands and thousands of - times whenever BridgeDB is restarted (every half hour). The - algorithm within that function has a time complexity increasing - linearithmically relative to the number of bridges and timestamps - already within the database. [0] - This patch adds a config option to disable/enable running - the `addOrUpdateBridgeHistory()` function. - [0]: https://en.wikipedia.org/wiki/Time_complexity#Linearithmic_time - * FIXES #10737 POST arguments to bridges.torproject.org are dropped if - entering a CAPTCHA fails + * FIXES #9127 Users can't ask for ipv6 bridges with the new bridgedb + interface + * FIXES #9988 Refactor BridgeDB's use of `sha` module to use `hashlib` + * FIXES #10724 Most of the time spent in testing, as well as most + of the time spent when "BridgeDB is down" (i.e. when I reply + with "BridgeDB is single-threaded (see #5232) and is parsing + millions of descriptors"), is within the same + `bridgedb.Stability.addOrUpdateBridgeHistory()` function (see + #10724). This function is pretty brutal on CPU and memory, is + blocking, and it needs to runs thousands and thousands of + times whenever BridgeDB is restarted (every half hour). The + algorithm within that function has a time complexity increasing + linearithmically relative to the number of bridges and timestamps + already within the database. [0] + This patch adds a config option to disable/enable running + the `addOrUpdateBridgeHistory()` function. + [0]: https://en.wikipedia.org/wiki/Time_complexity#Linearithmic_time + * FIXES #10737 POST arguments to bridges.torproject.org are dropped if + entering a CAPTCHA fails
Including the following general changes: - * ADDS A general simple error page to display rather than - webserver tracebacks. See #6127. - * MOVES The recently added BridgeDB specification file - ('doc/bridge-db-spec.txt') to the torspec repo: - https://gitweb.torproject.org/torspec.git - * FIXES template caching for the web interface. - + * ADDS A general simple error page to display rather than + webserver tracebacks. See #6127. + * MOVES The recently added BridgeDB specification file + ('doc/bridge-db-spec.txt') to the torspec repo: + https://gitweb.torproject.org/torspec.git + * FIXES template caching for the web interface.
Changes in version 0.1.0 - 2014-01-14 BridgeDB 0.1.0 includes fixes for the following bugs: - * FIXES #1606 Write a BridgeDB spec - * FIXES #3573 bridges.torproject.org doesn't have a robots.txt - * FIXES #6127 bridges.tpo runs in development mode - * FIXES #9013 BridgeDB should pass pluggable transport - shared-secrets to clients - * FIXES #9157 Persian and Arabic should be right aligned on bridges.tpo - * FIXES #9462 BridgeDB netstatus descriptor parsers need refactoring - * FIXES #9959 BridgeDB seems to be missing English translations - * FIXES #9865 Add automated code coverage report generation - * FIXES #9872 Create a test runner for BridgeDB unittests - * FIXES #9873 Convert BridgeDB's old unittests to use twisted.trial - * FIXES #9937 Create fake non-sanitised bridge descriptors for - BridgeDB testing purposes - * FIXES #10333 Indexing list-like objects by 0L in - Bridges.getConfigLine - * FIXES #10446 BridgeDB is/was using a GeoIP module which is - incompatible with virtualenvs - * FIXES #10559 BridgeDB writes `keyid=` before fingerprints + * FIXES #1606 Write a BridgeDB spec + * FIXES #3573 bridges.torproject.org doesn't have a robots.txt + * FIXES #6127 bridges.tpo runs in development mode + * FIXES #9013 BridgeDB should pass pluggable transport + shared-secrets to clients + * FIXES #9157 Persian and Arabic should be right aligned on bridges.tpo + * FIXES #9462 BridgeDB netstatus descriptor parsers need refactoring + * FIXES #9959 BridgeDB seems to be missing English translations + * FIXES #9865 Add automated code coverage report generation + * FIXES #9872 Create a test runner for BridgeDB unittests + * FIXES #9873 Convert BridgeDB's old unittests to use twisted.trial + * FIXES #9937 Create fake non-sanitised bridge descriptors for + BridgeDB testing purposes + * FIXES #10333 Indexing list-like objects by 0L in + Bridges.getConfigLine + * FIXES #10446 BridgeDB is/was using a GeoIP module which is + incompatible with virtualenvs + * FIXES #10559 BridgeDB writes `keyid=` before fingerprints
Including the following general changes: - * ADD Numerous unittests and automated continuous integration testing. - * ADD Patches by sysrqb to correctly render right-to-left languages. - * FIXES fallback languages for translations. - * ADD Sphinx makefiles, substantial amounts of documentation. - * ADD Documentations builds (currently at - https://para.noid.cat/bridgedb) - + * ADD Numerous unittests and automated continuous integration testing. + * ADD Patches by sysrqb to correctly render right-to-left languages. + * FIXES fallback languages for translations. + * ADD Sphinx makefiles, substantial amounts of documentation. + * ADD Documentations builds (currently at + https://para.noid.cat/bridgedb)
Changes in version 0.0.1 - 2013-08-20 BridgeDB 0.0.1 includes fixes for the following bugs: - * FIXES #5332 Update BridgeDB documentation with deployment - instructions - * FIXES #9156 BridgeDB: Users try to add obfsbridges to their - normal TBB - These commits were added to fix a compatibility issue with - Vidalia, though they may be reverted to switch back to the old - behaviour of returning bridge lines in the form: - Bridge [transport_method] address:port [keyid=fingerprint] [K=v] […] - in order to work with torrc files and the new TBB-3.x packages - which use TorLauncher instead of Vidalia. - * PARTIAL FIX #9264 Problem with transport lines in BridgeDB's - bridge pool assignment files. - * FIXES #9425 Create and document a better BridgeDB (re)deployment - strategy + * FIXES #5332 Update BridgeDB documentation with deployment + instructions + * FIXES #9156 BridgeDB: Users try to add obfsbridges to their + normal TBB + These commits were added to fix a compatibility issue with + Vidalia, though they may be reverted to switch back to the old + behaviour of returning bridge lines in the form: + Bridge [transport_method] address:port [keyid=fingerprint] [K=v] […] + in order to work with torrc files and the new TBB-3.x packages + which use TorLauncher instead of Vidalia. + * PARTIAL FIX #9264 Problem with transport lines in BridgeDB's + bridge pool assignment files. + * FIXES #9425 Create and document a better BridgeDB (re)deployment + strategy
Including the following general changes: - * UPDATE translations files with finished files from Transifex for - the strings for the newly-refactored web interface created by - gsathya. - * ADD an automatic version-numbering system as part of developing - a better deployment strategy. - * CHANGE setup.py script to automatically install Python-based - dependencies from requirements.txt. - * REMOVE MANIFEST.in and put equivalent 'include' directives into - setup.py (the less places we have for manually keeping track of - files, the better). - * REMOVE the "bridge " prefix from the lines returned on the web - interface. - + * UPDATE translations files with finished files from Transifex for + the strings for the newly-refactored web interface created by + gsathya. + * ADD an automatic version-numbering system as part of developing + a better deployment strategy. + * CHANGE setup.py script to automatically install Python-based + dependencies from requirements.txt. + * REMOVE MANIFEST.in and put equivalent 'include' directives into + setup.py (the less places we have for manually keeping track of + files, the better). + * REMOVE the "bridge " prefix from the lines returned on the web + interface.
tor-commits@lists.torproject.org