CHANGELOG.md 5.64 KB
Newer Older
1
2
3
4
5
6
7
8
9
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [Unreleased]

10
11
12
13
### Added

- Log line on start up with sbws version, platform info, and library versions
(trac#26751)
14
15
- State file for storing the last time `sbws scanner` was started, and able to
  be used for storing many other types of state in the future. (GH#166)
16

17
18
19
### Changed

- Document at which times should v3bw files be generated (#26740)
20
- Remove test data v3bw file and generate it from the same test. (#26736)
21

Matt Traudt's avatar
Matt Traudt committed
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## [0.6.0] - 2018-07-11

**Important changes**:

- The way users configure logging has changed. No longer are most users
  expected to be familiar with how to configure python's standard logging
library with a config file. Instead we've abstracted out the setting of log
level, format, and destinations to make these settings more accessible to
users. Expert users familiar with [the logging config file format][logconffmt]
can still make tweaks.

Summary of changes:

- Make logging configuration easier for the user.
- Add UML diagrams to documentation. They can be found in docs/source/images/
  and regenerated with `make umlsvg` in docs/.

[logconffmt]: https://docs.python.org/3/library/logging.config.html#logging-config-fileformat

41
42
43
44
### Added

- UML diagrams to documentation. In docs/ run `make umlsvg` to rebuild them.
  Requires graphviz to be installed.(GHPR#226)
juga's avatar
juga committed
45
- Add metadata to setup.py, useful for source/binary distributions.
juga's avatar
juga committed
46
- Add possibility to log to system log. (#26683)
47

48
49
50
51
### Fixed

- Measure relays that have both Exit and BadExit as non-exits, which is how
  clients would use them. (GH#217)
52
53
- Could not init sbws because of a catch-22 related to logging configuration.
  Overhaul how logging is configured. (GH#186 GHPR#224)
54
- Call write method of V3BWFile class from the object instance. (#26671)
55
- Stop calculating median on empty list .(#26666)
Matt Traudt's avatar
Matt Traudt committed
56

57
58
59
60
61
### Changed

- Remove is_controller_ok. Instead catch possible controller exceptions and 
log them

62
63
64
65
### Removed

- Two parsing/plotting scripts in scripts/tools/ that can now be found at
<https://github.com/pastly/v3bw-tools>
Matt Traudt's avatar
Matt Traudt committed
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

## [0.5.0] - 2018-06-26

**Important changes**:

- Result format changed, causing a version bump to 4. Updating sbws to 0.5.0
  will cause it to ignore results with version less than 4.

Summary of changes:

- Keep previously-generated v3bw files
- Allow a relay to limit its weight based on
  RelayBandwidthRate/MaxAdvertisedBandwidth
- 1 CPU usage optimization
- 1 memory usage optimization

82
83
84
85
### Added

- Use a relay's {,Relay}BandwidthRate/MaxAdvertisedBandwidth as an upper bound
  on the measurements we make for it. (GH#155)
Matt Traudt's avatar
Matt Traudt committed
86
87
88
- Ability to only consider results for a given relay valid if they came from
  when that relay is using its most recent known IP address. Thanks Juga.
(GH#154 GHPR#199)
Matt Traudt's avatar
Matt Traudt committed
89
90
- Maintenance script to help us find functions that are (probably) no longer
  being called.
91
- Integration test(s) for RelayPrioritizer (GHPR#206)
92
- Git/GitHub usage guidelines to CONTRIBUTING document (GH#208 GHPR#215)
Matt Traudt's avatar
Matt Traudt committed
93

94
95
96
97
98
### Fixed

- Make relay priority calculations take only ~5% of the time they used to (3s
  vs 60s) by using sets instead of lists when selecting non-Authority relays.
(GH#204)
99
100
101
102
103
104
- Make relay list refreshing take much less time by not allowing worker threads
  to dogpile on the CPU. Before they would all start requesting descriptors
from Tor at roughly the same time, causing us to overload our CPU core and make
the process take unnecessarily long. Now we let one thread do the work so it
can peg the CPU on its own and get the refresh done ASAP.
(GH#205)
105
106
- Catch a JSON decode exception on malformed results so sbws can continue
  gracefully (GH#210 GHPR#212)
107

Matt Traudt's avatar
Matt Traudt committed
108
### Changed
109
110
111
112

- Change the path where the Bandwidth List files are generated: now they are
  stored in `v3bw` directory, named `YYmmdd_HHMMSS.v3bw`, and previously
generated ones are kept. A `latest.v3bw` symlink is updated. (GH#179 GHPR#190)
113
- Code refactoring in the v3bw classes and generation area
114
115
- Replace v3bw-into-xy bash script with python script to handle a more complex
  v3bw file format (GH#182)
116

Matt Traudt's avatar
Matt Traudt committed
117
## [0.4.1] - 2018-06-14
Matt Traudt's avatar
Matt Traudt committed
118

119
120
121
122
123
124
125
126
127
128
129
130
131
### Changed

- If the relay to measure is an exit, put it in the exit position and choose a
  non-exit to help. Previously the relay to measure would always be the first
hop. (GH#181)
- Try harder to find a relay to help measure the target relay with two changes.
  Essentially: (1) Instead of only picking from relays that are 1.25 - 2.00
times faster than it by consensus weight, try (in order) to find a relay that
is at least 2.00, 1.75, 1.50, 1.25, or 1.00 times as fast. If that fails,
instead of giving up, (2) pick the fastest relay in the network instead of
giving up. This compliments the previous change about measuring target exits in
the exit position.

132
133
134
135
136
137
### Fixed

- Exception that causes sbws to fall back to one measurement thread. We first
  tried fixing something in this area with `88fae60bc` but neglected to
remember that `.join()` wants only string arguments and can't handle a `None`.
So fix that.
138
139
- Exception when failing to get a relay's `ed25519_master_key` from Tor and
  trying to do `.rstrip()` on a None.
140
- `earliest_bandwidth` being the newest bw not the oldest (thanks juga0)
juga's avatar
juga committed
141
- `node_id` was missing the character "$" at the beginning
142

Matt Traudt's avatar
Matt Traudt committed
143
144
[Unreleased]: https://github.com/pastly/simple-bw-scanner/compare/v0.6.0...master
[0.6.0]: https://github.com/pastly/simple-bw-scanner/compare/v0.5.0...v0.6.0
Matt Traudt's avatar
Matt Traudt committed
145
[0.5.0]: https://github.com/pastly/simple-bw-scanner/compare/v0.4.1...v0.5.0
Matt Traudt's avatar
Matt Traudt committed
146
[0.4.1]: https://github.com/pastly/simple-bw-scanner/compare/v0.4.0...v0.4.1