Browse Source

Give the changelog an edit

Nick Mathewson 5 years ago
parent
commit
554f076f91
1 changed files with 120 additions and 122 deletions
  1. 120 122
      ChangeLog

+ 120 - 122
ChangeLog

@@ -1,13 +1,18 @@
 Changes in version 0.4.0.1-alpha - 2019-01-18
 Changes in version 0.4.0.1-alpha - 2019-01-18
-  blurb blurb blurb
+  Tor 0.4.0.1-alpha is the first release in the new 0.4.0.x series. It
+  introduces improved features for power and bandwidth conservation,
+  more accurate reporting of bootstrap progress for user interfaces, and
+  an experimental backend for an exciting new adaptive padding feature.
+  There is also the usual assortment of bugfixes and minor features, all
+  described below.
 
 
   o Major features (battery management, client, dormant mode):
   o Major features (battery management, client, dormant mode):
     - When Tor is running as a client, and it is unused for a long time,
     - When Tor is running as a client, and it is unused for a long time,
       it can now enter a "dormant" state. When Tor is dormant, it avoids
       it can now enter a "dormant" state. When Tor is dormant, it avoids
-      network activity and CPU wakeups until it is reawoken either by a
-      user request or by a controller command. For more information, see
-      the configuration options starting with "Dormant". Implements
-      tickets 2149 and 28335.
+      network and CPU activity until it is reawoken either by a user
+      request or by a controller command. For more information, see the
+      configuration options starting with "Dormant". Implements tickets
+      2149 and 28335.
     - The client's memory of whether it is "dormant", and how long it
     - The client's memory of whether it is "dormant", and how long it
       has spend idle, persists across invocations. Implements
       has spend idle, persists across invocations. Implements
       ticket 28624.
       ticket 28624.
@@ -15,17 +20,16 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       if they expect that in many cases, Tor will be installed but
       if they expect that in many cases, Tor will be installed but
       not used.
       not used.
 
 
-  o Major features (bootstrap):
-    - Report the first connection to a relay as the earliest phases of
-      bootstrap progress, regardless of whether it's a connection for
-      building application circuits. This allows finer-grained reporting
-      of early progress than previously possible with the improvements
-      of ticket 27169. Closes tickets 27167 and 27103. Addresses
-      ticket 27308.
-    - Separately report the intermediate stage of having connected to a
-      proxy or pluggable transport, versus succesfully using that proxy
-      or pluggable transport to connect to a relay. Closes tickets 27100
-      and 28884.
+  o Major features (bootstrap reporting):
+    - When reporting bootstrap progress, report the first connection
+      uniformly, regardless of whether it's a connection for building
+      application circuits. This allows finer-grained reporting of early
+      progress than previously possible, with the improvements of ticket
+      27169. Closes tickets 27167 and 27103. Addresses ticket 27308.
+    - When reporting bootstrap progress, treat connecting to a proxy or
+      pluggable transport as separate from having successfully using
+      that proxy or pluggable transport to connect to a relay. Closes
+      tickets 27100 and 28884.
 
 
   o Major features (circuit padding):
   o Major features (circuit padding):
     - Implement preliminary support for the circuit padding portion of
     - Implement preliminary support for the circuit padding portion of
@@ -34,8 +38,8 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       relays. Support is also provided for APE-style state machines that
       relays. Support is also provided for APE-style state machines that
       use probability distributions instead of histograms to specify
       use probability distributions instead of histograms to specify
       inter-packet delay. At the moment, Tor does not provide any
       inter-packet delay. At the moment, Tor does not provide any
-      padding state machines that are used in normal operation -- this
-      feature exists solely for experimentation in this release. Closes
+      padding state machines that are used in normal operation: for now,
+      this feature exists solely for experimentation. Closes
       ticket 28142.
       ticket 28142.
 
 
   o Major features (refactoring):
   o Major features (refactoring):
@@ -45,14 +49,14 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       (There still some subsystems using the old system.) Closes
       (There still some subsystems using the old system.) Closes
       ticket 28330.
       ticket 28330.
 
 
-  o Minor feature (bootstrap):
+  o Minor features (bootstrap reporting):
     - When reporting bootstrap progress, stop distinguishing between
     - When reporting bootstrap progress, stop distinguishing between
       situations where it seems that only internal paths are available
       situations where it seems that only internal paths are available
       and situations where it seems that external paths are available.
       and situations where it seems that external paths are available.
-      Previously, tor would often erroneously report that it had only
+      Previously, Tor would often erroneously report that it had only
       internal paths. Closes ticket 27402.
       internal paths. Closes ticket 27402.
 
 
-  o Minor features (Continuous Integration):
+  o Minor features (continuous integration):
     - Log Python version during each Travis CI job. Resolves
     - Log Python version during each Travis CI job. Resolves
       issue 28551.
       issue 28551.
 
 
@@ -62,77 +66,74 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
 
 
   o Minor features (developer tooling):
   o Minor features (developer tooling):
     - Provide a git hook script to prevent "fixup!" and "squash!"
     - Provide a git hook script to prevent "fixup!" and "squash!"
-      commits from ending up in master. Closes ticket 27993.
+      commits from ending up in the master branch, as scripts/main/pre-
+      push.git-hook. Closes ticket 27993.
 
 
   o Minor features (directory authority):
   o Minor features (directory authority):
     - Directory authorities support a new consensus algorithm, under
     - Directory authorities support a new consensus algorithm, under
-      which microdescriptor entries are encoded in a canonical form.
-      This improves their compressibility in transit and on the client.
-      Closes ticket 28266; implements proposal 298.
+      which the family lines in microdescriptors are encoded in a
+      canonical form. This change makes family lines more compressible
+      in transit, and on the client. Closes ticket 28266; implements
+      proposal 298.
 
 
   o Minor features (directory authority, relay):
   o Minor features (directory authority, relay):
     - Authorities now vote on a "StaleDesc" flag to indicate that a
     - Authorities now vote on a "StaleDesc" flag to indicate that a
       relay's descriptor is so old that the relay should upload again
       relay's descriptor is so old that the relay should upload again
-      soon. Relays understand this flag, and treat it as a signal to
-      upload a new descriptor. This flag will eventually let us remove
-      the 'published' date from routerstatus entries, and save a great
-      deal of space in our consensus diffs. Closes ticket 26770;
-      implements proposal 293.
+      soon. Relays treat this flag as a signal to upload a new
+      descriptor. This flag will eventually let us remove the
+      'published' date from routerstatus entries, and make our our
+      consensus diffs much smaller. Closes ticket 26770; implements
+      proposal 293.
 
 
   o Minor features (fallback directory mirrors):
   o Minor features (fallback directory mirrors):
     - Update the fallback whitelist based on operator opt-ins and opt-
     - Update the fallback whitelist based on operator opt-ins and opt-
       outs. Closes ticket 24805, patch by Phoul.
       outs. Closes ticket 24805, patch by Phoul.
-    - Accept fallbacks that deliver reasonably live consensuses.
-      (Consensuses that will become valid less than 24 hours in the
-      future, or that expired less than 24 hours ago.) Closes
-      ticket 28768.
-    - Accept relays that are a fuzzy match to a fallback whitelist
-      entry. If a relay matches at least one fingerprint, IPv4 address,
-      or IPv6 address in the fallback whitelist, it can become a
-      fallback. This reduces the work required to keep the list up to
-      date. Closes ticket 24838.
 
 
   o Minor features (FreeBSD):
   o Minor features (FreeBSD):
-    - Warn relay operators if the "net.inet.ip.random_id" sysctl (IP ID
-      randomization) is disabled on their relay if it is running on
-      FreeBSD based operating systems. Closes ticket 28518.
+    - On FreeBSD-based systems, warn relay operators if the
+      "net.inet.ip.random_id" sysctl (IP ID randomization) is disabled.
+      Closes ticket 28518.
 
 
   o Minor features (HTTP standards compliance):
   o Minor features (HTTP standards compliance):
-    - Don't send Content-Type: application/octet-stream for transparently
-      compressed documents, which confused browsers. Closes ticket 28100.
+    - Stop sending the header "Content-type: application/octet-stream"
+      along with transparently compressed documents: this confused
+      browsers. Closes ticket 28100.
 
 
-  o Minor features (ipv6):
-    - We add an option ClientAutoIPv6ORPort which makes clients randomly
+  o Minor features (IPv6):
+    - We add an option ClientAutoIPv6ORPort, to make clients randomly
       prefer a node's IPv4 or IPv6 ORPort. The random preference is set
       prefer a node's IPv4 or IPv6 ORPort. The random preference is set
       every time a node is loaded from a new consensus or bridge config.
       every time a node is loaded from a new consensus or bridge config.
-      Closes ticket 27490. Patch by Neel Chauhan.
-    - When using addrs_in_same_network_family(), check IPv6 subnets as
-      well as IPv4 ones where possible when a client chooses circuit
-      paths. Previously, we used this function only for IPv4 subnets.
-      Closes ticket 24393. Patch by Neel Chauhan.
+      We expect that this option will enable clients to bootstrap more
+      quickly without having to determine whether they support IPv4,
+      IPv6, or both. Closes ticket 27490. Patch by Neel Chauhan.
+    - When using addrs_in_same_network_family(), avoid choosing circuit
+      paths that pass through the same IPv6 subnet more than once.
+      Previously, we only checked IPv4 subnets. Closes ticket 24393.
+      Patch by Neel Chauhan.
 
 
   o Minor features (log messages):
   o Minor features (log messages):
-    - Improve log message in HSv3 service that could print out negative
-      revision counters. Closes ticket 27707. Patch by "ffmancera".
+    - Improve log message in v3 onion services service that could print
+      out negative revision counters. Closes ticket 27707. Patch
+      by "ffmancera".
 
 
   o Minor features (memory usage):
   o Minor features (memory usage):
-    - Store microdescriptor family lists with a more compact
-      representation to save memory. Closes ticket 27359.
-    - Tor clients no longer need to keep the full text of a consensus in
-      memory in order to parse it, or apply a diff to it. Instead, they
-      use mmap() to read the consensus files from disk. Closes
-      ticket 27244.
+    - Save memory by storing microdescriptor family lists with a more
+      compact representation. Closes ticket 27359.
+    - Tor clients now use mmap() to read consensus files from disk, sot
+      that they no longer need keep the full text of a consensus in
+      memory when parsing it or applying a diff. Closes ticket 27244.
 
 
   o Minor features (parsing):
   o Minor features (parsing):
     - Directory authorities now validate that router descriptors and
     - Directory authorities now validate that router descriptors and
       ExtraInfo documents are in a valid subset of UTF-8, and reject
       ExtraInfo documents are in a valid subset of UTF-8, and reject
-      them if not. Closes ticket 27367.
+      them if they are not. Closes ticket 27367.
 
 
   o Minor features (performance):
   o Minor features (performance):
-    - Avoid parsing the same protocol-versions string over and over in
-      summarize_protover_flags(). This should save us a huge number of
-      malloc calls on startup, and may reduce memory fragmentation with
-      some allocators. Closes ticket 27225.
+    - Cache the results of summarize_protocol_flags(), so that we don't
+      have to parse the same Avoid parsing the same protocol-versions
+      string over and over. This should save us a huge number of malloc
+      calls on startup, and may reduce memory fragmentation with some
+      allocators. Closes ticket 27225.
     - Remove a needless memset() call from get_token_arguments, thereby
     - Remove a needless memset() call from get_token_arguments, thereby
       speeding up the tokenization of directory objects by about 20%.
       speeding up the tokenization of directory objects by about 20%.
       Closes ticket 28852.
       Closes ticket 28852.
@@ -140,7 +141,7 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       improve microdescriptor parsing time. Closes ticket 28853.
       improve microdescriptor parsing time. Closes ticket 28853.
     - Speed up directory parsing a little by avoiding use of the non-
     - Speed up directory parsing a little by avoiding use of the non-
       inlined strcmp_len() function. Closes ticket 28856.
       inlined strcmp_len() function. Closes ticket 28856.
-    - Speed up microdesriptor parsing by about 30%, to help improve
+    - Speed up microdescriptor parsing by about 30%, to help improve
       startup time. Closes ticket 28839.
       startup time. Closes ticket 28839.
 
 
   o Minor features (pluggable transports):
   o Minor features (pluggable transports):
@@ -150,10 +151,10 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       pluggable transport process. Closes ticket 28180
       pluggable transport process. Closes ticket 28180
 
 
   o Minor features (process management):
   o Minor features (process management):
-    - Add new Process API for handling child processes. This new API
+    - Add a new process API for handling child processes. This new API
       allows Tor to have bi-directional communication with child
       allows Tor to have bi-directional communication with child
       processes on both Unix and Windows. Closes ticket 28179.
       processes on both Unix and Windows. Closes ticket 28179.
-    - Use the subsystem module to initialize and shut down the process
+    - Use the subsystem manager to initialize and shut down the process
       module. Closes ticket 28847.
       module. Closes ticket 28847.
 
 
   o Minor features (relay):
   o Minor features (relay):
@@ -162,56 +163,52 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       warnings. Part of ticket 28266 and proposal 298.
       warnings. Part of ticket 28266 and proposal 298.
 
 
   o Minor features (required protocols):
   o Minor features (required protocols):
-    - Tor no longer exits if it is missing a required protocol, if the
-      consensus that requires the protocol predates the release date of
-      the version of Tor. This change prevents Tor releases from exiting
-      because of an old cached consensus, on the theory that a newer
-      cached consensus might not require the protocol. Implements
-      proposal 297; closes ticket 27735.
+    - Before exiting because of a missing required protocol, Tor will
+      now check the publication time of the consensus, and not exit
+      unless the consensus is newer than the Tor program's own release
+      date. Previously, Tor would not check the consensus publication
+      time, and so might exit because of a missing protocol that might
+      no longer be required in a current consensus. Implements proposal
+      297; closes ticket 27735.
 
 
   o Minor features (testing):
   o Minor features (testing):
-    - Allow HeartbeatPeriod of less than 30 minutes in testing Tor
-      networks. Closes ticket 28840, patch by robgjansen
-
-  o Minor bugfixes (client, bootstrap):
-    - When Tor's clock is behind the clocks on the authorities, allow
-      Tor to bootstrap successfully. Fixes bug 28591; bugfix
-      on 0.2.0.9-alpha.
-
-  o Minor bugfixes (client, guard selection):
-    - When Tor's consensus has expired, but is still reasonably live,
-      use it to select guards. Fixes bug 24661; bugfix on 0.3.0.1-alpha.
+    - Allow a HeartbeatPeriod of less than 30 minutes in testing Tor
+      networks. Closes ticket 28840. Patch by Rob Jansen.
+
+  o Minor bugfixes (client, clock skew):
+    - Bootstrap successfully even when Tor's clock is behind the clocks
+      on the authorities. Fixes bug 28591; bugfix on 0.2.0.9-alpha.
+    - Select guards even if the consensus has expired, as long as the
+      consensus is still reasonably live. Fixes bug 24661; bugfix
+      on 0.3.0.1-alpha.
 
 
   o Minor bugfixes (compilation):
   o Minor bugfixes (compilation):
-    - Fix missing headers required for proper detection of OpenBSD. Fixes
-      bug 28938; bugfix on 0.3.5.1-alpha. Patch from Kris Katterjohn.
+    - Compile correctly on OpenBSD; previously, we were missing some
+      headers required in order to detect it properly. Fixes bug 28938;
+      bugfix on 0.3.5.1-alpha. Patch from Kris Katterjohn.
 
 
   o Minor bugfixes (directory clients):
   o Minor bugfixes (directory clients):
     - Mark outdated dirservers when Tor only has a reasonably live
     - Mark outdated dirservers when Tor only has a reasonably live
       consensus. Fixes bug 28569; bugfix on 0.3.2.5-alpha.
       consensus. Fixes bug 28569; bugfix on 0.3.2.5-alpha.
 
 
-  o Minor bugfixes (directory mirror):
-    - When Tor's clock is behind the clocks on the authorities, allow
-      Tor to serve future consensuses. Fixes bug 28654; bugfix
-      on 0.3.0.1-alpha.
+  o Minor bugfixes (directory mirrors):
+    - Even when a directory mirror's clock is behind the clocks on the
+      authorities, we now allow the mirror to serve "future"
+      consensuses. Fixes bug 28654; bugfix on 0.3.0.1-alpha.
 
 
   o Minor bugfixes (DNS):
   o Minor bugfixes (DNS):
-    - Gracefully handle empty or absent resolve.conf file by falling
-      back to using localhost DNS service and hoping it works. Fixes bug
+    - Gracefully handle an empty or absent resolve.conf file by falling
+      back to using "localhost" as a DNS server (and hoping it works).
+      Previously, we would just stop running as an exit. Fixes bug
       21900; bugfix on 0.2.1.10-alpha.
       21900; bugfix on 0.2.1.10-alpha.
 
 
-  o Minor bugfixes (fallback scripts):
-    - In updateFallbackDirs.py, call the filter file a "fallback list"
-      instead of a "whitelist" in check_existing mode. Fixes bug 24953;
-      bugfix on 0.3.0.3-alpha.
-
   o Minor bugfixes (guards):
   o Minor bugfixes (guards):
-    - In count_acceptable_nodes(), check if we have at least one bridge
-      or guard node, and two non-guard nodes for a circuit. Previously,
-      we have added up the sum of all nodes with a descriptor, but that
-      could cause us to build circuits that fail if we had either too
-      many bridges, or not enough guard nodes. Fixes bug 25885; bugfix
-      on 0.3.6.1-alpha. Patch by Neel Chauhan.
+    - In count_acceptable_nodes() we now treat the minimum number of
+      nodes as at one bridge or guard node, and two non-guard nodes for
+      a circuit. Previously, we had added up the sum of all nodes with a
+      descriptor, but that could cause us to build failing circuits when
+      we had either too many bridges, or not enough guard nodes. Fixes
+      bug 25885; bugfix on 0.3.6.1-alpha. Patch by Neel Chauhan.
 
 
   o Minor bugfixes (IPv6):
   o Minor bugfixes (IPv6):
     - Fix tor_ersatz_socketpair on IPv6-only systems. Previously, the
     - Fix tor_ersatz_socketpair on IPv6-only systems. Previously, the
@@ -222,7 +219,7 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
   o Minor bugfixes (logging):
   o Minor bugfixes (logging):
     - Rework rep_hist_log_link_protocol_counts() to iterate through all
     - Rework rep_hist_log_link_protocol_counts() to iterate through all
       link protocol versions when logging incoming/outgoing connection
       link protocol versions when logging incoming/outgoing connection
-      counts. Tor no longer skips version 5 and we don't have to
+      counts. Tor no longer skips version 5, and we won't have to
       remember to update this function when new link protocol version is
       remember to update this function when new link protocol version is
       developed. Fixes bug 28920; bugfix on 0.2.6.10.
       developed. Fixes bug 28920; bugfix on 0.2.6.10.
 
 
@@ -244,27 +241,27 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       onion router. Fixes bug 27929; bugfix on 0.2.8.1-alpha.
       onion router. Fixes bug 27929; bugfix on 0.2.8.1-alpha.
 
 
   o Minor bugfixes (pluggable transports):
   o Minor bugfixes (pluggable transports):
-    - Make sure that data is continously read from standard out and
-      error of the PT child-process to avoid deadlocking when the pipes'
-      buffer is full. Fixes bug 26360; bugfix on 0.2.3.6-alpha.
+    - Make sure that data is continously read from standard output and
+      standard error pipes of a pluggable transport child-process, to
+      avoid deadlocking when the a pipe's buffer is full. Fixes bug
+      26360; bugfix on 0.2.3.6-alpha.
 
 
   o Minor bugfixes (unit tests):
   o Minor bugfixes (unit tests):
     - Instead of relying on hs_free_all() to clean up all onion service
     - Instead of relying on hs_free_all() to clean up all onion service
-      objects we created in test_build_descriptors(), deallocate them
-      one by one. This lets Coverity know that we are not leaking memory
-      here and fixes CID 1442277. Fixes bug 28989; bugfix
-      on 0.3.5.1-alpha.
+      objects in test_build_descriptors(), we now deallocate them one by
+      one. This lets Coverity know that we are not leaking memory there
+      and fixes CID 1442277. Fixes bug 28989; bugfix on 0.3.5.1-alpha.
 
 
   o Minor bugfixes (usability):
   o Minor bugfixes (usability):
-    - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate()
-      as that confusingly suggests that mentioned guard node is under
-      control and responsibility of end user, which it is not. Fixes bug
+    - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate().
+      Some users took this phrasing to mean that the mentioned guard was
+      under their control or responsibility, which it is not. Fixes bug
       28895; bugfix on Tor 0.3.0.1-alpha.
       28895; bugfix on Tor 0.3.0.1-alpha.
 
 
   o Code simplification and refactoring:
   o Code simplification and refactoring:
     - Reimplement NETINFO cell parsing and generation to rely on
     - Reimplement NETINFO cell parsing and generation to rely on
       trunnel-generated wire format handling code. Closes ticket 27325.
       trunnel-generated wire format handling code. Closes ticket 27325.
-    - Remove unnecessarily unsafe code from the rust macro cstr!. Closes
+    - Remove unnecessarily unsafe code from the Rust macro cstr!. Closes
       ticket 28077.
       ticket 28077.
     - Rework SOCKS wire format handling to rely on trunnel-generated
     - Rework SOCKS wire format handling to rely on trunnel-generated
       parsing/generation code. Resolves ticket 27620.
       parsing/generation code. Resolves ticket 27620.
@@ -273,18 +270,19 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
     - The .may_include files that we use to describe our directory-by-
     - The .may_include files that we use to describe our directory-by-
       directory dependency structure now describe a noncircular
       directory dependency structure now describe a noncircular
       dependency graph over the directories that they cover. Our
       dependency graph over the directories that they cover. Our
-      checkIncludes.py tool now enforces this. Closes ticket 28362.
+      checkIncludes.py tool now enforces this noncircularity. Closes
+      ticket 28362.
 
 
   o Documentation:
   o Documentation:
-    - Mention that you cannot add new Onion Service if Tor is already
+    - Mention that you cannot add a new onion service if Tor is already
       running with Sandbox enabled. Closes ticket 28560.
       running with Sandbox enabled. Closes ticket 28560.
-    - Improve ControlPort description in tor manpage to mention that it
-      accepts address/port pair, and can be used multiple times. Closes
+    - Improve ControlPort deocumentation mention that it accepts
+      address:port pairs, and can be used multiple times. Closes
       ticket 28805.
       ticket 28805.
     - Document the exact output of "tor --version". Closes ticket 28889.
     - Document the exact output of "tor --version". Closes ticket 28889.
 
 
   o Removed features:
   o Removed features:
-    - Stop responding to 'GETINFO status/version/num-concurring' and
+    - Stop responding to the 'GETINFO status/version/num-concurring' and
       'GETINFO status/version/num-versioning' control port commands, as
       'GETINFO status/version/num-versioning' control port commands, as
       those were deprecated back in 0.2.0.30. Also stop listing them in
       those were deprecated back in 0.2.0.30. Also stop listing them in
       output of 'GETINFO info/names'. Resolves ticket 28757.
       output of 'GETINFO info/names'. Resolves ticket 28757.
@@ -293,9 +291,9 @@ Changes in version 0.4.0.1-alpha - 2019-01-18
       repository. Closes ticket 27914.
       repository. Closes ticket 27914.
 
 
   o Testing:
   o Testing:
-    - Run shellcheck for stuff in scripts/ directory. Closes
+    - Run shellcheck for scripts in the in scripts/ directory. Closes
       ticket 28058.
       ticket 28058.
-    - Write some unit tests for tokenize_string() and get_next_token()
+    - Add unit tests for tokenize_string() and get_next_token()
       functions. Resolves ticket 27625.
       functions. Resolves ticket 27625.
 
 
   o Code simplification and refactoring (onion service v3):
   o Code simplification and refactoring (onion service v3):