• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## 1.6.0
2
3*   Resolve an internal source of potential flakiness on the bind/close port
4    checks when used in active environments by calling `.shutdown()` before
5    `.close()`.
6
7## 1.6.0b1
8
9*   Add `-h` and `--help` text to the command line tool.
10*   The command line interface now defaults to associating the returned port
11    with its parent process PID (usually the calling script) when no argument
12    was given as that makes more sense.
13*   When portpicker is used as a command line tool from a script, if a port is
14    chosen without a portserver it can now be kept bound to a socket by a
15    child process for a user specified timeout. When successful, this helps
16    minimize race conditions as subsequent portpicker CLI invocations within
17    the timeout window cannot choose the same port.
18*   Some pylint based refactorings to portpicker and portpicker\_test.
19*   Drop 3.6 from our CI test matrix and metadata. It probably still works
20    there, but expect our unittests to include 3.7-ism's in the future. We'll
21    *attempt* to avoid modern constructs in portpicker.py itself but zero
22    guarantees. Using an old Python? Use an old portpicker.
23
24## 1.5.2
25
26*   Do not re-pick a known used (not-yet-returned) port when running stand alone
27    without a portserver.
28
29## 1.5.1
30
31*   When not using a portserver *(you really should)*, try the `bind(0)`
32    approach before hunting for random unused ports. More reliable per
33    https://github.com/google/python_portpicker/issues/16.
34
35## 1.5.0
36
37*   Add portserver support to Windows using named pipes. To create or connect to
38    a server, prefix the name of the server with `@` (e.g.
39    `@unittest-portserver`).
40
41## 1.4.0
42
43*   Use `async def` instead of `@asyncio.coroutine` in order to support 3.10.
44*   The portserver now checks for and rejects pid values that are out of range.
45*   Declare a minimum Python version of 3.6 in the package config.
46*   Rework `portserver_test.py` to launch an actual portserver process instead
47    of mocks.
48
49## 1.3.9
50
51*   No portpicker or portserver code changes
52*   Fixed the portserver test on recent Python 3.x versions.
53*   Switched to setup.cfg based packaging.
54*   We no longer declare ourselves Python 2.7 or 3.3-3.5 compatible.
55
56## 1.3.1
57
58*   Fix a race condition in `pick_unused_port()` involving the free ports set.
59
60## 1.3.0
61
62*   Adds an optional `portserver_address` parameter to `pick_unused_port()` so
63    that callers can specify their own regardless of `os.environ`.
64*   `pick_unused_port()` now raises `NoFreePortFoundError` when no available
65    port could be found rather than spinning in a loop trying forever.
66*   Fall back to `socket.AF_INET` when `socket.AF_UNIX` support is not available
67    to communicate with a portserver.
68
69## 1.2.0
70
71*   Introduced `add_reserved_port()` and `return_port()` APIs to allow ports to
72    be recycled and allow users to bring ports of their own.
73
74## 1.1.1
75
76*   Changed default port range to 15000-24999 to avoid ephemeral ports.
77*   Portserver bugfix.
78
79## 1.1.0
80
81*   Renamed portpicker APIs to use PEP8 style function names in code and docs.
82*   Legacy CapWords API name compatibility is maintained (and explicitly
83    tested).
84
85## 1.0.1
86
87*   Code reindented to use 4 space indents and run through
88    [YAPF](https://github.com/google/yapf) for consistent style.
89*   Not packaged for release.
90
91## 1.0.0
92
93*   Original open source release.
94