From 2fe7cf448de8a87f7d1ed96ec753d440723536a3 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 17 Dec 2016 10:35:13 +1300 Subject: [PATCH 1/6] Release administrivia: changelog stub, contributors, bump to v1.0 --- CHANGELOG | 18 +++++++ CONTRIBUTORS | 118 +++++++++++++++++++++++-------------------- mitmproxy/version.py | 2 +- 3 files changed, 82 insertions(+), 56 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 320d3391e..87d5a2c8d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,21 @@ +18 December 2017: mitmproxy 1.0 + + * Mitmproxy is now Python 3 only + + * The config file format is now a single YAML file. In most cases, + converting to the new format should be trivial - please see the docs for + more information. + + * console: significant UI improvements - including sorting of flows by + size, type and url, status bar improvements, much faster indentation for + HTTP views, and more. + + * http2: significant improvements, but is temporarily disabled by default + due to wide-spread protocol implementation errors on some large website + + * A myriad of other small improvements throughout the project. + + 16 October 2016: mitmproxy 0.18 * Python 3 Compatibility for mitmproxy and pathod (Shadab Zafar, GSoC 2016) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a615ec196..b1d609d1c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,6 +1,6 @@ - 2184 Aldo Cortesi - 1745 Maximilian Hils - 507 Thomas Kriechbaumer + 2407 Aldo Cortesi + 1873 Maximilian Hils + 556 Thomas Kriechbaumer 258 Shadab Zafar 97 Jason 83 Marcelo Glezer @@ -11,85 +11,91 @@ 14 Pedro Worcel 14 David Weinstein 13 Thomas Roth - 11 Stephen Altamirano 11 Jake Drahos + 11 Stephen Altamirano 11 arjun23496 11 Justus Wingert - 10 Sandor Nemes - 10 Zohar Lorberbaum 10 András Veres-Szentkirályi - 10 Chris Czub + 10 Zohar Lorberbaum 10 smill + 10 Chris Czub + 10 Sandor Nemes + 10 Doug Freed 9 ikoz - 9 Kyle Morton 9 Legend Tang 9 Rouli + 9 Kyle Morton 8 Jason A. Novak 8 Chandler Abraham - 7 Alexis Hildebrandt 7 Matthias Urlichs 7 Brad Peabody 7 dufferzafar + 7 Alexis Hildebrandt 6 Felix Yan - 5 Tomaz Muraus - 5 elitest - 5 iroiro123 - 5 Sam Cleveland - 5 Choongwoo Han 5 Will Coster - 4 root - 4 Clemens Brunner + 5 Sam Cleveland + 5 iroiro123 + 5 elitest + 5 Tomaz Muraus + 5 Choongwoo Han 4 Schamper - 4 Valtteri Virtanen - 4 Wade 524 4 Youhei Sakurai 4 Bryan Bishop + 4 root + 4 Valtteri Virtanen + 4 Clemens Brunner 4 Marc Liyanage - 4 Michael J. Bazzinotti + 4 Wade 524 + 4 chhsiao90 4 yonder - 3 Eli Shvartsman - 3 Chris Neasbitt - 3 Guillem Anguera - 3 MatthewShao + 4 Michael J. Bazzinotti 3 Ryan Welton - 3 smill@cuckoo.sh - 3 Manish Kumar - 3 Benjamin Lee 3 Ryan Laughlin - 3 Zack B 3 Kyle Manna + 3 Eli Shvartsman + 3 Vincent Haupert + 3 Manish Kumar + 3 Zack B + 3 MatthewShao 3 redfast00 3 requires.io + 3 Guillem Anguera + 3 smill@cuckoo.sh + 3 Chris Neasbitt + 3 Benjamin Lee + 2 Steven Van Acker + 2 Slobodan Mišković + 2 Jim Lloyd 2 isra17 2 israel - 2 Colin Bendell + 2 Sean Coates + 2 Sachin Kelkar 2 jpkrause - 2 Paul + 2 Bennett Blodinger 2 lilydjwg 2 Michael Frister - 2 依云 - 2 Jaime Soriano Pastor - 2 Nick Badger - 2 Rob Wills - 2 Heikki Hannikainen - 2 Vincent Haupert - 2 strohu - 2 Wade Catron - 2 Krzysztof Bielicki - 2 Sachin Kelkar 2 Israel Nir - 2 Anant - 2 alts - 2 Doug Freed - 2 Niko Kommenda - 2 Terry Long - 2 Mark E. Haase - 2 Steven Van Acker - 2 Jim Lloyd - 2 Bennett Blodinger - 2 Sean Coates 2 Cory Benfield - 1 Sergey Chipiga + 2 phackt + 2 Anant + 2 Jaime Soriano Pastor + 2 Paul + 2 Colin Bendell + 2 依云 + 2 Heikki Hannikainen + 2 Rob Wills + 2 Niko Kommenda + 2 Naveen Pai + 2 strohu + 2 alts + 2 Yoginski + 2 Mark E. Haase + 2 Wade Catron + 2 Terry Long + 2 Krzysztof Bielicki + 2 Nick Badger + 1 Nicolas Esteves + 1 Andrew Orr 1 Andrey Plotnikov 1 Andy Smith 1 Angelo Agatino Nicolosi @@ -97,6 +103,7 @@ 1 BSalita 1 Ben Lerner 1 Bradley Baetz + 1 Brady Law 1 Brett Randall 1 Chris Hamant 1 Christian Frichot @@ -105,6 +112,7 @@ 1 David Shaw 1 Doug Lethin 1 Drake Caraker + 1 Edgar Boda-Majer 1 Eric Entzel 1 Felix Wolfsteller 1 FreeArtMan @@ -128,22 +136,25 @@ 1 Mathieu Mitchell 1 Michael Bisbjerg 1 Mike C + 1 Mike Fotinakis 1 Mikhail Korobov 1 Morton Fox 1 Nick HS 1 Nick Raptis - 1 Nicolas Esteves + 1 Aditya 1 Oleksandr Sheremet 1 Parth Ganatra 1 Pritam Baral + 1 Quentin Pradet 1 Rich Somerfield 1 Rory McCann 1 Rune Halvorsen 1 Ryo Onodera + 1 Sahil Chelaramani 1 Sahn Lam 1 Sanchit Sokhey 1 Seppo Yli-Olli - 1 Aditya + 1 Sergey Chipiga 1 Stefan Wärting 1 Steve Phillips 1 Steven Noble @@ -158,10 +169,8 @@ 1 Ulrich Petri 1 Vyacheslav Bakhmutov 1 Wes Turner - 1 Yoginski 1 Yuangxuan Wang 1 capt8bit - 1 chhsiao90 1 cle1000 1 davidpshaw 1 deployable @@ -172,7 +181,6 @@ 1 meeee 1 michaeljau 1 peralta - 1 phackt 1 phil plante 1 sentient07 1 sethp-jive diff --git a/mitmproxy/version.py b/mitmproxy/version.py index 922c32184..ef01dc346 100644 --- a/mitmproxy/version.py +++ b/mitmproxy/version.py @@ -1,4 +1,4 @@ -IVERSION = (0, 19) +IVERSION = (1, 0) VERSION = ".".join(str(i) for i in IVERSION) PATHOD = "pathod " + VERSION MITMPROXY = "mitmproxy " + VERSION From aa90fd359dc69481907bacd0406294a1f842497c Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 17 Dec 2016 10:57:13 +1300 Subject: [PATCH 2/6] Administrivia: docs for new config file, minor adjustments For now, the config file docs basically say "it's YAML, read the source". We should do better for the next release. --- CHANGELOG | 5 ++- docs/config.rst | 85 ++++---------------------------------------- mitmproxy/version.py | 2 +- 3 files changed, 11 insertions(+), 81 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 87d5a2c8d..e96a2237b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -18 December 2017: mitmproxy 1.0 +18 December 2016: mitmproxy 1.0 * Mitmproxy is now Python 3 only @@ -13,6 +13,9 @@ * http2: significant improvements, but is temporarily disabled by default due to wide-spread protocol implementation errors on some large website + * websockets: the protocol implementation is now mature, and is enabled by + default. Complete UI support is coming in the next release. + * A myriad of other small improvements throughout the project. diff --git a/docs/config.rst b/docs/config.rst index ad55baed0..1b0921ecc 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -3,84 +3,11 @@ Configuration ============= -Mitmproxy is configured through a set of files in the users ~/.mitmproxy -directory. +Mitmproxy is configured with a YAML_ file, located at +``~/.mitmproxy/config.yaml``. We'll have complete documentation for all +supported options in the next release in the meantime, please consult the +source_ for a complete list of options and types. -mitmproxy.conf - Settings for the :program:`mitmproxy`. This file can contain any options supported by - mitmproxy. -mitmdump.conf - Settings for the :program:`mitmdump`. This file can contain any options supported by mitmdump. - -common.conf - Settings shared between all command-line tools. Settings in this file are over-ridden by those - in the tool-specific files. Only options shared by mitmproxy and mitmdump should be used in - this file. - -Syntax ------- - -Comments -^^^^^^^^ - -.. code-block:: none - - # this is a comment - ; this is also a comment (.ini style) - --- and this is a comment too (yaml style) - -Key/Value pairs -^^^^^^^^^^^^^^^ - -- Keys and values are case-sensitive -- Whitespace is ignored -- Lists are comma-delimited, and enclosed in square brackets - -.. code-block:: none - - name = value # (.ini style) - name: value # (yaml style) - --name value # (command-line option style) - - fruit = [apple, orange, lemon] - indexes = [1, 12, 35 , 40] - -Flags -^^^^^ - -These are boolean options that take no value but true/false. - -.. code-block:: none - - name = true # (.ini style) - name - --name # (command-line option style) - -Options -------- - -The options available in the config files are precisely those available as -command-line flags, with the key being the option's long name. To get a -complete list of these, use the ``--help`` option on each of the tools. Be -careful to only specify common options in the **common.conf** file - -unsupported options in this file will be detected as an error on startup. - -Examples --------- - -common.conf -^^^^^^^^^^^ - -Note that ``--port`` is an option supported by all tools. - -.. code-block:: none - - port = 8080 - -mitmproxy.conf -^^^^^^^^^^^^^^ - -.. code-block:: none - - palette = light +.. _YAML: http://www.yaml.org/start.html +.. _source: https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/options.py diff --git a/mitmproxy/version.py b/mitmproxy/version.py index ef01dc346..b6cf0e174 100644 --- a/mitmproxy/version.py +++ b/mitmproxy/version.py @@ -1,4 +1,4 @@ -IVERSION = (1, 0) +IVERSION = (1, 0, 0) VERSION = ".".join(str(i) for i in IVERSION) PATHOD = "pathod " + VERSION MITMPROXY = "mitmproxy " + VERSION From 85e0e5da4c8dfa5fb8de749e3db0e38336f4a0a9 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 17 Dec 2016 11:01:40 +1300 Subject: [PATCH 3/6] Compat 0.19 -> 1.0 0.19 was never released, but let's include a conversion for it anyway, since it was the master version. --- mitmproxy/io_compat.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mitmproxy/io_compat.py b/mitmproxy/io_compat.py index 20ee88248..9a87a5450 100644 --- a/mitmproxy/io_compat.py +++ b/mitmproxy/io_compat.py @@ -74,6 +74,11 @@ def convert_018_019(data): return data +def convert_019_100(data): + data["version"] = (1, 0, 0) + return data + + def _convert_dict_keys(o: Any) -> Any: if isinstance(o, dict): return {strutils.native(k): _convert_dict_keys(v) for k, v in o.items()} @@ -121,6 +126,7 @@ converters = { (0, 16): convert_016_017, (0, 17): convert_017_018, (0, 18): convert_018_019, + (0, 19): convert_019_100, } From 0c18f7ec9e912ae9e97fc8315ab9d0b7ed2d845c Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Wed, 21 Dec 2016 22:47:17 +0100 Subject: [PATCH 4/6] Update CHANGELOG --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index e96a2237b..ac0161165 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,7 +10,7 @@ size, type and url, status bar improvements, much faster indentation for HTTP views, and more. - * http2: significant improvements, but is temporarily disabled by default + * HTTP/2: significant improvements, but is temporarily disabled by default due to wide-spread protocol implementation errors on some large website * websockets: the protocol implementation is now mature, and is enabled by From 7a14a8cee535b44b9b478575b599e16e9b155111 Mon Sep 17 00:00:00 2001 From: Thomas Kriechbaumer Date: Wed, 21 Dec 2016 22:50:53 +0100 Subject: [PATCH 5/6] Update CHANGELOG update changelog --- CHANGELOG | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index ac0161165..264fadaad 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,20 +1,21 @@ 18 December 2016: mitmproxy 1.0 - * Mitmproxy is now Python 3 only + * All mitmproxy tools are now Python 3 only! We plan to support Python 3.5 and higher. - * The config file format is now a single YAML file. In most cases, + * Configuration: The config file format is now a single YAML file. In most cases, converting to the new format should be trivial - please see the docs for more information. - * console: significant UI improvements - including sorting of flows by + * Console: Significant UI improvements - including sorting of flows by size, type and url, status bar improvements, much faster indentation for HTTP views, and more. - * HTTP/2: significant improvements, but is temporarily disabled by default + * HTTP/2: Significant improvements, but is temporarily disabled by default due to wide-spread protocol implementation errors on some large website - * websockets: the protocol implementation is now mature, and is enabled by - default. Complete UI support is coming in the next release. + * WebSocket: The protocol implementation is now mature, and is enabled by + default. Complete UI support is coming in the next release. Hooks for + message interception and manipulation are available. * A myriad of other small improvements throughout the project. From 9f1cbe8746df6096e877b2cc57d386ff08f079d8 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Thu, 22 Dec 2016 02:55:07 +0100 Subject: [PATCH 6/6] add mitmweb and Windows compat to changelog --- CHANGELOG | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 264fadaad..2b585bd57 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,14 @@ * All mitmproxy tools are now Python 3 only! We plan to support Python 3.5 and higher. + * Web-Based User Interface: Mitmproxy now offically has a web-based user interface + called mitmweb. We consider it stable for all features currently exposed + in the UI, but it still misses a lot of mitmproxy’s options. + + * Windows Compatibility: With mitmweb, mitmproxy is now useable on Windows. + We are also introducing an installer (kindly sponsored by BitRock) that + simplifies setup. + * Configuration: The config file format is now a single YAML file. In most cases, converting to the new format should be trivial - please see the docs for more information.