Change Log¶
The following is a log of all user-facing changes to stem, both released and unreleased. For a monthly report on work being done see my development log.
Versioning¶
Stem uses semantic versioning, which means that versions consist of three numbers (such as ‘1.2.4‘). These are used to convey the kind of backward compatibility a release has...
- The first value is the major version. This changes infrequently, and indicates that backward incompatible changes have been made (such as the removal of deprecated functions).
- The second value is the minor version. This is the most common kind of release, and denotes that the improvements are backward compatible.
- The third value is the patch version. When a stem release has a major issue another release is made which fixes just that problem. These do not contain substantial improvements or new features. This value is sometimes left off to indicate all releases with a given major/minor version.
Unreleased¶
The following are only available within stem’s git repository.
- Controller
- get_network_status() and get_network_statuses() now provide v3 rather than v2 directory information (ticket 7953, spec)
- AddrMapEvent support for the new CACHED argument (ticket 8596, spec)
- attach_stream() could encounter an undocumented 555 response (ticket 8701, spec)
- RelayDescriptor digest validation was broken when dealing with non-unicode content with python 3 (ticket 8755)
- The Controller use of cached content wasn’t thread safe (ticket 8607)
- Added get_user() method to the Controller
- Added get_pid() method to the Controller
- StreamEvent didn’t recognize IPv6 addresses (ticket 9181)
- get_conf() mistakenly cached hidden service related options (ticket 9792)
- Descriptors
- Added the stem.descriptor.remote module.
- Added support for TorDNSEL exit lists (feature by arlolra, ticket 8255).
- The DescriptorReader mishandled relative paths (ticket 8815)
- Utilities
- Connection resolution via the get_connections() function (ticket 7910)
- set_process_name() inserted spaces between characters (ticket 8631)
- get_pid_by_name() can now pull for all processes with a given name
- call() ignored the subprocess’ exit status
- Added stem.util.system.get_name_by_pid()
- Added stem.util.system.get_user()
- Added stem.util.system.get_start_time()
- Added stem.util.system.get_bsd_jail_path()
- Added stem.util.connection.is_private_address()
- Website
- Overhaul of stem’s download page. This included several improvements, most notably the addition of PyPI, Ubuntu, Fedora, Slackware, and FreeBSD.
- Replaced default sphinx header with a navbar menu.
- Added this change log.
- Added the FAQ page.
- Settled on a logo for stem.
- Expanded the client usage tutorial to cover SocksiPy and include an example for polling Twitter.
- Subtler buttons for the frontpage (before and after).
Version 1.0¶
This was the initial release of stem, made on March 26th, 2013.
- Version 1.0.1 (March 27th, 2013) - fixed an issue where installing with python 3.x (python3 setup.py install) resulted in a stacktrace