This repository has been archived by the owner on Aug 18, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
4410 lines (4322 loc) · 208 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Neubot 0.4.16.9 [2013-10-24]
* Makefile: update to make sources only releases
* gc scripts/update_apt: not needed anymore in the sources repo
* gc scripts/collect.sh that is not used anymore
* Makefile: update comment
* runner_core.py: treat mlab-ns like rendezvous
* mod_dash: print the server address at INFO level
* Neubot/0.4.16.9 released
Neubot 0.4.16.8 [2013-10-20]
* mod_dash: back to 15 iterations, to be sure
* Neubot/0.4.16.8 released
Neubot 0.4.16.7 [2013-10-20]
* net/stream.py: fix for when the first connect() fails
* update_changelog: if the new version does not exist yet, use HEAD
* scripts/release: automatically update the changelog
* Neubot/0.4.16.7 released
Neubot 0.4.16.6 [2013-10-19]
* ChangeLog: sync
* mod_dash: oops, I forgot to bump the schema
* scripts/release: copyright message: NEXA -> Nexa
* Neubot/0.4.16.6 released
Neubot 0.4.16.5 [2013-10-19]
* client_smpl.py: less aggressive bisect
* Use port 80 for the dash test
* Makefile: adapt _install to also install modules
* UNIX/etc/neubot: add the api and users configuration files
* Makefile: make sure that we run install with umask 0022
* Makefile: sort .PHONY targets
* Makefile: better uninstall
* Move bin/neubot to UNIX/bin/neubot
* UNIX/bin/neubot: adapt NEUBOT_HOME to new directory layout
* Makefile: tweak the uninstall target
* Merge branch 'feature_update_Makefile'
* Makefile: change regress find(1) -perm to be more liberal
* Repair regress/neubot/bittorrent/config.py
* Repair the regress/neubot/http/rootdir.sh test
* Preliminary step to repair regress/Makefile tests
* Repair the regress/Makefile tests
* Merge branch 'repair_regress'
* runner_policy: document the correct run-this-test probabilites
* mod_dash/client_smpl.py: remember to include the system platform
* mod_dash/client_negotiate.py: log when the test is done
* Neubot/0.4.16.5 released
* Neubot/0.4.16.5 released
Neubot 0.4.16.4 [2013-10-19]
* mod_dash: combine the rate vector and rate-adaptation techniques
* mod_dash/client_negotiate.py: add more rates
* mod_dash: Tidy up some comments
* mod_dash/client_negotiate.py: grammar fix
* Merge remote-tracking branch 'origin/feature_dash_always_use_rates'
* mod_dash/client_smpl.py: print more info at LOG_INFO level
* mod_dash/client_smpl.py: move the check on the max iter number
* mod_dash/client_smpl.py: raise the max. number of iterations
* mod_dash: also save request ticks
* Merge branch 'feature_dash_last_tweaks'
* Neubot/0.4.16.4 released
* Neubot/0.4.16.4 released
Neubot 0.4.16.3 [2013-10-13]
* M-Lab: adapt to new deployment style
* server: Add -A option to choose the address to bind()
* M-Lab/ports.txt: we're now using IPv6
* server: add -D server.datadir=FOO switch to set datadir to FOO
* Move master-server related scripts from M-Lab to MasterSrv
* MasterSrv: make sure recently-moved scripts work again
* MasterSrv/servers.py: minor changes
* MasterSrv: update the list of servers
* server.py: avoid access to nonexistent STATE attribute
* M-Lab/ports.txt: remove 7999 (rsync) and add 80 (now available!)
* M-Lab/check.sh: skip port 7999
* M-Lab: add code to start/check on IPv4 only machines
* ChangeLog: add 0.4.15.8 and 0.4.16.{0-2} changes
* README.rst: NEXA -> Nexa and 2012 -> 2013
* runner_hosts.py: update
* Merge branch 'stable_mlab_20130321b'
* agent utils_posix: add and use code to remove pidfile
* server.py: Reinstate import line lost during merge with stable_mlab
* M-Lab/start.sh: force ownership of files and dirs below $DATADIR
* Merge branch 'stable_mlab_20131012'
* M-Lab/start.sh: slice -> sliver in a comment
* Neubot/0.4.16.3 released
Neubot 0.4.16.2 [2013-10-12]
* net/poller.py: pull Pollable from pollable.py
* neubot/__init__.py: update copyright years and wording
* http/message.py: improve the diff that disables prettyprinting
* footer.html: NEXA -> Nexa
* runner_policy: specify rotate() argument to increase correctness
* scripts: add helper scripts to start local server and client
* www: allow the user to see the last N minutes of data
* results.js: implement append, to-fixed, and to-string operations
* utils_path.py: Rewrite append()
* add utils_modules.py: code to manage modules as plugins
* Reorganize the backend and start using pickle rather then sqlite3
* Add the new dash test
* Teach Neubot to dynamically load the mod_dash and other plugins
* main/module.py: remove import of nonexistent module
* Allow mod_dash/main.py to override the default volatile backend
* www: Show test progress in the right sidebar
* Avoid surprises and use POST to negotiate
* mod_dash: negotiate rates and/or auto-adapt the rate
* Allow mod_dash to adjust the stream timeout
* Merge branch 'dashtest-v8'
* Neubot/0.4.16.2 released
Neubot 0.4.16.1 [2013-10-12]
* Undo HTTP and networking changes not ready for 0.4.16.0
* Update manual page
* AUTHORS: Antonio has not being active for some time
* updater/unix.py: don't flood syslog with updates-disabled messages
* Remove ArchLinux package
* scripts/faq: make it work on MacOS
* doc/neubot.1.rst: fix a couple of nits
* Replace restructured text english FAQ with markdown english FAQ
* faq.md: does...contains -> does...contain
* doc/faq.md: clarify our versioning policy
* doc/faq.md: clarify which is the stable version of Neubot
* doc/faq.md: the certificate is not invalid, it's just auto-signed
* doc/faq.md: FAQ 3.3 grammar nit
* doc/faq.md: zap unneeded 'and' in FAQ 3.4
* doc/faq.md: FAQ 4.1: better document Neubot behavior on Win32
* faq.md: FAQ 4.4: fix command and provide more info on %APPDATA%
* doc/faq.md: clarify text of FAQ 4.6
* faq.md: FAQ 6.2: direct to more comprehensive data format doc
* faq.md: fix some titles and split FAQ 7.2 into subsections
* faq.md: grammar in FAQ 8.1
* Merge branch 'faq_nits'
* faq.md: add one line that provides link back to neubot.org
* faq.md: add horizontal rule between first line and index
* faq.md: add instructions to create Win32 installer
* faq.md: regen index
* Revert "AUTHORS: Antonio has not being active for some time"
* Merge branch 'master' of github.com:neubot/neubot
* Neubot/0.4.16.1 released
Neubot 0.4.16.0 [2013-10-12]
* _handle_send_complete(): reorganize code and avoid redundancy
* http_clnt: document treatment of multiple headers with same name
* FAQ: fix links
* FAQ: remove unrecognized admonitions
* runner_hosts.py: sync
* www/header.html: more precise copyright statement
* http/message.py: disable prettyprint of body
* api_results.py js/results.js: rewrite for clarity and flexibility
* results.js: use lisp-like code to customize plots
* results.js results.html: plot appearance improvements
* www: don't mention version number in footer
* utils_posix: review the code, fix bugs, improve unit test
* utils_posix: add the possibility of using a logfile
* utils_posix: simplify interface to daemonize and propagate changes
* updater/unix.py: use utils_posix
* updater/unix.py: allow to choose nonpriv user for updates
* agent.py: honor /etc/neubot/users
* updater/unix.py: don't unconditionally append to sys.path
* utils_posix.py: make sure we create pidfile with standard umask
* js/results.js: be robust when raw's web100_snap is {}
* test/raw.json: disable average-cwnd and plr plots
* js/results.js: simplify pythonism to work like real python
* filesys_posix: honor /etc/neubot/users
* Hide agent.api.{address,port}
* Remove in-tree debian support
* neubot/log.py: invoke VACUUM less frequently
* Spring cleanup of manpage and main()s
* Bump version number to 0.4.16.0
* Merge branch 'stable_20130418'
* Neubot/0.4.16.0 released
Neubot 0.4.15.8 [2013-10-12]
* system: replace running_as_root with has_enough_privs
* README: open source -> free software
* http_clnt: fix typo: context.{get => handle}_piece
* brigade: implement getvalue() and simplify getline()
* http_clnt: implement unbounded body
* http_clnt.py: honor encoding and make python3 happy
* http_clnt.py: separate encoding and writing to stdout
* http_clnt: serialize END_OF_HEADERS and END_OF_BODY
* runner_mlabns: re-enable connection-close header
* raw_negotiate: remove redirection code
* Merge branch 'master' of github.com:neubot/neubot
* system_posix: drop_privileges(): remove unused param
* Reduce the number of places where we daemonize
* system: simplify go_background() by using utils_posix
* agent server: require root permissions
* system_posix: get rid of lookup_user_info()
* www: open-source -> free software
* agent.py: write startup/shutdown log entries
* Bump version number to 0.4.16.0
* networking: allow the caller to pass extra data to the listener
* http_clnt: use personalized logger
* http_clnt: remove XXX since we were not violating the RFC
* http_clnt: implement send-chunked-body
* http_clnt: better HEADERS/BODY events dispatch
* http_clnt: ClientContext: sort members
* http_clnt: update comments and more nits
* http_clnt: remove broken append_string()
* http_clnt: unify context's handle_piece and handle_line
* networking_code: s/brigade/buff/i to minimize surprise
* rendezvous/server.py: announce 0.4.15.6
* Merge branch 'stable_20121118'
* system_posix: USER -> UNPRIV_USER
* filesys_posix: fetch unpriv user name from system_posix
* runner_core: remove unused import
* percentile: return None, not [], when input is empty
* raw_analyze.py: make sure test fails for interval, not bytez
* neubot/server.py: fix listen() invocation
* neubot/raw_srvr.py: save timestamp on the server
* agent server: don't stacktrace just fail if not running as root
* Merge branch 'stable_20121214'
* M-Lab/ports.txt: we're now using IPv6 on the slivers
* background_api: http_server is no more
* runner_hosts: update
* background_api: honor /etc/neubot/api
* Merge commit 'c978ff0259440ebba17b2bc661e496c9b77c4e08'
* raw_negotiate: fix docstring
* http_clnt: fixes and improvements after code auditing
* regress: add neubot/http_clnt.py: unit test for http_clnt.py
* FAQ: batch of updates after careful reading
* Merge branch 'stable_20121231' into master
* Revert "networking: allow the caller to pass extra data [...]"
* http_clnt: more pythonic event dispatch
* http_clnt: repair regression tests
* _handle_send_complete(): honor queue, don't send directly
* http_clnt: suppress unnecessary check
* Merge branch 'stable_20121231'
* Neubot/0.4.15.8 released
Neubot 0.4.15.7 [2012-12-14]
* percentile: return None, not [], when input is empty
* raw_analyze.py: make sure test fails for interval, not bytez
* rendezvous/server.py: announce 0.4.15.6
* neubot/raw_srvr.py: save timestamp on the server
* system: replace running_as_root with has_enough_privs
* README: open source -> free software
* http_clnt: fix typo: context.{get => handle}_piece
* raw_negotiate: remove redirection code
* system_posix: drop_privileges(): remove unused param
* Reduce the number of places where we daemonize
* system: simplify go_background() by using utils_posix
* agent server: require root permissions
* system_posix: get rid of lookup_user_info()
* www: open-source -> free software
* agent.py: write startup/shutdown log entries
* system_posix: USER -> UNPRIV_USER
* filesys_posix: fetch unpriv user name from system_posix
* runner_core: remove unused import
* http_clnt: add missing -6 option spec in getopt()
* Deleted http_server.py
* Edited grammatical errors in FAQ
* FAQ.rst: Use 'by Nexa Center', not at, for describing Neubot
* raw_srvr utils_net: format IPv6 addresses using web100 convention
* web100: workaround apparently nonstandard IPv6 address repr
* percentile.py raw_analyze.py: chmod -x
* web100: this is confirmed to be a bug in web100 kernel
* FAQ: document git repository
* FAQ: document localhost web API
* ChangeLog: add 0.4.15.5...0.4.15.6 commits
* bittorrent/__init__.py: document funcs
* database/__init__.py: add docstrings
* update_changelog: honor $NEW
* Bump version number to 0.14.5.7
* Neubot/0.4.15.7 released
Neubot 0.4.15.6 [2012-11-18]
* rendezvous/server.py: announce 0.4.15.5
* Revert custom user: it's optional complexity
* runner_hosts.py: sort hosts
* runner_hosts.py: update
* runner_hosts.py: remove servers reserved for testing
* raw: document oddity in protocol design
* www/results.html: uniform name for buttons
* www: update description of the RAW test
* lang/en.js: regen
* Bump version number to 0.4.15.6
* raw_clnt raw_negotiate: save more application-level info
* regress: repair regression tests
Neubot 0.4.15.5 [2012-10-10]
* main_win32: reference the raw command for py2exe to include it
* runner_hosts: don't remember previous query results
* runner_tests: do not cache query results as well
* Bump version to 0.4.15.5
* Neubot/0.4.15.5 released
Neubot 0.4.15.4 [2012-10-10]
* Make scripts/sign_all a bit more friendly
* Allow to invoke runner_rendezvous subcommand and set alternative port
* .gitignore: stop ignoring .pyc files
* net/poller.py: better error messages
* utils_net: don't pull CONFIG
* updater: allow to configure win32 update check interval
* Get rid of neubot/rendezvous/client.py
* add neubot/defer: minimal deferreds implementation
* runner_core: use deferreds to make code more robust
* updater: batch of simplification and fixes
* updater: use last-modified to retrieve development snapshots
* Consolidate version number
* Master -> MasterSrv to avoid name clashes with the master branch
* script/release: hack support for -n option
* Bump version number to 0.4.15
* utils_posix: add goodies for later
* system_posix: reimplement drop_root_privileges using utils_posix
* utils_net.py: now python3 compliant
* Import six 1.2.0
* neubot/server.py: get rid of common main
* Next evolution of networking code
* Next evolution of http client
* neubot/http: note the destiny of files inside this directory
* neubot/http: note the destiny of files inside this directory
* http_utils: allow to pretty-print json bodies
* Merge remote-tracking branch 'origin/master'
* M-Lab: don't fail if we cannot kill the old process
* Minimize diff between M-Lab and MasterSrv deploy.sh
* state: fix pylint warnings
* notify: fix pylint warnings
* Add and document neubot's pure-python web100 implementation
* brigade six: python3 compatibility fixes
* http_clnt: don't call basicConfig()
* Make http_clnt python3 compatible
* Networking code: mark python3-compatible files
* neubot/stream.py: better logname for stream
* utils_net.py: make sure ::1 is not stripped leading ::
* utils_net: fix handling of IPv4 compatible IPv6 addresses
* neubot/stream.py: allow to create debug stream
* connector: deal with queued epnts in a more natural way
* Networking code: better connect() failure handling
* Add the new RAW transmission test
* utils_sysdirs.py: fix WWWDIR for win32 non-py2exe case
* main_win32: implement status -v
* Reimplement start -k without race conditions
* win32: write startup/shutdown log messages
* utils_ctl: read /api/exit nonexistent response
* system.py: win32: make sure we init database dir
* Make logger more robust and simpler
* MacOS port moved to github.com/neubot/neubot_macos
* Remove win32 folder
* Makefile: by default use GNU conventions
* Rename utils_sysdirs.py -> utils_hier.py
* utils_hier: honor Makefile variables
* system_posix: Run as nobody when not installed
* api/server.py: break out of poller loop the expedite way
* ChangeLog: add 0.4.14 entry
* scripts/sign_all: zap space at end of line
* Move MacOS documentation into MacOS repository
* raw_srvr: save ticks in web100_snap
* raw_clnt raw_srvr: anticipate stream.opaque check in _periodic()
* raw_clnt raw_srvr: save one extra snapshot at end of test
* raw test: always transmit web100 snaps, ignore them at client
* poller: modernise task execution
* raw_clnt raw_srvr: make _periodic_internal() static
* raw_negotiate: remove duplicate line
* raw_negotiate: make _handle_test_failure() static
* server: don't break legacy option names and provide knob for raw server
* Client for mlab-ns: add and attach to runner
* Make http_clnt, runner_mlabns python3-ready
* server.py: define default server.raw value
* backend_neubot: make sure the database is opened before using it
* Makefile: allow to specify DESTDIR & co. using environment
* runner_mlabns.py: remove unused definitions
* raw_negotiate: make LOCATION string python3 compatible
* rendezvous/server.py: re-enable updates advertisement
* runner_hosts runner_mlabns: node -> host, for clarity
* When discovery fails, fallback to static hosts table
* Automatically run RAW test
* runner_mlabns: inform the user we're running
* regress: repair neubot/defer test
* Repair regress/neubot/http/rootdir.txt
* Repair poller.py's regression test
* Repair regress/neubot/runner_api.py test
* Half decommission^H^H repair regress/neubot/runner_tests.py test
* Repair Makefile regression tests
* runner_core: now we always have a negotiate URI
* privacy.py: maintenance
* utils_hier: Linux: append /lib on LOCALSTATEDIR only if not set
* regress: add typical regress tests output
* doc/RELEASE: better documentation of auto-update testing
* doc/RELEASE: move up check of installer and M-Lab deployment
* Update expected M-Lab ports
* M-Lab/install.sh: ensure we run as _neubot
* gc scripts/publish: now I track releases.n.o via git
* Do not spam syslog with watchdog timeout messages
* neubot/poller.py: remove unused define
* Static host table: provide user more and better info
* runner_policy: for now, print next test sequence
* Teach stream to treat RST in a more stealth way
* doc/RELEASE: remove obsolete bits, clarify here and there
* Backout update-if-modified change
* zap regress/typical_output.txt: too version dependent to be useful
* Switch from 0.4.14-rc123 model to 0.4.14.123
* Prepare for third 0.4.15 snapshot
* runner_policy: print test sequence before rotating it
* rendezvous/server.py: advertise 0.4.14 (the last stable version)
* doc/RELEASE: note that we need to deploy master twice
* MasterSrv/install.sh: make sure we run as _neubot
* M-Lab/ip_addr.dat: update
* M-Lab: airports_cache.dat servers.dat: update
* M-Lab/redir_table.sh: update
* doc/RELEASE: bump version
* M-Lab/redir_table.sh: leave mlab1.trn01 for IPv6 testing
* More doc/RELEASE love
* Bump version to 0.4.15.4
* Neubot/0.4.15.4 released
Neubot 0.4.14 [2012-09-06]
* M-Lab: update list of servers
* M-Lab/ip_addr.dat: update
* M-Lab/redir_table.py: use port 8080, not 9773
* M-Lab/redir_table.sh: regen
* Keep one single copy of the public key around
* Let make release generate and sign mlab autoupdate
* scripts/publish: remember to publish mlab autoupdate
* M-Lab/deploy.sh: remove redundant if
* database/__init__.py: readonly check is meaningful on posix only
* Neubot/0.4.14 released
Neubot 0.4.13 [2012-08-27]
* utils_ctl.py: implement verbose
* Implement MacOS browser
* main_macos.py: implement main for MacOS
* neubot/updater/unix.py: fix typo
* neubot/log.py: adjust copyright assignment
* neubot/log.py: new class StreamLogger
* neubot/runner_api.py: use STREAM_LOG.start_streaming
* regress/neubot/runner_api.py: use STREAM_LOG.start_streaming
* neubot/runner_core.py: use STREAM_LOG.stop_streaming
* neubot/log.py: log_tuple() renamed to log()
* Change LOG.info() to logging.info()
* Change LOG.debug() to logging.debug()
* Change LOG.error() to logging.error()
* Change LOG.warning() to logging.warning()
* regress/neubot/log.py: purge deprecated calls
* neubot/log.py: purge unused methods in Logger
* Purge LOG.verbose()
* Purge LOG.noisy
* neubot/log.py: purge noisy, verbose, quiet
* Forward port to StreamLogger of commit 3ac425cac4
* neubot/log.py: call log() with exc_info argument in log_access()
* neubot/updater/unix.py: autoupdater can handle channel change
* FAQ-it.rst edited in 2.2 entry to reflect english FAQ
* FAQ-it.rst added FreeBSD installation entry
* Merge branches 'next-logger-cleanup' and 'pu' into next
* runner_core.py: dispose of unused import
* add Win32/openssl.exe: OpenSSL 1.0.1c compiled with MinGW
* Win32/setup.py: distribute also openssl.exe
* add Win32/LICENSE.OpenSSL.txt: add a copy of OpenSSL license
* Move utils/__init__.py -> utils.py
* neubot/log.py: create 'access' logger
* neubot/log.py: test 'access' logger
* neubot/http/server.py: use 'access' logger
* neubot/log.py: Logger.oops() is now a module function
* neubot/log.py: purge Logger.exception()
* updater_runner updater_utils: channel -> system
* Win32 updater: allow to specify channel
* neubot/config.py: add 'win32_updater_channel' to CONFIG
* neubot/background_win32.py: use CONFIG['win32_updater_channel']
* neubot/updater_runner.py: use CONFIG['win32_updater_channel']
* neubot/updater_win32.py: use CONFIG['win32_updater_channel']
* Merge branches 'logger-next' and 'win32_updater_select_channel' into pu-20120522
* Move system dependent dirs definitions in utils_sysdirs.py
* utils_sysdirs.py: rewrite in a more robust way
* utils_sysdirs.py: add SYSCONFDIR LOCALSTATEDIR
* WWW -> WWWDIR and update all references
* system/unix.py: use LOCALSTATEDIR from utils_sysdirs
* system/win32.py: use LOCALSTATEDIR from utils_sysdirs
* add database_xxx.py: database quirks
* database/__init__.py: fixup database path under Linux
* /api/results -> /api/data
* Move NotImplementedTest from api_data.py to utils_api.py
* add /api/results: helper to construct results.html page
* api/server.py: make NotImplementedTest a soft error
* Merge branch 'next' into master_
* Merge branch 'apidata' into next_
* Merge branch 'varlibneubot' into next_
* Merge branch 'logger-next' into next_
* Merge branch 'pu-20120522' into next_
* Merge branch 'win32-signed-update' into next_
* Merge branch 'macos_main' into next_
* net/stream.py: LOG -> logging
* api_results.py: registered -> available
* api_results.py: each dataset vector must be a unique dictionary
* api_results.py: pass title to web gui
* api_results.py: make sure we return table_fields in order
* api_results.py: pass the web gui table_types too
* neubot/log.py: fix 'access' logger not being able to log in background
* Backport master changes to next
* updater_runner.py: reload win32_updater_channel each time
* updater_runner.py: deal with recent bigmerge fallbacks
* updater_runner.py: remove unused import
* add updater_verify.py: verify autoupdater tarball via openssl
* updater_verify.py: portably join paths
* updater_runner.py: replace LOG.verbose() with usual logging dance
* updater_runner.py: remove unused import
* MD5 changes in PKGBUILD
* log.py: remove extra blank line
* log.py: ROOT -> ROOT_LOGGER for consistency
* log.py: stop passing useless DEBUG flag to StreamLogger
* log.py config.py: preparatory work to repair verbose feature
* config.py: implement __setitem__()
* Repair -v: part 1
* MD5 changes in PKGBUILD
* Fixed Archlinux rc.d file
* Repair -v: part 2
* Repair -v: don't always invoke runner client in verbose mode
* log: stream -> streaming for clarity
* log.py: document extensively the streaming feature
* streaming log: filter ACCESS logs in runner client
* log.py: remove ultra-paranoid code
* log.py: don't clear args after lazy string interpolation
* log.py: streaming feature: explain why we UTF8-encode log lines
* log.py: trim old docstrings
* utils.py: add docstring
* utils.py: document safe_seek() and file_length()
* utils.py: deal with simple unit_formatter pylint warnings
* utils: speed_formatter(): use longer variable names
* utils.py: avoid speed_formatter() and time_formatter() warnings
* utils.py: no more warnings in smart_cast() and friends
* utils.py: document import_class() and get_uuid()
* utils.py: no more pylint warnings in utils.py
* utils.py: dispose of unused file_length()
* utils: get rid of import_class() and propagate changes
* http/server.py: avoid logging-related pylint warning
* Win32: deploy public key in versiondir
* updater_runner: also download signature
* updater_win32: implement signature verification
* Merge bugfixes for the logger
* Merge branch 'win32-updater' into next
* Merge branch 'master' into next
* agent.py: defer string interpolation with logging functions
* api_data.py: add history
* api_data.py: write python3 compatible code
* api_data.py: don't print user-supplied string into exception string
* api_results.py: fix axis labels
* api_results.py: write python3-compatible code
* api_results.py: don't print user supplied string in exception string
* api_results.py: deploy warning against sort keys
* Cope with verbosity now controlled using CONFIG
* browser_{macos,nt}.py: deploy some paranoia
* database_xxx.py: better comment
* database_xxx.py: more robustness
* database_xxx.py: explain why we don't bother with _neubot uid,gid
* http/message.py: remove unused import
* http/server.py: defer string interpolation with logging funcs
* net/stream.py: delay string interpolation with logging funcs
* net/stream.py: remove unused import
* net/stream.py: avoid pylint warning re unused variable
* updater_verify.py: implement sign
* updater_verify: verify_rsa -> dgst_verify
* updater_verify: check dgst_verify() arguments
* Merge some updater_verify.py enhancements
* regress/neubot/log.py: restore test of background logging
* log.py: don't assume stream.poller is valid
* log.py: it's not "lazy" it's really lazy
* log.py: clarify comment
* log_api.py: make sure we don't loose caveat re logs and comet
* log.py: improve two docstrings
* log.py: note there is still a small access logger race
* Merge fixes for logger
* main/__init__.py: add hook for main_macos
* main_macos.py: correct version number
* utils_sysdirs.py: bump copyright, add history
* utils_sysdirs.py: clarify comments
* Merge remote-tracking branch 'bassosimone/utils-love' into next
* updater/unix.py: close unneeded file descriptors in the child
* updater/unix.py: remove two unused imports
* updater/unix.py: provide wrapper for os._exit()
* updater/unix.py: remove unused chroot code
* updater/unix.py: stop spreading lies in comment
* updater/unix.py: OK to close all descs but stdio must work
* updater/unix.py: close all filedescs in neubot child too
* updater/unix.py: let SIGUSR1 force update check
* utils_ctl.py: human readable error when we cannot connect
* log.py: add shortcut to make logger verbose
* main_macos.py: leverage log.set_verbose()
* log.py: add function that tells whether logger is verbose
* main_macos.py: simplify handling of -v
* main_macos.py: implement start -d
* Replace utils_module.py with main_common.py
* Merge branch 'updater-unix-love_v2' into next
* Merge branch 'more-updater-unix-love' into next
* Merge branch 'better-cmd-solution' into next
* Abstraction layer for results
* www: finish work with results.html
* www: cleanup
* results.js: update Alessio's copyright
* results.js: add a bit of history
* results.js: wrap long line
* results.js: correct initial comment
* results.js: style
* results.js: more style
* results.js: wrap long line
* results.js: make sure no more too-long lines
* results.html: repair plots title
* results.html: translate test description
* speedtest results: clarify that it's correlation, not causation
* results.html: move test descriptions in separate html files
* Modify make_lang_en.py to load test descriptions from www/descr
* www/update.html: make the file xml compliant
* Garbage collect speedtest.{html,js} bittorrent.{html,js}
* Update english internationalization
* Merge branch 'www-results_v2' into next
* results.html: only translate the portion that changed
* updater/unix.py: suppress annoying log message
* Neubot/0.4.13-rc1 released
* Bare documentation for agent.py
* api/server.py: remove unused imports
* api/server.py: avoid using StringIO when not needed
* api/server.py: get rid of StringIO
* api/server.py: improve compatibility with python3
* api/server.py: deploy docstrings
* api/server.py: make some methods static
* api/server.py: t -> otime to respect pylint conventions
* Merge branch 'api-server-love'
* main_common.py: remember to add browser subcommand
* http/message.py: garbage collect extra space
* main_macos.py: just in case updater main returns
* utils_sysdirs.py: more precise docstring
* utils_sysdirs.py: grammar
* results.js: avoid confusion with index names
* Neubot/0.4.13-rc2 released
* Reduce noise in after-release diff
* Stop adding version number in FAQs
* Upgrade to simplejson 2.6.0
* doc: Move all OpenSSL doc into doc/OpenSSL
* Stop passing (unused) logging function to system functions
* Move system code up one level
* Rename (unused) system/linux.py resmon_linux.py
* system.py: add docstrings
* system.py: use longer variable names
* system_win32.py: rewrite quirky piece of code
* system_win32.py: improve code quality
* system_posix.py: remove unused import
* Merge branch 'system-love'
* system.py: ImportError -> RuntimeError
* style.css: restore default visibility hidden for i18n class
* Neubot/0.4.13-rc3 released
* scripts/publish: remember to publish win32 signature
* scripts/publish: divide copies and dangerous operations
* Debian: control/postrm: dispose of /var/lib/neubot on prune
* MacOS/makepkg.py: tired of typing the privkey path every time
* More verbose win32 update process
* updater_win32.py: remove unused imports
* runner_dload.py: use better logging priorities
* updater_verify.py: better log messages
* Merge branch 'win32-updater-tuning'
* Neubot/0.4.13-rc4 released
* Enable win32 autoupdater by default
* header.html: while there bump copyright for me and Alessio
* Do not trust server-provided update URI
* rendezvous/server.py: always provide neubot.org URI
* Merge branch 'more-updater-changes'
* footer.html: use the right i18n class
* lang/en.js: regen
* Merge branch 'more-updater-changes'
* main_common.py: don't advertise the server command
* net/poller.py: show scheduled tasks
* main_win32.py: make sure viewer and notifier exist
* log.py: don't prefix ACCESS such that CLF is preserved
* Merge remote-tracking branch 'origin/master'
* Neubot/0.4.13-rc5 released
* regress: repair a couple of regression tests
* Make sure we use LOCALSTATEDIR not /var/neubot
* regress/Debian: /var/neubot -> /var/lib/neubot
* M-Lab/redir_table.py: /var/neubot -> /var/lib/neubot
* ArchLinux/neubot.install: /var/neubot -> /var/lib/neubot
* Master: install.sh start.sh: /var/neubot -> /var/lib/neubot
* FAQ FAQ-it: explain /var/lib/neubot vs. /var/neubot
* doc man: explain /var/neubot vs. /var/lib/neubot
* M-Lab/redir_table.py: do not repeat database path for each line
* M-Lab/redir_table.sh: regen w/o repeating /var/neubot... for each line
* Makefile: fetch LOCALSTATEDIR from utils_sysdirs.py
* manpage: don't mention user-wide database
* Merge branch 'LOCALSTATEDIR'
* Neubot/0.4.13-rc6 released
* updater_runner.py: angular brackets confuse the browser
* utils_path.py: append() result must_be_ascii()
* Deal gracefully with database not being writable
* Neubot/0.4.13-rc7 released
* Makefile: 8 spaces -> tab
* api_data.py: kill extra empty line
* browser_macos.py: adapt copied-n-pasted comment to context
* log.py: explain why we empty handles list
* log.py: be more precise in comment
* log_api.py: honor understandable english in comment
* main/common.py: clarify
* system.py: deploy some blank lines
* system_posix.py: warn that file is being refactored
* updater/unix.py: avoid update check just after startup
* updater_runner.py: note it's pointless to pass __init__ the channel
* updater_runner.py: note we don't need to fetch the checksum
* updater_runner.py: add pointer to MacOSX updater code
* updater_verify.py: correctly sort imports
* updater_verify.py: clarify comment
* updater_verify: add module name to string passed to RuntimeError
* updater_verify.py: note we can be even more paranoid
* updater_verify: explain with __dgst_sign() is private
* updater_win32.py: tarball extraction should not live here
* updater_win32.py: explain why we close_fds
* main_win32.py: document a potential race when -k
* utils.py: use a tuple instead of a list
* utils.py: sort units in ascending order
* utils.py: again, prefer tuples to lists
* updater_verify.py: clarify comment
* time_formatter(): print unit with times lower than 1 us
* utils.py: __TICKS: raise RuntimeError, not ImportError
* utils.py: make docstring even more clear
* utils.py: get_uuid(): better docstring
* utils_api.py: grammar
* utils_ctl.py: add explanatory comment to explanatory log message
* utils_ctl.py: flag a nonclean bit of code with XXX
* utils_path.py: grammar in comment
* utils_path.py: make the tree even more clear
* utils_path.py: rewrite and clarify append() comment
* utils_sysdirs.py: deploy blank lines in comment
* utils_sysdirs.py: better RuntimeError() message
* utils_sysdirs.py: note that the name is not perfect
* utils_path.py: grammar
* Point uses to FAQ to better undestand what test measures
* lang/en.js: regen
* api_results.py: point out I don't like we load descrs at startup
* regress: negotiate/server.py: remove unused import
* results.html: wrap long lines
* results.js: code review, pass 1
* Merge branch 'code-review'
* Neubot/0.4.13-rc8 released
* bittorrent/peer.py: correct documentation path
* system_posix: correct comment at the beginning of the file
* M-Lab: deploy.sh ports.txt: sort port numbers
* doc: update FAQ to reflect new data.neubot.org site
* The data folder is no longer needed
* Neubot/0.4.13 released
Neubot 0.4.12 [2012-05-31]
* Makefile: use ./scripts/faq to autogen faq files
* Win32/setup.py: zap added-by-mistake empty line
* background_win32: bring comment uptodate
* Merge nits spotted while reviewing release patch
* scripts/collect.sh: prepare: skip dirs w/o any data
* ChangeLog: forgot to update changelog for 0.4.11
* bittorrent/stream.py: forward send_complete to peer.py
* bittorrent/peer.py: allow to control duration at the uploader
* bittorrent/peer.py: add simple main()
* bittorrent/peer.py: add code to behave strictly as a bittorrent peer
* bittorrent/peer.py: repair version 3 of bittorrent test
* bittorrent/peer.py: change the scope of the comment
* bittorrent/client.py: negotiate version-2 test
* bittorrent server: Cope with version-1 and version-2 tests
* bittorrent/peer.py: log test version
* add bytegen_speedtest.py: random bytes generator for speedtest
* speedtest/client.py: control test duration at the sender
* speedtest/server.py: control test duration at the sender
* doc/FAQ.rst: bring sect. 4.3 up to date
* doc/FAQ.rst: bring sect. 4.3 up to date
* doc: regen FAQ html files
* doc: FAQ.rst FAQ-it.rst: fix spacing
* doc: regen FAQs
* log: Added a wrapper for stdlib logging
* Globally replace LOG with logging where feasible.
* Globally remove % operator when logging.
* Revert "Globally remove % operator when logging."
* Globally remove % operator when logging.
* log: fixed two pylint warnings.
* log.py: avoid LogWrapper.emit() pylint warning
* log.py: strip newlines from args.
* regress/neubot/log.py: purge _log_info references
* log.py: deleted progress() method
* log.py: ditch progress()-related comment as well
* log.py: purge unused args in _maintain_database
* Move utils/version.py to utils_version.py and update references
* Update references to utils_version.py in comments, too
* Merge branches 'pu-marco', 'pu-evfire', 'sender-controlled-bittorrent' and 'sender-controlled-speedtest'
* regress: revert b52e7be50a hunk we committed too early
* regress/neubot/log.py: purged in-progress test
* neubot/bittorrent/peer.py: use logging
* neubot/bittorrent/client.py: use logging
* neubot/speedtest/client.py: use logging
* neubot/log.py: purged in-progress feature
* neubot/bittorrent/peer.py: add missing import
* update.html: mention automatic updates
* www/update.html: tweak previous
* regress: neubot/log.py: prune unneeded tests
* jqplot: update to 1.0.0b2_r1012
* utils_net.py: IPv6 enabled listen() and connect()
* net/stream.py: use utils_net.py to connect(), listen()
* http/server.py: update bind_failed() signature
* Globally stop using DNS cache
* Move net/dns.py into the Attic
* net/stream.py: remove unused net.stream.ipv6 key
* net/stream.py: remove unused net.stream.key key
* net/stream.py: garbage collect net.stream.{rcv,snd}buf keys
* utils_net.py: IPv6 enabled listen() and connect()
* net/stream.py: use utils_net.py to connect(), listen()
* http/server.py: update bind_failed() signature
* Globally stop using DNS cache
* Move net/dns.py into the Attic
* net/stream.py: remove unused net.stream.ipv6 key
* net/stream.py: remove unused net.stream.key key
* net/stream.py: garbage collect net.stream.{rcv,snd}buf keys
* Remove LibVersion and use functions instead
* Update regression test for utils_version.py
* Merge branches 'IPv6_v2', 'pu-alessio', 'pu-marco_v2' and 'pu-roberto'
* neubot/api_results.py: new file
* neubot/www/js/bittorrent.js: refactor query
* neubot/www/js/speedtest.js: refactor query
* neubot/api/server.py: garbage collect
* neubot/api_results.py: adjust copyright assignment
* neubot/api_results.py: provide missing docstrings
* neubot/api_results.py: add exception message
* neubot/api_results.py: purge StringIO
* neubot/api_results.py: silence a pylint's complaint
* js: speedtest.js bittorrent.js: make sure hours is defined
* js: workaround jqplot dateAxisRenderer bug
* www: print 'no result' when there is nothing to plot
* database/migrate2.py: info -> debug
* Make test version configurable and default to 1
* log.py: logging.DEBUG was not 'DEBUG' in python 2.6
* ArchLinux support
* viewer: move files to top directory
* viewer.py: repair import
* viewer_webkit_gtk.py: use config file, not database
* viewer_webkit_gtk.py: add -O setting option
* doc man: update viewer documentation
* viewer_webkit_gtk.py: use utils_ctl.is_running()
* utils_ctl: deploy some logging to is_running()
* log.py: implement logging exc_info keyword argument
* http/server.py: do not send "close" token twice
* Move utils/blocks.py to utils_random.py and update references
* Change installation path and update dependencies on ArchLinux package
* Merge remote-tracking branch 'github/pu-felipe' into pu-felipe
* Merge branches 'pu-evfiresh', 'pu-simone', 'viewer_no_db_v4', 'pu-davide', 'IPv6', 'pu-alessio', 'pu-marco' and 'pu-felipe'
* scripts/release: fallback after utils/version.py -> utils_version.py
* Neubot/0.4.12-rc1 released
* utils_net.py: allow to listen() a list of addresses
* net/stream.py: first-success connect() on a list of addresses
* Use spaces, not commas, for multiple connect(), listen()
* Listen to both IPv4 and IPv6 localhost address
* http/message.py: properly quote IPv6 addresses
* Allow to prefer IPv6 over IPv4 in getaddrinfo()
* utils_net.py: avoid string interpolation w/ logging funcs
* Merge some IPv6 patches I forgot to merge yesterday
* utils_net.py: debug-print getaddrinfo() return value
* net/stream.py: timeout connect() after 10 seconds
* net/stream.py: remove from write-list really-existing socks only
* net/stream.py: move bernstein isconnected() to utils_net.py
* getaddrinfo(): let DNS server decide, prefer neither IPv4 not IPv6
* utils_net.py: listen(): cope with epnt[0] being None
* By default bind() both IPv4 and IPv6 any-address
* FAQ.rst: update 2.2
* doc/FAQ.rst: provide instruction re installing on FreeBSD
* Merge branches 'IPv6' and 'FAQ'
* Neubot/0.4.12-rc2 released
* utils_net.py: isconnected(): fix exception type check
* config.py: switch to version 2 of the test
* Neubot/0.4.12-rc3 released
* Pass to connection_made() connected or listening endpoint
* StreamHandler: connection_made(): stop providing default rtt
* http/client.py: compute host header when we know real endpoint
* Pass runner_rendezvous address to connect to, not URI
* config.py: add fallback master server
* Merge code that allow to specify a list of master servers
* updater_runner.py: wait 1800 seconds between each check
* MacOS: uninstall.sh: remember to zap notifier plist
* Prefer IPv4 unless the user forces IPv6
* IPv6: deal with IPv4-mapped IPv4-compatible IPv6 addresses
* database: add test_version column for speedtest, bittorrent
* config.py: reset both test versions to 1
* utils_net.py: make sure we really prefer IPv4
* server mode: make sure we try with IPv6 first
* MacOS: move autoupdates to .../updates/macos
* http: Make sure we quote/unquote IPv6 addresses in URIs
* Neubot/0.4.12-rc4 released
* updater_runner updater_utils: channel -> system
* Win32 updater: allow to specify channel
* neubot/config.py: add 'win32_updater_channel' to CONFIG
* neubot/background_win32.py: use CONFIG['win32_updater_channel']
* neubot/updater_runner.py: use CONFIG['win32_updater_channel']
* neubot/updater_win32.py: use CONFIG['win32_updater_channel']
* Merge code to specify alternative Win32 updater channels
* updater_runner.py: use -C channel to override channel
* add Master: scripts to manage master server
* speedtest/client.py: hack support for backup master server
* bittorrent/config.py: support for backup master server
* runner_clnt.py: workaround a list of addresses for local neubot
* regress: repair neubot/bittorrent/config.py test
* Makefile: viewer/unix.py -> viewer_webkit_gtk.py
* viewer_webkit_gtk.py: adjust first line
* regress/Makefile: update expected list of files
* regress: repair net/stream.py regression test
* M-Lab/ip_addr.dat: update
* M-Lab/redir_table.sh: update
* js: do not waste plot estate without a good reason
* Merge branch 'master' of github.com:neubot/neubot
* www js: beautify y axis label
* agent background_win32: close() database when out of poller loop
* Neubot/0.4.12-rc5 released
* Master/install.sh: attempt to auto-update GeoIP
* Master/install.sh: always specify absolute paths
* Master/install.sh: oops in debian gunzip is /bin/gunzip
* Win32/neubot.nsi: start -k so we replace next version (if any)
* Neubot/0.4.12-rc6 released
* Merge branch 'master' of github.com:neubot/neubot
* scripts/publish: back-compat for Neubot-for-MacOS < 0.4.12
* Win32: do not put/search installer in win32 subfolder
* Neubot/0.4.12-rc7 released
* FAQ: regen
* FAQ-it.rst edited in 2.2 entry to reflect english FAQ
* FAQ-it.rst added FreeBSD installation entry
* FAQ-it.rst: repair link
* FAQ-it.html: regen
* agent.py: remember to import DATABASE
* MacOS: prerun.sh: comment out notifier plist
* UNIX: neubot.1: fix incorrect manpage header
* ArchLinux: make sure we pass neubot "start" on startup
* Neubot/0.4.12 released
Neubot 0.4.11 [2012-04-24]
* rename_column(): factor out code to create ntemplate
* database: Fix column migration bug
* Add migrate2 with migrator that undoes column reordering
* database/migrate2.py: better log messages
* database/__init__.py: attach migrate2
* database/migrate2.py: deal with corner cases
* database/table_config.py: bump schema to 4.3
* database/migrate2.py: log before and after build_operation
* database/migrate2.py: more robust migration
* database/migrate2.py: value may be None
* database/migrate2.py: better is-reordered and looks-good tests
* database/migrate2.py: catch more corner cases
* database/migrate2.py: bump again connect_time threshold
* database/migrate2.py: deal with empty uuids
* database/migrate2.py: two less pylint warnings
* database/migrate2.py: avoid consuming too much memory
* Merge fix for column reordering bug
* migrate2.py: sync docstring with actual code
* js: add jqplot 0.9.6 to workaround IE8 plot bug
* www/header.html: use jqplot 0.9.6 for IE8
* Merge workaround for IE8 bug
* net/poller.py: use standard library scheduler
* net/poller.py: add docstrings
* net/poller.py: one less pylint warning
* net/poller.py: portably catch exception
* net/poller.py: python3 ready
* net/poller.py: wrap long line
* net/poller.py: add missing import
* Merge code to use stdlib scheduler in poller
* net/poller.py: finish nonfinished comment
* M-Lab/ip_addr.dat: sync
* M-Lab/redir_table.sh: sync
* www/header.html: sync with master
* net/poller.py: make sure we break loop when no I/O is pending
* runner_core.py: safely run callback()
* rootdir.py: s/CANDIDATE/ROOTDIR/g
* api_server.py http_server.py poller.py: forward compatibility
* runner_core.py: print traceback not just exception
* Merge cleanups for 0.4.11
* Win32/setup.py: do not copy MacOSX special files
* Merge branch 'next'
* browser.py: use default URI if no URI is specified
* config.py: add win32_updater setting
* add runner_dload.py: runner-based downloader
* add updater_win32.py: automatic updates for windows
* add background_win32.py: run neubot in background in windows
* add main_win32.py: new main() for windows
* Win32: use main_win32.py instead of main/__init__.py
* Win32: neubot.nsi setup.py: adapt to Win32 autoupdates
* updater_win32.py: Remember to close open handles before Popen()
* Merge experimental win32 autoupdater
* rendezvous/server.py: make crystal clear redirection
* rendezvous/server.py: add docstrings
* rendezvous/server.py: wrap a couple of long lines
* rendezvous/server.py: remove unused import
* rendezvous/server.py: s/s/body/g to make pylint happy
* rendezvous/server.py: no need to use stringio
* Modify rendezvous.server.run() to receive no arguments
* rendezvous/server.py: s/m/ibody/g s/m1/obody/g to make pylint content
* Merge maintenance patches for rendezvous/server.py
* server.py: POLLER.tasks POLLER.pending are no more
* rendezvous/server.py: fix comment
* Merge remote-tracking branch 'whitespider/next' into next
* Neubot/0.4.11-rc1 released
* scripts/publish: publish also win32 autoupdate tarball
* Win32/setup.py: prefix win32 to autoupdater tarball
* scripts/publish: repair publish of win32 autoupdater tarball
* scripts/publish: publish Win32 autoupdate tarball sha256
* add scripts/faq: RST -> HTML suitable for drupal
* Makefile: add rules to update HTML FAQ pages
* Merge code to autogenerate FAQ FAQ-it for website
* rendezvous/server.py: repair rendezvous server startup
* Neubot/0.4.11-rc2 released
* Win32/neubot.nsi: repair version number autobumped by mistake
* Merge branch 'next'
* scripts/cksum.py: factor out code to compute the checksum
* scripts/cksum.py: no more pylint warnings
* Win32/setup.py: copy cksum_path() from scripts/cksum.py
* Win32/setup.py: autocreate sha256sum for autoupdater tarball
* Merge code to autocompute win32 autoupdater tarball sha256
* Win32/setup.py: be tidy, put results into wdist directory