summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: ea3ed8c25764c141cf18229677881d1d861384cc (plain)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
23.1.1
 - source: Force OpenStack when it is only option (#2045)
 - sources/azure: fix regressions in IMDS behavior (#2041)
   [Chris Patterson]

23.1
 - Support transactional-updates for SUSE based distros (#1997)
   [Robert Schweikert]
 - Set ownership for new folders in Write Files Module (#1980)
   [Jack] (LP: #1990513)
 - add OpenCloudOS and TencentOS support (#1964) [wynnfeng]
 - lxd: Retry if the server isn't ready (#2025)
 - test: switch pycloudlib source to pypi (#2024)
 - test: Fix integration test deprecation message (#2023)
 - Recognize opensuse-microos, dev tooling fixes [Robert Schweikert]
 - sources/azure: refactor imds handler into own module (#1977)
   [Chris Patterson]
 - docs: deprecation generation support [1/2] (#2013)
 - add function is_virtual to distro/FreeBSD (#1957) [Mina Galić]
 - cc_ssh: support multiple hostcertificates (#2018) (LP: #1999164)
 - Fix minor schema validation regression and fixup typing (#2017)
 - doc: Reword user data debug section (#2019)
 - Overhaul/rewrite of certificate handling as follows: (#1962)
   [dermotbradley] (LP: #1931174)
 - disk_setup: use byte string when purging the partition table (#2012)
   [Stefan Prietl]
 - cli: schema also validate vendordata*.
 - ci: sort and add checks for cla signers file [Stefan Prietl]
 - Add "ederst" as contributor (#2010) [Stefan Prietl]
 - readme: add reference to packages dir (#2001)
 - docs: update downstream package list (#2002)
 - docs: add google search verification (#2000) [s-makin]
 - docs: fix 404 render use default notfound_urls_prefix in RTD conf (#2004)
 - Fix OpenStack datasource detection on bare metal (#1923)
   [Alexander Birkner] (LP: #1815990)
 - docs: add themed RTD 404 page and pointer to readthedocs-hosted (#1993)
 - schema: fix gpt labels, use type string for GUID (#1995)
 - cc_disk_setup: code cleanup (#1996)
 - netplan: keep custom strict perms when 50-cloud-init.yaml exists
 - cloud-id: better handling of change in datasource files
   [d1r3ct0r] (LP: #1998998)
 - tests: Remove restart check from test
 - Ignore duplicate macs from mscc_felix and fsl_enetc (LP: #1997922)
 - Warn on empty network key (#1990)
 - Fix Vultr cloud_interfaces usage (#1986) [eb3095]
 - cc_puppet: Update puppet service name (#1970) [d1r3ct0r] (LP: #2002969)
 - docs: Clarify networking docs (#1987)
 - lint: remove httpretty (#1985) [sxt1001]
 - cc_set_passwords: Prevent traceback when restarting ssh (#1981)
 - tests: fix lp1912844 (#1978)
 - tests: Skip ansible test on bionic (#1984)
 - Wait for NetworkManager (#1983) [Robert Schweikert]
 - docs: minor polishing (#1979) [s-makin]
 - CI: migrate integration-test to GH actions (#1969)
 - Fix permission of SSH host keys (#1971) [Ron Gebauer]
 - Fix default route rendering on v2 ipv6 (#1973) (LP: #2003562)
 - doc: fix path in net_convert command (#1975)
 - docs: update net_convert docs (#1974)
 - doc: fix dead link
 - cc_set_hostname: ignore /var/lib/cloud/data/set-hostname if it's empty
   (#1967) [Emanuele Giuseppe Esposito]
 - distros/rhel.py: _read_hostname() missing strip on "hostname" (#1941)
   [Mark Mielke]
 - integration tests: add  IBM VPC support (SC-1352) (#1915)
 - machine-id: set to uninitialized to trigger regeneration on clones
   (LP: #1999680)
 - sources/azure: retry on connection error when fetching metdata (#1968)
   [Chris Patterson]
 - Ensure ssh state accurately obtained (#1966)
 - bddeb: drop dh-systemd dependency on newer deb-based releases [d1r3ct0r]
 - doc: fix `config formats` link in cloudsigma.rst (#1960)
 - Fix wrong subp syntax in cc_set_passwords.py (#1961)
 - docs: update the PR template link to readthedocs (#1958) [d1r3ct0r]
 - ci: switch unittests to gh actions (#1956)
 - Add mount_default_fields for PhotonOS. (#1952) [Shreenidhi Shedi]
 - sources/azure: minor refactor for metadata source detection logic
   (#1936) [Chris Patterson]
 - add "CalvoM" as contributor (#1955) [d1r3ct0r]
 - ci: doc to gh actions (#1951)
 - lxd: handle 404 from missing devices route for LXD 4.0 (LP: #2001737)
 - docs: Diataxis overhaul (#1933) [s-makin]
 - vultr: Fix issue regarding cache and region codes (#1938) [eb3095]
 - cc_set_passwords: Move ssh status checking later (SC-1368) (#1909)
   (LP: #1998526)
 - Improve Wireguard module idempotency (#1940) [Fabian Lichtenegger-Lukas]
 - network/netplan: add gateways as on-link when necessary (#1931)
   [Louis Sautier] (LP: #2000596)
 - tests: test_lxd assert features.networks.zones when present (#1939)
 - Use btrfs enquque when available (#1926) [Robert Schweikert]
 - sources/azure: drop description for report_failure_to_fabric() (#1934)
   [Chris Patterson]
 - cc_disk_setup.py: fix MBR single partition creation (#1932)
   [dermotbradley] (LP: #1851438)
 - Fix typo with package_update/package_upgrade (#1927) [eb3095]
 - sources/azure: fix device driver matching for net config (#1914)
   [Chris Patterson]
 - BSD: fix duplicate macs in Ifconfig parser (#1917) [Mina Galić]
 - test: mock dns calls (#1922)
 - pycloudlib: add lunar support for integration tests (#1928)
 - nocloud: add support for dmi variable expansion for seedfrom URL
   (LP: #1994980)
 - tools: read-version drop extra call to git describe --long
 - doc: improve cc_write_files doc (#1916)
 - read-version: When insufficient tags, use cloudinit.version.get_version
 - mounts: document weird prefix in schema (#1913)
 - add utility function test cases (#1910) [sxt1001]
 - test: mock file deletion in dhcp tests (#1911)
 - Ensure network ready before cloud-init service runs on RHEL (#1893)
   (LP: #1998655)
 - docs: add copy button to code blocks (#1890) [s-makin]
 - netplan: define features.NETPLAN_CONFIG_ROOT_READ_ONLY flag
 - azure: fix support for systems without az command installed (#1908)
 - Networking Clarification (#1892)
 - Fix the distro.osfamily output problem in the openEuler system. (#1895)
   [sxt1001] (LP: #1999042)
 - pycloudlib: bump commit dropping azure api smoke test
 - * net: netplan config root read-only as wifi config can contain creds
 - autoinstall: clarify docs for users
 - sources/azure: encode health report as utf-8 (#1897) [Chris Patterson]
 - Add back gateway4/6 deprecation to docs (#1898)
 - networkd: Add support for multiple [Route] sections (#1868)
   [Nigel Kukard]
 - doc: add qemu tutorial (#1863)
 - lint: fix tip-flake8 and tip-mypy (#1896)
 - Add support for setting uid when creating users on FreeBSD (#1888)
   [einsibjarni]
 - Fix exception in BSD networking code-path (#1894) [Mina Galić]
 - Append derivatives to is_rhel list in cloud.cfg.tmpl (#1887) [Louis Abel]
 - FreeBSD init: use cloudinit_enable as only rcvar (#1875) [Mina Galić]
 - feat: add support aliyun metadata security harden mode (#1865)
   [Manasseh Zhou]
 - docs: uprate analyze to performance page [s-makin]
 - test: fix lxd preseed managed network config (#1881)
 - Add support for static IPv6 addresses for FreeBSD (#1839) [einsibjarni]
 - Make 3.12 failures not fail the build (#1873)
 - Docs: adding relative links [s-makin]
 - Update read-version
 - Fix setup.py to align with PEP 440 versioning replacing trailing
 - travis: promote 3.11-dev to 3.11 (#1866)
 - test_cloud_sigma: delete useless test (#1828) [sxt1001]
 - Add "nkukard" as contributor (#1864) [Nigel Kukard]
 - tests: ds-id mocks for vmware-rpctool as utility may not exist in env
 - doc: add how to render new module doc (#1855)
 - doc: improve module creation explanation (#1851)
 - Add Support for IPv6 metadata to OpenStack (#1805)
   [Marvin Vogt] (LP: #1906849)
 - add xiaoge1001 to .github-cla-signers (#1854) [sxt1001]
 - network: Deprecate gateway{4,6} keys in network config v2 (#1794)
   (LP: #1992512)
 - VMware: Move Guest Customization transport from OVF to VMware (#1573)
   [PengpengSun]
 - doc: home page links added (#1852) [s-makin]

22.4.2
 - status: handle ds not defined in status.json (#1876) (LP: #1997559)

22.4.1
 - net: skip duplicate mac check for netvsc nic and its VF (#1853)
   [Anh Vo] (LP: #1844191)
 - ChangeLog: whitespace cleanup (#1850)
 - changelog: capture 22.3.1-4 releases

22.4
 - test: fix pro integration test [Alberto Contreras]
 - cc_disk_setup: pass options in correct order to utils (#1829)
   [dermotbradley]
 - tests: text_lxd basic_preseed verify_clean_log (#1826)
 - docs: switch sphinx theme to furo (SC-1327) (#1821) [Alberto Contreras]
 - tests: activate Ubuntu Pro tests (only on Jenkins) (#1777)
   [Alberto Contreras]
 - tests: test_lxd assert features.storage.buckets when present (#1827)
 - tests: replace missed ansible install-method with underscore (#1825)
 - tests: replace ansible install-method with underscore
 - ansible: standardize schema keys
 - ci: run json tool on 22.04 rather than 20.04 (#1823)
 - Stop using devices endpoint for LXD network config (#1819)
 - apport: address new curtin log and config locations (#1812)
 - cc_grub: reword docs for clarity (#1818)
 - tests: Fix preseed test (#1820)
 - Auto-format schema (#1810)
 - Ansible Control Module (#1778)
 - Fix last reported event possibly not being sent (#1796) (LP: #1993836)
 - tests: Ignore unsupported lxd project keys (#1817) [Alberto Contreras]
 - udevadm settle should handle non-udev system gracefully (#1806)
   [dermotbradley]
 - add mariner support (#1780) [Minghe Ren]
 - Net: add BSD ifconfig(8) parser and state class (#1779) [Mina Galić]
 - adding itjamie to .github-cla-signers [Jamie (Bear) Murphy]
 - Fix inconsistency between comment and statement (#1809) [Guillaume Gay]
 - Update .github-cla-signers (#1811) [Guillaume Gay]
 - alpine.py: Add Alpine-specific manage_service function and update tests
   (#1804) [dermotbradley]
 - test: add 3.12-dev to Travis CI (#1798) [Alberto Contreras]
 - add NWCS datasource (#1793) [shell-skrimp]
 - Adding myself as CLA signer (#1799) [s-makin]
 - apport: fix some data collection failures due to symlinks (#1797)
   [Dan Bungert]
 - read-version: Make it compatible with bionic (#1795) [Alberto Contreras]
 - lxd: add support for lxd preseed config(#1789)
 - Enable hotplug for LXD datasource (#1787)
 - cli: collect logs and apport subiquity support
 - add support for Container-Optimized OS (#1748) [vteratipally]
 - test: temporarily disable failing integration test (#1792)
 - Fix LXD/nocloud detection on lxd vm tests (#1791)
 - util: Implement __str__ and __iter__ for Version (#1790)
 - cc_ua: consume ua json api for enable commands [Alberto Contreras]
 - Add clarity to cc_final_message docs (#1788)
 - cc_ntp: add support for BSDs (#1759) [Mina Galić] (LP: #1990041)
 - make Makefile make agnostic (#1786) [Mina Galić]
 - Remove hardcoding and unnecessary overrides in Makefile (#1783)
   [Joseph Mingrone]
 - Add my username (Jehops) to .github-cla-signers (#1784) [Joseph Mingrone]
 - Temporarily remove broken test (#1781)
 - Create reference documentation for base config
 - cc_ansible: add support for galaxy install (#1736)
 - distros/manage_services: add support to disable service (#1772)
   [Mina Galić] (LP: #1991024)
 - OpenBSD: remove pkg_cmd_environ function (#1773)
   [Mina Galić] (LP: 1991567)
 - docs: Correct typo in the FAQ (#1774) [Maximilian Wörner]
 - tests: Use LXD metadata to determine NoCloud status (#1776)
 - analyze: use init-local as start of boot record (#1767) [Chris Patterson]
 - docs: use opensuse for distro name in package doc (#1771)
 - doc: clarify packages as dev only (#1769) [Alberto Contreras]
 - Distro manage service: Improve BSD support (#1758)
   [Mina Galić] (LP: #1990070)
 - testing: check logs for critical errors (#1765) [Chris Patterson]
 - cc_ubuntu_advantage: Handle already attached on Pro [Alberto Contreras]
 - doc: Add configuration explanation (SC-1169)
 - Fix Oracle DS primary interface when using IMDS (#1757) (LP: #1989686)
 - style: prefer absolute imports over relative imports [Mina Galić]
 - tests: Fix ip log during instance destruction (#1755) [Alberto Contreras]
 - cc_ubuntu_advantage: add ua_config in auto-attach [Alberto Contreras]
 - apt configure: sources write/append mode (#1738)
   [Fabian Lichtenegger-Lukas]
 - networkd: Add test and improve typing. (#1747) [Alberto Contreras]
 - pycloudlib: bump commit for gce cpu architecture support (#1750)
 - commit ffcb29bc8315d1e1d6244eeb1cbd8095958f7bad (LP: #1307667)
 - testing: workaround LXD vendor data (#1740)
 - support dhcp{4,6}-overrides in networkd renderer (#1710) [Aidan Obley]
 - tests: Drop httpretty in favor of responses (#1720) [Alberto Contreras]
 - cc_ubuntu_advantage: Implement custom auto-attach behaviors (#1583)
   [Alberto Contreras]
 - Fix Oracle DS not setting subnet when using IMDS (#1735) (LP: #1989686)
 - testing: focal lxd datasource discovery (#1734)
 - cc_ubuntu_advantage: Redact token from logs (#1726) [Alberto Contreras]
 - docs: make sure echo properly evaluates the string (#1733) [Mina Galić]
 - net: set dhclient lease and pid files (#1715)
 - cli: status machine-readable output --format yaml/json (#1663)
   (LP: #1883122)
 - tests: Simplify does_not_raise (#1731) [Alberto Contreras]
 - Refactor: Drop inheritance from object (#1728) [Alberto Contreras]
 - testing: LXD datasource now supported on Focal (#1732)
 - Allow jinja templating in /etc/cloud (SC-1170) (#1722) (LP: #1913461)
 - sources/azure: ensure instance id is always correct (#1727)
   [Chris Patterson]
 - azure: define new attribute for pre-22.3 pickles (#1725)
 - doc: main page Diátaxis rewording (SC-967) (#1701)
 - ubuntu advantage: improved idempotency, enable list is now strict
   [Fabian Lichtenegger-Lukas]
 - test: bump pycloudlib (#1724) [Alberto Contreras]
 - cloud.cfg.tmpl: make sure "centos" settings are identical to "rhel"
   (#1639) [Emanuele Giuseppe Esposito]
 - lxd: fetch 1.0/devices content (#1712) [Alberto Contreras]
 - Update docs according to ad8f406a (#1719)
 - testing: Port unittests/analyze to pytest (#1708) [Alberto Contreras]
 - doc: Fix rtd builds. (#1718) [Alberto Contreras]
 - testing: fully mock noexec calls (#1717) [Alberto Contreras]
 - typing: Add types to cc_<module>.handle (#1700) [Alberto Contreras]
 - Identify 3DS Outscale Datasource as Ec2 (#1686) [Maxime Dufour]
 - config: enable bootstrapping pip in ansible (#1707)
 - Fix cc_chef typing issue (#1716)
 - Refactor instance json files to use Paths (SC-1238) (#1709)
 - tools: read-version check GITHUB_REF and git branch --show-current
   (#1677)
 - net: Ensure a tmp with exec permissions for dhcp (#1690)
   [Alberto Contreras] (LP: #1962343)
 - testing: Fix test regression in test_combined (#1713) [Alberto Contreras]
 - Identify Huawei Cloud as OpenStack (#1689) [huang xinjie]
 - doc: add reporting suggestion to FAQ (SC-1236) (#1698)

22.3.4
 - Fix Oracle DS primary interface when using IMDS (LP: #1989686)

22.3.3
 - Fix Oracle DS not setting subnet when using IMDS (LP: #1989686)

22.3.2
 - azure: define new attribute for pre-22.3 pickles (#1725)
 - sources/azure: ensure instance id is always correct (#1727)

22.3.1
 - Fix v2 interface matching when no MAC (LP: #1986551)
 - test: reduce number of network dependencies in flaky test (#1702)
 - docs: publish cc_ubuntu_autoinstall docs to rtd (#1696)
 - net: Fix EphemeraIPNetwork (#1697) [Alberto Contreras]
 - test: make ansible test work across older versions (#1691)
 - Networkd multi-address support/fix (#1685) [Teodor Garzdin]
 - make: drop broken targets (#1688)
 - net: Passthough v2 netconfigs in netplan systems (#1650)
   [Alberto Contreras] (LP: #1978543)
 - NM ipv6 connection does not work on Azure and Openstack (#1616)
   [Emanuele Giuseppe Esposito]
 - Fix check_format_tip (#1679) [Alberto Contreras]
 - DataSourceVMware: fix var use before init (#1674)
   [Andrew Kutz] (LP: #1987005)
 - rpm/copr: ensure RPM represents new clean.d dir artifacts (#1680)
 - test: avoid centos leaked check of /etc/yum.repos.d/epel-testing.repo
   (#1676)

22.3
 - sources: obj.pkl cache should be written anyime get_data is run (#1669)
 - schema: drop release number from version file (#1664)
 - pycloudlib: bump to quiet azure HTTP info logs (#1668)
 - test: fix wireguard integration tests (#1666)
 - Github is deprecating the 18.04 runner starting 12.1 (#1665)
 - integration tests: Ensure one setup for all tests (#1661)
 - tests: ansible test fixes (#1660)
 - Prevent concurrency issue in test_webhook_hander.py (#1658)
 - Workaround net_setup_link race with udev (#1655) (LP: #1983516)
 - test: drop erroneous lxd assertion, verify command succeeded (#1657)
 - Fix Chrony usage on Centos Stream (#1648) [Sven Haardiek] (LP: #1885952)
 - sources/azure: handle network unreachable errors for savable PPS (#1642)
   [Chris Patterson]
 - Return cc_set_hostname to PER_INSTANCE frequency (#1651) (LP: #1983811)
 - test: Collect integration test time by default (#1638)
 - test: Drop forced package install hack in lxd integration test (#1649)
 - schema: Resolve user-data if --system given (#1644)
   [Alberto Contreras] (LP: #1983306)
 - test: use fake filesystem to avoid file removal (#1647)
   [Alberto Contreras]
 - tox: Fix tip-flake8 and tip-mypy (#1635) [Alberto Contreras]
 - config: Add wireguard config module (#1570) [Fabian Lichtenegger-Lukas]
 - tests: can run without azure-cli, tests expect inactive ansible (#1643)
 - typing: Type UrlResponse.contents (#1633) [Alberto Contreras]
 - testing: fix references to `DEPRECATED.` (#1641) [Alberto Contreras]
 - ssh_util: Handle sshd_config.d folder [Alberto Contreras] (LP: #1968873)
 - schema: Enable deprecations in cc_update_etc_hosts (#1631)
   [Alberto Contreras]
 - Add Ansible Config Module (#1579)
 - util: Support Idle process state in get_proc_ppid() (#1637)
 - schema: Enable deprecations in cc_growpart (#1628) [Alberto Contreras]
 - schema: Enable deprecations in cc_users_groups (#1627)
   [Alberto Contreras]
 - util: Fix error path and parsing in get_proc_ppid()
 - main: avoid downloading full contents cmdline urls (#1606)
   [Alberto Contreras] (LP: #1937319)
 - schema: Enable deprecations in cc_scripts_vendor (#1629)
   [Alberto Contreras]
 - schema: Enable deprecations in cc_set_passwords (#1630)
   [Alberto Contreras]
 - sources/azure: add experimental support for preprovisioned os disks
   (#1622) [Chris Patterson]
 - Remove configobj a_to_u calls (#1632) [Stefano Rivera]
 - cc_debug: Drop this module (#1614) [Alberto Contreras]
 - schema: add aggregate descriptions in anyOf/oneOf (#1636)
 - testing: migrate test_sshutil to pytest (#1617) [Alberto Contreras]
 - testing: Fix test_ca_certs integration test (#1626) [Alberto Contreras]
 - testing: add support for pycloudlib's pro images (#1604)
   [Alberto Contreras]
 - testing: migrate test_cc_set_passwords to pytest (#1615)
   [Alberto Contreras]
 - network: add system_info network activator cloud.cfg overrides (#1619)
   (LP: #1958377)
 - docs: Align git remotes with uss-tableflip setup (#1624)
   [Alberto Contreras]
 - testing: cover active config module checks (#1609) [Alberto Contreras]
 - lxd: lvm avoid thinpool when kernel module absent
 - lxd: enable MTU configuration in cloud-init
 - doc: pin doc8 to last passing version
 - cc_set_passwords fixes (#1590)
 - Modernise importer.py and type ModuleDetails (#1605) [Alberto Contreras]
 - config: Def activate_by_schema_keys for t-z (#1613) [Alberto Contreras]
 - config: define activate_by_schema_keys for p-r mods (#1611)
   [Alberto Contreras]
 - clean: add param to remove /etc/machine-id for golden image creation
 - config: define `activate_by_schema_keys` for a-f mods (#1608)
   [Alberto Contreras]
 - config: define activate_by_schema_keys for s mods (#1612)
   [Alberto Contreras]
 - sources/azure: reorganize tests for network config (#1586)
   [Chris Patterson]
 - config: Define activate_by_schema_keys for g-n mods (#1610)
   [Alberto Contreras]
 - meta-schema: add infra to skip inapplicable modules [Alberto Contreras]
 - sources/azure: don't set cfg["password"] for default user pw (#1592)
   [Chris Patterson]
 - schema: activate grub-dpkg deprecations (#1600) [Alberto Contreras]
 - docs: clarify user password purposes (#1593)
 - cc_lxd: Add btrfs and lvm lxd storage options (SC-1026) (#1585)
 - archlinux: Fix distro naming[1] (#1601) [Kristian Klausen]
 - cc_ubuntu_autoinstall: support live-installer autoinstall config
 - clean: allow third party cleanup scripts in /etc/cloud/clean.d (#1581)
 - sources/azure: refactor chassis asset tag handling (#1574)
   [Chris Patterson]
 - Add "netcho" as contributor (#1591) [Kaloyan Kotlarski]
 - testing: drop impish support (#1596) [Alberto Contreras]
 - black: fix missed formatting issue which landed in main (#1594)
 - bsd: Don't assume that root user is in root group (#1587)
 - docs: Fix comment typo regarding use of packages (#1582)
   [Peter Mescalchin]
 - Update govc command in VMWare walkthrough (#1576) [manioo8]
 - Update .github-cla-signers (#1588) [Daniel Mullins]
 - Rename the openmandriva user to omv (#1575) [Bernhard Rosenkraenzer]
 - sources/azure: increase read-timeout to 60 seconds for wireserver
   (#1571) [Chris Patterson]
 - Resource leak cleanup (#1556)
 - testing: remove appereances of FakeCloud (#1584) [Alberto Contreras]
 - Fix expire passwords for hashed passwords (#1577)
   [Sadegh Hayeri] (LP: #1979065)
 - mounts: fix suggested_swapsize for > 64GB hosts (#1569) [Steven Stallion]
 - Update chpasswd schema to deprecate password parsing (#1517)
 - tox: Remove entries from default envlist (#1578) (LP: #1980854)
 - tests: add test for parsing static dns for existing devices (#1557)
   [Jonas Konrad]
 - testing: port cc_ubuntu_advantage test to pytest (#1559)
   [Alberto Contreras]
 - Schema deprecation handling (#1549) [Alberto Contreras]
 - Enable pytest to run in parallel (#1568)
 - sources/azure: refactor ovf-env.xml parsing (#1550) [Chris Patterson]
 - schema: Force stricter validation (#1547)
 - ubuntu advantage config: http_proxy, https_proxy (#1512)
   [Fabian Lichtenegger-Lukas]
 - net: fix interface matching support (#1552) (LP: #1979877)
 - Fuzz testing jsonchema (#1499) [Alberto Contreras]
 - testing: Wait for changed boot-id in test_status.py (#1548)
 - CI: Fix GH pinned-format jobs (#1558) [Alberto Contreras]
 - Typo fix (#1560) [Jaime Hablutzel]
 - tests: mock dns lookup that causes long timeouts (#1555)
 - tox: add unpinned env for do_format and check_format (#1554)
 - cc_ssh_import_id: Substitute deprecated warn (#1553) [Alberto Contreras]
 - Remove schema errors from log (#1551) (LP: #1978422) (CVE-2022-2084)
 - Update WebHookHandler to run as background thread (SC-456) (#1491)
   (LP: #1910552)
 - testing: Don't run custom cloud dir test on Bionic (#1542)
 - bash completion: update schema command (#1543) (LP: #1979547)
 - CI: add non-blocking run against the linters tip versions (#1531)
   [Paride Legovini]
 - Change groups within the users schema to support lists and strings
   (#1545) [RedKrieg]
 - make it clear which username should go in the contributing doc (#1546)
 - Pin setuptools for Travis (SC-1136) (#1540)
 - Fix LXD datasource crawl when BOOT enabled (#1537)
 - testing: Fix wrong path in dual stack test (#1538)
 - cloud-config: honor cloud_dir setting (#1523)
   [Alberto Contreras] (LP: #1976564)
 - Add python3-debconf to pkg-deps.json Build-Depends (#1535)
   [Alberto Contreras]
 - redhat spec: udev/rules.d lives under /usr/lib on rhel-based systems
   (#1536)
 - tests/azure: add test coverage for DisableSshPasswordAuthentication
   (#1534) [Chris Patterson]
 - summary: Add david-caro to the cla signers (#1527) [David Caro]
 - Add support for OpenMandriva (https://openmandriva.org/) (#1520)
   [Bernhard Rosenkraenzer]
 - tests/azure: refactor ovf creation (#1533) [Chris Patterson]
 - Improve DataSourceOVF error reporting when script disabled (#1525) [rong]
 - tox: integration-tests-jenkins: softfail if only some test failed
   (#1528) [Paride Legovini]
 - CI: drop linters from Travis CI (moved to GH Actions) (#1530)
   [Paride Legovini]
 - sources/azure: remove unused encoding support for customdata (#1526)
   [Chris Patterson]
 - sources/azure: remove unused metadata captured when parsing ovf (#1524)
   [Chris Patterson]
 - sources/azure: remove dscfg parsing from ovf-env.xml (#1522)
   [Chris Patterson]
 - Remove extra space from ec2 dual stack crawl message (#1521)
 - tests/azure: use namespaces in generated ovf-env.xml documents (#1519)
   [Chris Patterson]
 - setup.py: adjust udev/rules default path (#1513)
   [Emanuele Giuseppe Esposito]
 - Add python3-deconf dependency (#1506) [Alberto Contreras]
 - Change match macadress param for network v2 config (#1518)
   [Henrique Caricatti Capozzi]
 - sources/azure: remove unused userdata property from ovf (#1516)
   [Chris Patterson]
 - sources/azure: minor refactoring to network config generation (#1497)
   [Chris Patterson]
 - net: Implement link-local ephemeral ipv6
 - Rename function to avoid confusion (#1501)
 - Fix cc_phone_home requiring 'tries' (#1500) (LP: #1977952)
 - datasources: replace networking functions with stdlib and cloudinit.net
   code
 - Remove xenial references (#1472) [Alberto Contreras]
 - Oracle ds changes (#1474) [Alberto Contreras] (LP: #1967942)
 - improve runcmd docs (#1498)
 - add 3.11-dev to Travis CI (#1493)
 - Only run github actions on pull request (#1496)
 - Fix integration test client creation (#1494) [Alberto Contreras]
 - tox: add link checker environment, fix links (#1480)
 - cc_ubuntu_advantage: Fix doc (#1487) [Alberto Contreras]
 - cc_yum_add_repo: Fix repo id canonicalization (#1489)
   [Alberto Contreras] (LP: #1975818)
 - Add linitio as contributor in the project (#1488) [Kevin Allioli]
 - net-convert: use yaml.dump for debugging python NetworkState obj (#1484)
   (LP: #1975907)
 - test_schema: no relative $ref URLs, replace $ref with local path (#1486)
 - cc_set_hostname: do not write "localhost" when no hostname is given
   (#1453) [Emanuele Giuseppe Esposito]
 - Update .github-cla-signers (#1478) [rong]
 - schema: write_files defaults, versions $ref full URL and add vscode
   (#1479)
 - docs: fix external links, add one more to the list (#1477)
 - doc: Document how to change module frequency (#1481)
 - tests: bump pycloudlib (#1482)
 - tests: bump pycloudlib pinned commit for kinetic Azure (#1476)
 - testing: fix test_status.py (#1475)
 - integration tests: If KEEP_INSTANCE = True, log IP (#1473)
 - Drop mypy excluded files (#1454) [Alberto Contreras]
 - Docs additions (#1470)
 - Add "formatting tests" to Github Actions
 - Remove unused arguments in function signature (#1471)
 - Changelog: correct errant classification of LP issues as GH (#1464)
 - Use Network-Manager and Netplan as default renderers for RHEL and Fedora
   (#1465) [Emanuele Giuseppe Esposito]

22.2
 - Fix test due to caplog incompatibility (#1461) [Alberto Contreras]
 - Align rhel custom files with upstream (#1431)
   [Emanuele Giuseppe Esposito]
 - cc_write_files: Improve schema. (#1460) [Alberto Contreras]
 - cli: Redact files with permission errors in commands (#1440)
   [Alberto Contreras] (LP: #1953430)
 - Improve cc_set_passwords. (#1456) [Alberto Contreras]
 - testing: make fake cloud-init wait actually wait (#1459)
 - Scaleway: Fix network configuration for netplan 0.102 and later (#1455)
   [Maxime Corbin]
 - Fix 'ephmeral' typos in disk names(#1452) [Mike Hucka]
 - schema: version schema-cloud-config-v1.json (#1424)
 - cc_modules: set default meta frequency value when no config available
   (#1457)
 - Log generic warning on non-systemd systems. (#1450) [Alberto Contreras]
 - cc_snap.maybe_install_squashfuse no longer needed in Bionic++. (#1448)
   [Alberto Contreras]
 - Drop support of *-sk keys in cc_ssh (#1451) [Alberto Contreras]
 - testing: Fix console_log tests (#1437)
 - tests: cc_set_passoword update for systemd, non-systemd distros  (#1449)
 - Fix bug in url_helper/dual_stack() logging (#1426)
 - schema: render schema paths from _CustomSafeLoaderWithMarks (#1391)
 - testing: Make integration tests kinetic friendly (#1441)
 - Handle error if SSH service no present. (#1422)
   [Alberto Contreras] (LP: #1969526)
 - Fix network-manager activator availability and order (#1438)
 - sources/azure: remove reprovisioning marker (#1414) [Chris Patterson]
 - upstart: drop vestigial support for upstart (#1421)
 - testing: Ensure NoCloud detected in test (#1439)
 - Update .github-cla-signers kallioli [Kevin Allioli]
 - Consistently strip top-level network key (#1417) (LP: #1906187)
 - testing: Fix LXD VM metadata test (#1430)
 - testing: Add NoCloud setup for NoCloud test (#1425)
 - Update linters and adapt code for compatibility (#1434) [Paride Legovini]
 - run-container: add support for LXD VMs (#1428) [Paride Legovini]
 - integration-reqs: bump pycloudlib pinned commit (#1427) [Paride Legovini]
 - Fix NoCloud docs (#1423)
 - Docs fixes (#1406)
 - docs: Add docs for module creation (#1415)
 - Remove cheetah from templater (#1416)
 - tests: verify_ordered_items fallback to re.escape if needed (#1420)
 - Misc module cleanup (#1418)
 - docs: Fix doc warnings and enable errors (#1419)
   [Alberto Contreras] (LP: #1876341)
 - Refactor cloudinit.sources.NetworkConfigSource to enum (#1413)
   [Alberto Contreras] (LP: #1874875)
 - Don't fail if IB and Ethernet devices 'collide' (#1411)
 - Use cc_* module meta defintion over hardcoded vars (SC-888) (#1385)
 - Fix cc_rsyslog.py initialization (#1404) [Alberto Contreras]
 - Promote cloud-init schema from devel to top level subcommand (#1402)
 - mypy: disable missing imports warning for httpretty (#1412)
   [Chris Patterson]
 - users: error when home should not be created AND ssh keys provided
   [Jeffrey 'jf' Lim]
 - Allow growpart to resize encrypted partitions (#1316)
 - Fix typo in integration_test.rst (#1405) [Alberto Contreras]
 - cloudinit.net refactor: apply_network_config_names (#1388)
   [Alberto Contreras] (LP: #1884602)
 - tests/azure: add fixtures for hardcoded paths (markers and data_dir)
   (#1399) [Chris Patterson]
 - testing: Add responses workaround for focal/impish (#1403)
 - cc_ssh_import_id: fix is_key_in_nested_dict to avoid early False
 - Fix ds-identify not detecting NoCloud seed in config (#1381)
   (LP: #1876375)
 - sources/azure: retry dhcp for failed processes (#1401) [Chris Patterson]
 - Move notes about refactorization out of CONTRIBUTING.rst (#1389)
 - Shave ~8ms off generator runtime (#1387)
 - Fix provisioning dhcp timeout to 20 minutes (#1394) [Chris Patterson]
 - schema: module example strict testing fix seed_random
 - cc_set_hostname: examples small typo (perserve vs preserve)
   [Wouter Schoot]
 - sources/azure: refactor http_with_retries to remove **kwargs (#1392)
   [Chris Patterson]
 - declare dependency on ssh-import-id (#1334)
 - drop references to old dependencies and old centos script
 - sources/azure: only wait for primary nic to be attached during restore
   (#1378) [Anh Vo]
 - cc_ntp: migrated legacy schema to cloud-init-schema.json (#1384)
 - Network functions refactor and bugfixes (#1383)
 - schema: add JSON defs for modules cc_users_groups (#1379)
   (LP: #1858930)
 - Fix doc typo (#1382) [Alberto Contreras]
 - Add support for dual stack IPv6/IPv4 IMDS to Ec2 (#1160)
 - Fix KeyError when rendering sysconfig IPv6 routes (#1380) (LP: #1958506)
 - Return a namedtuple from subp() (#1376)
 - Mypy stubs and other tox maintenance (SC-920) (#1374)
 - Distro Compatibility Fixes (#1375)
 - Pull in Gentoo patches (#1372)
 - schema: add json defs for modules U-Z (#1360)
   (LP: #1858928, #1858929, #1858931, #1858932)
 - util: atomically update sym links to avoid Suppress FileNotFoundError
   when reading status (#1298) [Adam Collard] (LP: #1962150)
 - schema: add json defs for modules scripts-timezone (SC-801) (#1365)
 - docs: Add first tutorial (SC-900) (#1368)
 - BUG 1473527: module ssh-authkey-fingerprints fails Input/output error…
   (#1340) [Andrew Lee] (LP: #1473527)
 - add arch hosts template (#1371)
 - ds-identify: detect LXD for VMs launched from host with > 5.10 kernel
   (#1370) (LP: #1968085)
 - Support EC2 tags in instance metadata (#1309) [Eduardo Dobay]
 - schema: add json defs for modules e-install (SC-651) (#1366)
 - Improve "(no_create_home|system): true" test (#1367) [Jeffrey 'jf' Lim]
 - Expose https_proxy env variable to ssh-import-id cmd (#1333)
   [Michael Rommel]
 - sources/azure: remove bind/unbind logic for hot attached nic (#1332)
   [Chris Patterson]
 - tox: add types-* packages to check_format env (#1362)
 - tests: python 3.10 is showing up in cloudimages (#1364)
 - testing: add additional mocks to test_net tests (#1356) [yangzz-97]
 - schema: add JSON schema for mcollective, migrator and mounts modules
   (#1358)
 - Honor system locale for RHEL (#1355) [Wei Shi]
 - doc: Fix typo in cloud-config-run-cmds.txt example (#1359) [Ali Shirvani]
 - ds-identify: also discover LXD by presence from DMI board_name = LXD
   (#1311)
 - black: bump pinned version to 22.3.0 to avoid click dependency issues
   (#1357)
 - Various doc fixes (#1330)
 - testing: Add missing is_FreeBSD mock to networking test (#1353)
 - Add --no-update to add-apt-repostory call (SC-880) (#1337)
 - schema: add json defs for modules K-L (#1321)
   (LP: #1858899, #1858900, #1858901, #1858902)
 - docs: Re-order readthedocs install (#1354)
 - Stop cc_ssh_authkey_fingerprints from ALWAYS creating home (#1343)
   [Jeffrey 'jf' Lim]
 - docs: add jinja2 pin (#1352)
 - Vultr: Use find_candidate_nics, use ipv6 dns (#1344) [eb3095]
 - sources/azure: move get_ip_from_lease_value out of shim (#1324)
   [Chris Patterson]
 - Fix cloud-init status --wait when no datasource found (#1349)
   (LP: #1966085)
 - schema: add JSON defs for modules resize-salt (SC-654) (#1341)
 - Add myself as a future contributor (#1345) [Neal Gompa (ニール・ゴンパ)]
 - Update .github-cla-signers (#1342) [Jeffrey 'jf' Lim]
 - add Requires=cloud-init-hotplugd.socket in cloud-init-hotplugd.service
   file (#1335) [yangzz-97]
 - Fix sysconfig render when set-name is missing (#1327)
   [Andrew Kutz] (LP: #1855945)
 - Refactoring helper funcs out of NetworkState (#1336) [Andrew Kutz]
 - url_helper: add tuple support for readurl timeout (#1328)
   [Chris Patterson]
 - Make fs labels match for ds-identify and docs (#1329)
 - Work around bug in LXD VM detection (#1325)
 - Remove redundant generator logs (#1318)
 - tox: set verbose flags for integration tests (#1323) [Chris Patterson]
 - net: introduce find_candidate_nics() (#1313) [Chris Patterson]
 - Revert "Ensure system_cfg read before ds net config on Oracle (#1174)"
   (#1326)
 - Add vendor_data2 support for ConfigDrive source (#1307) [cvstealth]
 - Make VMWare data source test host independent and expand testing (#1308)
   [Robert Schweikert]
 - Add json schemas for modules starting with P
 - sources/azure: remove lease file parsing (#1302) [Chris Patterson]
 - remove flaky test from ci (#1322)
 - ci: Switch to python 3.10 in Travis CI (#1320)
 - Better interface handling for Vultr, expect unexpected DHCP servers
   (#1297) [eb3095]
 - Remove unused init local artifact (#1315)
 - Doc cleanups (#1317)
 - docs improvements (#1312)
 - add support for jinja do statements, add unit test (#1314)
   [Paul Bruno] (LP: #1962759)
 - sources/azure: prevent tight loops for DHCP retries (#1285)
   [Chris Patterson]
 - net/dhcp: surface type of DHCP lease failure to caller (#1276)
   [Chris Patterson]
 - Stop hardcoding systemctl location (#1278) [Robert Schweikert]
 - Remove python2 syntax from docs (#1310)
 - [tools/migrate-lp-user-to-github] Rename master branch to main (#1301)
   [Adam Collard]
 - redhat: Depend on "hostname" package (#1288) [Lubomir Rintel]
 - Add native NetworkManager support (#1224) [Lubomir Rintel]
 - Fix link in CLA check to point to contribution guide. (#1299)
   [Adam Collard]
 - check for existing symlink while force creating symlink (#1281)
   [Shreenidhi Shedi]
 - Do not silently ignore integer uid (#1280) (LP: #1875772)
 - tests: create a IPv4/IPv6 VPC in Ec2 integration tests (#1291)
 - Integration test fix ppa  (#1296)
 - tests: on official EC2. cloud-id actually startswith aws not ec2 (#1289)
 - test_ppa_source: accept both http and https URLs (#1292)
   [Paride Legovini]
 - Fix apt test on azure
 - add "lkundrak" as contributor [Lubomir Rintel]
 - Holmanb/integration test fix ppa (#1287)
 - Include missing subcommand in manpage (#1279)
 - Clean up artifacts from pytest, packaging, release with make clean
   (#1277)
 - sources/azure: ensure retries on IMDS request failure (#1271)
   [Chris Patterson]
 - sources/azure: removed unused savable PPS paths (#1268) [Chris Patterson]
 - integration tests: fix Azure failures (#1269)

22.1
 - sources/azure: report ready in local phase (#1265) [Chris Patterson]
 - sources/azure: validate IMDS network configuration metadata (#1257)
   [Chris Patterson]
 - docs: Add more details to runcmd docs (#1266)
 - use PEP 589 syntax for TypeDict (#1253)
 - mypy: introduce type checking (#1254) [Chris Patterson]
 - Fix extra ipv6 issues, code reduction and simplification (#1243) [eb3095]
 - tests: when generating crypted password, generate in target env (#1252)
 - sources/azure: address mypy/pyright typing complaints (#1245)
   [Chris Patterson]
 - Docs for x-shellscript* userdata (#1260)
 - test_apt_security: azure platform has specific security URL overrides
   (#1263)
 - tests: lsblk --json output changes mountpoint key to mountpoinst []
   (#1261)
 - mounts: fix mount opts string for ephemeral disk (#1250)
   [Chris Patterson]
 - Shell script handlers by freq (#1166) [Chris Lalos]
 - minor improvements to documentation (#1259) [Mark Esler]
 - cloud-id: publish /run/cloud-init/cloud-id-<cloud-type> files (#1244)
 - add "eslerm" as contributor (#1258) [Mark Esler]
 - sources/azure: refactor ssh key handling (#1248) [Chris Patterson]
 - bump pycloudlib (#1256)
 - sources/hetzner: Use EphemeralDHCPv4 instead of static configuration
   (#1251) [Markus Schade]
 - bump pycloudlib version (#1255)
 - Fix IPv6 netmask format for sysconfig (#1215) [Harald] (LP: #1959148)
 - sources/azure: drop debug print (#1249) [Chris Patterson]
 - tests: do not check instance.pull_file().ok() (#1246)
 - sources/azure: consolidate ephemeral DHCP configuration (#1229)
   [Chris Patterson]
 - cc_salt_minion freebsd fix for rc.conf (#1236)
 - sources/azure: fix metadata check in _check_if_nic_is_primary() (#1232)
   [Chris Patterson]
 - Add _netdev option to mount Azure ephemeral disk (#1213) [Eduardo Otubo]
 - testing: stop universally overwriting /etc/cloud/cloud.cfg.d (#1237)
 - Integration test changes (#1240)
 - Fix Gentoo Locales (#1205)
 - Add "slingamn" as contributor (#1235) [Shivaram Lingamneni]
 - integration: do not LXD bind mount /etc/cloud/cloud.cfg.d (#1234)
 - Integration testing docs and refactor (#1231)
 - vultr: Return metadata immediately when found (#1233) [eb3095]
 - spell check docs with spellintian (#1223)
 - docs: include upstream python version info (#1230)
 - Schema a d (#1211)
 - Move LXD to end ds-identify DSLIST (#1228) (LP: #1959118)
 - fix parallel tox execution (#1214)
 - sources/azure: refactor _report_ready_if_needed and _poll_imds (#1222)
   [Chris Patterson]
 - Do not support setting up archive.canonical.com as a source (#1219)
   [Steve Langasek] (LP: #1959343)
 - Vultr: Fix lo being used for DHCP, try next on cmd fail (#1208) [eb3095]
 - sources/azure: refactor _should_reprovision[_after_nic_attach]() logic
   (#1206) [Chris Patterson]
 - update ssh logs to show ssh private key gens pub and simplify code
   (#1221) [Steve Weber]
 - Remove mitechie from stale PR github action (#1217)
 - Include POST format in cc_phone_home docs (#1218) (LP: #1959149)
 - Add json parsing of ip addr show (SC-723) (#1210)
 - cc_rsyslog: fix typo in docstring (#1207) [Louis Sautier]
 - Update .github-cla-signers (#1204) [Chris Lalos]
 - sources/azure: drop unused case in _report_failure() (#1200)
   [Chris Patterson]
 - sources/azure: always initialize _ephemeral_dhcp_ctx on unpickle (#1199)
   [Chris Patterson]
 - Add support for gentoo templates and cloud.cfg (#1179) [vteratipally]
 - sources/azure: unpack ret tuple in crawl_metadata() (#1194)
   [Chris Patterson]
 - tests: focal caplog has whitespace indentation for multi-line logs
   (#1201)
 - Seek interfaces, skip dummy interface, fix region codes (#1192) [eb3095]
 - integration: test against the Ubuntu daily images (#1198)
   [Paride Legovini]
 - cmd: status and cloud-id avoid change in behavior for 'not run' (#1197)
 - tox: pass PYCLOUDLIB_* env vars into integration tests when present
   (#1196)
 - sources/azure: set ovf_is_accessible when OVF is read successfully
   (#1193) [Chris Patterson]
 - Enable OVF environment transport via ISO in example (#1195) [Megian]
 - sources/azure: consolidate DHCP variants to EphemeralDHCPv4WithReporting
   (#1190) [Chris Patterson]
 - Single JSON schema validation in early boot (#1175)
 - Add DatasourceOVF network-config propery to Ubuntu OVF example (#1184)
   [Megian]
 - testing: support pycloudlib config file (#1189)
 - Ensure system_cfg read before ds net config on Oracle (SC-720) (#1174)
   (LP: #1956788)
 - Test Optimization Proposal (SC-736) (#1188)
 - cli: cloud-id report not-run or disabled state as cloud-id (#1162)
 - Remove distutils usage (#1177) [Shreenidhi Shedi]
 - add .python-version to gitignore (#1186)
 - print error if datasource import fails (#1170)
   [Emanuele Giuseppe Esposito]
 - Add new config module to set keyboard layout (#1176)
   [maxnet] (LP: #1951593)
 - sources/azure: rename metadata_type -> MetadataType (#1181)
   [Chris Patterson]
 - Remove 3.5 and xenial support (SC-711) (#1167)
 - tests: mock LXD datasource detection in ds-identify on LXD containers
   (#1178)
 - pylint: silence errors on compat code for old jsonschema (#1172)
   [Paride Legovini]
 - testing: Add 3.10 Test Coverage (#1173)
 - Remove unittests from integration test job in travis (#1141)
 - Don't throw exceptions for empty cloud config (#1130)
 - bsd/resolv.d/ avoid duplicated entries (#1163) [Gonéri Le Bouder]
 - sources/azure: do not persist failed_desired_api_version flag (#1159)
   [Chris Patterson]
 - Update cc_ubuntu_advantage calls to assume-yes (#1158)
   [John Chittum] (LP: #1954842)
 - openbsd: properly restart the network on 7.0 (#1150) [Gonéri Le Bouder]
 - Add .git-blame-ignore-revs (#1161)
 - Adopt Black and isort (SC-700) (#1157)
 - Include dpkg frontend lock in APT_LOCK_FILES (#1153)
 - tests/cmd/query: fix test run as root and add coverage for defaults
   (#1156) [Chris Patterson] (LP: #1825027)
 - Schema processing changes (SC-676) (#1144)
 - Add dependency workaround for impish in bddeb (#1148)
 - netbsd: install new dep packages (#1151) [Gonéri Le Bouder]
 - find_devs_with_openbsd: ensure we return the last entry (#1149)
   [Gonéri Le Bouder]
 - sources/azure: remove unnecessary hostname bounce (#1143)
   [Chris Patterson]
 - find_devs/openbsd: accept ISO on disk (#1132)
   [Gonéri Le Bouder]
 - Improve error log message when mount failed (#1140) [Ksenija Stanojevic]
 - add KsenijaS as a contributor (#1145) [Ksenija Stanojevic]
 - travis - don't run integration tests if no deb (#1139)
 - factor out function for getting top level directory of cloudinit (#1136)
 - testing: Add deterministic test id (#1138)
 - mock sleep() in azure test (#1137)
 - Add miraclelinux support (#1128) [Haruki TSURUMOTO]
 - docs: Make MACs lowercase in network config (#1135) (LP: #1876941)
 - Add Strict Metaschema Validation (#1101)
 - update dead link (#1133)
 - cloudinit/net: handle two different routes for the same ip (#1124)
   [Emanuele Giuseppe Esposito]
 - docs: pin mistune dependency (#1134)
 - Reorganize unit test locations under tests/unittests (#1126)
 - Fix exception when no activator found (#1129) (LP: #1948681)
 - jinja: provide and document jinja-safe key aliases in instance-data
   (SC-622) (#1123)
 - testing: Remove date from final_message test (SC-638) (#1127)
 - Move GCE metadata fetch to init-local (SC-502) (#1122)
 - Fix missing metadata routes for vultr (#1125) [eb3095]
 - cc_ssh_authkey_fingerprints.py: prevent duplicate messages on console
   (#1081) [dermotbradley]
 - sources/azure: remove unused remnants related to agent command (#1119)
   [Chris Patterson]
 - github: update PR template's contributing URL (#1120) [Chris Patterson]
 - docs: Rename HACKING.rst to CONTRIBUTING.rst (#1118)
 - testing: monkeypatch system_info call in unit tests (SC-533) (#1117)
 - Fix Vultr timeout and wait values (#1113) [eb3095]
 - lxd: add preference for LXD cloud-init.* config keys over user keys
   (#1108)
 - VMware: source /etc/network/interfaces.d/* on Debian
   [chengcheng-chcheng] (LP: #1950136)
 - Add cjp256 as contributor (#1109) [Chris Patterson]
 - integration_tests: Ensure log directory exists before symlinking to it
   (#1110)
 - testing: add growpart integration test (#1104)
 - integration_test: Speed up CI run time (#1111)
 - Some miscellaneous integration test fixes (SC-606) (#1103)
 - tests: specialize lxd_discovery test for lxd_vm vendordata (#1106)
 - Add convenience symlink to integration test output (#1105)
 - Fix for set-name bug in networkd renderer (#1100)
   [Andrew Kutz] (LP: #1949407)
 - Wait for apt lock (#1034) (LP: #1944611)
 - testing: stop chef test from running on openstack (#1102)
 - alpine.py: add options to the apk upgrade command (#1089) [dermotbradley]

21.4
 - Azure: fallback nic needs to be reevaluated during reprovisioning
   (#1094) [Anh Vo]
 - azure: pps imds (#1093) [Anh Vo]
 - testing: Remove calls to 'install_new_cloud_init' (#1092)
 - Add LXD datasource (#1040)
 - Fix unhandled apt_configure case. (#1065) [Brett Holman]
 - Allow libexec for hotplug (#1088)
 - Add necessary mocks to test_ovf unit tests (#1087)
 - Remove (deprecated) apt-key (#1068) [Brett Holman] (LP: #1836336)
 - distros: Remove a completed "TODO" comment (#1086)
 - cc_ssh.py: Add configuration for controlling ssh-keygen output (#1083)
   [dermotbradley]
 - Add "install hotplug" module (SC-476) (#1069) (LP: #1946003)
 - hosts.alpine.tmpl: rearrange the order of short and long hostnames
   (#1084) [dermotbradley]
 - Add max version to docutils
 - cloudinit/dmi.py: Change warning to debug to prevent console display
   (#1082) [dermotbradley]
 - remove unnecessary EOF string in
   disable-sshd-keygen-if-cloud-init-active.conf (#1075) [Emanuele
   Giuseppe Esposito]
 - Add module 'write-files-deferred' executed in stage 'final' (#916)
   [Lucendio]
 - Bump pycloudlib to fix CI (#1080)
 - Remove pin in dependencies for jsonschema (#1078)
 - Add "Google" as possible system-product-name (#1077) [vteratipally]
 - Update Debian security suite for bullseye (#1076) [Johann Queuniet]
 - Leave the details of service management to the distro (#1074)
   [Andy Fiddaman]
 - Fix typos in setup.py (#1059) [Christian Clauss]
 - Update Azure _unpickle (SC-500) (#1067) (LP: #1946644)
 - cc_ssh.py: fix private key group owner and permissions (#1070)
   [Emanuele Giuseppe Esposito]
 - VMware: read network-config from ISO (#1066) [Thomas Weißschuh]
 - testing: mock sleep in gce unit tests (#1072)
 - CloudStack: fix data-server DNS resolution (#1004)
   [Olivier Lemasle] (LP: #1942232)
 - Fix unit test broken by pyyaml upgrade (#1071)
 - testing: add get_cloud function (SC-461) (#1038)
 - Inhibit sshd-keygen@.service if cloud-init is active (#1028)
   [Ryan Harper]
 - VMWARE: search the deployPkg plugin in multiarch dir (#1061)
   [xiaofengw-vmware] (LP: #1944946)
 - Fix set-name/interface DNS bug (#1058) [Andrew Kutz] (LP: #1946493)
 - Use specified tmp location for growpart (#1046) [jshen28]
 - .gitignore: ignore tags file for ctags users (#1057) [Brett Holman]
 - Allow comments in runcmd and report failed commands correctly (#1049)
   [Brett Holman] (LP: #1853146)
 - tox integration: pass the *_proxy, GOOGLE_*, GCP_* env vars (#1050)
   [Paride Legovini]
 - Allow disabling of network activation (SC-307) (#1048) (LP: #1938299)
 - renderer: convert relative imports to absolute (#1052) [Paride Legovini]
 - Support ETHx_IP6_GATEWAY, SET_HOSTNAME on OpenNebula (#1045)
   [Vlastimil Holer]
 - integration-requirements: bump the pycloudlib commit (#1047)
   [Paride Legovini]
 - Allow Vultr to set MTU and use as-is configs (#1037) [eb3095]
 - pin jsonschema in requirements.txt (#1043)
 - testing: remove cloud_tests (#1020)
 - Add andgein as contributor (#1042) [Andrew Gein]
 - Make wording for module frequency consistent (#1039) [Nicolas Bock]
 - Use ascii code for growpart (#1036) [jshen28]
 - Add jshen28 as contributor (#1035) [jshen28]
 - Skip test_cache_purged_on_version_change on Azure (#1033)
 - Remove invalid ssh_import_id from examples (#1031)
 - Cleanup Vultr support (#987) [eb3095]
 - docs: update cc_disk_setup for fs to raw disk (#1017)
 - HACKING.rst: change contact info to James Falcon (#1030)
 - tox: bump the pinned flake8 and pylint version (#1029)
   [Paride Legovini] (LP: #1944414)
 - Add retries to DataSourceGCE.py when connecting to GCE (#1005)
   [vteratipally]
 - Set Azure to apply networking config every BOOT (#1023)
 - Add connectivity_url to Oracle's EphemeralDHCPv4 (#988) (LP: #1939603)
 - docs: fix typo and include sudo for report bugs commands (#1022)
   [Renan Rodrigo] (LP: #1940236)
 - VMware: Fix typo introduced in #947 and add test (#1019) [PengpengSun]
 - Update IPv6 entries in /etc/hosts (#1021) [Richard Hansen] (LP: #1943798)
 - Integration test upgrades for the 21.3-1 SRU (#1001)
 - Add Jille to tools/.github-cla-signers (#1016) [Jille Timmermans]
 - Improve ug_util.py (#1013) [Shreenidhi Shedi]
 - Support openEuler OS (#1012) [zhuzaifangxuele]
 - ssh_utils.py: ignore when sshd_config options are not key/value pairs
   (#1007) [Emanuele Giuseppe Esposito]
 - Set Azure to only update metadata on BOOT_NEW_INSTANCE (#1006)
 - cc_update_etc_hosts: Use the distribution-defined path for the hosts
   file (#983) [Andy Fiddaman]
 - Add CloudLinux OS support (#1003) [Alexandr Kravchenko]
 - puppet config: add the start_agent option (#1002) [Andrew Bogott]
 - Fix `make style-check` errors (#1000) [Shreenidhi Shedi]
 - Make cloud-id copyright year (#991) [Andrii Podanenko]
 - Add support to accept-ra in networkd renderer (#999) [Shreenidhi Shedi]
 - Update ds-identify to pass shellcheck (#979) [Andrew Kutz]
 - Azure: Retry dhcp on timeouts when polling reprovisiondata (#998)
   [aswinrajamannar]
 - testing: Fix ssh keys integration test (#992)

21.3
 - Azure: During primary nic detection, check interface status continuously
   before rebinding again (#990) [aswinrajamannar]
 - Fix home permissions modified by ssh module (SC-338) (#984)
   (LP: #1940233)
 - Add integration test for sensitive jinja substitution (#986)
 - Ignore hotplug socket when collecting logs (#985) (LP: #1940235)
 - testing: Add missing mocks to test_vmware.py (#982)
 - add Zadara Edge Cloud Platform to the supported clouds list (#963)
   [sarahwzadara]
 - testing: skip upgrade tests on LXD VMs (#980)
 - Only invoke hotplug socket when functionality is enabled (#952)
 - Revert unnecesary lcase in ds-identify (#978) [Andrew Kutz]
 - cc_resolv_conf: fix typos (#969) [Shreenidhi Shedi]
 - Replace broken httpretty tests with mock (SC-324) (#973)
 - Azure: Check if interface is up after sleep when trying to bring it up
   (#972) [aswinrajamannar]
 - Update dscheck_VMware's rpctool check (#970) [Shreenidhi Shedi]
 - Azure: Logging the detected interfaces (#968) [Moustafa Moustafa]
 - Change netifaces dependency to 0.10.4 (#965) [Andrew Kutz]
 - Azure: Limit polling network metadata on connection errors (#961)
   [aswinrajamannar]
 - Update inconsistent indentation (#962) [Andrew Kutz]
 - cc_puppet: support AIO installations and more (#960) [Gabriel Nagy]
 - Add Puppet contributors to CLA signers (#964) [Noah Fontes]
 - Datasource for VMware (#953) [Andrew Kutz]
 - photon: refactor hostname handling and add networkd activator (#958)
   [sshedi]
 - Stop copying ssh system keys and check folder permissions (#956)
   [Emanuele Giuseppe Esposito]
 - testing: port remaining cloud tests to integration testing framework
   (SC-191) (#955)
 - generate contents for ovf-env.xml when provisioning via IMDS (#959)
   [Anh Vo]
 - Add support for EuroLinux 7 && EuroLinux 8 (#957) [Aleksander Baranowski]
 - Implementing device_aliases as described in docs (#945)
   [Mal Graty] (LP: #1867532)
 - testing: fix test_ssh_import_id.py (#954)
 - Add ability to manage fallback network config on PhotonOS (#941) [sshedi]
 - Add VZLinux support (#951) [eb3095]
 - VMware: add network-config support in ovf-env.xml (#947) [PengpengSun]
 - Update pylint to v2.9.3 and fix the new issues it spots (#946)
   [Paride Legovini]
 - Azure: mount default provisioning iso before try device listing (#870)
   [Anh Vo]
 - Document known hotplug limitations (#950)
 - Initial hotplug support (#936)
 - Fix MIME policy failure on python version upgrade (#934)
 - run-container: fixup the centos repos baseurls when using http_proxy
   (#944) [Paride Legovini]
 - tools: add support for building rpms on rocky linux (#940)
 - ssh-util: allow cloudinit to merge all ssh keys into a custom user
   file, defined in AuthorizedKeysFile (#937) [Emanuele Giuseppe Esposito]
   (LP: #1911680)
 - VMware: new "allow_raw_data" switch (#939) [xiaofengw-vmware]
 - bump pycloudlib version (#935)
 - add renanrodrigo as a contributor (#938) [Renan Rodrigo]
 - testing: simplify test_upgrade.py (#932)
 - freebsd/net_v1 format: read MTU from root (#930) [Gonéri Le Bouder]
 - Add new network activators to bring up interfaces (#919)
 - - Detect a Python version change and clear the cache (#857)
   [Robert Schweikert]
 - cloud_tests: fix the Impish release name (#931) [Paride Legovini]
 - Removed distro specific network code from Photon (#929) [sshedi]
 - Add support for VMware PhotonOS (#909) [sshedi]
 - cloud_tests: add impish release definition (#927) [Paride Legovini]
 - docs: fix stale links rename master branch to main (#926)
 - Fix DNS in NetworkState (SC-133) (#923)
 - tests: Add 'adhoc' mark for integration tests (#925)
 - Fix the spelling of "DigitalOcean" (#924) [Mark Mercado]
 - Small Doc Update for ReportEventStack and Test (#920) [Mike Russell]
 - Replace deprecated collections.Iterable with abc replacement (#922)
   (LP: #1932048)
 - testing: OCI availability domain is now required (SC-59) (#910)
 - add DragonFlyBSD support (#904) [Gonéri Le Bouder]
 - Use instance-data-sensitive.json in jinja templates (SC-117) (#917)
   (LP: #1931392)
 - doc: Update NoCloud docs stating required files (#918) (LP: #1931577)
 - build-on-netbsd: don't pin a specific py3 version (#913)
   [Gonéri Le Bouder]
 - - Create the log file with 640 permissions (#858) [Robert Schweikert]
 - Allow braces to appear in dhclient output (#911) [eb3095]
 - Docs: Replace all freenode references with libera (#912)
 - openbsd/net: flush the route table on net restart (#908)
   [Gonéri Le Bouder]
 - Add Rocky Linux support to cloud-init (#906) [Louis Abel]
 - Add "esposem" as contributor (#907) [Emanuele Giuseppe Esposito]
 - Add integration test for #868 (#901)
 - Added support for importing keys via primary/security mirror clauses
   (#882) [Paul Goins] (LP: #1925395)
 - [examples] config-user-groups expire in the future (#902)
   [Geert Stappers]
 - BSD: static network, set the mtu (#894) [Gonéri Le Bouder]
 - Add integration test for lp-1920939 (#891)
 - Fix unit tests breaking from new httpretty version (#903)
 - Allow user control over update events (#834)
 - Update test characters in substitution unit test (#893)
 - cc_disk_setup.py: remove UDEVADM_CMD definition as not used (#886)
   [dermotbradley]
 - Add AlmaLinux OS support (#872) [Andrew Lukoshko]

21.2
 - Add \r\n check for SSH keys in Azure (#889)
 - Revert "Add support to resize rootfs if using LVM (#721)" (#887)
   (LP: #1922742)
 - Add Vultaire as contributor (#881) [Paul Goins]
 - Azure: adding support for consuming userdata from IMDS (#884) [Anh Vo]
 - test_upgrade: modify test_upgrade_package to run for more sources (#883)
 - Fix chef module run failure when chef_license is set (#868) [Ben Hughes]
 - Azure: Retry net metadata during nic attach for non-timeout errs (#878)
   [aswinrajamannar]
 - Azure: Retrieve username and hostname from IMDS (#865) [Thomas Stringer]
 - Azure: eject the provisioning iso before reporting ready (#861) [Anh Vo]
 - Use `partprobe` to re-read partition table if available (#856)
   [Nicolas Bock] (LP: #1920939)
 - fix error on upgrade caused by new vendordata2 attributes (#869)
   (LP: #1922739)
 - add prefer_fqdn_over_hostname config option (#859)
   [hamalq] (LP: #1921004)
 - Emit dots on travis to avoid timeout (#867)
 - doc: Replace remaining references to user-scripts as a config module
   (#866) [Ryan Harper]
 - azure: Removing ability to invoke walinuxagent (#799) [Anh Vo]
 - Add Vultr support (#827) [David Dymko]
 - Fix unpickle for source paths missing run_dir (#863)
   [lucasmoura] (LP: #1899299)
 - sysconfig: use BONDING_MODULE_OPTS on SUSE (#831) [Jens Sandmann]
 - bringup_static_routes: fix gateway check (#850) [Petr Fedchenkov]
 - add hamalq user (#860) [hamalq]
 - Add support to resize rootfs if using LVM (#721)
   [Eduardo Otubo] (LP: #1799953)
 - Fix mis-detecting network configuration in initramfs cmdline (#844)
   (LP: #1919188)
 - tools/write-ssh-key-fingerprints: do not display empty header/footer
   (#817) [dermotbradley]
 - Azure helper: Ensure Azure http handler sleeps between retries (#842)
   [Johnson Shi]
 - Fix chef apt source example (#826) [timothegenzmer]
 - .travis.yml: generate an SSH key before running tests (#848)
 - write passwords only to serial console, lock down cloud-init-output.log
   (#847) (LP: #1918303)
 - Fix apt default integration test (#845)
 - integration_tests: bump pycloudlib dependency (#846)
 - Fix stack trace if vendordata_raw contained an array (#837) [eb3095]
 - archlinux: Fix broken locale logic (#841)
   [Kristian Klausen] (LP: #1402406)
 - Integration test for #783 (#832)
 - integration_tests: mount more paths IN_PLACE (#838)
 - Fix requiring device-number on EC2 derivatives (#836) (LP: #1917875)
 - Remove the vi comment from the part-handler example (#835)
 - net: exclude OVS internal interfaces in get_interfaces (#829)
   (LP: #1912844)
 - tox.ini: pass OS_* environment variables to integration tests (#830)
 - integration_tests: add OpenStack as a platform (#804)
 - Add flexibility to IMDS api-version (#793) [Thomas Stringer]
 - Fix the TestApt tests using apt-key on Xenial and Hirsute (#823)
   [Paride Legovini] (LP: #1916629)
 - doc: remove duplicate "it" from nocloud.rst (#825) [V.I. Wood]
 - archlinux: Use hostnamectl to set the transient hostname (#797)
   [Kristian Klausen]
 - cc_keys_to_console.py: Add documentation for recently added config key
   (#824) [dermotbradley]
 - Update cc_set_hostname documentation (#818) [Toshi Aoyama]

21.1
 - Azure: Support for VMs without ephemeral resource disks. (#800)
   [Johnson Shi] (LP: #1901011)
 - cc_keys_to_console: add option to disable key emission (#811)
   [Michael Hudson-Doyle] (LP: #1915460)
 - integration_tests: introduce lxd_use_exec mark (#802)
 - azure: case-insensitive UUID to avoid new IID during kernel upgrade
   (#798) (LP: #1835584)
 - stale.yml: don't ask submitters to reopen PRs (#816)
 - integration_tests: fix use of SSH agent within tox (#815)
 - integration_tests: add UPGRADE CloudInitSource (#812)
 - integration_tests: use unique MAC addresses for tests (#813)
 - Update .gitignore (#814)
 - Port apt cloud_tests to integration tests (#808)
 - integration_tests: fix test_gh626 on LXD VMs (#809)
 - Fix attempting to decode binary data in test_seed_random_data test (#806)
 - Remove wait argument from tests with session_cloud calls (#805)
 - Datasource for UpCloud (#743) [Antti Myyrä]
 - test_gh668: fix failure on LXD VMs (#801)
 - openstack: read the dynamic metadata group vendor_data2.json (#777)
   [Andrew Bogott] (LP: #1841104)
 - includedir in suoders can be prefixed by "arroba" (#783)
   [Jordi Massaguer Pla]
 - [VMware] change default max wait time to 15s (#774) [xiaofengw-vmware]
 - Revert integration test associated with reverted #586 (#784)
 - Add jordimassaguerpla as contributor (#787) [Jordi Massaguer Pla]
 - Add Rick Harding to CLA signers (#792) [Rick Harding]
 - HACKING.rst: add clarifying note to LP CLA process section (#789)
 - Stop linting cloud_tests (#791)
 - cloud-tests: update cryptography requirement (#790) [Joshua Powers]
 - Remove 'remove-raise-on-failure' calls from integration_tests (#788)
 - Use more cloud defaults in integration tests (#757)
 - Adding self to cla signers (#776) [Andrew Bogott]
 - doc: avoid two warnings (#781) [Dan Kenigsberg]
 - Use proper spelling for Red Hat (#778) [Dan Kenigsberg]
 - Add antonyc to .github-cla-signers (#747) [Anton Chaporgin]
 - integration_tests: log image serial if available (#772)
 - [VMware] Support cloudinit raw data feature (#691) [xiaofengw-vmware]
 - net: Fix static routes to host in eni renderer (#668) [Pavel Abalikhin]
 - .travis.yml: don't run cloud_tests in CI (#756)
 - test_upgrade: add some missing commas (#769)
 - cc_seed_random: update documentation and fix integration test (#771)
   (LP: #1911227)
 - Fix test gh-632 test to only run on NoCloud (#770) (LP: #1911230)
 - archlinux: fix package upgrade command handling (#768) [Bao Trinh]
 - integration_tests: add integration test for LP: #1910835 (#761)
 - Fix regression with handling of IMDS ssh keys (#760) [Thomas Stringer]
 - integration_tests: log cloud-init version in SUT (#758)
 - Add ajmyyra as contributor (#742) [Antti Myyrä]
 - net_convert: add some missing help text (#755)
 - Missing IPV6_AUTOCONF=no to render sysconfig dhcp6 stateful on RHEL
   (#753) [Eduardo Otubo]
 - doc: document missing IPv6 subnet types (#744) [Antti Myyrä]
 - Add example configuration for datasource `AliYun` (#751) [Xiaoyu Zhong]
 - integration_tests: add SSH key selection settings (#754)
 - fix a typo in man page cloud-init.1 (#752) [Amy Chen]
 - network-config-format-v2.rst: add Netplan Passthrough section (#750)
 - stale: re-enable post holidays (#749)
 - integration_tests: port ca_certs tests from cloud_tests (#732)
 - Azure: Add telemetry for poll IMDS (#741) [Johnson Shi]
 - doc: move testing section from HACKING to its own doc (#739)
 - No longer allow integration test failures on travis (#738)
 - stale: fix error in definition (#740)
 - integration_tests: set log-cli-level to INFO by default (#737)
 - PULL_REQUEST_TEMPLATE.md: use backticks around commit message (#736)
 - stale: disable check for holiday break (#735)
 - integration_tests: log the path we collect logs into (#733)
 - .travis.yml: add (most) supported Python versions to CI (#734)
 - integration_tests: fix IN_PLACE CLOUD_INIT_SOURCE (#731)
 - cc_ca_certs: add RHEL support (#633) [cawamata]
 - Azure: only generate config for NICs with addresses (#709)
   [Thomas Stringer]
 - doc: fix CloudStack configuration example (#707) [Olivier Lemasle]
 - integration_tests: restrict test_lxd_bridge appropriately (#730)
 - Add integration tests for CLI functionality (#729)
 - Integration test for gh-626 (#728)
 - Some test_upgrade fixes (#726)
 - Ensure overriding test vars with env vars works for booleans (#727)
 - integration_tests: port lxd_bridge test from cloud_tests (#718)
 - Integration test for gh-632. (#725)
 - Integration test for gh-671 (#724)
 - integration-requirements.txt: bump pycloudlib commit (#723)
 - Drop unnecessary shebang from cmd/main.py (#722) [Eduardo Otubo]
 - Integration test for LP: #1813396 and #669 (#719)
 - integration_tests: include timestamp in log output (#720)
 - integration_tests: add test for LP: #1898997 (#713)
 - Add integration test for power_state_change module (#717)
 - Update documentation for network-config-format-v2 (#701) [ggiesen]
 - sandbox CA Cert tests to not require ca-certificates (#715)
   [Eduardo Otubo]
 - Add upgrade integration test (#693)
 - Integration test for 570 (#712)
 - Add ability to keep snapshotted images in integration tests (#711)
 - Integration test for pull #586 (#706)
 - integration_tests: introduce skipping of tests by OS (#702)
 - integration_tests: introduce IntegrationInstance.restart (#708)
 - Add lxd-vm to list of valid integration test platforms (#705)
 - Adding BOOTPROTO = dhcp to render sysconfig dhcp6 stateful on RHEL
   (#685) [Eduardo Otubo]
 - Delete image snapshots created for integration tests (#682)
 - Parametrize ssh_keys_provided integration test (#700) [lucasmoura]
 - Drop use_sudo attribute on IntegrationInstance (#694) [lucasmoura]
 - cc_apt_configure: add riscv64 as a ports arch (#687)
   [Dimitri John Ledkov]
 - cla: add xnox (#692) [Dimitri John Ledkov]
 - Collect logs from integration test runs (#675)

20.4.1
 - Revert "ssh_util: handle non-default AuthorizedKeysFile config (#586)"

20.4
 - tox: avoid tox testenv subsvars for xenial support (#684)
 - Ensure proper root permissions in integration tests (#664) [James Falcon]
 - LXD VM support in integration tests (#678) [James Falcon]
 - Integration test for fallocate falling back to dd (#681) [James Falcon]
 - .travis.yml: correctly integration test the built .deb (#683)
 - Ability to hot-attach NICs to preprovisioned VMs before reprovisioning
   (#613) [aswinrajamannar]
 - Support configuring SSH host certificates. (#660) [Jonathan Lung]
 - add integration test for LP: #1900837 (#679)
 - cc_resizefs on FreeBSD: Fix _can_skip_ufs_resize (#655)
   [Mina Galić] (LP: #1901958, #1901958)
 - DataSourceAzure: push dmesg log to KVP (#670) [Anh Vo]
 - Make mount in place for tests work (#667) [James Falcon]
 - integration_tests: restore emission of settings to log (#657)
 - DataSourceAzure: update password for defuser if exists (#671) [Anh Vo]
 - tox.ini: only select "ci" marked tests for CI runs (#677)
 - Azure helper: Increase Azure Endpoint HTTP retries (#619) [Johnson Shi]
 - DataSourceAzure: send failure signal on Azure datasource failure (#594)
   [Johnson Shi]
 - test_persistence: simplify VersionIsPoppedFromState (#674)
 - only run a subset of integration tests in CI (#672)
 - cli: add --system param to allow validating system user-data on a
   machine (#575)
 - test_persistence: add VersionIsPoppedFromState test (#673)
 - introduce an upgrade framework and related testing (#659)
 - add --no-tty option to gpg (#669) [Till Riedel] (LP: #1813396)
 - Pin pycloudlib to a working commit (#666) [James Falcon]
 - DataSourceOpenNebula: exclude SRANDOM from context output (#665)
 - cloud_tests: add hirsute release definition (#662)
 - split integration and cloud_tests requirements (#652)
 - faq.rst: add warning to answer that suggests running `clean` (#661)
 - Fix stacktrace in DataSourceRbxCloud if no metadata disk is found (#632)
   [Scott Moser]
 - Make wakeonlan Network Config v2 setting actually work (#626)
   [dermotbradley]
 - HACKING.md: unify network-refactoring namespace (#658) [Mina Galić]
 - replace usage of dmidecode with kenv on FreeBSD (#621) [Mina Galić]
 - Prevent timeout on travis integration tests. (#651) [James Falcon]
 - azure: enable pushing the log to KVP from the last pushed byte  (#614)
   [Moustafa Moustafa]
 - Fix launch_kwargs bug in integration tests (#654) [James Falcon]
 - split read_fs_info into linux & freebsd parts (#625) [Mina Galić]
 - PULL_REQUEST_TEMPLATE.md: expand commit message section (#642)
 - Make some language improvements in growpart documentation (#649)
   [Shane Frasier]
 - Revert ".travis.yml: use a known-working version of lxd (#643)" (#650)
 - Fix not sourcing default 50-cloud-init ENI file on Debian (#598)
   [WebSpider]
 - remove unnecessary reboot from gpart resize (#646) [Mina Galić]
 - cloudinit: move dmi functions out of util (#622) [Scott Moser]
 - integration_tests: various launch improvements (#638)
 - test_lp1886531: don't assume /etc/fstab exists (#639)
 - Remove Ubuntu restriction from PR template (#648) [James Falcon]
 - util: fix mounting of vfat on *BSD (#637) [Mina Galić]
 - conftest: improve docstring for disable_subp_usage (#644)
 - doc: add example query commands to debug Jinja templates (#645)
 - Correct documentation and testcase data for some user-data YAML (#618)
   [dermotbradley]
 - Hetzner: Fix instance_id / SMBIOS serial comparison (#640)
   [Markus Schade]
 - .travis.yml: use a known-working version of lxd (#643)
 - tools/build-on-freebsd: fix comment explaining purpose of the script
   (#635) [Mina Galić]
 - Hetzner: initialize instance_id from system-serial-number (#630)
   [Markus Schade] (LP: #1885527)
 - Explicit set IPV6_AUTOCONF and IPV6_FORCE_ACCEPT_RA on static6 (#634)
   [Eduardo Otubo]
 - get_interfaces: don't exclude Open vSwitch bridge/bond members (#608)
   [Lukas Märdian] (LP: #1898997)
 - Add config modules for controlling IBM PowerVM RMC. (#584)
   [Aman306] (LP: #1895979)
 - Update network config docs to clarify MAC address quoting (#623)
   [dermotbradley]
 - gentoo: fix hostname rendering when value has a comment (#611)
   [Manuel Aguilera]
 - refactor integration testing infrastructure (#610) [James Falcon]
 - stages: don't reset permissions of cloud-init.log every boot (#624)
   (LP: #1900837)
 - docs: Add how to use cloud-localds to boot qemu (#617) [Joshua Powers]
 - Drop vestigial update_resolve_conf_file function (#620) [Scott Moser]
 - cc_mounts: correctly fallback to dd if fallocate fails (#585)
   (LP: #1897099)
 - .travis.yml: add integration-tests to Travis matrix (#600)
 - ssh_util: handle non-default AuthorizedKeysFile config (#586)
   [Eduardo Otubo]
 - Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo]
 - bddeb: new --packaging-branch argument to pull packaging from branch
   (#576) [Paride Legovini]
 - Add more integration tests (#615) [lucasmoura]
 - DataSourceAzure: write marker file after report ready in preprovisioning
   (#590) [Johnson Shi]
 - integration_tests: emit settings to log during setup (#601)
 - integration_tests: implement citest tests run in Travis (#605)
 - Add Azure support to integration test framework (#604) [James Falcon]
 - openstack: consider product_name as valid chassis tag (#580)
   [Adrian Vladu] (LP: #1895976)
 - azure: clean up and refactor report_diagnostic_event (#563) [Johnson Shi]
 - net: add the ability to blacklist network interfaces based on driver
   during enumeration of physical network devices (#591) [Anh Vo]
 - integration_tests: don't error on cloud-init failure (#596)
 - integration_tests: improve cloud-init.log assertions (#593)
 - conftest.py: remove top-level import of httpretty (#599)
 - tox.ini: add integration-tests testenv definition (#595)
 - PULL_REQUEST_TEMPLATE.md: empty checkboxes need a space (#597)
 - add integration test for LP: #1886531 (#592)
 - Initial implementation of integration testing infrastructure (#581)
   [James Falcon]
 - Fix name of ntp and chrony service on CentOS and RHEL. (#589)
   [Scott Moser] (LP: #1897915)
 - Adding a PR template (#587) [James Falcon]
 - Azure parse_network_config uses fallback cfg when generate IMDS network
   cfg fails (#549) [Johnson Shi]
 - features: refresh docs for easier out-of-context reading (#582)
 - Fix typo in resolv_conf module's description (#578) [Wacław Schiller]
 - cc_users_groups: minor doc formatting fix (#577)
 - Fix typo in disk_setup module's description (#579) [Wacław Schiller]
 - Add vendor-data support to seedfrom parameter for NoCloud and OVF (#570)
   [Johann Queuniet]
 - boot.rst: add First Boot Determination section (#568) (LP: #1888858)
 - opennebula.rst: minor readability improvements (#573) [Mina Galić]
 - cloudinit: remove unused LOG variables (#574)
 - create a shutdown_command method in distro classes (#567)
   [Emmanuel Thomé]
 - user_data: remove unused constant (#566)
 - network: Fix type and respect name when rendering vlan in
   sysconfig. (#541) [Eduardo Otubo] (LP: #1788915, #1826608)
 - Retrieve SSH keys from IMDS first with OVF as a fallback (#509)
   [Thomas Stringer]
 - Add jqueuniet as contributor (#569) [Johann Queuniet]
 - distros: minor typo fix (#562)
 - Bump the integration-requirements versioned dependencies (#565)
   [Paride Legovini]
 - network-config-format-v1: fix typo in nameserver example (#564)
   [Stanislas]
 - Run cloud-init-local.service after the hv_kvp_daemon (#505)
   [Robert Schweikert]
 - Add method type hints for Azure helper (#540) [Johnson Shi]
 - systemd: add Before=shutdown.target when Conflicts=shutdown.target is
   used (#546) [Paride Legovini]
 - LXD: detach network from profile before deleting it (#542)
   [Paride Legovini] (LP: #1776958)
 - redhat spec: add missing BuildRequires (#552) [Paride Legovini]
 - util: remove debug statement (#556) [Joshua Powers]
 - Fix cloud config on chef example (#551) [lucasmoura]

20.3
 - Azure: Add netplan driver filter when using hv_netvsc driver (#539)
   [James Falcon] (LP: #1830740)
 - query: do not handle non-decodable non-gzipped content (#543)
 - DHCP sandboxing failing on noexec mounted /var/tmp (#521) [Eduardo Otubo]
 - Update the list of valid ssh keys. (#487)
   [Ole-Martin Bratteng] (LP: #1877869)
 - cmd: cloud-init query to handle compressed userdata (#516) (LP: #1889938)
 - Pushing cloud-init log to the KVP (#529) [Moustafa Moustafa]
 - Add Alpine Linux support. (#535) [dermotbradley]
 - Detect kernel version before swap file creation (#428) [Eduardo Otubo]
 - cli: add devel make-mime subcommand (#518)
 - user-data: only verify mime-types for TYPE_NEEDED and x-shellscript
   (#511) (LP: #1888822)
 - DataSourceOracle: retry twice (and document why we retry at all) (#536)
 - Refactor Azure report ready code (#468) [Johnson Shi]
 - tox.ini: pin correct version of httpretty in xenial{,-dev} envs (#531)
 - Support Oracle IMDSv2 API (#528) [James Falcon]
 - .travis.yml: run a doc build during CI (#534)
 - doc/rtd/topics/datasources/ovf.rst: fix doc8 errors (#533)
 - Fix 'Users and Groups' configuration documentation (#530) [sshedi]
 - cloudinit.distros: update docstrings of add_user and create_user (#527)
 - Fix headers for device types in network v2 docs (#532)
   [Caleb Xavier Berger]
 - Add AlexBaranowski as contributor (#508) [Aleksander Baranowski]
 - DataSourceOracle: refactor to use only OPC v1 endpoint (#493)
 - .github/workflows/stale.yml: s/Josh/Rick/ (#526)
 - Fix a typo in apt pipelining module (#525) [Xiao Liang]
 - test_util: parametrize devlist tests (#523) [James Falcon]
 - Recognize LABEL_FATBOOT labels (#513) [James Falcon] (LP: #1841466)
 - Handle additional identifier for SLES For HPC (#520) [Robert Schweikert]
 - Revert "test-requirements.txt: pin pytest to <6 (#512)" (#515)
 - test-requirements.txt: pin pytest to <6 (#512)
 - Add "tsanghan" as contributor (#504) [tsanghan]
 - fix brpm building (LP: #1886107)
 - Adding eandersson as a contributor (#502) [Erik Olof Gunnar Andersson]
 - azure: disable bouncing hostname when setting hostname fails (#494)
   [Anh Vo]
 - VMware: Support parsing DEFAULT-RUN-POST-CUST-SCRIPT (#441)
   [xiaofengw-vmware]
 - DataSourceAzure: Use ValueError when JSONDecodeError is not available
   (#490) [Anh Vo]
 - cc_ca_certs.py: fix blank line problem when removing CAs and adding
   new one (#483) [dermotbradley]
 - freebsd: py37-serial is now py37-pyserial (#492) [Gonéri Le Bouder]
 - ssh exit with non-zero status on disabled user (#472)
   [Eduardo Otubo] (LP: #1170059)
 - cloudinit: remove global disable of pylint W0107 and fix errors (#489)
 - networking: refactor wait_for_physdevs from cloudinit.net (#466)
   (LP: #1884626)
 - HACKING.rst: add pytest.param pytest gotcha (#481)
 - cloudinit: remove global disable of pylint W0105 and fix errors (#480)
 - Fix two minor warnings (#475)
 - test_data: fix faulty patch (#476)
 - cc_mounts: handle missing fstab (#484) (LP: #1886531)
 - LXD cloud_tests: support more lxd image formats (#482) [Paride Legovini]
 - Add update_etc_hosts as default module on *BSD (#479) [Adam Dobrawy]
 - cloudinit: fix tip-pylint failures and bump pinned pylint version (#478)
 - Added BirknerAlex as contributor and sorted the file (#477)
   [Alexander Birkner]
 - Update list of types of modules in cli.rst [saurabhvartak1982]
 - tests: use markers to configure disable_subp_usage (#473)
 - Add mention of vendor-data to no-cloud format documentation (#470)
   [Landon Kirk]
 - Fix broken link to OpenStack metadata service docs (#467)
   [Matt Riedemann]
 - Disable ec2 mirror for non aws instances (#390)
   [lucasmoura] (LP: #1456277)
 - cloud_tests: don't pass --python-version to read-dependencies (#465)
 - networking: refactor is_physical from cloudinit.net (#457) (LP: #1884619)
 - Enable use of the caplog fixture in pytest tests, and add a
   cc_final_message test using it (#461)
 - RbxCloud: Add support for FreeBSD (#464) [Adam Dobrawy]
 - Add schema for cc_chef module (#375) [lucasmoura] (LP: #1858888)
 - test_util: add (partial) testing for util.mount_cb (#463)
 - .travis.yml: revert to installing ubuntu-dev-tools (#460)
 - HACKING.rst: add details of net refactor tracking (#456)
 - .travis.yml: rationalise installation of dependencies in host (#449)
 - Add dermotbradley as contributor. (#458) [dermotbradley]
 - net/networking: remove unused functions/methods (#453)
 - distros.networking: initial implementation of layout (#391)
 - cloud-init.service.tmpl: use "rhel" instead of "redhat" (#452)
 - Change from redhat to rhel in systemd generator tmpl (#450)
   [Eduardo Otubo]
 - Hetzner: support reading user-data that is base64 encoded. (#448)
   [Scott Moser] (LP: #1884071)
 - HACKING.rst: add strpath gotcha to testing gotchas section (#446)
 - cc_final_message: don't create directories when writing boot-finished
   (#445) (LP: #1883903)
 - .travis.yml: only store new schroot if something has changed (#440)
 - util: add ensure_dir_exists parameter to write_file (#443)
 - printing the error stream of the dhclient process before killing it
   (#369) [Moustafa Moustafa]
 - Fix link to the MAAS documentation (#442)
   [Paride Legovini] (LP: #1883666)
 - RPM build: disable the dynamic mirror URLs when using a proxy (#437)
   [Paride Legovini]
 - util: rename write_file's copy_mode parameter to preserve_mode (#439)
 - .travis.yml: use $TRAVIS_BUILD_DIR for lxd_image caching (#438)
 - cli.rst: alphabetise devel subcommands and add net-convert to list (#430)
 - Default to UTF-8 in /var/log/cloud-init.log (#427) [James Falcon]
 - travis: cache the chroot we use for package builds (#429)
 - test: fix all flake8 E126 errors (#425) [Joshua Powers]
 - Fixes KeyError for bridge with no "parameters:" setting (#423)
   [Brian Candler] (LP: #1879673)
 - When tools.conf does not exist, running cmd "vmware-toolbox-cmd
   config get deployPkg enable-custom-scripts", the return code will
   be EX_UNAVAILABLE(69), on this condition, it should not take it as
   error. (#413) [chengcheng-chcheng]
 - Document CloudStack data-server well-known hostname (#399) [Gregor Riepl]
 - test: move conftest.py to top-level, to cover tests/ also (#414)
 - Replace cc_chef is_installed with use of subp.is_exe. (#421)
   [Scott Moser]
 - Move runparts to subp. (#420) [Scott Moser]
 - Move subp into its own module. (#416) [Scott Moser]
 - readme: point at travis-ci.com (#417) [Joshua Powers]
 - New feature flag functionality and fix includes failing silently (#367)
   [James Falcon] (LP: #1734939)
 - Enhance poll imds logging (#365) [Moustafa Moustafa]
 - test: fix all flake8 E121 and E123 errors (#404) [Joshua Powers]
 - test: fix all flake8 E241 (#403) [Joshua Powers]
 - test: ignore flake8 E402 errors in main.py (#402) [Joshua Powers]
 - cc_grub_dpkg: determine idevs in more robust manner with grub-probe
   (#358) [Matthew Ruffell] (LP: #1877491)
 - test: fix all flake8 E741 errors (#401) [Joshua Powers]
 - tests: add groovy integration tests for ubuntu (#400)
 - Enable chef_license support for chef infra client (#389) [Bipin Bachhao]
 - testing: use flake8 again (#392) [Joshua Powers]
 - enable Puppet, Chef mcollective in default config (#385)
   [Mina Galić (deprecated: Igor Galić)] (LP: #1880279)
 - HACKING.rst: introduce .net -> Networking refactor section (#384)
 - Travis: do not install python3-contextlib2 (dropped dependency) (#388)
   [Paride Legovini]
 - HACKING: mention that .github-cla-signers is alpha-sorted (#380)
 - Add bipinbachhao as contributor (#379) [Bipin Bachhao]
 - cc_snap: validate that assertions property values are strings (#370)
 - conftest: implement partial disable_subp_usage (#371)
 - test_resolv_conf: refresh stale comment (#374)
 - cc_snap: apply validation to snap.commands properties (#364)
 - make finding libc platform independent (#366)
   [Mina Galić (deprecated: Igor Galić)]
 - doc/rtd/topics/faq: Updates LXD docs links to current site (#368) [TomP]
 - templater: drop Jinja Python 2 compatibility shim (#353)
 - cloudinit: minor pylint fixes (#360)
 - cloudinit: remove unneeded __future__ imports (#362)
 - migrating momousta lp user to Moustafa-Moustafa GitHub user (#361)
   [Moustafa Moustafa]
 - cloud_tests: emit dots on Travis while fetching images (#347)
 - Add schema to apt configure config (#357) [lucasmoura] (LP: #1858884)
 - conftest: add docs and tests regarding CiTestCase's subp functionality
   (#343)
 - analyze/dump: refactor shared string into variable (#350)
 - doc: update boot.rst with correct timing of runcmd (#351)
 - HACKING.rst: change contact info to Rick Harding (#359) [lucasmoura]
 - HACKING.rst: guide people to add themselves to the CLA file (#349)
 - HACKING.rst: more unit testing documentation (#354)
 - .travis.yml: don't run lintian during integration test package builds
   (#352)
 - Add test to ensure docs examples are valid cloud-init configs (#355)
   [James Falcon] (LP: #1876414)
 - make suse and sles support 127.0.1.1 (#336) [chengcheng-chcheng]
 - Create tests to validate schema examples (#348)
   [lucasmoura] (LP: #1876412)
 - analyze/dump: add support for Amazon Linux 2 log lines (#346)
   (LP: #1876323)
 - bsd: upgrade support (#305) [Gonéri Le Bouder]
 - Add lucasmoura as contributor (#345) [lucasmoura]
 - Add "therealfalcon" as contributor (#344) [James Falcon]
 - Adapt the package building scripts to use Python 3 (#231)
   [Paride Legovini]
 - DataSourceEc2: use metadata's NIC ordering to determine route-metrics
   (#342) (LP: #1876312)
 - .travis.yml: introduce caching (#329)
 - cc_locale: introduce schema (#335)
 - doc/rtd/conf.py: bump copyright year to 2020 (#341)
 - yum_add_repo: Add Centos to the supported distro list (#340)

20.2
 - doc/format: reference make-mime.py instead of an inline script (#334)
 - Add docs about  creating parent folders (#330) [Adrian Wilkins]
 - DataSourceNoCloud/OVF: drop claim to support FTP (#333) (LP: #1875470)
 - schema: ignore spurious pylint error (#332)
 - schema: add json schema for write_files module (#152)
 - BSD: find_devs_with_ refactoring (#298) [Gonéri Le Bouder]
 - nocloud: drop work around for Linux 2.6 (#324) [Gonéri Le Bouder]
 - cloudinit: drop dependencies on unittest2 and contextlib2 (#322)
 - distros: handle a potential mirror filtering error case (#328)
 - log: remove unnecessary import fallback logic (#327)
 - .travis.yml: don't run integration test on ubuntu/* branches (#321)
 - More unit test documentation (#314)
 - conftest: introduce disable_subp_usage autouse fixture (#304)
 - YAML align indent sizes for docs readability  (#323) [Tak Nishigori]
 - network_state: add missing space to log message (#325)
 - tests: add missing mocks for get_interfaces_by_mac (#326) (LP: #1873910)
 - test_mounts: expand happy path test for both happy paths (#319)
 - cc_mounts: fix incorrect format specifiers (#316) (LP: #1872836)
 - swap file "size" being used before checked if str (#315) [Eduardo Otubo]
 - HACKING.rst: add pytest version gotchas section (#311)
 - docs: Add steps to re-run cloud-id and cloud-init (#313) [Joshua Powers]
 - readme: OpenBSD is now supported (#309) [Gonéri Le Bouder]
 - net: ignore 'renderer' key in netplan config (#306) (LP: #1870421)
 - Add support for NFS/EFS mounts (#300) [Andrew Beresford] (LP: #1870370)
 - openbsd: set_passwd should not unlock user (#289) [Gonéri Le Bouder]
 - tools/.github-cla-signers: add beezly as CLA signer (#301)
 - util: remove unnecessary lru_cache import fallback (#299)
 - HACKING.rst: reorganise/update CLA signature info (#297)
 - distros: drop leading/trailing hyphens from mirror URL labels (#296)
 - HACKING.rst: add note about variable annotations (#295)
 - CiTestCase: stop using and remove sys_exit helper (#283)
 - distros: replace invalid characters in mirror URLs with hyphens (#291)
   (LP: #1868232)
 - rbxcloud: gracefully handle arping errors (#262) [Adam Dobrawy]
 - Fix cloud-init ignoring some misdeclared mimetypes in user-data.
   [Kurt Garloff]
 - net: ubuntu focal prioritize netplan over eni even if both present
   (#267) (LP: #1867029)
 - cloudinit: refactor util.is_ipv4 to net.is_ipv4_address (#292)
 - net/cmdline: replace type comments with annotations (#294)
 - HACKING.rst: add Type Annotations design section (#293)
 - net: introduce is_ip_address function (#288)
 - CiTestCase: remove now-unneeded parse_and_read helper method (#286)
 - .travis.yml: allow 30 minutes of inactivity in cloud tests (#287)
 - sources/tests/test_init: drop use of deprecated inspect.getargspec (#285)
 - setup.py: drop NIH check_output implementation (#282)
 - Identify SAP Converged Cloud as OpenStack [Silvio Knizek]
 - add Openbsd support (#147) [Gonéri Le Bouder]
 - HACKING.rst: add examples of the two test class types (#278)
 - VMWware: support to update guest info gc status if enabled (#261)
   [xiaofengw-vmware]
 - Add lp-to-git mapping for kgarloff (#279)
 - set_passwords: avoid chpasswd on BSD (#268) [Gonéri Le Bouder]
 - HACKING.rst: add Unit Testing design section (#277)
 - util: read_cc_from_cmdline handle urlencoded yaml content (#275)
 - distros/tests/test_init: add tests for _get_package_mirror_info (#272)
 - HACKING.rst: add links to new Code Review Process doc (#276)
 - freebsd: ensure package update works (#273) [Gonéri Le Bouder]
 - doc: introduce Code Review Process documentation (#160)
 - tools: use python3 (#274)
 - cc_disk_setup: fix RuntimeError (#270) (LP: #1868327)
 - cc_apt_configure/util: combine search_for_mirror implementations (#271)
 - bsd: boottime does not depend on the libc soname (#269)
   [Gonéri Le Bouder]
 - test_oracle,DataSourceOracle: sort imports (#266)
 - DataSourceOracle: update .network_config docstring (#257)
 - cloudinit/tests: remove unneeded with_logs configuration (#263)
 - .travis.yml: drop stale comment (#255)
 - .gitignore: add more common directories (#258)
 - ec2: render network on all NICs and add secondary IPs as static (#114)
   (LP: #1866930)
 - ec2 json validation: fix the reference to the 'merged_cfg' key (#256)
   [Paride Legovini]
 - releases.yaml: quote the Ubuntu version numbers (#254) [Paride Legovini]
 - cloudinit: remove six from packaging/tooling (#253)
 - util/netbsd: drop six usage (#252)
 - workflows: introduce stale pull request workflow (#125)
 - cc_resolv_conf: introduce tests and stabilise output across Python
   versions (#251)
 - fix minor issue with resolv_conf template (#144) [andreaf74]
 - doc: CloudInit also support NetBSD (#250) [Gonéri Le Bouder]
 - Add Netbsd support (#62) [Gonéri Le Bouder]
 - tox.ini: avoid substition syntax that causes a traceback on xenial (#245)
 - Add pub_key_ed25519 to cc_phone_home (#237) [Daniel Hensby]
 - Introduce and use of a list of GitHub usernames that have signed CLA
   (#244)
 - workflows/cla.yml: use correct username for CLA check (#243)
 - tox.ini: use xenial version of jsonpatch in CI (#242)
 - workflows: CLA validation altered to fail status on pull_request (#164)
 - tox.ini: bump pyflakes version to 2.1.1 (#239)
 - cloudinit: move to pytest for running tests (#211)
 - instance-data: add cloud-init merged_cfg and sys_info keys to json
   (#214) (LP: #1865969)
 - ec2: Do not fallback to IMDSv1 on EC2 (#216)
 - instance-data: write redacted cfg to instance-data.json (#233)
   (LP: #1865947)
 - net: support network-config:disabled on the kernel commandline (#232)
   (LP: #1862702)
 - ec2: only redact token request headers in logs, avoid altering request
   (#230) (LP: #1865882)
 - docs: typo fixed: dta → data [Alexey Vazhnov]
 - Fixes typo on Amazon Web Services (#217) [Nick Wales]
 - Fix docs for OpenStack DMI Asset Tag (#228)
   [Mark T. Voelker] (LP: #1669875)
 - Add physical network type: cascading to openstack helpers (#200)
   [sab-systems]
 - tests: add focal integration tests for ubuntu (#225)

20.1
 - ec2: Do not log IMDSv2 token values, instead use REDACTED (#219)
   (LP: #1863943)
 - utils: use SystemRandom when generating random password. (#204)
   [Dimitri John Ledkov]
 - docs: mount_default_files is a list of 6 items, not 7 (#212)
 - azurecloud: fix issues with instances not starting (#205) (LP: #1861921)
 - unittest: fix stderr leak in cc_set_password random unittest
   output. (#208)
 - cc_disk_setup: add swap filesystem force flag (#207)
 - import sysvinit patches from freebsd-ports tree (#161) [Igor Galić]
 - docs: fix typo (#195) [Edwin Kofler]
 - sysconfig: distro-specific config rendering for BOOTPROTO option (#162)
   [Robert Schweikert] (LP: #1800854)
 - cloudinit: replace "from six import X" imports (except in util.py) (#183)
 - run-container: use 'test -n' instead of 'test ! -z' (#202)
   [Paride Legovini]
 - net/cmdline: correctly handle static ip= config (#201)
   [Dimitri John Ledkov] (LP: #1861412)
 - Replace mock library with unittest.mock (#186)
 - HACKING.rst: update CLA link (#199)
 - Scaleway: Fix DatasourceScaleway to avoid backtrace (#128)
   [Louis Bouchard]
 - cloudinit/cmd/devel/net_convert.py: add missing space (#191)
 - tools/run-container: drop support for python2 (#192) [Paride Legovini]
 - Print ssh key fingerprints using sha256 hash (#188) (LP: #1860789)
 - Make the RPM build use Python 3 (#190) [Paride Legovini]
 - cc_set_password: increase random pwlength from 9 to 20 (#189)
   (LP: #1860795)
 - .travis.yml: use correct Python version for xenial tests (#185)
 - cloudinit: remove ImportError handling for mock imports (#182)
 - Do not use fallocate in swap file creation on xfs. (#70)
   [Eduardo Otubo] (LP: #1781781)
 - .readthedocs.yaml: install cloud-init when building docs (#181)
   (LP: #1860450)
 - Introduce an RTD config file, and pin the Sphinx version to the RTD
   default (#180)
 - Drop most of the remaining use of six (#179)
 - Start removing dependency on six (#178)
 - Add Rootbox & HyperOne to list of cloud in README (#176) [Adam Dobrawy]
 - docs: add proposed SRU testing procedure (#167)
 - util: rename get_architecture to get_dpkg_architecture (#173)
 - Ensure util.get_architecture() runs only once (#172)
 - Only use gpart if it is the BSD gpart (#131) [Conrad Hoffmann]
 - freebsd: remove superflu exception mapping (#166) [Gonéri Le Bouder]
 - ssh_auth_key_fingerprints_disable test: fix capitalization (#165)
   [Paride Legovini]
 - util: move uptime's else branch into its own boottime function (#53)
   [Igor Galić] (LP: #1853160)
 - workflows: add contributor license agreement checker (#155)
 - net: fix rendering of 'static6' in network config (#77) (LP: #1850988)
 - Make tests work with Python 3.8 (#139) [Conrad Hoffmann]
 - fixed minor bug with mkswap in cc_disk_setup.py (#143) [andreaf74]
 - freebsd: fix create_group() cmd (#146) [Gonéri Le Bouder]
 - doc: make apt_update example consistent (#154)
 - doc: add modules page toc with links (#153) (LP: #1852456)
 - Add support for the amazon variant in cloud.cfg.tmpl (#119)
   [Frederick Lefebvre]
 - ci: remove Python 2.7 from CI runs (#137)
 - modules: drop cc_snap_config config module (#134)
 - migrate-lp-user-to-github: ensure Launchpad repo exists (#136)
 - docs: add initial troubleshooting to FAQ (#104) [Joshua Powers]
 - doc: update cc_set_hostname frequency and descrip (#109)
   [Joshua Powers] (LP: #1827021)
 - freebsd: introduce the freebsd renderer (#61) [Gonéri Le Bouder]
 - cc_snappy: remove deprecated module (#127)
 - HACKING.rst: clarify that everyone needs to do the LP->GH dance (#130)
 - freebsd: cloudinit service requires devd (#132) [Gonéri Le Bouder]
 - cloud-init: fix capitalisation of SSH (#126)
 - doc: update cc_ssh clarify host and auth keys
   [Joshua Powers] (LP: #1827021)
 - ci: emit names of tests run in Travis (#120)

19.4
 - doc: specify _ over - in cloud config modules
   [Joshua Powers] (LP: #1293254)
 - tools: Detect python to use via env in migrate-lp-user-to-github
   [Adam Dobrawy]
 - Partially revert "fix unlocking method on FreeBSD" (#116)
 - tests: mock uid when running as root (#113)
   [Joshua Powers] (LP: #1856096)
 - cloudinit/netinfo: remove unused getgateway (#111)
 - docs: clear up apt config sections (#107) [Joshua Powers] (LP: #1832823)
 - doc: add kernel command line option to user data (#105)
   [Joshua Powers] (LP: #1846524)
 - config/cloud.cfg.d: update README [Joshua Powers] (LP: #1855006)
 - azure: avoid re-running cloud-init when instance-id is byte-swapped
   (#84) [AOhassan]
 - fix unlocking method on FreeBSD [Igor Galić] (LP: #1854594)
 - debian: add reference to the manpages [Joshua Powers]
 - ds_identify: if /sys is not available use dmidecode (#42)
   [Igor Galić] (LP: #1852442)
 - docs: add cloud-id manpage [Joshua Powers]
 - docs: add cloud-init-per manpage [Joshua Powers]
 - docs: add cloud-init manpage [Joshua Powers]
 - docs: add additional details to per-instance/once [Joshua Powers]
 - Update doc-requirements.txt [Joshua Powers]
 - doc-requirements: add missing dep [Joshua Powers]
 - dhcp: Support Red Hat dhcp rfc3442 lease format for option 121 (#76)
   [Eric Lafontaine] (LP: #1850642)
 - network_state: handle empty v1 config (#45) (LP: #1852496)
 - docs: Add document on how to report bugs [Joshua Powers]
 - Add an Amazon distro in the redhat OS family [Frederick Lefebvre]
 - removed a couple of "the"s [gaughen]
 - docs: fix line length and remove highlighting [Joshua Powers]
 - docs: Add security.md to readthedocs [Joshua Powers]
 - Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo]
 - Revert "travis: only run CI on pull requests"
 - doc: update links on README.md [Joshua Powers]
 - doc: Updates to wording of README.md [Joshua Powers]
 - Add security.md [Joshua Powers]
 - setup.py: Amazon Linux sets libexec to /usr/libexec (#52)
   [Frederick Lefebvre]
 - Fix linting failure in test_url_helper (#83) [Eric Lafontaine]
 - url_helper: read_file_or_url should pass headers param into readurl
   (#66) (LP: #1854084)
 - dmidecode: log result *after* stripping n [Igor Galić]
 - cloud_tests: add azure platform support to integration tests
   [ahosmanmsft]
 - set_passwords: support for FreeBSD (#46) [Igor Galić]
 - tools: migrate-lp-user-to-github removes repo_dir if created (#35)
 - Correct jumbled documentation for cc_set_hostname module (#64)
   [do3meli] (LP: #1853543)
 - FreeBSD: fix for get_linux_distro() and lru_cache (#59)
   [Igor Galić] (LP: #1815030)
 - ec2: Add support for AWS IMDS v2 (session-oriented) (#55)
 - tests: Fix cloudsigma tests when no dmidecode data is present. (#57)
   [Scott Moser]
 - net: IPv6, accept_ra, slaac, stateless (#51)
   [Harald] (LP: #1806014, #1808647)
 - docs: Update the configdrive datasource links (#44)
   [Joshua Powers] (LP: #1852461)
 - distro: correctly set usr_lib_exec path for FreeBSD distro (#40)
   [Igor Galić] (LP: #1852491)
 - azure: support secondary ipv6 addresses (#33)
 - Fix metadata check when local-hostname is null (#32)
   [Mark Goddard] (LP: #1852100)
 - switch default FreeBSD salt minion pkg from py27 to py36
   [Dominic Schlegel]
 - travis: only run CI on pull requests
 - add data-server dns entry as new metadata server detection [Joshua Hügli]
 - pycodestyle: remove unused local variable
 - reporting: Using a uuid to enforce uniqueness on the KVP keys. [momousta]
 - docs: touchups in rtd intro and README.md
 - doc: update launchpad git refs to github
 - github: drop pull-request template to prepare for migration
 - tools: add migrate-lp-user-to-github script to link LP to github
 - github: new basic project readme

19.3
 - azure: support matching dhcp route-metrics for dual-stack ipv4 ipv6
   (LP: #1850308)
 - configdrive: fix subplatform config-drive for /config-drive source
   [David Kindred] (LP: #1849731)
 - DataSourceSmartOS: reconfigure network on each boot
   [Mike Gerdts] (LP: #1765801)
 - Add config for ssh-key import and consuming user-data [Pavel Zakharov]
 - net: fix subnet_is_ipv6() for stateless|stateful
   [Harald Jensås] (LP: #1848690)
 - OVF: disable custom script execution by default [Xiaofeng Wang]
 - cc_puppet: Implement csr_attributes.yaml support [Matthias Baur]
 - cloud-init.service: on centos/fedora/redhat wait on NetworkManager.service
   (LP: #1843334)
 - azure: Do not lock user on instance id change [Sam Eiderman] (LP: #1849677)
 - net/netplan: use ipv6-mtu key for specifying ipv6 mtu values
 - Fix usages of yaml, and move yaml_dump to safeyaml.dumps. (LP: #1849640)
 - exoscale: Increase url_max_wait to 120s. [Chris Glass]
 - net/sysconfig: fix available check on SUSE distros
   [Robert Schweikert] (LP: #1849378)
 - docs: Fix incorrect Azure IMDS IP address [Joshua Powers] (LP: #1849508)
 - introduce .travis.yml
 - net: enable infiniband support in eni and sysconfig renderers
   [Darren Birkett] (LP: #1847114)
 - guestcust_util: handle special characters in config file [Xiaofeng Wang]
 - fix some more typos in comments [Dominic Schlegel]
 - replace any deprecated log.warn with log.warning
   [Dominic Schlegel] (LP: #1508442)
 - net: handle openstack dhcpv6-stateless configuration
   [Harald Jensås] (LP: #1847517)
 - Add .venv/ to .gitignore [Dominic Schlegel]
 - Small typo fixes in code comments. [Dominic Schlegel]
 - cloud_test/lxd: Retry container delete a few times
 - Add Support for e24cloud to Ec2 datasource. (LP: #1696476)
 - Add RbxCloud datasource [Adam Dobrawy]
 - get_interfaces: don't exclude bridge and bond members (LP: #1846535)
 - Add support for Arch Linux in render-cloudcfg [Conrad Hoffmann]
 - util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary
   (LP: #1801364)
 - debian/ubuntu: add missing word to netplan/ENI header (LP: #1845669)
 - ovf: do not generate random instance-id for IMC customization path
 - sysconfig: only write resolv.conf if network_state has DNS values
   (LP: #1843634)
 - sysconfig: use distro variant to check if available (LP: #1843584)
 - systemd/cloud-init.service.tmpl: start after wicked.service
   [Robert Schweikert]
 - docs: fix zstack documentation lints
 - analyze/show: remove trailing space in output
 - Add missing space in warning: "not avalid seed" [Brian Candler]
 - pylintrc: add 'enter_context' to generated-members list
 - Add datasource for ZStack platform. [Shixin Ruan] (LP: #1841181)
 - docs: organize TOC and update summary of project [Joshua Powers]
 - tools: make clean now cleans the dev directory, not the system
 - docs: create cli specific page [Joshua Powers]
 - docs: added output examples to analyze.rst [Joshua Powers]
 - docs: doc8 fixes for instancedata page [Joshua Powers]
 - docs: clean up formatting, organize boot page [Joshua Powers]
 - net: add is_master check for filtering device list (LP: #1844191)
 - docs: more complete list of availability [Joshua Powers]
 - docs: start FAQ page [Joshua Powers]
 - docs: cleanup output & order of datasource page [Joshua Powers]
 - Brightbox: restrict detection to require full domain match .brightbox.com
 - VMWware: add option into VMTools config to enable/disable custom script.
   [Xiaofeng Wang]
 - net,Oracle: Add support for netfailover detection
 - atomic_helper: add DEBUG logging to write_file (LP: #1843276)
 - doc: document doc, create makefile and tox target [Joshua Powers]
 - .gitignore: ignore files produced by package builds
 - docs: fix whitespace, spelling, and line length [Joshua Powers]
 - docs: remove unnecessary file in doc directory [Joshua Powers]
 - Oracle: Render secondary vnic IP and MTU values only
 - exoscale: fix sysconfig cloud_config_modules overrides (LP: #1841454)
 - net/cmdline: refactor to allow multiple initramfs network config sources
 - ubuntu-drivers: call db_x_loadtemplatefile to accept NVIDIA EULA
   (LP: #1840080)
 - Add missing #cloud-config comment on first example in documentation.
   [Florian Müller]
 - ubuntu-drivers: emit latelink=true debconf to accept nvidia eula
   (LP: #1840080)
 - DataSourceOracle: prefer DS network config over initramfs
 - format.rst: add text/jinja2 to list of content types (+ cleanups)
 - Add GitHub pull request template to point people at hacking doc
 - cloudinit/distros/parsers/sys_conf: add docstring to SysConf
 - pyflakes: remove unused variable [Joshua Powers]
 - Azure: Record boot timestamps, system information, and diagnostic events
   [Anh Vo]
 - DataSourceOracle: configure secondary NICs on Virtual Machines
 - distros: fix confusing variable names
 - azure/net: generate_fallback_nic emits network v2 config instead of v1
 - Add support for publishing host keys to GCE guest attributes [Rick Wright]
 - New data source for the Exoscale.com cloud platform [Chris Glass]
 - doc: remove intersphinx extension
 - cc_set_passwords: rewrite documentation (LP: #1838794)
 - net/cmdline: split interfaces_by_mac and init network config determination
 - stages: allow data sources to override network config source order
 - cloud_tests: updates and fixes
 - Fix bug rendering MTU on bond or vlan when input was netplan. (LP: #1836949)
 - net: update net sequence, include wait on netdevs, opensuse netrules path
   (LP: #1817368)
19.2:
 - net: add rfc3442 (classless static routes) to EphemeralDHCP
   (LP: #1821102)
 - templates/ntp.conf.debian.tmpl: fix missing newline for pools
   (LP: #1836598)
 - Support netplan renderer in Arch Linux [Conrad Hoffmann]
 - Fix typo in publicly viewable documentation. [David Medberry]
 - Add a cdrom size checker for OVF ds to ds-identify
   [Pengpeng Sun] (LP: #1806701)
 - VMWare: Trigger the post customization script via cc_scripts module.
   [Xiaofeng Wang] (LP: #1833192)
 - Cloud-init analyze module: Added ability to analyze boot events.
   [Sam Gilson]
 - Update debian eni network configuration location, retain Ubuntu setting
   [Janos Lenart]
 - net: skip bond interfaces in get_interfaces
   [Stanislav Makar] (LP: #1812857)
 - Fix a couple of issues raised by a coverity scan
 - Add missing dsname for Hetzner Cloud datasource [Markus Schade]
 - doc: indicate that netplan is default in Ubuntu now
 - azure: add region and AZ properties from imds compute location metadata
 - sysconfig: support more bonding options [Penghui Liao]
 - cloud-init-generator: use libexec path to ds-identify on redhat systems
   (LP: #1833264)
 - tools/build-on-freebsd: update to python3 [Gonéri Le Bouder]
 - Allow identification of OpenStack by Asset Tag
   [Mark T. Voelker] (LP: #1669875)
 - Fix spelling error making 'an Ubuntu' consistent. [Brian Murray]
 - run-container: centos: comment out the repo mirrorlist [Paride Legovini]
 - netplan: update netplan key mappings for gratuitous-arp (LP: #1827238)
 - freebsd: fix the name of cloudcfg VARIANT [Gonéri Le Bouder]
 - freebsd: ability to grow root file system [Gonéri Le Bouder]
 - freebsd: NoCloud data source support [Gonéri Le Bouder] (LP: #1645824)
 - Azure: Return static fallback address as if failed to find endpoint
   [Jason Zions (MSFT)]

19.1:
  - freebsd: add chpasswd pkg in the image [Gonéri Le Bouder]
  - tests: add Eoan release [Paride Legovini]
  - cc_mounts: check if mount -a on no-change fstab path
    [Jason Zions (MSFT)] (LP: #1825596)
  - replace remaining occurrences of LOG.warn [Daniel Watkins]
  - DataSourceAzure: Adjust timeout for polling IMDS [Anh Vo]
  - Azure: Changes to the Hyper-V KVP Reporter [Anh Vo]
  - git tests: no longer show warning about safe yaml.
  - tools/read-version: handle errors [Chad Miller]
  - net/sysconfig: only indicate available on known sysconfig distros
    (LP: #1819994)
  - packages: update rpm specs for new bash completion path
    [Daniel Watkins] (LP: #1825444)
  - test_azure: mock util.SeLinuxGuard where needed
    [Jason Zions (MSFT)] (LP: #1825253)
  - setup.py: install bash completion script in new location [Daniel Watkins]
  - mount_cb: do not pass sync and rw options to mount
    [Gonéri Le Bouder] (LP: #1645824)
  - cc_apt_configure: fix typo in apt documentation [Dominic Schlegel]
  - Revert "DataSource: move update_events from a class to an instance..."
    [Daniel Watkins]
  - Change DataSourceNoCloud to ignore file system label's case.
    [Risto Oikarinen]
  - cmd:main.py: Fix missing 'modules-init' key in modes dict
    [Antonio Romito] (LP: #1815109)
  - ubuntu_advantage: rewrite cloud-config module
  - Azure: Treat _unset network configuration as if it were absent
    [Jason Zions (MSFT)] (LP: #1823084)
  - DatasourceAzure: add additional logging for azure datasource [Anh Vo]
  - cloud_tests: fix apt_pipelining test-cases
  - Azure: Ensure platform random_seed is always serializable as JSON.
    [Jason Zions (MSFT)]
  - net/sysconfig: write out SUSE-compatible IPv6 config [Robert Schweikert]
  - tox: Update testenv for openSUSE Leap to 15.0 [Thomas Bechtold]
  - net: Fix ipv6 static routes when using eni renderer
    [Raphael Glon] (LP: #1818669)
  - Add ubuntu_drivers config module [Daniel Watkins]
  - doc: Refresh Azure walinuxagent docs [Daniel Watkins]
  - tox: bump pylint version to latest (2.3.1) [Daniel Watkins]
  - DataSource: move update_events from a class to an instance attribute
    [Daniel Watkins] (LP: #1819913)
  - net/sysconfig: Handle default route setup for dhcp configured NICs
    [Robert Schweikert] (LP: #1812117)
  - DataSourceEc2: update RELEASE_BLOCKER to be more accurate
    [Daniel Watkins]
  - cloud-init-per: POSIX sh does not support string subst, use sed
    (LP: #1819222)
  - Support locking user with usermod if passwd is not available.
  - Example for Microsoft Azure data disk added. [Anton Olifir]
  - clean: correctly determine the path for excluding seed directory
    [Daniel Watkins] (LP: #1818571)
  - helpers/openstack: Treat unknown link types as physical
    [Daniel Watkins] (LP: #1639263)
  - drop Python 2.6 support and our NIH version detection [Daniel Watkins]
  - tip-pylint: Fix assignment-from-return-none errors
  - net: append type:dhcp[46] only if dhcp[46] is True in v2 netconfig
    [Kurt Stieger] (LP: #1818032)
  - cc_apt_pipelining: stop disabling pipelining by default
    [Daniel Watkins] (LP: #1794982)
  - tests: fix some slow tests and some leaking state [Daniel Watkins]
  - util: don't determine string_types ourselves [Daniel Watkins]
  - cc_rsyslog: Escape possible nested set [Daniel Watkins] (LP: #1816967)
  - Enable encrypted_data_bag_secret support for Chef
    [Eric Williams] (LP: #1817082)
  - azure: Filter list of ssh keys pulled from fabric [Jason Zions (MSFT)]
  - doc: update merging doc with fixes and some additional details/examples
  - tests: integration test failure summary to use traceback if empty error
  - This is to fix https://bugs.launchpad.net/cloud-init/+bug/1812676
    [Vitaly Kuznetsov]
  - EC2: Rewrite network config on AWS Classic instances every boot
    [Guilherme G. Piccoli] (LP: #1802073)
  - netinfo: Adjust ifconfig output parsing for FreeBSD ipv6 entries
    (LP: #1779672)
  - netplan: Don't render yaml aliases when dumping netplan (LP: #1815051)
  - add PyCharm IDE .idea/ path to .gitignore [Dominic Schlegel]
  - correct grammar issue in instance metadata documentation
    [Dominic Schlegel] (LP: #1802188)
  - clean: cloud-init clean should not trace when run from within cloud_dir
    (LP: #1795508)
  - Resolve flake8 comparison and pycodestyle over-ident issues
    [Paride Legovini]
  - opennebula: also exclude epochseconds from changed environment vars
    (LP: #1813641)
  - systemd: Render generator from template to account for system
    differences. [Robert Schweikert]
  - sysconfig: On SUSE, use STARTMODE instead of ONBOOT
    [Robert Schweikert] (LP: #1799540)
  - flake8: use ==/!= to compare str, bytes, and int literals
    [Paride Legovini]
  - opennebula: exclude EPOCHREALTIME as known bash env variable with a
    delta (LP: #1813383)
  - tox: fix disco httpretty dependencies for py37 (LP: #1813361)
  - run-container: uncomment baseurl in yum.repos.d/*.repo when using a
    proxy [Paride Legovini]
  - lxd: install zfs-linux instead of zfs meta package
    [Johnson Shi] (LP: #1799779)
  - net/sysconfig: do not write a resolv.conf file with only the header.
    [Robert Schweikert]
  - net: Make sysconfig renderer compatible with Network Manager.
    [Eduardo Otubo]
  - cc_set_passwords: Fix regex when parsing hashed passwords
    [Marlin Cremers] (LP: #1811446)
  - net: Wait for dhclient to daemonize before reading lease file
    [Jason Zions] (LP: #1794399)
  - [Azure] Increase retries when talking to Wireserver during metadata walk
    [Jason Zions]
  - Add documentation on adding a datasource.
  - doc: clean up some datasource documentation.
  - ds-identify: fix wrong variable name in ovf_vmware_transport_guestinfo.
  - Scaleway: Support ssh keys provided inside an instance tag. [PORTE Loïc]
  - OVF: simplify expected return values of transport functions.
  - Vmware: Add support for the com.vmware.guestInfo OVF transport.
    (LP: #1807466)
  - HACKING.rst: change contact info to Josh Powers
  - Update to pylint 2.2.2.

18.5:
 - tests: add Disco release [Joshua Powers]
 - net: render 'metric' values in per-subnet routes (LP: #1805871)
 - write_files: add support for appending to files. [James Baxter]
 - config: On ubuntu select cloud archive mirrors for armel, armhf, arm64.
   (LP: #1805854)
 - dhclient-hook: cleanups, tests and fix a bug on 'down' event.
 - NoCloud: Allow top level 'network' key in network-config. (LP: #1798117)
 - ovf: Fix ovf network config generation gateway/routes (LP: #1806103)
 - azure: detect vnet migration via netlink media change event
   [Tamilmani Manoharan]
 - Azure: fix copy/paste error in error handling when reading azure ovf.
   [Adam DePue]
 - tests: fix incorrect order of mocks in test_handle_zfs_root.
 - doc: Change dns_nameserver property to dns_nameservers. [Tomer Cohen]
 - OVF: identify label iso9660 filesystems with label 'OVF ENV'.
 - logs: collect-logs ignore instance-data-sensitive.json on non-root user
   (LP: #1805201)
 - net: Ephemeral*Network: add connectivity check via URL
 - azure: _poll_imds only retry on 404. Fail on Timeout (LP: #1803598)
 - resizefs: Prefix discovered devpath with '/dev/' when path does not
   exist [Igor Galić]
 - azure: retry imds polling on requests.Timeout (LP: #1800223)
 - azure: Accept variation in error msg from mount for ntfs volumes
   [Jason Zions] (LP: #1799338)
 - azure: fix regression introduced when persisting ephemeral dhcp lease
   [asakkurr]
 - azure: add udev rules to create cloud-init Gen2 disk name symlinks
   (LP: #1797480)
 - tests: ec2 mock missing httpretty user-data and instance-identity routes
 - azure: remove /etc/netplan/90-hotplug-azure.yaml when net from IMDS
 - azure: report ready to fabric after reprovision and reduce logging
   [asakkurr] (LP: #1799594)
 - query: better error when missing read permission on instance-data
 - instance-data: fallback to instance-data.json if sensitive is absent.
   (LP: #1798189)
 - docs: remove colon from network v1 config example. [Tomer Cohen]
 - Add cloud-id binary to packages for SUSE [Jason Zions]
 - systemd: On SUSE ensure cloud-init.service runs before wicked
   [Robert Schweikert] (LP: #1799709)
 - update detection of openSUSE variants [Robert Schweikert]
 - azure: Add apply_network_config option to disable network from IMDS
   (LP: #1798424)
 - Correct spelling in an error message (udevadm). [Katie McLaughlin]
 - tests: meta_data key changed to meta-data in ec2 instance-data.json
   (LP: #1797231)
 - tests: fix kvm integration test to assert flexible config-disk path
   (LP: #1797199)
 - tools: Add cloud-id command line utility
 - instance-data: Add standard keys platform and subplatform. Refactor ec2.
 - net: ignore nics that have "zero" mac address. (LP: #1796917)
 - tests: fix apt_configure_primary to be more flexible
 - Ubuntu: update sources.list to comment out deb-src entries. (LP: #74747)

18.4:
 - add rtd example docs about new standardized keys
 - use ds._crawled_metadata instance attribute if set when writing
   instance-data.json
 - ec2: update crawled metadata. add standardized keys
 - tests: allow skipping an entire cloud_test without running.
 - tests: disable lxd tests on cosmic
 - cii-tests: use unittest2.SkipTest in ntp_chrony due to new deps
 - lxd: adjust to snap installed lxd.
 - docs: surface experimental doc in instance-data.json
 - tests: fix ec2 integration tests. process meta_data instead of meta-data
 - Add support for Infiniband network interfaces (IPoIB). [Mark Goddard]
 - cli: add cloud-init query subcommand to query instance metadata
 - tools/tox-venv: update for new features.
 - pylint: ignore warning assignment-from-no-return for _write_network
 - stages: Fix bug causing datasource to have incorrect sys_cfg.
   (LP: #1787459)
 - Remove dead-code _write_network distro implementations.
 - net_util: ensure static configs have netmask in translate_network result
   [Thomas Berger] (LP: #1792454)
 - Fall back to root:root on syslog permissions if other options fail.
   [Robert Schweikert]
 - tests: Add mock for util.get_hostname. [Robert Schweikert] (LP: #1792799)
 - ds-identify: doc string cleanup.
 - OpenStack: Support setting mac address on bond.
   [Fabian Wiesel] (LP: #1682064)
 - bash_completion/cloud-init: fix shell syntax error.
 - EphemeralIPv4Network: Be more explicit when adding default route.
   (LP: #1792415)
 - OpenStack: support reading of newer versions of metdata.
 - OpenStack: fix bug causing 'latest' version to be used from network.
   (LP: #1792157)
 - user-data: jinja template to render instance-data.json in cloud-config
   (LP: #1791781)
 - config: disable ssh access to a configured user account
 - tests: print failed testname instead of docstring upon failure
 - tests: Disallow use of util.subp except for where needed.
 - sysconfig: refactor sysconfig to accept distro specific templates paths
 - Add unit tests for config/cc_ssh.py [Francis Ginther]
 - Fix the built-in cloudinit/tests/helpers:skipIf
 - read-version: enhance error message [Joshua Powers]
 - hyperv_reporting_handler: simplify threaded publisher
 - VMWare: Fix a network config bug in vm with static IPv4 and no gateway.
   [Pengpeng Sun] (LP: #1766538)
 - logging: Add logging config type hyperv for reporting via Azure KVP
   [Andy Liu]
 - tests: disable other snap test as well [Joshua Powers]
 - tests: disable snap, fix write_files binary [Joshua Powers]
 - Add datasource Oracle Compute Infrastructure (OCI).
 - azure: allow azure to generate network configuration from IMDS per boot.
 - Scaleway: Add network configuration to the DataSource [Louis Bouchard]
 - docs: Fix example cloud-init analyze command to match output.
   [Wesley Gao]
 - netplan: Correctly render macaddress on a bonds and bridges when
   provided. (LP: #1784699)
 - tools: Add 'net-convert' subcommand command to 'cloud-init devel'.
 - redhat: remove ssh keys on new instance. (LP: #1781094)
 - Use typeset or local in profile.d scripts. (LP: #1784713)
 - OpenNebula: Fix null gateway6 [Akihiko Ota] (LP: #1768547)
 - oracle: fix detect_openstack to report True on OracleCloud.com DMI data
   (LP: #1784685)
 - tests: improve LXDInstance trying to workaround or catch bug.
 - update_metadata re-config on every boot comments and tests not quite
   right [Mike Gerdts]
 - tests: Collect build_info from system if available.
 - pylint: Fix pylint warnings reported in pylint 2.0.0.
 - get_linux_distro: add support for rhel via redhat-release.
 - get_linux_distro: add support for centos6 and rawhide flavors of redhat
   (LP: #1781229)
 - tools: add '--debug' to tools/net-convert.py
 - tests: bump the version of paramiko to 2.4.1.
 - docs: note in rtd about avoiding /tmp when writing files (LP: #1727876)
 - ubuntu,centos,debian: get_linux_distro to align with platform.dist
   (LP: #1780481)
 - Fix boothook docs on environment variable name (INSTANCE_I ->
   INSTANCE_ID) [Marc Tamsky]
 - update_metadata: a datasource can support network re-config every boot
 - tests: drop salt-minion integration test (LP: #1778737)
 - Retry on failed import of gpg receive keys.
 - tools: Fix run-container when neither source or binary package requested.
 - docs: Fix a small spelling error. [Oz N Tiram]
 - tox: use simplestreams from git repository rather than bzr.

18.3:
 - docs: represent sudo:false in docs for user_groups config module
 - Explicitly prevent `sudo` access for user module
   [Jacob Bednarz] (LP: #1771468)
 - lxd: Delete default network and detach device if lxd-init created them.
   (LP: #1776958)
 - openstack: avoid unneeded metadata probe on non-openstack platforms
   (LP: #1776701)
 - stages: fix tracebacks if a module stage is undefined or empty
   [Robert Schweikert] (LP: #1770462)
 - Be more safe on string/bytes when writing multipart user-data to disk.
   (LP: #1768600)
 - Fix get_proc_env for pids that have non-utf8 content in environment.
   (LP: #1775371)
 - tests: fix salt_minion integration test on bionic and later
 - tests: provide human-readable integration test summary when --verbose
 - tests: skip chrony integration tests on lxd running artful or older
 - test: add optional --preserve-instance arg to integraiton tests
 - netplan: fix mtu if provided by network config for all rendered types
   (LP: #1774666)
 - tests: remove pip install workarounds for pylxd, take upstream fix.
 - subp: support combine_capture argument.
 - tests: ordered tox dependencies for pylxd install
 - util: add get_linux_distro function to replace platform.dist
   [Robert Schweikert] (LP: #1745235)
 - pyflakes: fix unused variable references identified by pyflakes 2.0.0.
 - - Do not use the systemd_prefix macro, not available in this environment
   [Robert Schweikert]
 - doc: Add config info to ec2, openstack and cloudstack datasource docs
 - Enable SmartOS network metadata to work with netplan via per-subnet
   routes [Dan McDonald] (LP: #1763512)
 - openstack: Allow discovery in init-local using dhclient in a sandbox.
   (LP: #1749717)
 - tests: Avoid using https in httpretty, improve HttPretty test case.
   (LP: #1771659)
 - yaml_load/schema: Add invalid line and column nums to error message
 - Azure: Ignore NTFS mount errors when checking ephemeral drive
   [Paul Meyer]
 - packages/brpm: Get proper dependencies for cmdline distro.
 - packages: Make rpm spec files patch in package version like in debs.
 - tools/run-container: replace tools/run-centos with more generic.
 - Update version.version_string to contain packaged version. (LP: #1770712)
 - cc_mounts: Do not add devices to fstab that are already present.
   [Lars Kellogg-Stedman]
 - ds-identify: ensure that we have certain tokens in PATH. (LP: #1771382)
 - tests: enable Ubuntu Cosmic in integration tests [Joshua Powers]
 - read_file_or_url: move to url_helper, fix bug in its FileResponse.
 - cloud_tests: help pylint [Ryan Harper]
 - flake8: fix flake8 errors in previous commit.
 - typos: Fix spelling mistakes in cc_mounts.py log messages [Stephen Ford]
 - tests: restructure SSH and initial connections [Joshua Powers]
 - ds-identify: recognize container-other as a container, test SmartOS.
 - cloud-config.service: run After snap.seeded.service. (LP: #1767131)
 - tests: do not rely on host /proc/cmdline in test_net.py
   [Lars Kellogg-Stedman] (LP: #1769952)
 - ds-identify: Remove dupe call to is_ds_enabled, improve debug message.
 - SmartOS: fix get_interfaces for nics that do not have addr_assign_type.
 - tests: fix package and ca_cert cloud_tests on bionic
   (LP: #1769985)
 - ds-identify: make shellcheck 0.4.6 happy with ds-identify.
 - pycodestyle: Fix deprecated string literals, move away from flake8.
 - azure: Add reported ready marker file. [Joshua Chan] (LP: #1765214)
 - tools: Support adding a release suffix through packages/bddeb.
 - FreeBSD: Invoke growfs on ufs filesystems such that it does not prompt.
   [Harm Weites] (LP: #1404745)
 - tools: Re-use the orig tarball in packages/bddeb if it is around.
 - netinfo: fix netdev_pformat when a nic does not have an address
   assigned. (LP: #1766302)
 - collect-logs: add -v flag, write to stderr, limit journal to single
   boot. (LP: #1766335)
 - IBMCloud: Disable config-drive and nocloud only if IBMCloud is enabled.
   (LP: #1766401)
 - Add reporting events and log_time around early source of blocking time
   [Ryan Harper]
 - IBMCloud: recognize provisioning environment during debug boots.
   (LP: #1767166)
 - net: detect unstable network names and trigger a settle if needed
   [Ryan Harper] (LP: #1766287)
 - IBMCloud: improve documentation in datasource.
 - sysconfig: dhcp6 subnet type should not imply dhcpv4 [Vitaly Kuznetsov]
 - packages/debian/control.in: add missing dependency on iproute2.
   (LP: #1766711)
 - DataSourceSmartOS: add locking of serial device.
   [Mike Gerdts] (LP: #1746605)
 - DataSourceSmartOS: sdc:hostname is ignored [Mike Gerdts] (LP: #1765085)
 - DataSourceSmartOS: list() should always return a list
   [Mike Gerdts] (LP: #1763480)
 - schema: in validation, raise ImportError if strict but no jsonschema.
 - set_passwords: Add newline to end of sshd config, only restart if
   updated. (LP: #1677205)
 - pylint: pay attention to unused variable warnings.
 - doc: Add documentation for AliYun datasource. [Junjie Wang]
 - Schema: do not warn on duplicate items in commands. (LP: #1764264)
 - net: Depend on iproute2's ip instead of net-tools ifconfig or route
 - DataSourceSmartOS: fix hang when metadata service is down
   [Mike Gerdts] (LP: #1667735)
 - DataSourceSmartOS: change default fs on ephemeral disk from ext3 to
   ext4. [Mike Gerdts] (LP: #1763511)
 - pycodestyle: Fix invalid escape sequences in string literals.
 - Implement bash completion script for cloud-init command line
   [Ryan Harper]
 - tools: Fix make-tarball cli tool usage for development
 - renderer: support unicode in render_from_file.
 - Implement ntp client spec with auto support for distro selection
   [Ryan Harper] (LP: #1749722)
 - Apport: add Brightbox, IBM, LXD, and OpenTelekomCloud to list of clouds.
 - tests: fix ec2 integration network metadata validation
 - tests: fix integration tests to support lxd 3.0 release
 - correct documentation to match correct attribute name usage.
   [Dominic Schlegel] (LP: #1420018)
 - cc_resizefs, util: handle no /dev/zfs [Ryan Harper]
 - doc: Fix links in OpenStack datasource documentation.
   [Dominic Schlegel] (LP: #1721660)
 - docs: represent sudo:false in docs for user_groups config module
 - Explicitly prevent `sudo` access for user module
   [Jacob Bednarz] (LP: #1771468)
 - lxd: Delete default network and detach device if lxd-init created them.
   (LP: #1776958)
 - openstack: avoid unneeded metadata probe on non-openstack platforms
   (LP: #1776701)
 - stages: fix tracebacks if a module stage is undefined or empty
   [Robert Schweikert] (LP: #1770462)
 - Be more safe on string/bytes when writing multipart user-data to disk.
   (LP: #1768600)
 - Fix get_proc_env for pids that have non-utf8 content in environment.
   (LP: #1775371)
 - tests: fix salt_minion integration test on bionic and later
 - tests: provide human-readable integration test summary when --verbose
 - tests: skip chrony integration tests on lxd running artful or older
 - test: add optional --preserve-instance arg to integraiton tests
 - netplan: fix mtu if provided by network config for all rendered types
   (LP: #1774666)
 - tests: remove pip install workarounds for pylxd, take upstream fix.
 - subp: support combine_capture argument.
 - tests: ordered tox dependencies for pylxd install
 - util: add get_linux_distro function to replace platform.dist
   [Robert Schweikert] (LP: #1745235)
 - pyflakes: fix unused variable references identified by pyflakes 2.0.0.
 - - Do not use the systemd_prefix macro, not available in this environment
   [Robert Schweikert]
 - doc: Add config info to ec2, openstack and cloudstack datasource docs
 - Enable SmartOS network metadata to work with netplan via per-subnet
   routes [Dan McDonald] (LP: #1763512)
 - openstack: Allow discovery in init-local using dhclient in a sandbox.
   (LP: #1749717)
 - tests: Avoid using https in httpretty, improve HttPretty test case.
   (LP: #1771659)
 - yaml_load/schema: Add invalid line and column nums to error message
 - Azure: Ignore NTFS mount errors when checking ephemeral drive
   [Paul Meyer]
 - packages/brpm: Get proper dependencies for cmdline distro.
 - packages: Make rpm spec files patch in package version like in debs.
 - tools/run-container: replace tools/run-centos with more generic.
 - Update version.version_string to contain packaged version. (LP: #1770712)
 - cc_mounts: Do not add devices to fstab that are already present.
   [Lars Kellogg-Stedman]
 - ds-identify: ensure that we have certain tokens in PATH. (LP: #1771382)
 - tests: enable Ubuntu Cosmic in integration tests [Joshua Powers]
 - read_file_or_url: move to url_helper, fix bug in its FileResponse.
 - cloud_tests: help pylint [Ryan Harper]
 - flake8: fix flake8 errors in previous commit.
 - typos: Fix spelling mistakes in cc_mounts.py log messages [Stephen Ford]
 - tests: restructure SSH and initial connections [Joshua Powers]
 - ds-identify: recognize container-other as a container, test SmartOS.
 - cloud-config.service: run After snap.seeded.service. (LP: #1767131)
 - tests: do not rely on host /proc/cmdline in test_net.py
   [Lars Kellogg-Stedman] (LP: #1769952)
 - ds-identify: Remove dupe call to is_ds_enabled, improve debug message.
 - SmartOS: fix get_interfaces for nics that do not have addr_assign_type.
 - tests: fix package and ca_cert cloud_tests on bionic
   (LP: #1769985)
 - ds-identify: make shellcheck 0.4.6 happy with ds-identify.
 - pycodestyle: Fix deprecated string literals, move away from flake8.
 - azure: Add reported ready marker file. [Joshua Chan] (LP: #1765214)
 - tools: Support adding a release suffix through packages/bddeb.
 - FreeBSD: Invoke growfs on ufs filesystems such that it does not prompt.
   [Harm Weites] (LP: #1404745)
 - tools: Re-use the orig tarball in packages/bddeb if it is around.
 - netinfo: fix netdev_pformat when a nic does not have an address
   assigned. (LP: #1766302)
 - collect-logs: add -v flag, write to stderr, limit journal to single
   boot. (LP: #1766335)
 - IBMCloud: Disable config-drive and nocloud only if IBMCloud is enabled.
   (LP: #1766401)
 - Add reporting events and log_time around early source of blocking time
   [Ryan Harper]
 - IBMCloud: recognize provisioning environment during debug boots.
   (LP: #1767166)
 - net: detect unstable network names and trigger a settle if needed
   [Ryan Harper] (LP: #1766287)
 - IBMCloud: improve documentation in datasource.
 - sysconfig: dhcp6 subnet type should not imply dhcpv4 [Vitaly Kuznetsov]
 - packages/debian/control.in: add missing dependency on iproute2.
   (LP: #1766711)
 - DataSourceSmartOS: add locking of serial device.
   [Mike Gerdts] (LP: #1746605)
 - DataSourceSmartOS: sdc:hostname is ignored [Mike Gerdts] (LP: #1765085)
 - DataSourceSmartOS: list() should always return a list
   [Mike Gerdts] (LP: #1763480)
 - schema: in validation, raise ImportError if strict but no jsonschema.
 - set_passwords: Add newline to end of sshd config, only restart if
   updated. (LP: #1677205)
 - pylint: pay attention to unused variable warnings.
 - doc: Add documentation for AliYun datasource. [Junjie Wang]
 - Schema: do not warn on duplicate items in commands. (LP: #1764264)
 - net: Depend on iproute2's ip instead of net-tools ifconfig or route
 - DataSourceSmartOS: fix hang when metadata service is down
   [Mike Gerdts] (LP: #1667735)
 - DataSourceSmartOS: change default fs on ephemeral disk from ext3 to
   ext4. [Mike Gerdts] (LP: #1763511)
 - pycodestyle: Fix invalid escape sequences in string literals.
 - Implement bash completion script for cloud-init command line
   [Ryan Harper]
 - tools: Fix make-tarball cli tool usage for development
 - renderer: support unicode in render_from_file.
 - Implement ntp client spec with auto support for distro selection
   [Ryan Harper] (LP: #1749722)
 - Apport: add Brightbox, IBM, LXD, and OpenTelekomCloud to list of clouds.
 - tests: fix ec2 integration network metadata validation
 - tests: fix integration tests to support lxd 3.0 release
 - correct documentation to match correct attribute name usage.
   [Dominic Schlegel] (LP: #1420018)
 - cc_resizefs, util: handle no /dev/zfs [Ryan Harper]
 - doc: Fix links in OpenStack datasource documentation.
   [Dominic Schlegel] (LP: #1721660)

18.2:
 - Hetzner: Exit early if dmi system-manufacturer is not Hetzner.
 - Add missing dependency on isc-dhcp-client to trunk ubuntu packaging.
   (LP: #1759307)
 - FreeBSD: resizefs module now able to handle zfs/zpool.
   [Dominic Schlegel] (LP: #1721243)
 - cc_puppet: Revert regression of puppet creating ssl and ssl_cert dirs
 - Enable IBMCloud datasource in settings.py.
 - IBMCloud: Initial IBM Cloud datasource.
 - tests: remove jsonschema from xenial tox environment.
 - tests: Fix newly added schema unit tests to skip if no jsonschema.
 - ec2: Adjust ec2 datasource after exception_cb change.
 - Reduce AzurePreprovisioning HTTP timeouts.
   [Douglas Jordan] (LP: #1752977)
 - Revert the logic of exception_cb in read_url.
   [Kurt Garloff] (LP: #1702160, #1298921)
 - ubuntu-advantage: Add new config module to support
   ubuntu-advantage-tools
 - Handle global dns entries in netplan (LP: #1750884)
 - Identify OpenTelekomCloud Xen as OpenStack DS.
   [Kurt Garloff] (LP: #1756471)
 - datasources: fix DataSource subclass get_hostname method signature
   (LP: #1757176)
 - OpenNebula: Update network to return v2 config rather than ENI.
   [Akihiko Ota]
 - Add Hetzner Cloud DataSource
 - net: recognize iscsi root cases without ip= on kernel command line.
   (LP: #1752391)
 - tests: fix flakes warning for unused variable
 - tests: patch leaked stderr messages from snap unit tests
 - cc_snap: Add new module to install and configure snapd and snap
   packages.
 - tests: Make pylint happy and fix python2.6 uses of assertRaisesRegex.
 - netplan: render bridge port-priority values (LP: #1735821)
 - util: Fix subp regression. Allow specifying subp command as a string.
   (LP: #1755965)
 - doc: fix all warnings issued by 'tox -e doc'
 - FreeBSD: Set hostname to FQDN. [Dominic Schlegel] (LP: #1753499)
 - tests: fix run_tree and bddeb
 - tests: Fix some warnings in tests that popped up with newer python.
 - set_hostname: When present in metadata, set it before network bringup.
   (LP: #1746455)
 - tests: Centralize and re-use skipTest based on json schema presense.
 - This commit fixes get_hostname on the AzureDataSource.
   [Douglas Jordan] (LP: #1754495)
 - shellify: raise TypeError on bad input.
 - Make salt minion module work on FreeBSD.
   [Dominic Schlegel] (LP: #1721503)
 - Simplify some comparisions. [Rémy Léone]
 - Change some list creation and population to literal. [Rémy Léone]
 - GCE: fix reading of user-data that is not base64 encoded. (LP: #1752711)
 - doc: fix chef install from apt packages example in RTD.
 - Implement puppet 4 support [Romanos Skiadas] (LP: #1446804)
 - subp: Fix subp usage with non-ascii characters when no system locale.
   (LP: #1751051)
 - salt: configure grains in grains file rather than in minion config.
   [Daniel Wallace]

18.1:
 - OVF: Fix VMware support for 64-bit platforms. [Sankar Tanguturi]
 - ds-identify: Fix searching for iso9660 OVF cdroms. (LP: #1749980)
 - SUSE: Fix groups used for ownership of cloud-init.log [Robert Schweikert]
 - ds-identify: check /writable/system-data/ for nocloud seed.
   (LP: #1747070)
 - tests: run nosetests in cloudinit/ directory, fix py26 fallout.
 - tools: run-centos: git clone rather than tar.
 - tests: add support for logs with lxd from snap and future lxd 3.
   (LP: #1745663)
 - EC2: Fix get_instance_id called against cached datasource pickle.
   (LP: #1748354)
 - cli: fix cloud-init status to report running when before result.json
   (LP: #1747965)
 - net: accept network-config in netplan format for renaming interfaces
   (LP: #1709715)
 - Fix ssh keys validation in ssh_util [Tatiana Kholkina]
 - docs: Update RTD content for cloud-init subcommands.
 - OVF: Extend well-known labels to include OVFENV. (LP: #1698669)
 - Fix potential cases of uninitialized variables. (LP: #1744796)
 - tests: Collect script output as binary, collect systemd journal, fix lxd.
 - HACKING.rst: mention setting user name and email via git config.
 - Azure VM Preprovisioning support. [Douglas Jordan] (LP: #1734991)
 - tools/read-version: Fix read-version when in a git worktree.
 - docs: Fix typos in docs and one debug message. [Florian Grignon]
 - btrfs: support resizing if root is mounted ro.
   [Robert Schweikert] (LP: #1734787)
 - OpenNebula: Improve network configuration support.
   [Akihiko Ota] (LP: #1719157, #1716397, #1736750)
 - tests: Fix EC2 Platform to return console output as bytes.
 - tests: Fix attempted use of /run in a test case.
 - GCE: Improvements and changes to ssh key behavior for default user.
   [Max Illfelder] (LP: #1670456, #1707033, #1707037, #1707039)
 - subp: make ProcessExecutionError have expected types in stderr, stdout.
 - tests: when querying ntp server, do not do dns resolution.
 - Recognize uppercase vfat disk labels [James Penick] (LP: #1598783)
 - tests: remove zesty as supported OS to test [Joshua Powers]
 - Do not log warning on config files that represent None. (LP: #1742479)
 - tests: Use git hash pip dependency format for pylxd.
 - tests: add integration requirements text file [Joshua Powers]
 - MAAS: add check_instance_id based off oauth tokens. (LP: #1712680)
 - tests: update apt sources list test [Joshua Powers]
 - tests: clean up image properties [Joshua Powers]
 - tests: rename test ssh keys to avoid appearance of leaking private keys.
   [Joshua Powers]
 - tests: Enable AWS EC2 Integration Testing [Joshua Powers]
 - cli: cloud-init clean handles symlinks (LP: #1741093)
 - SUSE: Add a basic test of network config rendering. [Robert Schweikert]
 - Azure: Only bounce network when necessary. (LP: #1722668)
 - lint: Fix lints seen by pylint version 1.8.1.
 - cli: Fix error in cloud-init modules --mode=init. (LP: #1736600)

17.2:
 - ds-identify: failure in NoCloud due to unset variable usage.
   (LP: #1737704)
 - tests: fix collect_console when not implemented [Joshua Powers]
 - ec2: Use instance-identity doc for region and instance-id
   [Andrew Jorgensen]
 - tests: remove leaked tmp files in config drive tests.
 - setup.py: Do not include rendered files in SOURCES.txt
 - SUSE: remove delta in systemd local template for SUSE [Robert Schweikert]
 - tests: move to using tox 1.7.5
 - OVF: improve ds-identify to support finding OVF iso transport.
   (LP: #1731868)
 - VMware: Support for user provided pre and post-customization scripts
   [Maitreyee Saikia]
 - citest: In NoCloudKVM provide keys via metadata not userdata.
 - pylint: Update pylint to 1.7.1, run on tests/ and tools and fix
   complaints.
 - Datasources: Formalize DataSource get_data and related properties.
 - cli: Add clean and status subcommands
 - tests: consolidate platforms into specific dirs
 - ec2: Fix sandboxed dhclient background process cleanup. (LP: #1735331)
 - tests: NoCloudKVMImage do not modify the original local cache image.
 - tests: Enable bionic in integration tests. [Joshua Powers]
 - tests: Use apt-get to install a deb so that depends get resolved.
 - sysconfig: Correctly render dns and dns search info.
   [Ryan McCabe] (LP: #1705804)
 - integration test: replace curtin test ppa with cloud-init test ppa.
 - EC2: Fix bug using fallback_nic and metadata when restoring from cache.
   (LP: #1732917)
 - EC2: Kill dhclient process used in sandbox dhclient. (LP: #1732964)
 - ntp: fix configuration template rendering for openSUSE and SLES
   (LP: #1726572)
 - centos: Provide the failed #include url in error messages
 - Catch UrlError when #include'ing URLs [Andrew Jorgensen]
 - hosts: Fix openSUSE and SLES setup for /etc/hosts and clarify docs.
   [Robert Schweikert] (LP: #1731022)
 - rh_subscription: Perform null checks for enabled and disabled repos.
   [Dave Mulford]
 - Improve warning message when a template is not found.
   [Robert Schweikert] (LP: #1731035)
 - Replace the temporary i9n.brickies.net with i9n.cloud-init.io.
 - Azure: don't generate network configuration for SRIOV devices
   (LP: #1721579)
 - tests: address some minor feedback missed in last merge.
 - tests: integration test cleanup and full pass of nocloud-kvm.
 - Gentoo: chmod +x on all files in sysvinit/gentoo/
   [ckonstanski] (LP: #1727126)
 - EC2: Limit network config to fallback nic, fix local-ipv4 only
   instances. (LP: #1728152)
 - Gentoo: Use "rc-service" rather than "service".
   [Carlos Konstanski] (LP: #1727121)
 - resizefs: Fix regression when system booted with root=PARTUUID=
   (LP: #1725067)
 - tools: make yum package installation more reliable
 - citest: fix remaining warnings raised by integration tests.
 - citest: show the class actual class name in results.
 - ntp: fix config module schema to allow empty ntp config (LP: #1724951)
 - tools: disable fastestmirror if using proxy [Joshua Powers]
 - schema: Log debug instead of warning when jsonschema is not available.
   (LP: #1724354)
 - simpletable: Fix get_string method to return table-formatted string
   (LP: #1722566)
 - net: Handle bridge stp values of 0 and convert to boolean type
 - tools: Give specific --abbrev=8 to "git describe"
 - network: bridge_stp value not always correct (LP: #1721157)
 - tests: re-enable tox with nocloud-kvm support [Joshua Powers]
 - systemd: remove limit on tasks created by cloud-init-final.service.
   [Robert Schweikert] (LP: #1717969)
 - suse: Support addition of zypper repos via cloud-config.
   [Robert Schweikert] (LP: #1718675)
 - tests: Combine integration configs and testcases [Joshua Powers]
 - Azure, CloudStack: Support reading dhcp options from systemd-networkd.
   [Dimitri John Ledkov] (LP: #1718029)
 - packages/debian/copyright: remove mention of boto and MIT license
 - systemd: only mention Before=apt-daily.service on debian based distros.
   [Robert Schweikert]
 - Add missing simpletable and simpletable tests for failed merge
 - Remove prettytable dependency, introduce simpletable [Andrew Jorgensen]
 - debian/copyright: dep5 updates, reorganize, add Apache 2.0 license.
   [Joshua Powers] (LP: #1718681)
 - tests: remove dependency on shlex [Joshua Powers]
 - AltCloud: Trust PATH for udevadm and modprobe.
 - DataSourceOVF: use util.find_devs_with(TYPE=iso9660) (LP: #1718287)
 - tests: remove a temp file used in bootcmd tests.

17.1:
 - doc: document GCE datasource. [Arnd Hannemann]
 - suse: updates to templates to support openSUSE and SLES.
   [Robert Schweikert] (LP: #1718640)
 - suse: Copy sysvinit files from redhat with slight changes.
   [Robert Schweikert] (LP: #1718649)
 - docs: fix sphinx module schema documentation [Chad Smith]
 - tests: Add cloudinit package to all test targets [Chad Smith]
 - Makefile: No longer look for yaml files in obsolete ./bin/.
 - tests: fix ds-identify unit tests to set EC2_STRICT_ID_DEFAULT.
 - ec2: Fix maybe_perform_dhcp_discovery to use /var/tmp as a tmpdir
   [Chad Smith] (LP: #1717627)
 - Azure: wait longer for SSH pub keys to arrive.
   [Paul Meyer] (LP: #1717611)
 - GCE: Fix usage of user-data. (LP: #1717598)
 - cmdline: add collect-logs subcommand. [Chad Smith] (LP: #1607345)
 - CloudStack: consider dhclient lease files named with a hyphen.
   (LP: #1717147)
 - resizefs: Drop check for read-only device file, do not warn on
   overlayroot. [Chad Smith]
 - Do not provide systemd-fsck drop-in which could cause ordering cycles.
   [Balint Reczey] (LP: #1717477)
 - tests: Enable the NoCloud KVM platform [Joshua Powers]
 - resizefs: pass mount point to xfs_growfs [Dusty Mabe]
 - vmware: Enable nics before sending the SUCCESS event. [Sankar Tanguturi]
 - cloud-config modules: honor distros definitions in each module
   [Chad Smith] (LP: #1715738, #1715690)
 - chef: Add option to pin chef omnibus install version
   [Ethan Apodaca] (LP: #1462693)
 - tests: execute: support command as string [Joshua Powers]
 - schema and docs: Add jsonschema to resizefs and bootcmd modules
   [Chad Smith]
 - tools: Add xkvm script, wrapper around qemu-system [Joshua Powers]
 - vmware customization: return network config format
   [Sankar Tanguturi] (LP: #1675063)
 - Ec2: only attempt to operate at local mode on known platforms.
   (LP: #1715128)
 - Use /run/cloud-init for tempfile operations. (LP: #1707222)
 - ds-identify: Make OpenStack return maybe on arch other than intel.
   (LP: #1715241)
 - tests: mock missed openstack metadata uri network_data.json
   [Chad Smith] (LP: #1714376)
 - relocate tests/unittests/helpers.py to cloudinit/tests
   [Lars Kellogg-Stedman]
 - tox: add nose timer output [Joshua Powers]
 - upstart: do not package upstart jobs, drop ubuntu-init-switch module.
 - tests: Stop leaking calls through unmocked metadata addresses
   [Chad Smith] (LP: #1714117)
 - distro: allow distro to specify a default locale [Ryan Harper]
 - tests: fix two recently added tests for sles distro.
 - url_helper: dynamically import oauthlib import from inside oauth_headers
   [Chad Smith]
 - tox: make xenial environment run with python3.6
 - suse: Add support for openSUSE and return SLES to a working state.
   [Robert Schweikert]
 - GCE: Add a main to the GCE Datasource.
 - ec2: Add IPv6 dhcp support to Ec2DataSource. [Chad Smith] (LP: #1639030)
 - url_helper: fail gracefully if oauthlib is not available
   [Lars Kellogg-Stedman] (LP: #1713760)
 - cloud-init analyze: fix issues running under python 2. [Andrew Jorgensen]
 - Configure logging module to always use UTC time.
   [Ryan Harper] (LP: #1713158)
 - Log a helpful message if a user script does not include shebang.
   [Andrew Jorgensen]
 - cli: Fix command line parsing of coniditionally loaded subcommands.
   [Chad Smith] (LP: #1712676)
 - doc: Explain error behavior in user data include file format.
   [Jason Butz]
 - cc_landscape & cc_puppet: Fix six.StringIO use in writing configs
   [Chad Smith] (LP: #1699282, #1710932)
 - schema cli: Add schema subcommand to cloud-init cli and cc_runcmd schema
   [Chad Smith]
 - Debian: Remove non-free repositories from apt sources template.
   [Joonas Kylmälä] (LP: #1700091)
 - tools: Add tooling for basic cloud-init performance analysis.
   [Chad Smith] (LP: #1709761)
 - network: add v2 passthrough and fix parsing v2 config with bonds/bridge
   params [Ryan Harper] (LP: #1709180)
 - doc: update capabilities with features available, link doc reference,
   cli example [Ryan Harper]
 - vcloud directory: Guest Customization support for passwords
   [Maitreyee Saikia]
 - ec2: Allow Ec2 to run in init-local using dhclient in a sandbox.
   [Chad Smith] (LP: #1709772)
 - cc_ntp: fallback on timesyncd configuration if ntp is not installable
   [Ryan Harper] (LP: #1686485)
 - net: Reduce duplicate code. Have get_interfaces_by_mac use
   get_interfaces.
 - tests: Fix build tree integration tests [Joshua Powers]
 - sysconfig: Dont repeat header when rendering resolv.conf
   [Ryan Harper] (LP: #1701420)
 - archlinux: Fix bug with empty dns, do not render 'lo' devices.
   (LP: #1663045, #1706593)
 - cloudinit.net: add initialize_network_device function and tests
   [Chad Smith]
 - makefile: fix ci-deps-ubuntu target [Chad Smith]
 - tests: adjust locale integration test to parse default locale.
 - tests: remove 'yakkety' from releases as it is EOL.
 - tests: Add initial tests for EC2 and improve a docstring.
 - locale: Do not re-run locale-gen if provided locale is system default.
 - archlinux: fix set hostname usage of write_file.
   [Joshua Powers] (LP: #1705306)
 - sysconfig: support subnet type of 'manual'.
 - tools/run-centos: make running with no argument show help.
 - Drop rand_str() usage in DNS redirection detection
   [Bob Aman] (LP: #1088611)
 - sysconfig: use MACADDR on bonds/bridges to configure mac_address
   [Ryan Harper] (LP: #1701417)
 - net: eni route rendering missed ipv6 default route config
   [Ryan Harper] (LP: #1701097)
 - sysconfig: enable mtu set per subnet, including ipv6 mtu
   [Ryan Harper] (LP: #1702513)
 - sysconfig: handle manual type subnets [Ryan Harper] (LP: #1687725)
 - sysconfig: fix ipv6 gateway routes [Ryan Harper] (LP: #1694801)
 - sysconfig: fix rendering of bond, bridge and vlan types.
   [Ryan Harper] (LP: #1695092)
 - Templatize systemd unit files for cross distro deltas. [Ryan Harper]
 - sysconfig: ipv6 and default gateway fixes. [Ryan Harper] (LP: #1704872)
 - net: fix renaming of nics to support mac addresses written in upper
   case. (LP: #1705147)
 - tests: fixes for issues uncovered when moving to python 3.6.
   (LP: #1703697)
 - sysconfig: include GATEWAY value if set in subnet
   [Ryan Harper] (LP: #1686856)
 - Scaleway: add datasource with user and vendor data for Scaleway.
   [Julien Castets]
 - Support comments in content read by load_shell_content.
 - cloudinitlocal fail to run during boot [Hongjiang Zhang]
 - doc: fix disk setup example table_type options
   [Sandor Zeestraten] (LP: #1703789)
 - tools: Fix exception handling. [Joonas Kylmälä] (LP: #1701527)
 - tests: fix usage of mock in GCE test.
 - test_gce: Fix invalid mock of platform_reports_gce to return False
   [Chad Smith]
 - test: fix incorrect keyid for apt repository.
   [Joshua Powers] (LP: #1702717)
 - tests: Update version of pylxd [Joshua Powers]
 - write_files: Remove log from helper function signatures.
   [Andrew Jorgensen]
 - doc: document the cmdline options to NoCloud [Brian Candler]
 - read_dmi_data: always return None when inside a container. (LP: #1701325)
 - requirements.txt: remove trailing white space.
 - Azure: Add network-config, Refactor net layer to handle duplicate macs.
   [Ryan Harper]
 - Tests: Simplify the check on ssh-import-id [Joshua Powers]
 - tests: update ntp tests after sntp added [Joshua Powers]
 - FreeBSD: Make freebsd a variant, fix unittests and
   tools/build-on-freebsd.
 - FreeBSD: fix test failure
 - FreeBSD: replace ifdown/ifup with "ifconfig down" and "ifconfig up".
   [Hongjiang Zhang] (LP: #1697815)
 - FreeBSD: fix cdrom mounting failure if /mnt/cdrom/secure did not exist.
   [Hongjiang Zhang] (LP: #1696295)
 - main: Don't use templater to format the welcome message
   [Andrew Jorgensen]
 - docs: Automatically generate module docs form schema if present.
   [Chad Smith]
 - debian: fix path comment in /etc/hosts template.
   [Jens Sandmann] (LP: #1606406)
 - suse: add hostname and fully qualified domain to template.
   [Jens Sandmann]
 - write_file(s): Print permissions as octal, not decimal [Andrew Jorgensen]
 - ci deps: Add --test-distro to read-dependencies to install all deps
   [Chad Smith]
 - tools/run-centos: cleanups and move to using read-dependencies
 - pkg build ci: Add make ci-deps-<distro> target to install pkgs
   [Chad Smith]
 - systemd: make cloud-final.service run before apt daily services.
   (LP: #1693361)
 - selinux: Allow restorecon to be non-fatal. [Ryan Harper] (LP: #1686751)
 - net: Allow netinfo subprocesses to return 0 or 1.
   [Ryan Harper] (LP: #1686751)
 - net: Allow for NetworkManager configuration [Ryan McCabe] (LP: #1693251)
 - Use distro release version to determine if we use systemd in redhat spec
   [Ryan Harper]
 - net: normalize data in network_state object
 - Integration Testing: tox env, pyxld 2.2.3, and revamp framework
   [Wesley Wiedenmeier]
 - Chef: Update omnibus url to chef.io, minor doc changes. [JJ Asghar]
 - tools: add centos scripts to build and test [Joshua Powers]
 - Drop cheetah python module as it is not needed by trunk [Ryan Harper]
 - rhel/centos spec cleanups.
 - cloud.cfg: move to a template.  setup.py changes along the way.
 - Makefile: add deb-src and srpm targets. use PYVER more places.
 - makefile: fix python 2/3 detection in the Makefile [Chad Smith]
 - snap: Removing snapcraft plug line [Joshua Powers] (LP: #1695333)
 - RHEL/CentOS: Fix default routes for IPv4/IPv6 configuration.
   [Andreas Karis] (LP: #1696176)
 - test: Fix pyflakes complaint of unused import.
   [Joshua Powers] (LP: #1695918)
 - NoCloud: support seed of nocloud from smbios information
   [Vladimir Pouzanov] (LP: #1691772)
 - net: when selecting a network device, use natural sort order
   [Marc-Aurèle Brothier]
 - fix typos and remove whitespace in various docs [Stephan Telling]
 - systemd: Fix typo in comment in cloud-init.target. [Chen-Han Hsiao]
 - Tests: Skip jsonschema related unit tests when dependency is absent.
   [Chad Smith] (LP: #1695318)
 - azure: remove accidental duplicate line in merge.
 - azure: identify platform by well known value in chassis asset tag.
   [Chad Smith] (LP: #1693939)
 - tools/net-convert.py: support old cloudinit versions by using kwargs.
 - ntp: Add schema definition and passive schema validation.
   [Chad Smith] (LP: #1692916)
 - Fix eni rendering for bridge params that require repeated key for
   values. [Ryan Harper]
 - net: remove systemd link file writing from eni renderer [Ryan Harper]
 - AliYun: Enable platform identification and enable by default.
   [Junjie Wang] (LP: #1638931)
 - net: fix reading and rendering addresses in cidr format.
   [Dimitri John Ledkov] (LP: #1689346, #1684349)
 - disk_setup: udev settle before attempting partitioning or fs creation.
   (LP: #1692093)
 - GCE: Update the attribute used to find instance SSH keys.
   [Daniel Watkins] (LP: #1693582)
 - nplan: For bonds, allow dashed or underscore names of keys.
   [Dimitri John Ledkov] (LP: #1690480)
 - python2.6: fix unit tests usage of assertNone and format.
 - test: update docstring on test_configured_list_with_none
 - fix tools/ds-identify to not write None twice.
 - tox/build: do not package depend on style requirements.
 - cc_ntp: Restructure cc_ntp unit tests. [Chad Smith] (LP: #1692794)
 - flake8: move the pinned version of flake8 up to 3.3.0
 - tests: Apply workaround for snapd bug in test case. [Joshua Powers]
 - RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration.
   [Andreas Karis] (LP: #1679817, #1685534, #1685532)
 - disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
 - function spelling & docstring update [Joshua Powers]
 - Fixing wrong file name regression. [Joshua Powers]
 - tox: move pylint target to 1.7.1
 - Fix get_interfaces_by_mac for empty macs (LP: #1692028)
 - DigitalOcean: remove routes except for the public interface.
   [Ben Howard] (LP: #1681531.)
 - netplan: pass macaddress, when specified, for vlans
   [Dimitri John Ledkov] (LP: #1690388)
 - doc: various improvements for the docs on cc_users_groups.
   [Felix Dreissig]
 - cc_ntp: write template before installing and add service restart
   [Ryan Harper] (LP: #1645644)
 - cloudstack: fix tests to avoid accessing /var/lib/NetworkManager
   [Lars Kellogg-Stedman]
 - tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517)
 - Actually skip warnings when .skip file is present.
   [Chris Brinker] (LP: #1691551)
 - netplan: fix netplan render_network_state signature.
   [Dimitri John Ledkov] (LP: #1685944)
 - Azure: fix reformatting of ephemeral disks on resize to large types.
   (LP: #1686514)
 - Revert "tools/net-convert: fix argument order for render_network_state"
 - make deb: Add devscripts dependency for make deb. Cleanup
   packages/bddeb. [Chad Smith] (LP: #1685935)
 - tools/net-convert: fix argument order for render_network_state
   [Ryan Harper] (LP: #1685944)
 - openstack: fix log message copy/paste typo in _get_url_settings
   [Lars Kellogg-Stedman]
 - unittests: fix unittests run on centos [Joshua Powers]
 - Improve detection of snappy to include os-release and kernel cmdline.
   (LP: #1689944)
 - Add address to config entry generated by _klibc_to_config_entry.
   [Julien Castets] (LP: #1691135)
 - sysconfig: Raise ValueError when multiple default gateways are present.
   [Chad Smith] (LP: #1687485)
 - FreeBSD: improvements and fixes for use on Azure
   [Hongjiang Zhang] (LP: #1636345)
 - Add unit tests for ds-identify, fix Ec2 bug found.
 - fs_setup: if cmd is specified, use shell interpretation.
   [Paul Meyer] (LP: #1687712)
 - doc: document network configuration defaults policy and formats.
   [Ryan Harper]
 - Fix name of "uri" key in docs for "cc_apt_configure" module
   [Felix Dreissig]
 - tests: Enable artful [Joshua Powers]
 - nova-lxd: read product_name from environment, not platform.
   (LP: #1685810)
 - Fix yum repo config where keys contain array values
   [Dylan Perry] (LP: #1592150)
 - template: Update debian backports template [Joshua Powers] (LP: #1627293)
 - rsyslog: replace ~ with stop [Joshua Powers] (LP: #1367899)
 - Doc: add additional RTD examples [Joshua Powers] (LP: #1459604)
 - Fix growpart for some cases when booted with root=PARTUUID.
   (LP: #1684869)
 - pylint: update output style to parseable [Joshua Powers]
 - pylint: fix all logging warnings [Joshua Powers]
 - CloudStack: Add NetworkManager to list of supported DHCP lease dirs.
   [Syed]
 - net: kernel lies about vlans not stealing mac addresses, when they do
   [Dimitri John Ledkov] (LP: #1682871)
 - ds-identify: Check correct path for "latest" config drive
   [Daniel Watkins] (LP: #1673637)
 - doc: Fix example for resolve.conf configuration.
   [Jon Grimm] (LP: #1531582)
 - Fix examples that reference upstream chef repository.
   [Jon Grimm] (LP: #1678145)
 - doc: correct grammar and improve clarity in merging documentation.
   [David Tagatac]
 - doc: Add missing doc link to snap-config module. [Ryan Harper]
 - snap: allows for creating cloud-init snap [Joshua Powers]
 - DigitalOcean: assign IPv4ll address to lowest indexed interface.
   [Ben Howard]
 - DigitalOcean: configure all NICs presented in meta-data. [Ben Howard]
 - Remove (and/or fix) URL shortener references [Jon Grimm] (LP: #1669727)
 - HACKING.rst: more info on filling out contributors agreement.
 - util: teach write_file about copy_mode option
   [Lars Kellogg-Stedman] (LP: #1644064)
 - DigitalOcean: bind resolvers to loopback interface. [Ben Howard]
 - tests: fix AltCloud tests to not rely on blkid (LP: #1636531)
 - OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
 - Fix bug that resulted in an attempt to rename bonds or vlans.
   (LP: #1669860)
 - tests: update OpenNebula and Digital Ocean to not rely on host
   interfaces.
 - net: in netplan renderer delete known image-builtin content.
   (LP: #1675576)
 - doc: correct grammar in capabilities.rst [David Tagatac]
 - ds-identify: fix detecting of maas datasource. (LP: #1677710)
 - netplan: remove debugging prints, add debug logging [Ryan Harper]
 - ds-identify: do not write None twice to datasource_list.
 - support resizing partition and rootfs on system booted without
   initramfs. [Steve Langasek] (LP: #1677376)
 - apt_configure: run only when needed. (LP: #1675185)
 - OpenStack: identify OpenStack by product 'OpenStack Compute'.
   (LP: #1675349)
 - GCE: Search GCE in ds-identify, consider serial number in check.
   (LP: #1674861)
 - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
 - Fix filesystem creation when using "partition: auto"
   [Jonathan Ballet] (LP: #1634678)
 - ConfigDrive: support reading config drive data from /config-drive.
   (LP: #1673411)
 - ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
 - test: add running of pylint [Joshua Powers]
 - ds-identify: fix bug where filename expansion was left on.
 - advertise network config v2 support (NETWORK_CONFIG_V2) in features.
 - Bigstep: fix bug when executing in python3. [root]
 - Fix unit test when running in a system deployed with cloud-init.
 - Bounce network interface for Azure when using the built-in path.
   [Brent Baude] (LP: #1674685)
 - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
 - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
 - net: add renderers for automatically selecting the renderer.
 - doc: fix config drive doc with regard to unpartitioned disks.
   (LP: #1673818)
 - test: Adding integratiron test for password as list [Joshua Powers]
 - render_network_state: switch arguments around, do not require target
 - support 'loopback' as a device type.
 - Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
 - gitignore: adding doc/rtd_html [Joshua Powers]
 - doc: add instructions for running integration tests via tox.
   [Joshua Powers]
 - test: avoid differences in 'date' output due to daylight savings.
 - Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
 - Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
 - tox: add a citest environment
 - Further fix regression to support 'password' for default user.
 - fix regression when no chpasswd/list was provided.
 - Support chpasswd/list being a list in addition to a string.
   [Sergio Lystopad] (LP: #1665694)
 - doc: Fix configuration example for cc_set_passwords module.
   [Sergio Lystopad] (LP: #1665773)
 - net: support both ipv4 and ipv6 gateways in sysconfig.
   [Lars Kellogg-Stedman] (LP: #1669504)
 - net: do not raise exception for > 3 nameservers
   [Lars Kellogg-Stedman] (LP: #1670052)
 - ds-identify: report cleanups for config and exit value. (LP: #1669949)
 - ds-identify: move default setting for Ec2/strict_id to a global.
 - ds-identify: record not found in cloud.cfg and always add None.
 - Support warning if the used datasource is not in ds-identify's list.
 - tools/ds-identify: make report mode write namespaced results.
 - Move warning functionality to cloudinit/warnings.py
 - Add profile.d script for showing warnings on login.
 - Z99-cloud-locale-test.sh: install and make consistent.
 - tools/ds-identify: look at cloud.cfg when looking for ec2 strict_id.
 - tools/ds-identify: disable vmware_guest_customization by default.
 - tools/ds-identify: ovf identify vmware guest customization.
 - Identify Brightbox as an Ec2 datasource user. (LP: #1661693)
 - DatasourceEc2: add warning message when not on AWS.
 - ds-identify: add reading of datasource/Ec2/strict_id
 - tools/ds-identify: add support for found or maybe contributing config.
 - tools/ds-identify: read the seed directory on Ec2
 - tools/ds-identify: use quotes in local declarations.
 - tools/ds-identify: fix documentation of policy setting in a comment.
 - ds-identify: only run once per boot unless --force is given.
 - flake8: fix flake8 complaints in previous commit.
 - net: correct errors in cloudinit/net/sysconfig.py
   [Lars Kellogg-Stedman] (LP: #1665441)
 - ec2_utils: fix MetadataLeafDecoder that returned bytes on empty
 - apply the runtime configuration written by ds-identify.
 - ds-identify: fix checking for filesystem label (LP: #1663735)
 - ds-identify: read ds=nocloud properly (LP: #1663723)
 - support nova-lxd by reading platform from environment of pid 1.
   (LP: #1661797)
 - ds-identify: change aarch64 to use the default for non-dmi systems.
 - Remove style checking during build and add latest style checks to tox
   [Joshua Powers] (LP: #1652329)
 - code-style: make master pass pycodestyle (2.3.1) cleanly, currently:
   [Joshua Powers]
 - manual_cache_clean: When manually cleaning touch a file in instance dir.
 - Add tools/ds-identify to identify datasources available.
 - Fix small typo and change iso-filename for consistency [Robin Naundorf]
 - Fix eni rendering of multiple IPs per interface
   [Ryan Harper] (LP: #1657940)
 - tools/mock-meta: support python2 or python3 and ipv6 in both.
 - tests: remove executable bit on test_net, so it runs, and fix it.
 - tests: No longer monkey patch httpretty for python 3.4.2
 - Add 3 ecdsa-sha2-nistp* ssh key types now that they are standardized
   [Lars Kellogg-Stedman] (LP: #1658174)
 - reset httppretty for each test [Lars Kellogg-Stedman] (LP: #1658200)
 - build: fix running Make on a branch with tags other than master
 - EC2: Do not cache security credentials on disk
   [Andrew Jorgensen] (LP: #1638312)
 - doc: Fix typos and clarify some aspects of the part-handler
   [Erik M. Bray]
 - doc: add some documentation on OpenStack datasource.
 - OpenStack: Use timeout and retries from config in get_data.
   [Lars Kellogg-Stedman] (LP: #1657130)
 - Fixed Misc issues related to VMware customization. [Sankar Tanguturi]
 - Fix minor docs typo: perserve > preserve [Jeremy Bicha]
 - Use dnf instead of yum when available
   [Lars Kellogg-Stedman] (LP: #1647118)
 - validate-yaml: use python rather than explicitly python3
 - Get early logging logged, including failures of cmdline url.

0.7.9:
 - doc: adjust headers in tests documentation for consistency.
 - pep8: fix issue found in zesty build with pycodestyle.
 - integration test: initial commit of integration test framework
   [Wesley Wiedenmeier]
 - LICENSE: Allow dual licensing GPL-3 or Apache 2.0 [Jon Grimm]
 - Fix config order of precedence, putting kernel command line over system.
   [Wesley Wiedenmeier] (LP: #1582323)
 - pep8: whitespace fix
 - Update the list of valid ssh keys. [Michael Felt]
 - network: add ENI unit test for statically rendered routes.
 - set_hostname: avoid erroneously appending domain to fqdn
   [Lars Kellogg-Stedman] (LP: #1647910)
 - doc: change 'nobootwait' to 'nofail' in docs [Anhad Jai Singh]
 - Replace an expired bit.ly link in code comment.
 - user-groups: fix bug when groups was provided as string and had spaces
   (LP: #1354694)
 - mounts: use mount -a again to accomplish mounts (LP: #1647708)
 - CloudSigma: Fix bug where datasource was not loaded in local search.
   (LP: #1648380)
 - when adding a user, strip whitespace from group list [Lars Kellogg-Stedman]
   (LP: #1354694)
 - fix decoding of utf-8 chars in yaml test
 - Replace usage of sys_netdev_info with read_sys_net (LP: #1625766)
 - fix problems found in python2.6 test.
 - OpenStack: extend physical types to include hyperv, hw_veb, vhost_user.
   (LP: #1642679)
 - tests: fix assumptions that expected no eth0 in system. (LP: #1644043)
 - net/cmdline: Consider ip= or ip6= on command line not only ip=
   (LP: #1639930)
 - Just use file logging by default (LP: #1643990)
 - Improve formatting for ProcessExecutionError [Wesley Wiedenmeier]
 - flake8: fix trailing white space
 - Doc: various documentation fixes [Sean Bright]
 - cloudinit/config/cc_rh_subscription.py: Remove repos before adding
   [Brent Baude]
 - packages/redhat: fix rpm spec file.
 - main: set TZ in environment if not already set. [Ryan Harper]
 - Azure: No longer rely on walinux agent. (LP: #1538522)
 - disk_setup: Use sectors as unit when formatting MBR disks with sfdisk.
   [Daniel Watkins] (LP: #1460715)
 - Add activate_datasource, for datasource specific code paths. (LP: #1611074)
 - systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud
   (LP: #1642062)
 - systemd: cloud-init remove After=systemd-networkd-wait-online
 - systemd: cloud-init-local change Before basic to sysinit
 - pep8: fix style errors reported by pycodestyle 2.1.0
 - systemd: drop both Wants and After local-fs.target
 - systemd: networking service adjustments. (LP: #1636912)
 - systemd: replace Before=basic.target, dbus.target with sysinit.target
   (LP: #1629797)
 - doc: Add documentation on stages of boot.
 - doc: make the RST files consistently formated and other improvements.
 - Ec2: fix syntax and tox in previous commit.
 - Ec2: protect against non-dictionary in block-device-mapping.
 - doc: fixed example to not overwrite /etc/hosts [Chris Glass]
 - Doc: fix spelling / typos in ca_certs and scripts_vendor.
 - pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed.
 - net/cmdline: Further adjustments to ipv6 support [LaMont Jones]
   (LP: #1621615)
 - Add coverage dependency to bddeb to fix package build.
 - doc: improve HACKING.rst file
 - dmidecode: Allow dmidecode to be used on aarch64 [Robert Schweikert]
 - AliYun: Add new datasource for Ali-Cloud ECS [kaihuan.pkh]
 - Add coverage collection to tox unit tests. [Joshua Powers]
 - cc_users_groups: fix remaing call to ds.normalize_user_groups [Ryan Harper]
 - disk-config: udev settle after partitioning in gpt format. (LP: #1626243)
 - unittests: do not read system /etc/cloud/cloud.cfg.d (LP: #1635350)
 - Add documentation for logging features. [Wesley Wiedenmeier]
 - Add support for snap create-user on Ubuntu Core images. [Ryan Harper]
 - Fix sshd restarts for rhel distros. [Jim Gorz]
 - OpenNebula: replace 'ip' parsing with cloudinit.net usage.
 - Fix python2.6 things found running in centos 6.
 - Move user/group functions to new ug_util file
 - DigitalOcean: enable usage of data source by default.
 - update Gentoo initscripts to run in the correct order [Matthew Thode]
 - MAAS: improve the main of datasource to look at kernel cmdline config.
 - tests: silence the Cheetah UserWarning about NameMapper C version.
 - systemd: Run cloud-init.service Before dbus.socket not dbus.target
   [Daniel Watkins] (LP: #1629797)
 - systemd: run cloud-init.service Before dbus.service (LP: #1629797)
 - unittests: fix use of mock 2.0 'assert_called' when running make check
   [Ryan Harper]
 - Improve module documentation and doc cleanup. [Wesley Wiedenmeier]
 - lxd: Update network config for LXD 2.3 [Stéphane Graber]
 - DigitalOcean: use meta-data for network configruation [Ben Howard]
 - ntp: move to run after apt configuration (LP: #1628337)
 - Decode unicode types in decode_binary [Robert Schweikert]
 - systemd: Ensure that cloud-init-local happens before NetworkManager
 - Allow ephemeral drive to be unpartitioned [Paul Meyer]
 - subp: add 'update_env' argument
 - net: support reading ipv6 dhcp config from initramfs [LaMont Jones]
   (LP: #1621615, #1621507)
 - Adjust mounts and disk configuration for systemd. (LP: #1611074)
 - dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert]
 - systemd: put cloud-init.target After multi-user.target (LP: #1623868)

0.7.8:
 - SmartOS: more improvements for network configuration
 - add ntp config module [Ryan Harper]
 - ChangeLog: update changelog for previous commit.
 - Add distro tags on config modules that should have it.
 - NoCloud: fix bug providing network-interfaces via meta-data. (LP: 1577982)
 - ConfigDrive: recognize 'tap' as a link type. (LP: #1610784)
 - Upgrade to a configobj package new enough to work
 - MAAS: add vendor-data support (LP: #1612313)
 - DigitalOcean: use the v1.json endpoint [Ben Howard]
 - Get Azure endpoint server from DHCP client [Brent Baude]
 - Apt: add new apt configuration format [Christian Ehrhardt]
 - distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen]
 - Fix Gentoo net config generation [Matthew Thode]
 - Minor cleanups to atomic_helper and add unit tests.
 - azure dhclient-hook cleanups
 - network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR
 - Generate a dummy bond name for OpenStack (LP: #1605749)
 - add install option for openrc [Matthew Thode]
 - Add a module that can configure spacewalk.
 - python2.6: fix dict comprehension usage in _lsb_release.
 - apt-config: allow both old and new format to be present.
   [Christian Ehrhardt] (LP: #1616831)
 - bddeb: add --release flag to specify the release in changelog.
 - salt minion: update default pki directory for newer salt minion.
   (LP: #1609899)
 - Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810)
 - apt config conversion: treat empty string as not provided.  (LP: #1621180)
 - tests: cleanup tempdirs in apt_source tests
 - systemd: Better support package and upgrade. (LP: #1576692, #1621336)
 - remove obsolete .bzrignore
 - DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394)
 - Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968)

0.7.7:
 - open 0.7.7
 - Digital Ocean: add datasource for Digital Ocean. [Neal Shrader]
 - expose uses_systemd as a distro function (fix rhel7)
 - fix broken 'output' config (LP: #1387340)
 - begin adding cloud config module docs to config modules (LP: #1383510)
 - retain trailing eol from template files (sources.list) when
   rendered with jinja (LP: #1355343)
 - Only use datafiles and initsys addon outside virtualenvs
 - Fix the digital ocean test case on python 2.6
 - Increase the usefulness, robustness, configurability of the chef module
   so that it is more useful, more documented and better for users
 - Fix how '=' signs are not handled that well in ssh_utils (LP: #1391303)
 - Be more tolerant of ssh keys passed into 'ssh_authorized_keys'; allowing
   for list, tuple, set, dict, string types and warning on other unexpected
   types
 - Update to use newer/better OMNIBUS_URL for chef module
 - GCE: Allow base64 encoded user-data (LP: #1404311) [Wayne Witzell III]
 - GCE: use short hostname rather than fqdn (LP: #1383794) [Ben Howard]
 - systemd: make init stage run before login prompts shown [Steve Langasek]
 - hostname: on first boot apply hostname to be same as is written for
   persistent hostname.  (LP: #1246485)
 - remove usage of dmidecode on linux in favor of /sys interface [Ben Howard]
 - python3 support [Barry Warsaw, Daniel Watkins, Josh Harlow] (LP: #1247132)
 - support managing gpt partitions in disk config [Daniel Watkins]
 - Azure: utilze gpt support for ephemeral formating [Daniel Watkins]
 - CloudStack: support fetching password from virtual router [Daniel Watkins]
   (LP: #1422388)
 - readurl, read_file_or_url returns bytes, user must convert as necessary
 - SmartOS: use v2 metadata service (LP: #1436417) [Daniel Watkins]
 - NoCloud: fix local datasource claiming found without explicit dsmode
 - Snappy: add support for installing snappy packages and configuring.
 - systemd: use network-online instead of network.target (LP: #1440180)
   [Steve Langasek]
 - Add functionality to fixate the uid of a newly added user.
 - Don't overwrite the hostname if the user has changed it after we set it.
 - GCE datasource does not handle instance ssh keys (LP: 1403617)
 - sysvinit: make cloud-init-local run before network (LP: #1275098)
   [Surojit Pathak]
 - Azure: do not re-set hostname if user has changed it (LP: #1375252)
 - Fix exception when running with no arguments on Python 3. [Daniel Watkins]
 - Centos: detect/expect use of systemd on centos 7. [Brian Rak]
 - Azure: remove dependency on walinux-agent [Daniel Watkins]
 - EC2: know about eu-central-1 availability-zone (LP: #1456684)
 - Azure: remove password from on-disk ovf-env.xml (LP: #1443311) [Ben Howard]
 - Doc: include information on user-data in OpenStack [Daniel Watkins]
 - Systemd: check for systemd using sd_booted symantics (LP: #1461201)
   [Lars Kellogg-Stedman]
 - Add an rh_subscription module to handle registration of Red Hat instances.
   [Brent Baude]
 - cc_apt_configure: fix importing keys under python3 (LP: #1463373)
 - cc_growpart: fix specification of 'devices' list (LP: #1465436)
 - CloudStack: fix password setting on cloudstack > 4.5.1 (LP: #1464253)
 - GCE: fix determination of availability zone (LP: #1470880)
 - ssh: generate ed25519 host keys (LP: #1461242)
 - distro mirrors: provide datasource to mirror selection code to support
   GCE regional mirrors. (LP: #1470890)
 - add udev rules that identify ephemeral device on Azure (LP: #1411582)
 - _read_dmi_syspath: fix bad log message causing unintended exception
 - rsyslog: add additional configuration mode (LP: #1478103)
 - status_wrapper in main: fix use of print_exc when handling exception
 - reporting: add reporting module for web hook or logging of events.
 - NoCloud: fix consumption of vendordata (LP: #1493453)
 - power_state_change: support 'condition' to disable or enable poweroff
 - ubuntu fan: support for config and installing of ubuntu fan (LP: #1504604)
 - Azure: support extracting SSH key values from ovf-env.xml (LP: #1506244)
 - AltCloud: fix call to udevadm settle (LP: #1507526)
 - Ubuntu templates: modify sources.list template to provide same sources
   as install from server or desktop ISO. (LP: #1177432)
 - cc_mounts: use 'nofail' if system uses systemd. (LP: #1514485)
 - Azure: get instance id from dmi instead of SharedConfig (LP: #1506187)
 - systemd/power_state: fix power_state to work even if cloud-final
   exited non-zero (LP: #1449318)
 - SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965)
   [Robert C Jennings]
 - systemd: support using systemd-detect-virt to detect container
   (LP: #1539016) [Martin Pitt]
 - docs: fix lock_passwd documentation [Robert C Jennings]
 - Azure: Handle escaped quotes in WALinuxAgentShim.find_endpoint.
   (LP: #1488891) [Dan Watkins]
 - lxd: add support for setting up lxd using 'lxd init' (LP: #1522879)
 - Add Image Customization Parser for VMware vSphere Hypervisor
   Support. [Sankar Tanguturi]
 - timezone: use a symlink rather than copy for /etc/localtime
   unless it is already a file (LP: #1543025).
 - Enable password changing via a hashed string [Alex Sirbu]
 - Added BigStep datasource [Alex Sirbu]
 - No longer run pollinate in seed_random (LP: #1554152)
 - groups: add defalt user to 'lxd' group.  Create groups listed
   for a user if they do not exist. (LP: #1539317)
 - dmi data: fix failure of reading dmi data for unset dmi values
 - doc: mention label for nocloud datasource must be 'cidata' [Peter Hurley]
 - ssh_pwauth: fix module to support 'unchanged' and match behavior
   described in documentation [Chris Cosby]
 - quickly check to see if the previous instance id is still valid to
   avoid dependency on network metadata service on every boot (LP: #1553815)
 - support network configuration in cloud-init --local with support
   device naming via systemd.link.
 - FreeBSD: add support for installing packages, setting password and
   timezone.  Change default user to 'freebsd'. [Ben Arblaster]
 - locale: list unsupported environment settings in warning (LP: #1558069)
 - disk_setup: correctly send --force to mkfs on block devices (LP: #1548772)
 - chef: fix chef install from gems (LP: #1553345)
 - systemd: do not specify After of obsolete syslog.target (LP: #1536964)
 - centos: Ensure that resolve conf object is written as a str (LP: #1479988)
 - chef: straighten out validation_cert and validation_key (LP: #1568940)
 - phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong]
 - cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273)
   [Wido den Hollander]
 - Paths: fix instance path if datasource's id has a '/'. (LP: #1575938)
   [Robert Jennings]
 - Ec2: do not retry requests for user-data path on 404.
 - settings on the kernel command line (cc:) override all local settings
   rather than only those in /etc/cloud/cloud.cfg (LP: #1582323)
 - Improve merging documentation [Daniel Watkins]
 - apt sources: support inserting key/key-id only, custom sources.list,
   long gpg key fingerprints with spaces, and dictionary format (LP: #1574113)
 - SmartOS: datasource improvements and support for metadata service
   providing networking information.
 - Datasources: centrally handle 'dsmode' and no longer require datasources
   to "pass" if modules_init should be executed with network access.
 - ConfigDrive: improved support for networking information from
   a network_data.json or older interfaces formated network_config.
 - Change missing Cheetah log warning to debug [Andrew Jorgensen]
 - Remove trailing dot from GCE metadata URL (LP: #1581200) [Phil Roche]
 - support network rendering to sysconfig (for centos and RHEL)
 - write_files: if no permissions are given, just use default without warn.
 - user_data: fix error when user-data is not utf-8 decodable (LP: #1532072)
 - fix mcollective module with python3 (LP: #1597699) [Sergii Golovatiuk]

0.7.6:
 - open 0.7.6
 - Enable vendordata on CloudSigma datasource (LP: #1303986)
 - Poll on /dev/ttyS1 in CloudSigma datasource only if dmidecode says
   we're running on cloudsigma (LP: #1316475) [Kiril Vladimiroff]
 - SmartOS test: do not require existance of /dev/ttyS1. [LP: #1316597]
 - doc: fix user-groups doc to reference plural ssh-authorized-keys
   (LP: #1327065) [Joern Heissler]
 - fix 'make test' in python 2.6
 - support jinja2 as a templating engine.  Drop the hard requirement on
   cheetah.  This helps in python3 effort. (LP: #1219223)
 - change install path for systemd files to /lib/systemd/system
   [Dimitri John Ledkov]
 - change trunk debian packaging to use pybuild and drop cdbs.
   [Dimitri John Ledkov]
 - SeLinuxGuard: remove invalid check that looked for stat.st_mode in os.lstat.
 - do not write comments in /etc/timezone (LP: #1341710)
 - ubuntu: provide 'ubuntu-init-switch' module to aid in systemd testing.
 - status/result json: remove 'end' entry which was always null
 - systemd: make cloud-init block ssh service startup to guarantee keys
   are generated. [Jordan Evans] (LP: #1333920)
 - default settings: fix typo resulting in OpenStack and GCE not working
   unless config explicitly provided (LP: #1329583) [Garrett Holmstrom])
 - fix rendering resolv.conf if no 'options' are provided (LP: #1328953)
 - docs: fix disk-setup to reference 'table_type' [Rail Aliiev] (LP: #1313114)
 - ssh_authkey_fingerprints: fix bug that prevented disabling the module.
   (LP: #1340903) [Patrick Lucas]
 - no longer use pylint as a checker, fix pep8 [Jay Faulkner].
 - Openstack: do not load some urls twice.
 - FreeBsd: fix initscripts and add working config file [Harm Weites]
 - Datasource: fix broken logic to provide hostname if datasource does not
   provide one
 - Improved and less verbose logging.
 - resizefs: first check that device is writable.
 - configdrive: fix reading of vendor data to be like metadata service reader.
   [Jay Faulkner]
 - resizefs: fix broken background resizing [Jay Faulkner] (LP: #1338614)
 - cc_grub_dpkg: fix EC2 hvm instances to avoid prompt on grub update.
   (LP: #1336855)
 - FreeBsd: support config drive datasource [Joseph bajin]
 - cc_mounts: support creating a swap file
 - DigitalOcean & GCE: fix get_hostname consistency
0.7.5:
 - open 0.7.5
 - Add a debug log message around import failures
 - add a 'debug' module for easily printing out some information about
   datasource and cloud-init [Shraddha Pandhe]
 - support running apt with 'eatmydata' via configuration token
   apt_get_wrapper (LP: #1236531).
 - convert paths provided in config-drive 'files' to string before writing
   (LP: #1260072).
 - Azure: minor changes in logging output. ensure filenames are strings (not
   unicode).
 - config/cloud.cfg.d/05_logging.cfg: provide a default 'output' setting, to
   redirect cloud-init stderr and stdout /var/log/cloud-init-output.log.
 - drop support for resizing partitions with parted entirely (LP: #1212492).
   This was broken as it was anyway.
 - add support for vendordata in SmartOS and NoCloud datasources.
 - drop dependency on boto for crawling ec2 metadata service.
 - add 'Requires' on sudo (for OpenNebula datasource) in rpm specs, and
   'Recommends' in the debian/control.in [Vlastimil Holer]
 - if mount_info reports /dev/root is a device path for /, then convert
   that to a device via help of kernel cmdline.
 - configdrive: consider partitions as possible datasources if they have
   theh correct filesystem label. [Paul Querna]
 - initial freebsd support [Harm Weites]
 - fix in is_ipv4 to accept IP addresses with a '0' in them.
 - Azure: fix issue when stale data in /var/lib/waagent (LP: #1269626)
 - skip config_modules that declare themselves only verified on a set of
   distros.  Add them to 'unverified_modules' list to run anyway.
 - Add CloudSigma datasource [Kiril Vladimiroff]
 - Add initial support for Gentoo and Arch distributions [Nate House]
 - Add GCE datasource [Vaidas Jablonskis]
 - Add native Openstack datasource which reads openstack metadata
   rather than relying on EC2 data in openstack metadata service.
 - SmartOS, AltCloud: disable running on arm systems due to bug
   (LP: #1243287, #1285686) [Oleg Strikov]
 - Allow running a command to seed random, default is 'pollinate -q'
   (LP: #1286316) [Dustin Kirkland]
 - Write status to /run/cloud-init/status.json for consumption by
   other programs (LP: #1284439)
 - Azure: if a reboot causes ephemeral storage to be re-provisioned
   Then we need to re-format it. (LP: #1292648)
 - OpenNebula: support base64 encoded user-data
   [Enol Fernandez, Peter Kotcauer]
0.7.4:
 - fix issue mounting 'ephemeral0' if ephemeral0 was an alias for a
   partitioned block device with target filesystem on ephemeral0.1.
   (LP: #1236594)
 - fix DataSourceAzure incompatibility with 2.6 (LP: #1232175)
 - fix power_state_change config module so that example works.  Improve
   its documentation and add reference to 'timeout'
 - support apt-add-archive with 'cloud-archive:' format.  (LP: #1244355)
 - Change SmartOS verb for availability zone (LP: #1249124)
 - documentation fix for boothooks to use 'cloud-init-per'
 - fix resizefs module by supporting kernels that do not have
   /proc/PID/mountinfo.  (LP: #1248625) [Tim Daly Jr.]
 - fix 'make rpm' by removing 0.6.4 entry from ChangeLog (LP: #1241834)
0.7.3:
 - fix omnibus chef installer (LP: #1182265) [Chris Wing]
 - small fix for OVF datasource for iso transport on non-iso9660 filesystem
 - determine if upstart version is suitable for
   'initctl reload-configuration' (LP: #1124384).  If so, then invoke it.
   supports setting up instance-store disk with partition table and filesystem.
 - add Azure datasource.
 - add support for SuSE / SLES [Juerg Haefliger]
 - add a trailing carriage return to chpasswd input, which reportedly
   caused a problem on rhel5 if missing.
 - support individual MIME segments to be gzip compressed (LP: #1203203)
 - always finalize handlers even if processing failed (LP: #1203368)
 - support merging into cloud-config via jsonp. (LP: #1200476)
 - add datasource 'SmartOS' for Joyent Cloud.  Adds a dependency on serial.
 - add 'log_time' helper to util for timing how long things take
   which also reads from uptime. uptime is useful as clock may change during
   boot due to ntp.
 - prefer growpart resizer to 'parted resizepart' (LP: #1212492)
 - support random data seed from config drive or azure, and a module
   'seed_random' to read that and write it to /dev/urandom.
 - add OpenNebula Datasource [Vlastimil Holer]
 - add 'cc_disk_setup' config module for paritioning disks and creating
   filesystems.  Useful if attached disks are not formatted (LP: #1218506)
 - Fix usage of libselinux-python when selinux is disabled. [Garrett Holmstrom]
 - multi_log: only write to /dev/console if it exists [Garrett Holmstrom]
 - config/cloud.cfg: add 'sudo' to list groups for the default user
   (LP: #1228228)
 - documentation fix for use of 'mkpasswd' [Eric Nordlund]
 - respect /etc/growroot-disabled file (LP: #1234331)
0.7.2:
 - add a debian watch file
 - add 'sudo' entry to ubuntu's default user (LP: #1080717)
 - fix resizefs module when 'noblock' was provided (LP: #1080985)
 - make sure there is no blank line before cloud-init entry in
   there are no blank lines in /etc/ca-certificates.conf (LP: #1077020)
 - fix sudoers writing when entry is a string (LP: #1079002)
 - tools/write-ssh-key-fingerprints: use '-s' rather than '--stderr'
   option (LP: #1083715)
 - make install of puppet configurable (LP: #1090205) [Craig Tracey]
 - support omnibus installer for chef [Anatoliy Dobrosynets]
 - fix bug where cloud-config in user-data could not modify system_info
   settings (LP: #1090482)
 - fix CloudStack DataSource to use Virtual Router as described by
   CloudStack documentation if it is available by searching through dhclient
   lease files.  If it is not available, then fall back to the default
   gateway. (LP: #1089989)
 - fix redaction of password field in log (LP: #1096417)
 - fix to cloud-config user setup.  Previously, lock_passwd was broken and
   all accounts would be locked unless 'system' was given (LP: #1096423).
 - Allow 'sr0' (or sr[0-9]) to be specified without /dev/ as a source for
   mounts. [Vlastimil Holer]
 - allow config-drive-data to come from a CD device by more correctly
   filtering out partitions.  (LP: #1100545)
 - setup docs to be available on read-the-docs
   https://cloudinit.readthedocs.org/en/latest/ (LP: #1093039)
 - add HACKING file for information on contributing
 - handle the legacy 'user:' configuration better, making it affect the
   configured OS default user (LP: #1100920)
 - Adding a resolv.conf configuration module (LP: #1100434).  Currently only
   working on redhat systems (no support for resolvconf)
 - support grouping linux distros into "os_families".  This allows a module
   to operate on the family (redhat or debian) rather than the distro (ubuntu,
   debian, fedora, rhel) (LP: #1100029)
 - fix /etc/hosts writing when templates are used (LP: #1100036)
 - add package versioning logic to package installation
   functionality (LP: #1108047)
 - fix documentation for write_files to correctly list 'permissions'
   rather than 'perms' (LP: #1111205)
 - cloud-init-container.conf: ensure /run/network before running ifquery
 - DataSourceNoCloud: allow user-data and meta-data to be specified
   in config (LP: #1115833).
 - improve debian support in sysvinit scripts, package build scripts, and
   split sources.list template to be distro specific.
 - support for resizing btrfs root filesystems [Blair Zajac]
 - fix issue when writing ssh keys to .ssh/authorized_keys (LP: #1136343)
 - upstart: cloud-init-nonet.conf trap the TERM signal, so that dmesg or other
   output does not get a 'killed by TERM signal' message.
 - support resizing partitions via growpart or parted (LP: #1136936)
 - allow specifying apt-get command in distro config ('apt_get_command')
 - support different and user-suppliable merging algorithms for cloud-config
   (LP: #1023179)
 - use python-requests rather than urllib2.  By using recent versions of
   python-requests, we get https support (LP: #1067888).
 - make apt-get invoke 'dist-upgrade' rather than 'upgrade' for
   package_upgrade. (LP: #1164147)
 - improvements for systemd with Fedora 18
 - workaround 2.6 kernel issue that stopped blkid from showing /dev/sr0
 - add new, backwards compatible merging syntax so merging of cloud-config
   can be more useful.

0.7.1:
 - sysvinit: fix missing dependency in cloud-init job for RHEL 5.6
 - config-drive: map hostname to local-hostname (LP: #1061964)
 - landscape: install landscape-client package if not installed.
   only take action if cloud-config is present (LP: #1066115)
 - cc_landscape: restart landscape after install or config (LP: #1070345)
 - multipart/archive.  do not fail on unknown headers in multipart
   mime or cloud-archive config (LP: #1065116).
 - tools/Z99-cloud-locale-test.sh: avoid warning when user's shell is
   zsh (LP: #1073077)
 - fix stack trace when unknown user-data input had unicode (LP: #1075756)
 - split 'apt-update-upgrade' config module into 'apt-configure' and
   'package-update-upgrade-install'.  The 'package-update-upgrade-install'
   will be a cross distro module.
 - Cleanups:
   - Remove usage of paths.join, as all code should run through util helpers
   - Fix pylint complaining about tests folder 'helpers.py' not being found
   - Add a pylintrc file that is used instead options hidden in 'run_pylint'
 - fix bug where cloud-config from user-data could not affect system_info
   settings [revno 703] (LP: #1076811)
 - for write fqdn to system config for rh/fedora [revno 704]
 - add yaml/cloud config examples checking tool [revno 706]
 - Fix the merging of group configuration when that group configuration is a
   dict => members. [revno 707]
 - add yum_add_repo configuration module for adding additional yum repos
 - fix public key importing with config-drive-v2 datasource (LP: #1077700)
 - handle renaming and fixing up of marker names (LP: 1075980) [revno 710]
   this relieves that burden from the distro/packaging.
 - group config: fix how group members weren't being translated correctly
   when the group: [member, member...] format was used (LP: #1077245)
 - sysconfig: fix how the /etc/sysconfig/network should be using the fully
   qualified domain name instead of the partially qualified domain name
   which is used in the ubuntu/debian case (LP: #1076759)
 - fix how string escaping was not working when the string was a unicode
   string which was causing the warning message not to be written
   out (LP: #1075756)
 - for boto > 0.6.0 there was a lazy load of the metadata added, when
   cloud-init runs the usage of this lazy loading is hidden and since that lazy
   loading will be performed on future attribute access we must traverse the
   lazy loaded dictionary and force it to full expand so that if cloud-init
   blocks the ec2 metadata port the lazy loaded dictionary will continue
   working properly instead of trying to make additional url calls which will
   fail (LP: #1068801)
 - use a set of helper/parsing classes to perform system configuration
   for easier test.  (/etc/sysconfig, /etc/hostname, resolv.conf, /etc/hosts)
 - add power_state_change config module for shutting down stystem after
   cloud-init finishes. (LP: #1064665)
0.7.0:
 - add a 'exception_cb' argument to 'wait_for_url'.  If provided, this
   method will be called back with the exception received and the message.
 - utilize the 'exception_cb' above to modify the oauth timestamp in
   DataSourceMAAS requests if a 401 or 403 is received. (LP: #978127)
 - catch signals and exit rather than stack tracing
 - if logging fails, enable a fallback logger by patching the logging module
 - do not 'start networking' in cloud-init-nonet, but add
   cloud-init-container job that runs only if in container and emits
   net-device-added (LP: #1031065)
 - search only top level dns for 'instance-data' in
   DataSourceEc2 (LP: #1040200)
 - add support for config-drive-v2 (LP:#1037567)
 - support creating users, including the default user.
   [Ben Howard] (LP: #1028503)
 - add apt_reboot_if_required to reboot if an upgrade or package installation
   forced the need for one (LP: #1038108)
 - allow distro mirror selection to include availability-zone (LP: #1037727)
 - allow arch specific mirror selection (select ports.ubuntu.com on arm)
   LP: #1028501
 - allow specification of security mirrors (LP: #1006963)
 - add the 'None' datasource (LP: #906669), which will allow jobs
   to run even if there is no "real" datasource found.
 - write ssh authorized keys to console, ssh_authkey_fingerprints
   config module [Joshua Harlow] (LP: #1010582)
 - Added RHEVm and vSphere support as source AltCloud [Joseph VLcek]
 - add write-files module (LP: #1012854)
 - Add setuptools + cheetah to debian package build dependencies (LP: #1022101)
 - Adjust the sysvinit local script to provide 'cloud-init-local' and have
   the cloud-config script depend on that as well.
 - Add the 'bzr' name to all packages built
 - Reduce logging levels for certain non-critical cases to DEBUG instead of the
   previous level of WARNING
 - unified binary that activates the various stages
   - Now using argparse + subcommands to specify the various CLI options
 - a stage module that clearly separates the stages of the different
   components (also described how they are used and in what order in the
   new unified binary)
 - user_data is now a module that just does user data processing while the
   actual activation and 'handling' of the processed user data is done via
   a separate set of files (and modules) with the main 'init' stage being the
   controller of this
   - creation of boot_hook, cloud_config, shell_script, upstart_job version 2
     modules (with classes that perform there functionality) instead of those
     having functionality that is attached to the cloudinit object (which
     reduces reuse and limits future functionality, and makes testing harder)
 - removal of global config that defined paths, shared config, now this is
   via objects making unit testing testing and global side-effects a non issue
 - creation of a 'helpers.py'
   - this contains an abstraction for the 'lock' like objects that the various
     module/handler running stages use to avoid re-running a given
     module/handler for a given frequency. this makes it separated from
     the actual usage of that object (thus helpful for testing and clear lines
     usage and how the actual job is accomplished)
     - a common 'runner' class is the main entrypoint using these locks to
       run function objects passed in (along with there arguments) and there
       frequency
   - add in a 'paths' object that provides access to the previously global
     and/or config based paths (thus providing a single entrypoint object/type
     that provides path information)
       - this also adds in the ability to change the path when constructing
       that path 'object' and adding in additional config that can be used to
       alter the root paths of 'joins' (useful for testing or possibly useful
       in chroots?)
        - config options now avaiable that can alter the 'write_root' and the
         'read_root' when backing code uses the paths join() function
   - add a config parser subclass that will automatically add unknown sections
     and return default values (instead of throwing exceptions for these cases)
   - a new config merging class that will be the central object that knows
     how to do the common configuration merging from the various configuration
     sources. The order is the following:
     - cli config files override environment config files
       which override instance configs which override datasource
       configs which override base configuration which overrides
       default configuration.
 - remove the passing around of the 'cloudinit' object as a 'cloud' variable
   and instead pass around an 'interface' object that can be given to modules
   and handlers as there cloud access layer while the backing of that
   object can be varied (good for abstraction and testing)
 - use a single set of functions to do importing of modules
 - add a function in which will search for a given set of module names with
   a given set of attributes and return those which are found
 - refactor logging so that instead of using a single top level 'log' that
   instead each component/module can use its own logger (if desired), this
   should be backwards compatible with handlers and config modules that used
   the passed in logger (its still passed in)
   - ensure that all places where exception are caught and where applicable
     that the util logexc() is called, so that no exceptions that may occur
     are dropped without first being logged (where it makes sense for this
     to happen)
 - add a 'requires' file that lists cloud-init dependencies
   - applying it in package creation (bdeb and brpm) as well as using it
     in the modified setup.py to ensure dependencies are installed when
     using that method of packaging
 - add a 'version.py' that lists the active version (in code) so that code
   inside cloud-init can report the version in messaging and other config files
 - cleanup of subprocess usage so that all subprocess calls go through the
   subp() utility method, which now has an exception type that will provide
   detailed information on python 2.6 and 2.7
 - forced all code loading, moving, chmod, writing files and other system
   level actions to go through standard set of util functions, this greatly
   helps in debugging and determining exactly which system actions cloud-init
   is performing
 - adjust url fetching and url trying to go through a single function that
   reads urls in the new 'url helper' file, this helps in tracing, debugging
   and knowing which urls are being called and/or posted to from with-in
   cloud-init code
   - add in the sending of a 'User-Agent' header for all urls fetched that
     do not provide there own header mapping, derive this user-agent from
     the following template, 'Cloud-Init/{version}' where the version is the
     cloud-init version number
 - using prettytable for netinfo 'debug' printing since it provides a standard
   and defined output that should be easier to parse than a custom format
 - add a set of distro specific classes, that handle distro specific actions
   that modules and or handler code can use as needed, this is organized into
   a base abstract class with child classes that implement the shared
   functionality. config determines exactly which subclass to load, so it can
   be easily extended as needed.
   - current functionality
      - network interface config file writing
      - hostname setting/updating
      - locale/timezone/ setting
      - updating of /etc/hosts (with templates or generically)
      - package commands (ie installing, removing)/mirror finding
      - interface up/down activating
   - implemented a debian + ubuntu subclass
   - implemented a redhat + fedora subclass
 - adjust the root 'cloud.cfg' file to now have distrobution/path specific
   configuration values in it. these special configs are merged as the normal
   config is, but the system level config is not passed into modules/handlers
   - modules/handlers must go through the path and distro object instead
 - have the cloudstack datasource test the url before calling into boto to
   avoid the long wait for boto to finish retrying and finally fail when
   the gateway meta-data address is unavailable
 - add a simple mock ec2 meta-data python based http server that can serve a
   very simple set of ec2 meta-data back to callers
      - useful for testing or for understanding what the ec2 meta-data
        service can provide in terms of data or functionality
 - for ssh key and authorized key file parsing add in classes and util
   functions that maintain the state of individual lines, allowing for a
   clearer separation of parsing and modification (useful for testing and
   tracing)
 - add a set of 'base' init.d scripts that can be used on systems that do
   not have full upstart or systemd support (or support that does not match
   the standard fedora/ubuntu implementation)
   - currently these are being tested on RHEL 6.2
 - separate the datasources into there own subdirectory (instead of being
   a top-level item), this matches how config 'modules' and user-data
   'handlers' are also in there own subdirectory (thus helping new developers
   and others understand the code layout in a quicker manner)
 - add the building of rpms based off a new cli tool and template 'spec' file
   that will templatize and perform the necessary commands to create a source
   and binary package to be used with a cloud-init install on a 'rpm'
   supporting system
   - uses the new standard set of requires and converts those pypi requirements
     into a local set of package requirments (that are known to exist on RHEL
     systems but should also exist on fedora systems)
 - adjust the bdeb builder to be a python script (instead of a shell script)
   and make its 'control' file a template that takes in the standard set of
   pypi dependencies and uses a local mapping (known to work on ubuntu) to
   create the packages set of dependencies (that should also work on
   ubuntu-like systems)
 - pythonify a large set of various pieces of code
   - remove wrapping return statements with () when it has no effect
   - upper case all constants used
   - correctly 'case' class and method names (where applicable)
   - use os.path.join (and similar commands) instead of custom path creation
   - use 'is None' instead of the frowned upon '== None' which picks up a large
     set of 'true' cases than is typically desired (ie for objects that have
     there own equality)
   - use context managers on locks, tempdir, chdir, file, selinux, umask,
     unmounting commands so that these actions do not have to be closed and/or
     cleaned up manually in finally blocks, which is typically not done and
     will eventually be a bug in the future
   - use the 'abc' module for abstract classes base where possible
      - applied in the datasource root class, the distro root class, and the
        user-data v2 root class
 - when loading yaml, check that the 'root' type matches a predefined set of
   valid types (typically just 'dict') and throw a type error if a mismatch
   occurs, this seems to be a good idea to do when loading user config files
 - when forking a long running task (ie resizing a filesytem) use a new util
   function that will fork and then call a callback, instead of having to
   implement all that code in a non-shared location (thus allowing it to be
   used by others in the future)
 - when writing out filenames, go through a util function that will attempt to
   ensure that the given filename is 'filesystem' safe by replacing '/' with
   '_' and removing characters which do not match a given whitelist of allowed
   filename characters
 - for the varying usages of the 'blkid' command make a function in the util
   module that can be used as the single point of entry for interaction with
   that command (and its results) instead of having X separate implementations
 - place the rfc 8222 time formatting and uptime repeated pieces of code in the
   util module as a set of function with the name 'time_rfc2822'/'uptime'
 - separate the pylint+pep8 calling from one tool into two indivudal tools so
   that they can be called independently, add make file sections that can be
   used to call these independently
 - remove the support for the old style config that was previously located in
   '/etc/ec2-init/ec2-config.cfg', no longer supported!
 - instead of using a altered config parser that added its own 'dummy' section
   on in the 'mcollective' module, use configobj which handles the parsing of
   config without sections better (and it also maintains comments instead of
   removing them)
 - use the new defaulting config parser (that will not raise errors on sections
   that do not exist or return errors when values are fetched that do not
   exist) in the 'puppet' module
 - for config 'modules' add in the ability for the module to provide a list of
   distro names which it is known to work with, if when ran and the distro
   being used name does not match one of those in this list, a warning will be
   written out saying that this module may not work correctly on this
   distrobution
 - for all dynamically imported modules ensure that they are fixed up before
   they are used by ensuring that they have certain attributes, if they do not
   have those attributes they will be set to a sensible set of defaults instead
 - adjust all 'config' modules and handlers to use the adjusted util functions
   and the new distro objects where applicable so that those pieces of code can
   benefit from the unified and enhanced functionality being provided in that
   util module
 - fix a potential bug whereby when a #includeonce was encountered it would
   enable checking of urls against a cache, if later a #include was encountered
   it would continue checking against that cache, instead of refetching (which
   would likely be the expected case)
 - add a openstack/nova based pep8 extension utility ('hacking.py') that allows
   for custom checks (along with the standard pep8 checks) to occur when
   running 'make pep8' and its derivatives
 - support relative path in AuthorizedKeysFile (LP: #970071).
 - make apt-get update run with --quiet (suitable for logging) (LP: #1012613)
 - cc_salt_minion: use package 'salt-minion' rather than 'salt' (LP: #996166)
 - use yaml.safe_load rather than yaml.load (LP: #1015818)
0.6.3:
 - add sample systemd config files [Garrett Holmstrom]
 - add Fedora support [Garrent Holstrom] (LP: #883286)
 - fix bug in netinfo.debug_info if no net devices available (LP: #883367)
 - use python module hashlib rather than md5 to avoid deprecation warnings.
 - support configuration of mirror based on dns name ubuntu-mirror in
   local domain.
 - support setting of Acquire::HTTP::Proxy via 'apt_proxy'
 - DataSourceEc2: more resilliant to slow metadata service
   - config change: 'retries' dropped, 'max_wait' added, timeout increased
 - close stdin in all cloud-init programs that are launched at boot
   (LP: #903993)
 - revert management of /etc/hosts to 0.6.1 style (LP: #890501, LP: #871966)
 - write full ssh keys to console for easy machine consumption (LP: #893400)
 - put INSTANCE_ID environment variable in bootcmd scripts
 - add 'cloud-init-per' script for easily running things with a given frequency
 - replace cloud-init-run-module with cloud-init-per
 - support configuration of landscape-client via cloud-config (LP: #857366)
 - part-handlers now get base64 decoded content rather than 2xbase64 encoded
   in the payload parameter. (LP: #874342)
 - add test case framework [Mike Milner] (LP: #890851)
 - fix pylint warnings [Juerg Haefliger] (LP: #914739)
 - add support for adding and deleting CA Certificates [Mike Milner]
   (LP: #915232)
 - in ci-info lines, use '.' to indicate empty field for easier machine reading
 - support empty lines in "#include" files (LP: #923043)
 - support configuration of salt minions (Jeff Bauer) (LP: #927795)
 - DataSourceOVF: only search for OVF data on ISO9660 filesystems (LP: #898373)
 - DataSourceConfigDrive: support getting data from openstack config drive
   (LP: #857378)
 - DataSourceNoCloud: support seed from external disk of ISO or vfat
   (LP: #857378)
 - DataSourceNoCloud: support inserting /etc/network/interfaces
 - DataSourceMaaS: add data source for Ubuntu Machines as a Service (MaaS)
   (LP: #942061)
 - DataSourceCloudStack: add support for CloudStack datasource [Cosmin Luta]
 - add option 'apt_pipelining' to address issue with S3 mirrors
   (LP: #948461) [Ben Howard]
 - warn on non-multipart, non-handled user-data [Martin Packman]
 - run resizefs in the background in order to not block boot (LP: #961226)
 - Fix bug in Chef support where validation_key was present in config, but
   'validation_cert' was not (LP: #960547)
 - Provide user friendly message when an invalid locale is set
   [Ben Howard] (LP: #859814)
 - Support reading cloud-config from kernel command line parameter and
   populating local file with it, which can then provide data for DataSources
 - improve chef examples for working configurations on 11.10 and 12.04
   [Lorin Hochstein] (LP: #960564)

0.6.2:
 - fix bug where update was not done unless update was explicitly set.
   It would not be run if 'upgrade' or packages were set to be installed
 - fix bug in part-handler code, that prevented working part-handlers
   (LP: #739694)
 - fix bug in resizefs cloud-config that would cause trace based on
   failure of 'blkid /dev/root' (LP: #726938)
 - convert dos formated files to unix for user-scripts, boothooks,
   and upstart jobs (LP: #744965)
 - fix bug in seeding of grub dpkg configuration (LP: #752361) due
   to renamed devices in newer (natty) kernels (/dev/sda1 -> /dev/xvda1)
 - make metadata urls configurable, to support eucalyptus in
   STATIC or SYSTEM modes (LP: #761847)
 - support disabling byobu in cloud-config
 - run cc_ssh as a cloud-init module so it is guaranteed to run before
   ssh starts (LP: #781101)
 - make prefix for keys added to /root/.ssh/authorized_keys configurable
   and add 'no-port-forwarding,no-agent-forwarding,no-X11-forwarding'
   to the default (LP: #798505)
 - make 'cloud-config ready' command configurable (LP: #785551)
 - make fstab fields used to 'fill in' shorthand entries configurable
   This means you do not have to have 'nobootwait' in the values
   (LP: #785542)
 - read /etc/ssh/sshd_config for AuthorizedKeysFile rather than
   assuming ~/.ssh/authorized_keys (LP: #731849)
 - fix cloud-init in ubuntu lxc containers (LP: #800824)
 - sanitize hosts file for system's hostname to 127.0.1.1 (LP: #802637)
 - add chef support (cloudinit/CloudConfig/cc_chef.py) (LP: ##798844)
 - do not give trace on failure to resize in lxc container (LP: #800856)
 - increase the timeout on url gets for "seedfrom" values (LP: #812646)
 - do not write entries for ephemeral0 on t1.micro (LP: #744019)
 - support 'include-once' so that expiring or one-time use urls can
   be used for '#include' to provide sensitive data.
 - support for passing public and private keys to mcollective via cloud-config
 - support multiple staticly configured network devices, as long as
   all of them come up early (LP: #810044)
 - Changes to handling user data mean that:
   * boothooks will now run more than once as they were intended (and as
     bootcmd commands do)
   * cloud-config and user-scripts will be updated from user data every boot
 - Fix issue where 'isatty' would return true for apt-add-repository.
   apt-add-repository would get stdin which was attached to a terminal
   (/dev/console) and would thus hang when running during boot.  (LP: 831505)
   This was done by changing all users of util.subp to have None input unless
   specified
 - Add some debug info to the console when cloud-init runs.
   This is useful if debugging, IP and route information is printed to the
   console.
 - change the mechanism for handling .ssh/authorized_keys, to update entries
   rather than appending.  This ensures that the authorized_keys that are
   being inserted actually do something (LP: #434076, LP: #833499)
 - log warning on failure to set hostname (LP: #832175)
 - upstart/cloud-init-nonet.conf: wait for all network interfaces to be up
   allow for the possibility of /var/run != /run.
 - DataSourceNoCloud, DataSourceOVF : do not provide a default hostname.
   This way the configured hostname of the system will be used if not provided
   by metadata (LP: #838280)
 - DataSourceOVF: change the default instance id to 'iid-dsovf' from 'nocloud'
 - Improve the OVF documentation, and provide a simple command line
   tool for creating a useful ISO file.

0.6.1:
 - fix bug in fixing permission on /var/log/cloud-init.log (LP: #704509)
 - improve comment strings in rsyslog file tools/21-cloudinit.conf
 - add previous-instance-id and previous-datasource files to datadir
 - add 'datasource' file to instance dir
 - add setting of passwords and enabling/disabling of PasswordAuthentication
   for sshd.  By default no changes are done to sshd.
 - fix for puppet configuration options (LP: #709946) [Ryan Lane]
 - fix pickling of DataSource, which broke seeding.
 - turn resize_rootfs default to True
 - avoid mounts in DataSourceOVF if 'read' on device fails
   'mount /dev/sr0' for an empty virtual cdrom device was taking 18 seconds
 - add 'manual_cache_clean' option to select manual cleaning of
   the /var/lib/cloud/instance/ link, for a data source that might
   not be present on every boot
 - make DataSourceEc2 retries and timeout configurable
 - add helper routines for apt-get update and install
 - add 'bootcmd' like 'runcmd' to cloud-config syntax for running things early
 - move from '#opt_include' in config file format to conf_d.
   ie, now files in /etc/cloud.cfg.d/ is read rather than reading
   '#opt_include <filename>' or '#include <filename>' in cloud.cfg
 - allow /etc/hosts to be written from hosts.tmpl. which allows
   getting local-hostname into /etc/hosts (LP: #720440)
 - better handle startup if there is no eth0 (LP: #714807)
 - update rather than append in puppet config [Marc Cluet]
 - add cloud-config for mcollective [Marc Cluet]
0.6.0:
 - change permissions of /var/log/cloud-init.log to accomodate
   syslog writing to it (LP: #704509)
 - rework of /var/lib/cloud layout
 - remove updates-check (LP: #653220)
 - support resizing / on first boot (enabled by default)
 - added support for running CloudConfig modules at cloud-init time
   rather than cloud-config time, and the new 'cloud_init_modules'
   entry in cloud.cfg to indicate which should run then.
   The driving force behind this was to have the rsyslog module
   able to run before rsyslog even runs so that a restart would
   not be needed (rsyslog on ubuntu runs on 'filesystem')
 - moved setting and updating of hostname to cloud_init_modules
   this allows the user to easily disable these from running.
   This also means:
   - the semaphore name for 'set_hostname' and 'update_hostname'
     changes to 'config_set_hostname' and 'config_update_hostname'
 - added cloud-config option 'hostname' for setting hostname
 - moved upstart/cloud-run-user-script.conf to upstart/cloud-final.conf
 - cloud-final.conf now runs runs cloud-config modules similar
   to cloud-config and cloud-init.
 - LP: #653271
   - added writing of "boot-finished" to /var/lib/cloud/instance/boot-finished
     this is the last thing done, indicating cloud-init is finished booting
   - writes message to console with timestamp and uptime
 - write ssh keys to console as one of the last things done
   this is to ensure they don't get run off the 'get-console-ouptut' buffer
 - user_scripts run via cloud-final and thus semaphore renamed from
   user_scripts to config_user_scripts
 - add support for redirecting output of cloud-init, cloud-config, cloud-final
   via the config file, or user data config file
 - add support for posting data about the instance to a url (phone_home)
 - add minimal OVF transport (iso) support
 - make DataSources that are attempted dynamic and configurable from
   system config. changen "cloud_type: auto" as configuration for this
   to 'datasource_list: [ "Ec2" ]'.  Each of the items in that list
   must be modules that can be loaded by "DataSource<item>"
 - add 'timezone' option to cloud-config (LP: #645458)
 - Added an additional archive format, that can be used for multi-part
   input to cloud-init.  This may be more user friendly then mime-multipart
   See example in doc/examples/cloud-config-archive.txt (LP: #641504)
 - add support for reading Rightscale style user data (LP: #668400)
   and acting on it in cloud-config (cc_rightscale_userdata.py)
 - make the message on 'disable_root' more clear (LP: #672417)
 - do not require public key if private is given in ssh cloud-config
   (LP: #648905)
# vi: syntax=text textwidth=79