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
|
debputy (0.1.81) unstable; urgency=medium
[ Niels Thykier ]
* Add a `py.typed` file to expose typing to consumers
* fix: crash with `dh-sequence-zz-debputy-rrr` with `dbgsym` packages.
Thanks to Chris Hofstaedtler <zeha@debian.org> (Closes: #1126403)
* fix: incorrect error related to `Rules-Requires-Root` in `full` mode.
In `full` mode, building packages with static ownership would fail
since `dpkg-buildpackage` will not pass `DEB_RULES_REQUIRES_ROOT`
in the environment (it only applies to `debian/rules` based builds).
With this change, `debputy` behaves like `DEB_RULES_REQUIRES_ROOT`
was set to `no` (with a slightly different warning message), since
`debputy` is here to support "rootless" builds
[ Nicolas Boulenguez ]
* 19 refactor, typing fixes and other internal clean up commits
to improve the maintainability for developers.
-- Niels Thykier <niels@thykier.net> Mon, 26 Jan 2026 18:22:05 +0000
debputy (0.1.80) unstable; urgency=medium
* API:
- *Backwards incompatibility*: Remove unused `VirtualPath.stat`
method from the public spec. As mentioned, it was unused,
so no breakage expected. Note that the default implementation
still has the method, so at this point it will only be visible
as a typing warning and not a runtime error.
[ Nicolas Boulenguez ]
* Improve log, warning and error messages related to the new
`built-using` and `static-built-using` features.
* 40+ refactor, typing fixes and other internal clean up commits
to improve the maintainability for developers.
[ Niels Thykier ]
* deb_packer.py: provide closer match to `dpkg-deb` `xz` compression
-- Niels Thykier <niels@thykier.net> Sat, 24 Jan 2026 11:40:48 +0000
debputy (0.1.79) unstable; urgency=medium
* Backwards Incompatibility:
- Install `debian/pkg.modprobe` files under `/usr/lib/modprobe.d`.
No packages using `debputy` in Debian used this feature yet,
so the change was done without migration. If you migrate a
package using `debian/pkg.modprobe`, please consider adding
`dh-debputy (>= 0.1.79~)` as Build-Dependency to ensure there
are no surprises with backports (etc.).
* Manifest changes:
- Add `built-using` and `static-built-using` keywords to enable
`debputy` to generate `Built-Using` and `Static-Built-Using`
for you. This replaces the `dh-sequence-builtusing` when
using either `full` or `dh-sequence-zz-debputy` integration
mode. (Closes: #1121339)
* migrate-from-dh:
- Detect and provide manual instructions for migrating from
`dh-builtusing` in `dh-sequence-zz-debputy` or `full`
integration mode.
* Plugin API:
- Manifest detectors can now access some of the pluggable
manifest rules via the context.
[ Michael Hudson-Doyle ]
* debputy: Support Ubuntu's `Architecture-Variant` when deciding
the output file name for binary packages.
[ Nicolas Boulenguez ]
* Design and implement the `built-using` and `static-built-using`
feature based on `dh-builtusing`.
[ Niels Thykier ]
* debputy: Recognise `.org` as common upstream changelog extension.
This is to match `dh_installchangelogs`.
* Generated prerm: Validate that `python3` works before calling
`py3clean`. This is to match what `dh-python` does.
-- Niels Thykier <niels@thykier.net> Sun, 28 Dec 2025 12:07:00 +0000
debputy (0.1.78) unstable; urgency=medium
* LSP/Lint:
- Add check of canonical spelling of maintainer names.
- Provide bug links for `d/changelog` for the most
recent bugs.
-- Niels Thykier <niels@thykier.net> Sun, 12 Oct 2025 11:44:43 +0000
debputy (0.1.77) unstable; urgency=medium
* LSP/Lint:
- Add support for new `uscan` templates
* LSP/Reformat:
- Recognise `debian/gitlab-ci.yml`
* migrate-from-dh:
- Remove invalid min-compat check for dh-compat migrations
- Cope better with `../foo` paths in `dh` config files.
Either map to `debian/foo` or provide a better error
message, when unsupported.
* Plugin API:
- Improve support for modern types such as `str | list[str]`
instead of `Union[str, List[str]]`
* debputy: Use `difflib` rather than forking `diff -u` for diffs
* debputy: Add support for `X-Doc-Main-Package`
* debputy: fix potential crash (`NameError`) under `migrate-from-dh`
-- Niels Thykier <niels@thykier.net> Fri, 26 Sep 2025 18:27:40 +0000
debputy (0.1.76) unstable; urgency=medium
* LSP/Lint:
- Add `Version-Type` field metadata for `d/watch`
* debputy: Ensure relationship substvars are inserted in stable
order.
-- Niels Thykier <niels@thykier.net> Mon, 15 Sep 2025 18:08:21 +0000
debputy (0.1.75) unstable; urgency=medium
* Manifest:
- Fix a bug where two keywords where parsed but ignored.
The `installation-search-dirs` and the `conffile-management` keys
under `packages.<PACKAGE>` would be full parsed, validated and
then silently ignored due to a bug in `debputy`.
- Add `remove-during-clean`. This is `debputy`'s answer to
`debian/clean` from `dh_clean`. Thanks to
Paride Legovini <paride@debian.org> for reporting the missing
feature.
* migrate-from-dh:
- Support migrating `d/clean` files to the new
`remove-during-clean` feature.
-- Niels Thykier <niels@thykier.net> Sat, 30 Aug 2025 09:30:31 +0000
debputy (0.1.74.2) unstable; urgency=medium
* LSP/Lint: Fix metadata mismatch where `X-DH-Compat` was a binary field
-- Niels Thykier <niels@thykier.net> Wed, 27 Aug 2025 16:33:53 +0000
debputy (0.1.74.1) unstable; urgency=medium
* Include missing file
-- Niels Thykier <niels@thykier.net> Tue, 26 Aug 2025 18:54:21 +0000
debputy (0.1.74) unstable; urgency=medium
* LSP/Lint:
- Add `X-DH-Compat` as known `d/control` field
- Document `debputy` and `debian-rules` build drivers
* debputy: Speed start up time for some subcommands.
* debputy: Avoid defaulting to `debhelper`'s `none` build system
-- Niels Thykier <niels@thykier.net> Tue, 26 Aug 2025 18:51:57 +0000
debputy (0.1.73) unstable; urgency=medium
* migrate-from-dh:
- Add support for common configuration of packages
maintained in `git`. When `git` is detected,
`--apply-changes` is now the default and the changes
will be registered with `git`, so they are easier to
commit or undo.
- Add `dh-single-to-multi-binary` migration target, which
can assist with migrating from a single-binary to a
multi-binary source package with debhelper.
- Add `dh-package-prefixed-config-files` migration target,
which will add an explicit package prefix to all
recognizable debhelper config files. The `debhelper`
framework requires this for multi-binary source packages
as of compat 14+. This migration is a subset of the
`dh-single-to-multi-binary` migration.
[ Ananthu C V ]
* debian-wordlist.dic: add more tooling a programming language
related common jargon for Lint/LSP recognition
-- Niels Thykier <niels@thykier.net> Sun, 24 Aug 2025 07:53:59 +0000
debputy (0.1.72) unstable; urgency=medium
* LSP/Lint:
- Update `d/watch` metadata to match recent changes
- Add check for `Format` using `https://` in `d/copyright`
[ Niels Thykier ]
* doc: Provide a reading guide for the lint + LSP features
* d/control: Remove explicit `Priority` field
[ Ananthu C V ]
* debian-wordlist.dic: make the Lint/LSP recognize some of the
rust world
-- Niels Thykier <niels@thykier.net> Tue, 19 Aug 2025 20:19:36 +0000
debputy (0.1.71) unstable; urgency=medium
* Upload to unstable.
-- Niels Thykier <niels@thykier.net> Sun, 10 Aug 2025 06:55:29 +0000
debputy (0.1.70) experimental; urgency=medium
* LSP/Lint+Reformat:
- More strict deb822 checks before activating features
* LSP/Lint:
- Initial support for version 5 `debian/watch` files
- The `Priority` field now defaults to `optional`
* LSP/Reformat:
- Fix a limitation that prevented some automatic
rewrites of fields into their canonical form.
It was previously only observed with
`XC-Package-Type` but it is more apparent with
with the new `debian/watch` support.
* debputy reformat: Accept `--write-style` option
* debputy lsp server: Work around KDE#506664 to reduce
the noise in LSP output.
-- Niels Thykier <niels@thykier.net> Mon, 28 Jul 2025 08:48:26 +0000
debputy (0.1.69) experimental; urgency=medium
* LSP/Reformat:
- Fix bug that could eat field comments when the
field was reformatted.
Thanks to Chris Hofstaedtler <zeha@debian.org>
(Closes: debputy#140)
- Fix crash bug caused by overlapping edits. The
bug that caused overlapping edits was introduced
in 0.1.68.
* Fix LSP feature check for `spellchecking`. It checked
the wrong import was present and therefore the answer
did not reflect reality.
* Disable `dwz` to match `debhelper`. The migration of
`arch:any` packages now assumes compat 14 semantics
for this reason.
-- Niels Thykier <niels@thykier.net> Sat, 19 Jul 2025 06:12:03 +0000
debputy (0.1.68) experimental; urgency=medium
* LSP/Reformat:
- The `black` style now rewrites field names to use the canonical
spelling of fields for fields where `debputy` knows the canonical
name. Unknown fields remain in their current case/spelling.
* LSP/Lint:
- Improve performance of semantic tokens request (LSP only), diagnostics
(both LSP and `debputy lint` side), and inlay hints (LSP only).
- Add more sematic tokens for relationship fields
- Conditionally use `TextDocumentEdit` if the LSP client supports them.
(bring us one step closer to supporting quick fixes that renames files)
- Use plugin data for known packaging files to prevent false-positive
prevention. This also avoids double maintenance of known packaging
files.
- Fix crash on typo of key in YAML based files
- Recognize `.rst` and `.config` as non-typo extensions for files in
the `debian/` directory.
- Fix problem where raw type was shown instead of real type in the
hover docs.
- Improve YAML value validation to cover more cases. There are still
constructs where the validation should catch errors but where the
diagnostic code does not yet have a case for it.
- Fix quick fix for `manifest-version` value not being quoted. That is,
using the quick fix caused a diagnostic error. To add insult to injury,
said error would have a quick fix that did not fix the error.
- Hide integration mode text from hover docs in d/upstream/metadata
- Fix crash/exception on completion in completely empty YAML files
- Make it configurable if syntactical comments are spellchecked
(Closes: debputy#125)
- Provide completion suggestions in more cases for YAML based formats
- Suggest dpkg makefiles as completion in d/rules after `include`
- Support plugin provided manifest variables in completion + hover in
`debputy.manifest`.
- Tweak diagnostic message for using hook targets for inactive dh
commands.
- Define two more known substvars in `d/control` by providing hover
docs and completion suggestions for them.
- Add `vim-debian` ID for `debian/tests/control` after they added the
support for it this week in the mainline. Relevant editor config
snippet examples have been updated.
- Add more checks of the sign-off line in `d/changelog`
- Improve completion of variables in `debputy.manifest`. Notably,
it is now possible to complete them inside an incomplete quote
(which is a common case for them, since they require quoting).
* Manifest:
- All `debputy` provided build systems now accept a `test-rule`
attribute. It can be used to control when tests should be run
or when tests should be non-fatal.
- The definition of the `not` conditional has been corrected.
It previously allowed an invalid form as well as the intended.
The invalid form has now been removed.
- The `for` attributes in build systems now support basic package
selectors like `arch:all` in addition to plain package names.
* Plugin API:
- Add new preferred way for Python plugins to initialize
* Add `debian/lrc.config` as a known Debian packaging file,
which also means it is no longer a false positive for the typo
detection of packaging files in the `debian/` directory.
(Closes: debputy#135)
* debputy: Provide clearer error on some types of invalid plugins
* MANIFEST-FORMAT.md: Create a section on type mappings including
a full listing of all type mappings provided by `debputy`.
* Ensure generated MANIFEST-FORMAT.md always ends with a newline
* MANIFEST-FORMAT.md: Use literal markup for "enum"-like values
* Set HOME and XDG_RUNTIME_DIR during build similar to `debhelper`.
* Refactor to ensure dest_dirs from build systems are computed in build env.
This did not matter for any `debputy` provided build system, but will
likely be relevant for some third party build systems down the line.
* Build system: Cache output of `dpkg-buildflags` calls with same `DEB_*`
env.
* Fix problem where raw type was shown instead of real type in the static
docs and in the CLI output for showing docs.
* debputy: Be more lenient when parsing the LSP/lint config file
* Support building basic LSP/lint-only version of `debputy` via hatchling
* Bump Standards-Versions to 4.7.2
* Enable support for `debian/package.udev` files again
* migrate-from-dh: Recognise `zz-debputy-rrr` as known
* debputy: Add a `Commands` field to `.deb` packages (but not `.udeb`)
for packages that contains binaries in path to `command-not-found`
(see #638517).
* debputy: Work around `debhelper` or old `libjson-pp-perl` bug. This
could cause `debputy` emit false positives for most of the files
in the `debian/` directory. The problem can be avoided by installing
either this version of `debputy`, `debhelper/13.25`, or
`libjson-pp-perl/4.16000-1`. The `trixie` version of `perl` comes
with the relevant version of `libjson-pp-perl` implied, which is
why this problem was not reproducible in `trixie`.
-- Niels Thykier <niels@thykier.net> Tue, 15 Jul 2025 05:21:31 +0000
debputy (0.1.67.1) unstable; urgency=medium
[ Colin Watson ]
* Fix spelling of Maintainer field error in diagnostic
message.
[ Niels Thykier ]
* debputy: Fix crash with `debputy lint --auto-fix`
-- Niels Thykier <niels@thykier.net> Mon, 21 Apr 2025 18:00:45 +0000
debputy (0.1.67) unstable; urgency=medium
* debputy: Flush command output. When printing what build system
command is being run, flush the command so it appears before
its output to reduce confusion.
Thanks to Helmut Grohne <helmut@subdivi.de>
* cmake: Add missing -DCMAKE_INSTALL_LIBDIR to match what
`debhelper` does. This fixes a problem with cross-builds, but
native builds seems unaffected. Presumably, the Debian `cmake`
has a built-in default to apply the correct value here.
Thanks to Helmut Grohne <helmut@subdivi.de>
* debputy: Fix crash on creating dbgsym packages and other cases,
where `debputy` would include a symlink in the package without
a FS backed symlink behind it.
Thanks to Andrea Pappacoda <tachi@debian.org> (Closes: #1100154)
-- Niels Thykier <niels@thykier.net> Thu, 13 Mar 2025 16:50:42 +0000
debputy (0.1.66) unstable; urgency=medium
* LSP/Lint:
- Ensure `dh_assistant` is run from the current source package root.
This could cause false positive and false negative diagnostics
with the LSP mode (`debputy lint` was unaffected).
- Properly detect unused debhelper config files under `full`
integration.
- Flag substvars as `macro` in the semantic tokens. Editors that use
semantic tokens for highlighting can now highlight substvars distinctly
from the surrounding text.
- Emit comment tokens for comments inside unknown fields in the semantic
token feature. For editors that use semantic tokens for syntax
highlighting, these inline value comments are now properly highlighted.
- Consider relations with arch or build profile restrictions as complex
to reduce false positives (at the cost of false negative) for duplicated
relations.
- Do not consider hidden files as patches. This avoids triggering
"Unused Patch" diagnostics for `debian/patches/series" for editor
swap files that were hidden but did not match the previous known
patterns.
- Make severanl of the LSP features (diagnostics, semantic tokens, and
inlay hints) asynchronous. These requests will no longer stall
`debputy` until responded. This will make `debputy` seem more
responsive on larger files like `linux` (its generated `d/control`
is 0.5 MB).
Note that other requests (completion, hover) are still synchronous
and will block other requests (including ongoing asynchronous ones).
* debputy lsp server: Correctly track partial diagnostic reports
internally. The previous version did not emit partial diagnostic
reports, so this bug could not trigger any unintended behavio (
but probably would have down the line).
-- Niels Thykier <niels@thykier.net> Mon, 10 Mar 2025 22:11:30 +0000
debputy (0.1.65) unstable; urgency=medium
* LSP/Lint:
- Skip hover/completion inside Deb822 comments. Generally.
it ended up triggering for the next content line instead.
- Improve hover docs for packages when viewed in some editors
(concretely `kate`). The previous docs worked
specifically with how `emacs` rendered its Markdown docs.
However, `emacs`'s method does not reformat text blocks,
so it does not seem like it was the best editor to test with.
- Tweak Inlay hint for inherited Deb822 values to make it
prettier in `kate` and other editors. The previous rendering
relied on editors to "gracefully" cope with newlines in the
Inlay Hint label. The specs says nothing about the editor
should react to those, so it was safer to avoid them.
- When emitting a code action to the editor, do not provide
`TextEdit`s in the "old" and the "new" format. Some editors
(Concretely, `kate`) apply both with exciting but unhelpful
results. The spec seems implies that the server is at fault
if this happens, so the bug was probably `debputy`'s to
begin with.
- Track diagnostics with full metadata internally in `debputy`.
This enables quickfixes in editors that either do not inform
`debputy` of related diagnostics when requesting code actions
(`kate`) or when the editor does not support the `data`
attribute in the diagnostic (which the spec allows the editor
to "not do"). Either way, more editors should now see
quickfixes with `debputy`'s diagnostics.
- Fix incorrect duplication warning for `foo` vs. `foo:native`
when validating package relationships. Thanks to
Otto Kekäläinen <otto@debian.org> for reporting this problem
with the new check introduced in 0.1.64.
-- Niels Thykier <niels@thykier.net> Sat, 08 Mar 2025 22:14:52 +0000
debputy (0.1.64) unstable; urgency=medium
* LSP/Lint:
- Detect simple cases of duplicate relatations.
Thanks to Matthias Geiger <werdahias@debian.org>
(Closes: debputy#134)
[ Vincent Blut ]
* debputy: Fix command example to show editor snippets
* debputy.pod: Fix typo in man page
* deputy lsp editor-config: Fix missing '}' in filetype mapping
instructions for neovim
[ Niels Thykier ]
* Add an rtupdate script to ensure byte-compilation happens on
python interpreter update.
Thanks to Stefano Rivera <stefanor@debian.org> (Closes: #1099543)
* debputy lint: Print the related context when provided
* Fix type error/crash with certain diagnostics
-- Niels Thykier <niels@thykier.net> Fri, 07 Mar 2025 16:32:31 +0000
debputy (0.1.63) unstable; urgency=medium
* LSP/Lint:
- Fix crash on more invalid YAML files or manifests
- Support completion detail for `d/debputy.manifest` completions.
Only select cases have this feature, so you may still see
completions without a one-line detail about what it is.
* debputy: Refine the stack-trace shown on plugin initialization errors
* debputy: Correct logic for passing files to `strip-nondeterminism`
* debputy reformat: Skip sorting of fields when it would drop a comment
(Closes: debputy#112)
* debputy: Fix crash on install rules for packages not being built.
The change for debputy#132 introduced a regression, where packages not
being built (such as `arch:all` packages during a `-B` build) could
trigger a crash when a single install rule matched two or more "root"
directories that shared a common subdirectory (such as `examples/*`
with `examples/a/data` and `examples/b/data`).
Thanks to Abou Al Montacir <abou.almontacir@sfr.fr>
(Closes: #1093680)
* debputy: Stop passing `-v` to `strip-nondeterminism`
-- Niels Thykier <niels@thykier.net> Tue, 21 Jan 2025 19:08:10 +0000
debputy (0.1.62) unstable; urgency=medium
* Improve on-line documentation (`debputy plugin show p-m-r` or
hover docs in the LSP module for `debputy.manifest` file):
- Make conditional rules order deterministic. Previously, parts
were hash-order dependent and could change order between each
rendering.
- Fix incorrect reference to manifest variables. Previously,
the rendering incorrectly used `{FOO}` when it should have
shown `{{FOO}}`.
- Fix link anchor to a section.
- Mention required integration mode for features. Note this
change only lists the recorded integration mode tags in
the documentation. However, there may still be some features
that are still incorreclty tagged as "applicable in all
integration modes".
- Improve the docs for build systems and related attributes.
* MANIFEST-FORMAT.md: Generate a lot of the documentation from
`debputy` "on-line" docs rendering. This implies changed
formatting and layout. But also, the MANIFEST-FORMAT.md and
the online docs are now much more consistent, since most of
the docs have a single source of truth.
* MANIFEST-FORMAT.md: Document new build system rules and
environments. Thanks to Andrea Pappacoda <andrea@pappacoda.it>
(Closes: debputy#130)
* INTEGRATION-MODES.md: Tweak some wording
* debputy: Better error message on missing commands during builds
* debputy: Fix false-positive "path was not installed" with `-B`/`-A`
builds. (Closes: debputy#132)
* debputy: Avoid double-initialization of ENV for auto-detected
builds. This was just slow (invoked `dpkg-buildflags` twice) and
provided no benefits.
* meson: Make `--test` verbose by default to match upcoming
debhelper update (disabled in `terse` builds).
-- Niels Thykier <niels@thykier.net> Fri, 17 Jan 2025 20:21:22 +0000
debputy (0.1.61) unstable; urgency=medium
* LSP/Lint:
- Fix crash on some YAML errors and fix off-by-one in error range.
- Fix false positive "too short synopsis" with `${source:Synopsis}`
- Document `${source:Synopsis}` and `{source:Extended-Description}`
substvars.
[ Andrea Pappacoda ]
* cmake: pass BUILD_TESTING=OFF when nocheck option is active
* meson: pass --prefix=/usr to configure and cd to builddir in install
command.
[ Niels Thykier ]
* debputy: Fix crash bug with certain glob patterns.
Thanks to Andrea Pappacoda <andrea@pappacoda.it> for reporting the
issue. (Closes: #1093009)
* debputy reformat: Also react to SALSA_CI_ENABLE_WRAP_AND_SORT.
It is not documented as the official way to do it, but some
people use it.
-- Niels Thykier <niels@thykier.net> Tue, 14 Jan 2025 19:57:40 +0000
debputy (0.1.60.1) unstable; urgency=medium
[ Andrea Pappacoda ]
* cmake: fix lstrip of CFLAGS and CPPFLAGS concatenation.
(Closes: #1092877)
-- Niels Thykier <niels@thykier.net> Sun, 12 Jan 2025 23:30:37 +0000
debputy (0.1.60) unstable; urgency=medium
* LSP/Lint:
- Provide doc URIs in substvars hover docs.
- Make parts of the substvars description translatable.
* debputy editor-config: Mention `vim-python3` requirement for
`vim-youcompleteme`. That is, `vim-youcompleteme` needs to be
be used with a `vim` that provides `vim-python3` such as
`vim-nox`.
* debputy: Make `DEBPUTY_DEBUG=1` equal to `--debug` and document it
as such. Thanks to Andrea Pappacoda <andrea@pappacoda.it>
* debputy: Introduce trace logging for internal use. This reduces
some commonly "noise" such as "context switches" for plugins,
which is likely not going to be relevant in most situations.
* debputy: Fix `NoneType` crash in `relative_from_builddir_to_source`
Thanks to Andrea Pappacoda <andrea@pappacoda.it>
(Closes: #1092794)
* cmake build system: Correct definition of `pkg-config`. It now
uses full path to the `pkg-config` binary like `debhelper`.
* Fix inverted boolean logic that caused wrong environment
for the cmake and the meson build systems.
-- Niels Thykier <niels@thykier.net> Sun, 12 Jan 2025 15:15:56 +0000
debputy (0.1.59) unstable; urgency=medium
* LSP/Lint:
- Replace `XB-Important: yes` with `Protected: yes`
- Remove `X-Python-Version` rather than replacing it with
`X-Python3-Version`
- Correct spelling of `XB-Ruby-Versions` for Package
stanzas
* debputy.pod: Improve the man page documentation a bit
-- Niels Thykier <niels@thykier.net> Thu, 02 Jan 2025 20:24:49 +0000
debputy (0.1.58) unstable; urgency=medium
* debputy reformat: Adopt `wrap-and-sort`'s latest package
sorting changes. Thanks to Otto Kekäläinen <otto@debian.org>
(Closes: debputy#127)
-- Niels Thykier <niels@thykier.net> Sun, 29 Dec 2024 13:42:44 +0000
debputy (0.1.57) unstable; urgency=medium
* LSP/Lint:
- Fix crash/exception on using fields in the wrong stanza of
`debian/control`.
- Fix crash/exception on having obsolete fields in deb822 files.
- Demote "Non-canonical spelling" of field name to `pedantic`
(LSP `hint`) from `informational`.
- Improve the hover docs for the `Multi-Arch` field and its
values. Thanks to Justin B Rye.
[ Niels Thykier ]
* Add `.gitignore` to dest directories created when an upstream
build system creates it to ensure it does not appear in the
`git status` output. This is safe, since `debputy` always ignores
`.gitignore` by default in binary packages for any glob/recursive
matching.
* Remove `exec` bit from files in `usr/share/themes` when building
packages.
* debputy lsp server: Add `--force-locale` option. This can be
used to ensure that `debputy lsp server` always uses the given
locale code for translations. This will ignore any locale code
provided by the editor (if it provides one at all) as well as
any OS/environ locale setting (that is, LC_ALL et al. is
ignored). Since there are no translations, so it is not very
useful immediately.
[ Justin B Rye ]
* More textual reviews from d-l10n-english
-- Niels Thykier <niels@thykier.net> Mon, 16 Dec 2024 09:51:33 +0000
debputy (0.1.56) unstable; urgency=medium
* LSP/Lint: Check for trailing separator in `Maintainer` field.
(see #1089649)
* Tweak docs and make bug tracker URLs available on `debputy --help`
* Fix regex value validation to use the correct interpreter for the
field.
-- Niels Thykier <niels@thykier.net> Fri, 13 Dec 2024 14:13:42 +0000
debputy (0.1.55) unstable; urgency=medium
* LSP/Lint:
- Fix crash when no `Source` field was present in `d/control`
- Use more authoritative references for some diagnostics. Many
`debputy` related issues are now correctly reported `Policy X` issues
instead.
- Fix typo of `X-Python3-Version`. Thanks
Colin Watson <cjwatson@debian.org>.
[ Niels Thykier ]
* debputy lint: No longer correct spelling mistakes via `--auto-fix`.
The spell checker had too many false positives, so these are now
no longer candidates for automatic non-interactive fixing.
* debputy lint: Include source/authority reference in the diagnostic
when reporting an issue.
[ Colin Watson ]
* Fix `X-Pyton3-Version` typo when reporting `X-Python-Version` as
as obsolete.
-- Niels Thykier <niels@thykier.net> Thu, 12 Dec 2024 17:44:27 +0000
debputy (0.1.54) unstable; urgency=medium
* LSP/Lint:
- Reduce the chance of short dh config stems matching typos.
This should prevent most false positives "typos" of the
rarely used `.wm` file (used by `dh_installwm`) that would
trigger on most other two letter extensions such as `.md`.
(Closes: debputy#123)
- Exclude package names in spellchecking.
Thanks to Matthias Geiger (@werdahias) (Closes: debputy#124)
* build system: Automatically derive search dirs from build
systems
* Avoid using `debian/.debhelper` for dbgsym packages in full
integration mode
* Fix crash bug when combining two environments (could happen
with some configurations in `debian/debputy.manifest`).
* Fix crash bug with the `debputy lint` terminal report.
-- Niels Thykier <niels@thykier.net> Wed, 04 Dec 2024 21:22:33 +0000
debputy (0.1.53) unstable; urgency=medium
* LSP/Lint:
- Enable code actions (quick-fixes) for `d/patches/series`
- Remove quick-fix for patch not using `.patch` extension. It
would fail to rename the patch file, meaning it would cause
the `series` files to be invalid.
- Fix crash bug caused for (Static-)Built-Using
- Replace crash bug with a pedantic lint diagnostic for Uploaders
- Restrict (Static-)Built-Using to `=` version operator
- Fix confused metadata about `XS-Ruby-Versions` and `X-DhRuby-Root`
- Recognize `debian/changelog.dch` as a changelog when using filename
based matching in the `debputy lsp server` mode.
- Validate Debian version in `debian/changelog` is valid.
- Downgrade `R³` with `Build-Driver diagnostic` to informational
(down from a warning).
- Remove work around in Homepage check for `debputy lint --auto-fix`.
Previously, there was a guard preventing multiple overlapping
diagnostics because it would crash `debputy lint --auto-fix`, since
they both had a quick-fix. This has now been removed since
`debputy lint --auto-fix` no longer crashes on this case.
- Provide more validations on the Homepage field of `d/control`
- Flag use of `|` relations in (Static-)Built-Using
- Detect `dsfg` typo of `dfsg` in `d/changelog`
* Provide a how-to guide for using `debputy`'s maintainer support
features like `debputy lint`, `debputy reformat', and the
LSP features. The document is provided in
`/usr/share/doc/dh-debputy`.
* For very trivial arch:all "docs-only" packages, `debputy` will
now automatically set `Multi-Arch` to `foreign` if no
`Multi-Arch` field is set for the package. The package name
must end with `-doc` or `-docs` for this change to apply. This
is to avoid false positives with certain special cases like a
`Multi-Arch: no` package depending on a `Multi-Arch: same` package
to emulate `Multi-Arch: allowed` (which has its use-cases).
* debputy lint: Cope better with overlapping edits for `--auto-fix`
* debputy lint: Provide better error message on overlapping edit
in case can still be triggered.
-- Niels Thykier <niels@thykier.net> Sat, 09 Nov 2024 14:42:17 +0000
debputy (0.1.52) unstable; urgency=medium
* LSP/Lint:
- Only remove the `X[CBS]-` prefixes from `d/control` field names when
checking for known fields and duplicated fields.
- When completing field names, properly account for the `X[CBS]-` prefix
to avoid recommending a field that would be considered a duplicate.
- Add `X-Cargo-Crate` as a known field for `d/control`.
- Add some `Homepage` related diagnostics for `d/control`. Check for
insecure protocol and superfluous clutter in the URL/URI similar
to lintian.
-- Niels Thykier <niels@thykier.net> Sun, 13 Oct 2024 12:48:44 +0000
debputy (0.1.51) unstable; urgency=medium
* LSP/Lint:
- Textual improvements to hover documentation and completion documentation.
Thanks to Justin B Rye.
- Allow exactly 80 chars per line in the extended description
(Closes: debputy#122)
- Warn about unknown top-levels in d/upstream/metadata. Previously, they
were silently ignored unless they were typo-distance to a known field.
This more closely matches the behavior of lintian.
- Flag use of `Built-Using`/`Static-Built-Using` in arch:all packages.
These fields are reserved for arch:any packages.
- Provide better diagnostic for `>` and `<` version operators. Previously,
they triggered a "parse error" diagnostic. Now they are identified as
obsolete version operators with quick-fix suggestion to replace them
with a non-obsolete counterpart.
- Fix bug where known values were not always marked as obsolete
- Fix assertion error on empty `Section:` field
- Fix a case where completion docs would be on the form of `[TAG]: None`.
This happened if there was no documentation for the field, but it was
marked as obsolete or had a usage hint such as "RARE". The `: None` part
is now omitted for this case leaving only the `[TAG]` part.
- Mark `main/X` sections as replaced by `X`. The message for this diagnostic
is a bit more aggressive than it should be but it triggers a warning and
the proper quick-fix making it a net improvement.
- Promote the correct section on completion if `debputy` can derive it. This
is done by fiddling with the sort order, so it will now appear as the first
completion option.
[ Niels Thykier ]
* Improve translation documentation
* BuildSystemRule: Fix typo of `MESON_TESTTHREADS` and `--wrap-mode=nodownload`
[ Justin B. Rye ]
* Improve the hover documentation and completion documentation (those listed
under `LSP/Lint` above).
-- Niels Thykier <niels@thykier.net> Fri, 04 Oct 2024 09:51:13 +0000
debputy (0.1.50) unstable; urgency=medium
* LSP:
- Tweaked many of the hover doc and completion docs
for Deb822 files.
- Avoid false positive "typo of `.wm`" for vim's hidden
`.swp` files.
Thanks to David Kalnischkies <david@kalnischkies.de>
for reporting the issue. (Closes: debputy#121)
- Initial support for `debian/upstream/metadata`. Top-level
keys are now known, have hover docs and can be completed.
Unknown keys are accepted without warning provided they
are not considered a typo of a known field.
* migrate-from-dh:
- Support migrating from `dh_shell_completions`.
* Fix synopsis for `DM-Upload-Allowed` field
* Refactored the hover doc and known field logic for Deb822 based
files and extracted most of it into separate data files.
* debputy lsp server: Handle multiple initializations
more gracefully. This is mostly relevant for debugging
via the `--tcp` option.
* Add support zsh/fish-completion files as known packaging files
that `debputy` can install. Note that `debputy` uses `completion`
rather than `completions` (compared to `dh_shell_completions`).
The `debputy migrate-from-dh` will spot and fix the difference.
* d/control: Add `debputy-lsp` to Suggests
-- Niels Thykier <niels@thykier.net> Sat, 14 Sep 2024 10:09:04 +0000
debputy (0.1.49) unstable; urgency=medium
* LSP/Lint:
- Tweak hover docs and add synopsis for a lot of fields
- Add missing dependency validation for `Pre-Depends`
- Check for missing files like `debian/copyright`. For
the LSP style, it is reported for the `Source` field
of the `d/control` file.
- Add two trivial checks for extended description
- Ensure `debhelper` is at least 13.19~ to avoid
false-positive diagnostic (Closes: debputy#120)
* Move some LSP reference data to a separate data file
* Support translation of fields and many values. No translations
done yet.
-- Niels Thykier <niels@thykier.net> Sat, 31 Aug 2024 13:20:00 +0000
debputy (0.1.48) unstable; urgency=medium
* INTEGRATION-MODES.md: Correct `bullseye` that should have been `bookworm`
* Also set PKG_CONFIG in the `perl-build` build system like with
is done in the `perl-makemaker` build system.
* Remove lintian-overrides since `debputy` no longer uses `dh`
* d/control: Fix typo in description
* debputy.pod: Document security aspects of `debputy lsp server`
and `debputy lint`.
* debputy: Fix inaccurate directory listing in an error message.
* debputy: Ensure `u+rwX` as min mode when installing paths into the
packages. This change prevent crashes when upstream has marked
paths as read-only (such as `0444`).
Thanks to Andrey Rakhmatullin <wrar@debian.org> (Closes: #1078906)
Note: Paths can still get their user write bit removed via
transformations or built-in rules (such as files in `etc/sudoers.d`
which must be `0440`)
* debputy: Require directory mode to always have `u+rwx`. Previously,
only the `u+rx` mode was required. There is no known use-case for
directories to not have a read, write and execute for the owner.
-- Niels Thykier <niels@thykier.net> Sun, 18 Aug 2024 09:47:40 +0000
debputy (0.1.47) unstable; urgency=medium
* LSP/Lint:
- Fix missing textwrap.dedent for hover docs
- Tweak wording for undocumented fields
- Tweak wording for the `important` value from `Priority`
- Tweak rendering of header of hover docs for known value
- In hover docs, recognize `debputy-plugin-X` similar to `dh-sequence-Y`
- Make a d/changelog diagnostic message a bit more precise
* migrate-from-dh:
- Add remark about https://bugs.debian.org/1067653 in relevant
warnings.
* Expand documentation on integration modes (Closes: debputy#117)
* debputy: Fix a warning from auto-detecting when the source
package has no `debhelper` compat level.
* debputy: Restore log output from `pygls` (`debputy lsp server`)
-- Niels Thykier <niels@thykier.net> Tue, 13 Aug 2024 12:44:52 +0000
debputy (0.1.46) unstable; urgency=medium
* LSP:
- Improve wording of and fix typo in hover docs.
- Fix a typo of `hyphen-` that would distrupt "name to section"
checks for `hyphen-` packages.
[ Niels Thykier ]
* LSP: Fix typo of `hyphen-` and improve wording `Multi-Arch` field
* debputy: Hoist `nocheck` and `nodoc` into `DEB_BUILD_OPTIONS`
Thanks to Chris Hofstaedtler <zeha@debian.org>
* Skip `debian/foo.1` for packager provided files typo checks.
Thanks to Chris Hofstaedtler <zeha@debian.org>
* Set `PKG_CONFIG` ENV var for `perl-makemaker`
* Fix bug in initialization of `EnvironmentModification` (only affects
packages in `full` integration mode).
* Fix bug in escape_util and have it use more readable output by default
* Fix bug where pre-compressed manpage would be corrupted.
Thanks to Andrey Rakhmatullin <wrar@debian.org> (Closes: #1078448)
[ Guillem Jover ]
* LSP: Fix typos in several descriptions
-- Niels Thykier <niels@thykier.net> Sat, 10 Aug 2024 18:16:23 +0000
debputy (0.1.45) unstable; urgency=medium
* Manifest:
- Add new `default-build-environment`, `build-environments` and `build-rules`
for the new `full` integration mode where `debhelper` is no longer driving
the build.
- Port all `debhelper` provided build systems to have an native `debputy`
counter part with a few tweaks.
* LSP/Lint:
- Add `xpm` as a known extension for packager files
- Add `Build-Driver` as a known field for `debian/control`.
- Add `Files-Excluded` and `Files-Included` as known fields for DEP-5
- Quote values in completion items for the manifest. This means that
the value for `manifest-version` is now properly YAML quoted.
* debputy: Remove `--spellcheck` from "random" subcommands
* debputy: Fix missing warning with `--debug` (it was supposed to be omitted,
but never was due to exception flow).
* debputy reformat: Fix bug where orphaned packages would have a style by
default
* doc: Document decision on plugin module import vs. initialization design
* LSP/Lint: Fix crash with certain field being duplicated
* MANIFEST-FORMAT.md: Fix wording
* Add initial minimal `Build-Driver` support meaning that `debputy` can now use
`dpkg-buildpackage`'s new `Build-Driver` support to drive the build without
relying on `dh`. This requires bleeding edge features in `dpkg-buildpackage`
and `debputy`.
* Avoid stacktrace for CTRL + C during `run_command`
* Improve error tracking related to plugins
* Add remark about `env:` manifest variables sometimes respecting
`build-environment`.
-- Niels Thykier <niels@thykier.net> Sun, 04 Aug 2024 12:37:21 +0000
debputy (0.1.44) unstable; urgency=medium
* LSP:
- Provide hover docs for packages in relationship fields. Due to
implementation limitations, OR relations (`foo | bar`) do not
work. The hover doc relies on the system's APT cache with all
the limitations from that (like the data not matching the target
distribution)
- Fix wording in the synopsis hover doc
* debputy reformat: If possible provide the reformatting tool when the
style cannot be applied.
* debputy: Remove `printf` debug when log level is changed
* debputy: Prefer using line numbers in error messages when available
* editor-config: Improve the LSP config for `eglot`
* debputy: Improve mode correction for `*.pm` files.
Thanks to Russ Allbery <rra@debian.org> (Closes: #1076346)
-- Niels Thykier <niels@thykier.net> Mon, 15 Jul 2024 11:24:40 +0000
debputy (0.1.43) unstable; urgency=medium
* debputy: Only warn about missing `-dev` SO symlinks for libraries
in common lib paths (such as usr/lib/${MA})
* debputy: Fix bug where `DH_VERBOSE` would fail to print all
commands
* debputy: Distinguish between `--debug` and `DH_VERBOSE` in terms
of verbosity.
* debputy: Restore `Multi-Arch: same` field in dbgsym packages.
Thanks to Russ Allbery <rra@debian.org>
-- Niels Thykier <niels@thykier.net> Sun, 07 Jul 2024 07:18:46 +0000
debputy (0.1.42) unstable; urgency=medium
* LSP/Lint:
- Fix exception on some syntax errors
- Add `X?-Ruby-Versions` as a known (obsolete) field
- Include the final line of context (`debputy lint`-only)
- Syntax check dependency relation fields
- Detect incorrect version operators in `Provides`
- Fix crash on package stanzas without `Package` field
- Flag usage of `|` in relationship fields that does not
support it
- Fix invalid ranges for some checks when using field comments
-- Niels Thykier <niels@thykier.net> Sat, 06 Jul 2024 18:50:17 +0000
debputy (0.1.41) unstable; urgency=medium
* LSP/Lint:
- Fix typo in diagnostic message
- Reduce the number of false positive pkgfile typo warnings.
Thanks to Otto Kekäläinen <otto@debian.org> (Closes: debputy#109)
- Avoid recommending name segment for packaging files that do not
support that. Note all `debhelper` files currently "support"
name segments as far as `debputy` can tell, since `dh_assistant`
does not track this feature.
* debputy reformat: Fix error in instructions
* debputy-documentation.json: Add `debian/lintian-brush.conf` as
known file.
-- Niels Thykier <niels@thykier.net> Tue, 02 Jul 2024 20:52:51 +0000
debputy (0.1.40) unstable; urgency=medium
* Manifest changes:
- The manifest parser now validates the used features against the
integration mode. This causes some invalid manifests to be
detected at parse time (`debputy manifest`) rather than at
build time for `dh-sequence-zz-debputy-rrr`).
* LSP/Lint:
- Use `dh_assistant` to determine inactive commands. This improves
the check to cover commands that `debhelper` knows are inactive.
However, the functionality now requires `debhelper (>= 13.15~)`.
- Apply sequences from `debian/control` when analyzing `debian/rules`.
Note for LSP: Depending on your editor, you may have to save
`debian/control` first and then trigger a change in `debian/rules`
for it to be visible. (Known issue, see debputy#103 and debputy#108)
- Provide inlay hints for inherited fields in `debian/control`.
- Provide integration mode level checks for most features. The
capabilities on `path-metadata` is a known and notable case where
the LSP/Lint side is silent where `debputy check-manifest` would
complain.
- Provide a warning for unknown capabilities (that `cap_from_text`
does not recognize). Previously, this would only appear in
`debputy check-manifest` or during builds.
- Validate boolean and enum-like values for attributes of the
manifest. These would previously only be caught by
`debputy check-manifest` or during builds.
* debputy: Remove internal `--integration-mode=rrr` option.
* dh_debputy: Remove internal `--integration-mode=rrr` option.
-- Niels Thykier <niels@thykier.net> Sun, 30 Jun 2024 12:43:55 +0000
debputy (0.1.39) unstable; urgency=medium
* LSP/Lint:
- Reference wiki.d.o/PackageTransition for `Breaks`, `Conflicts` and
`Replaces` hover docs.
- Fix false-positive "unused `symbols` file". Thanks to
Otto Kekäläinen <otto@debian.org> (Closes: debputy#107)
* debputy: `lsp features` now works even without minimum requires installed
-- Niels Thykier <niels@thykier.net> Mon, 24 Jun 2024 07:52:09 +0000
debputy (0.1.38) unstable; urgency=medium
* LSP/Lint:
- Avoid self-DOS when checking packaging file names
- Perform more checks of packaging files
- Ignore `fundamental` language ID (from `emacs`'s `fundamental-mode`)
* debputy: Explicitly state how to see the editor snippets in the list of
snippets
* debputy: Special-case the file-level range in the output in the
`junit4-xml` output format for `debputy lint`.
* Fix matching of packager provided files for some corner cases. As a
side-effect, some more corner cases of typos of the name stem are
now detected by the LSP/Lint and annotate-debian-directory code
when `python3-levenshtein` is installed. As an example,
`foo.uxxr.service` can now be reported as a typo of `user.service`
(for `dh_installsystemduser`) where it was previously considered a
`service` file with a name segment of `uxxr` (for `dh_installsystemd`).
Though, this only happens subcommands that active look for typos
(such as the LSP/Lint part) and only when `python3-levenshtein` is
enabled (check `debputy lsp features` for the `typo detection`).
-- Niels Thykier <niels@thykier.net> Thu, 20 Jun 2024 05:54:24 +0000
debputy (0.1.37) unstable; urgency=medium
* LSP/Lint:
- Provide `sort text` for some completion suggestions to have
editors promote or demote certain values. Example being `allowed`,
which is rarely used and is now demoted below other options.
- Provide synopsis docs for various completion suggestions related
to field values.
- Provide a diagnostic for a "directory-only" match used in a
`Files` field of `debian/copyright'.
- Provide a diagnostic for `debhelper` config files and PPFs that
uses a name segment without an explicit package prefix. These
are possible typos of a real package name and additionally, they
are deprecated in debhelper compat 14 (removal planned for compat
15). Note that `debputy` did not allow name segments without
explicit package prefix for the PPFs it supported, so this
should only affect `debhelper` packages.
- Provide a diagnostic for 'debhelper` config files and PPFs that
used by commands not active in the `dh` sequence given the
current set of add-ons. This only applies to packages using
`dh` and relies 100% on `dh_assistant` providing useful data
for the package in question. For this feature to work,
`debhelper (>= 13.16~)` is needed. With older versions of
`debhelper` the check is silently disabled.
- Detect some typos in the "stem" part of debhelper config files
and PPFs (both `debputy` and `debhelper` provided PPFs).
Due to a technical limitation, the check only works when
there is exactly one match for the stem within
"typo edit distance". This means that typos of some stems
are likely to be unreported. A trivial example is the
typo `debian/dcos`, which is equally close to `debian/docs` and
`debian/dirs`.
* Update salsa CI configuration to better support backports
* Fix bug in handling absence of `python3-lsprotocol` in unstable
* Add missing help descriptions to `lint` and `reformat`
* Add a `debian/clean` to remove files after "rules-less" experiments
* debputy: `debputy lsp features` now reports if a newer version of
`debhelper` would help or provide improve support. Currently, the
lowest bound for passing is now `debhelper (>= 13.16~)`. The bound
may be bumped in the future as the need arises.
-- Niels Thykier <niels@thykier.net> Mon, 17 Jun 2024 16:07:04 +0000
debputy (0.1.36) unstable; urgency=medium
* LSP/Lint: Basic detection of hook targets that will not be run
with `debputy` sequences (debputy#103). Known issues are:
- The check does not account for sequences loaded via
`debian/rules`.
- The diagnostics does not automatically refresh in the
language server when changing `debian/control`. The work
around is to do a minor change to `debian/rules` to
re-trigger it.
* Internal refactoring of linter and LSP to make it easier to
make some build-dependencies fully optional, which in turn
makes backporting `debputy` to bookworm-backports a lot easier.
* debian/control: Mark some build-dependencies unnecessary for
bookworm-backports via a package specific build profile.
-- Niels Thykier <niels@thykier.net> Sun, 09 Jun 2024 11:45:02 +0000
debputy (0.1.35) unstable; urgency=medium
[ Niels Thykier ]
* Manifest:
- Fix inverted boolean logic causing `path-metadata` to reject matched
directories when it should have allowed the match.
* LSP/Lint:
- In regex based validation, ignore values with substvars to avoid
false positives.
- Fix typo in hover doc
- Fix two minor bugs (an out of bounds and None exception)
- Avoid double colon when completion YAML keys and there was already
a colon.
- Fix a bug where the YAML completion would not work properly if there was
any content on the line after the current line.
* debputy: Considerably reduce the output during package build by:
- Do not announce loading of bundled plugins
- Avoid unnecessary output related to installations (like search dir and
discard rules) for `rrr` integration mode.
- Reduce the log level to `warning` by default from info (other subcommands
still start on `info` level by default). In the `debhelper` integration
modes, `export DH_VERBOSE=1` will restore the `info` level logging.
- Guard some information (such as most commands being run) beyond info
logging.
[ Colin Watson ]
* LSP/Lint: Fix section for python3-zope.*
-- Niels Thykier <niels@thykier.net> Wed, 05 Jun 2024 17:33:57 +0000
debputy (0.1.34) unstable; urgency=medium
* LSP/Lint:
- Improve Synopsis hover docs by using a wording closer to
DevRef 6.2.2 and provide a reference example for comparison.
- Detect some issues with the Synopsis of package description.
Example include detecting known placeholders, the synopsis being
too short (single word), and the synopsis starting with an
article.
- Avoid emitting diagnostic for missing `Standards-Version` when
the source package only produces `udebs`.
- Limit diagnostics of `debian/changelog` to the first two issues
(Closes: debputy#92)
- The `black` style no longer normalizes stanza order. Instead,
current order is preserved as-is.
- Fix negated architectures being considered a typo. This is a quick
fix that side-steps the issue. However, the current solution should
be replaced by a specialized diagnostic logic for `Architecture`.
Thanks to
Picca Frédéric-Emmanuel <frederic-emmanuel.picca@synchrotron-soleil.fr>
for reporting the issue.
* debputy: Support `junit` report format for the `lint` subcommand.
(Closes: debputy#99)
* d/control: Have `dh-debputy` provide `debputy` for now to simplify
installation. The documentation still uses `dh-debputy` until such
a time where it makes sense to create a standalone `debputy` package.
* Improve support for `dwz` being missing to match `debhelper`
-- Niels Thykier <niels@thykier.net> Tue, 21 May 2024 14:48:10 +0000
debputy (0.1.33) unstable; urgency=medium
* LSP/Lint:
- Check `Files` in debian/copyright for unnecessary syntactical segments.
- Add basic validation of `Standards-Version` field (like out of date
Standards-Version or incorrect format)
- Add support for `debian/patches/series`. Note that for the LSP support
you will probably need `--ignore-language-ids` for it to activate.
Current features are:
+ Semantic tokens: Comments + Patches (as "String") are matched.
Some patch options are marked too.
+ Diagnostics: Patches not mentioned, non-existent patches, duplicate
patches, patches not ending with .diff/.patch (to aid editor
support), and syntax issues.
+ Completion: Patch names are completed. Option completion is not
supported (but `debian/patches/series` only allows `-p1` which
is redundant).
- Packages with multiple `Vcs-*` fields (ignoring `Vcs-Browser`) now
triggers a diagnostic.
- Linter (but not LSP) now has a separate severity for spelling issues
called `spelling`. It works like the previous severity for all intents
and purposes, it is just a different name for the same severity.
* d/control: Bump Standards-Version to 4.7.0 - no changes required
* Add basic `grantlee` packaging plugin to match the `debhelper`
sequence add-on of same name.
-- Niels Thykier <niels@thykier.net> Thu, 09 May 2024 10:43:23 +0000
debputy (0.1.32) unstable; urgency=medium
* LSP/Lint:
- Fix bug where `d/copyright` and `d/tests/control` was read as `d/control`
in `debputy lsp server` (`debputy lint` was unaffected).
- Fix bug in `in_range` detection that was sometimes completely off. This
could cause incorrect hover docs or completion suggestions to appear.
Admittedly, the above bug almost makes this one seem like a non-issue
in comparison.
- Support completing filenames in `Files` fields of `debian/copyright`.
* debputy reformat: Provide separate message for no style vs. unsupported
style
-- Niels Thykier <niels@thykier.net> Sun, 05 May 2024 12:41:27 +0000
debputy (0.1.31) unstable; urgency=medium
* LSP/Lint:
- Read `wrap-and-sort` args from `salsa-ci` as fallback
- Prune more fields and values in the deb822 completer based on
the context. As an example, `same` is no longer suggested as
a completion for `Multi-Arch` if the package is
`Architecture: all`. (Closes: debputy#88)
- Flag `X-Time64-Compat` as an issue in `Architecture: all`
packages.
- Update hover doc for `M-A: allowed` to clarify how rare it is
(less than 0.5%, down to 0.05% for `Architecture: all`).
[ Niels Thykier ]
* d/control: Allow `python3-ruamel.yaml` as alternative
* CI: Add CI tests to validate Ubuntu/noble works
* debputy reformat: Add option to not error out on missing styles
[ Maytham Alsudany ]
* LSP: Update Section reference data to include `golang` and `httpd`.
-- Niels Thykier <niels@thykier.net> Sat, 04 May 2024 11:18:18 +0000
debputy (0.1.30) unstable; urgency=medium
* LSP/Lint:
- Detect duplicate separators (commas) in most fields
- Fix typo in hover doc for `DM-Upload-Allowed`
- Support `X-Style: black` as style declaration to activate
automatic reformatting support. Conceptually, this is similar
to `wrap-and-sort -satkb` but it may evolve over time.
- Support reformatting of field contents on save or via explicit
reformat document request from editor (requires that `debputy`
knows which style you want - see previous entry for how to do
a per-package rule).
- Update `emacs+eglot` editor config snippet after the latest
elpa-dpkg-dev-el upload.
* Fix crash bug in embedded python3-debian code
* Declare styles for:
- Niels Thykier (black)
- Chris Hofstaedtler (black)
* style-prefs.yaml: Adding format rules for several packages
* Apply `debian black` style to `d/tests/control`
* Fix duplicate stderr logger with LSP (and similar commands)
* Fix invalid assertion error in some packages (Closes: #1069362)
* Cope better with `python3-colored (<< 2)`
Thanks to Chris Hofstaedtler <zeha@debian.org>
* Provide a new reformat subcommand. It works like `debputy lint`, but
only does formatting (which `debputy lint` does none of).
* debputy lint: Fix crash bug on missing `Source` field in `d/control`
* debputy: Make `lint` and `check-manifest' quieter to support
`pre-commit` hook
-- Niels Thykier <niels@thykier.net> Sun, 28 Apr 2024 13:21:45 +0000
debputy (0.1.29) unstable; urgency=medium
* LSP/Lint:
- The hover docs for a substvar like `${foo:Depends}` will now mention
that it is a "relationship substvar" and how it is redundant with
bleeding edge package helpers.
- Provide docs for many Completion suggestions in `d/control` and
`d/tests/control`
- Improve semantic token support for deb822 files to cover react
to known values, inter-stanza comments, field comments and in-field
value comments for known fields. In-field value comments for
unknown fields are still not marked as comments.
- Detect all mismatches between package name and section. Previously,
only `-udeb` packages have its section validated.
- The mismatched section diagnostics now provide quick-fixes also
when the `Section` field is not provided in the `Package` stanza
(or in the `Source` stanza)
[ Niels Thykier ]
* d/copyright: Fix typo of `Apache-2` license
* debputy: Support `--ignore-language-ids` in `debputy lsp server`. This
is useful for editors that provide language IDs that `debputy` does
not recognize, since it will make `debputy` disregard the language
ID and fallback to filename based rules. See the extended description
in `man debputy` for pros and cons of this option.
* Make `--tcp` and `--ws` for `debputy lsp server` mutually exclusive.
Previously, one of the options would just be "silently" ignored.
* debputy.pod: Document all `debputy lsp server` related command options
* LSP: Fix IndexError triggered with `emacs/eglot` in `d/control`
* debputy: Fix a warning about unknown "didChange" notifications.
[ Jochen Sprickerhof ]
* `debputy lsp editor-configs`: add `neovim+nvim-lspconfig`
-- Niels Thykier <niels@thykier.net> Wed, 24 Apr 2024 18:00:41 +0000
debputy (0.1.28) unstable; urgency=medium
[ Niels Thykier ]
* LSP/Lint:
- Fix missing `binary-targets` value for R³
- Emit multiple issues for the same value if applicable in deb822 files
- Detect exclusive values used with other values in deb822 files. Examples
include `any` or `all` in the `Architecture` field.
- Add `hover` docs to `debian/copyright` fields.
- Add basic support for cross-file data reference. As an example,
the `debputy.manifest` code can now determine which packages are
listed in `debian/control`. Additionally, the `debian/changelog` checks
will now assert that the source package name in the newest entry match
the `Source` field of `debian/control`.
- Provide specialized hover docs for `debian/control` that provides
specialized help for the synopsis part of the `Description` field.
- The hover docs for `debian/control` will now provide hover docs for
some substvars.
* debputy: `lsp features` now reports if general features are missing
* d/copyright: Add missing `GPL-2+` and missing `Apache-2` license stanzas
[ Andrea Pappacoda ]
* `debputy lsp editor-configs`: Add `yegappan`'s VIM LSP.
(https://github.com/yegappan/lsp).
-- Niels Thykier <niels@thykier.net> Wed, 10 Apr 2024 13:32:34 +0000
debputy (0.1.27.1) unstable; urgency=medium
[ David Kalnischkies ]
* Improve LSP hover docs:
- Don't encode <> in Uploaders field description
- Use consistently markdown */** instead of <em>/<b>
- Use markdown <automatic links> for URIs in text
- Define all allowed priorities only once
- Use **Example**: consistently in descriptions
- Format text consistently with `file` and `path/`
[ Niels Thykier ]
* LSP/Lint: Fix typo in `Upstream-Contact` field.
Thanks to gregor herrmann <gregoa@debian.org> (Closes: #1068523)
-- Niels Thykier <niels@thykier.net> Sun, 07 Apr 2024 08:18:06 +0200
debputy (0.1.27) unstable; urgency=medium
* LSP/Lint:
- Disable automatic syntax check of makefiles (`debian/rules`)
by default. The `make` man page strongly implies that it "may"
run code, which will be unhelpful to anyone using `debputy lint`
to review packages.
- The `debputy.manifest` diagnostics now flag conflicting
attributes in the manifest. Previously, these were only flagged
by `debputy check-manifest` or during build. (Closes: #85)
- When there is a typo of a keyword in `debputy.manifest` with one
obvious solution, the linting will continue linting based on
the corrected key rather than the original key.
- Improve the `debputy.manifest` diagnostics to cover deeper into
the manifest. Among other, it now offers some validation of
`ManifestCondition` (`when:`).
[ Niels Thyker ]
* Add `python3-levenshtein` to Suggests.
[ David Kalnischkies ]
* Fix a number of typos and other spelling related issues.
* Reformat files to remove trailing whitespace
-- Niels Thykier <niels@thykier.net> Sat, 06 Apr 2024 12:23:44 +0200
debputy (0.1.26) unstable; urgency=medium
* LSP/lint:
- Make debputy.manifest completer better at accounting for conflicting
keywords such as `as` vs. `sources` in `install`.
- The debputy.manifest completer now provides completions in more cases.
- Add basic support `debian/tests/control`. Note that `elpa-dpkg-dev-el`
does not support it yet in unstable (in git, expected to be 37.22) and
`vim` does not seem to have support for it.
* migrate-from-dh:
- Provide migration advice for known hook targets. Additionally, hook
targets with migration advice no longer triggers an unsupported
feature error (only a manual migration warning).
(Closes: debputy#78)
* lint: Fix crash bug when auto-fixing something at the start of a file
-- Niels Thykier <niels@thykier.net> Thu, 04 Apr 2024 12:36:11 +0200
debputy (0.1.25) unstable; urgency=medium
* LSP/lint:
- Provide initial hover docs for `d/debputy.manifest`.
- Provide initial completion support for `d/debputy.manifest`.
- Provide more diagnostics for `d/debputy.manifest`. Note that
`debputy check-manifest` still covers a lot more, but it usually
only reports one issue at the time and does not work with the LSP.
- When the editor does not provide a language id for the files,
`debputy` now attempts to guess the language from the filename.
This makes the language server work with most editors that do
not know about the file format (such as `debian/debputy.manifest`).
[ Niels Thykier ]
* d/copyright: Dual license linter and LSP, since that makes it easier
to share code with `debpkg-metadata`.
* debputy: Add YAML mode (debputy.manifest) to emacs LSP editor config
example.
* LSP/lint: Fix crash bug with some errors in debputy.manifest
* Migrate to `python3-ruyaml` as default. It has fewer arch:any
dependencies, which in turn should make arch bootstrapping easier.
(Closes: debputy#84)
* debputy: Make `debputy lsp editor-config` list known config names.
Thanks to David Kalnischkies <david@kalnischkies.de> (Closes: debputy#82)
* LSP: Fallback to filename based detection if no language id is provided
[ Otto Kekäläinen ]
* Add Lintian overrides
* Add Salsa-CI to both build packages, and to run `debputy lint` on itself
-- Niels Thykier <niels@thykier.net> Thu, 04 Apr 2024 07:18:03 +0200
debputy (0.1.24) unstable; urgency=medium
* Manifest:
- Add new keyword `services` under `packages.foo`, where the
packager can specify whether a given service or (systemd) unit
should be enabled/started on installation and how upgrades
should be managed. With this, more packages using
`dh_installsystemd` and `dh_installinit` can hopefully now use
`debputy`. Note user services is mentioned in the manifest
feature, but `debputy` does not actually detect any user
services.
* Plugin API:
- Detect duplicate service registrations and error out when
detected. The API is private, so it will not affect any
plugins outside `debputy`.
* debputy: Service maintscript snippets are now run in "service" order
* autopkgtests: Run `debputy lint` with the linter exit code
* debputy: Fix crash on re-encoding compressed man pages.
Thanks to Andrey Rakhmatullin <wrar@debian.org> (Closes: #1068102)
* debputy: Fix bug in -dbgsym generation that triggered lintian warnings.
Thanks to Chris Hofstaedtler <zeha@debian.org> (Closes: debputy#80)
* debputy: Fix crash bug on showing a pluggable-manifest-rule with
certain mutual exclusive attributes
* debputy: Fix `plugin show p-m-r` to show mutual exclusive optional attributes
* debputy: Avoid using `try-restart` as `deb-systemd-invoke` does not
support it. Replace it with regular `restart`.
* The getting started guide now features a section on migrating
`dh_installsystemd` and `dh_installinit` overrides.
-- Niels Thykier <niels@thykier.net> Sun, 31 Mar 2024 17:31:02 +0200
debputy (0.1.23) unstable; urgency=medium
* Breaking: Migration mode to `dh-sequence-zz-debputy-rrr`
should have included `dh_shlibdeps`, but did not due to a
mistake. This broke automatic substvar support and has been
retroactively fixed. Likewise, `debputy migrate-from-dh` has
been updated to detect hook targets for `dh_shlibdeps`.
-- Niels Thykier <niels@thykier.net> Fri, 29 Mar 2024 08:41:42 +0100
debputy (0.1.22.3) unstable; urgency=medium
* debputy: Fix typo of `type-mapping` suggestion in output
* debputy lint: Fix bug where errors on the first or last line
* lint/LSP: Provide a few "generic" field level validations. As
an example, the values of the `Package` and `Source` fields are
now checked against the standard regex for the validating
package names.
* debputy: Enable `lint` to run with invalid `debian/control` file.
As example, if a package stanza is missing the `Architecture`
field or is syntactically invalid, then the linter will now still
run and report this linting errors (rather than `debputy` hard
stopping on the first issue).
-- Niels Thykier <niels@thykier.net> Thu, 28 Mar 2024 11:37:22 +0100
debputy (0.1.22.2) unstable; urgency=medium
* Restore registration of `conffiles` in `dh-sequence-debputy`
integration. Thanks to Sven Joachim <svenjoac@gmx.de>
for reporting the bug. (Closes: #1067860)
* LSP: Add `XB-Installer-Menu-Item` as a known field
-- Niels Thykier <niels@thykier.net> Thu, 28 Mar 2024 08:41:14 +0100
debputy (0.1.22.1) unstable; urgency=medium
[ Sven Joachim ]
* debputy: fix update-alternatives call in generated prerm script
[ Niels Thykier ]
* lint: Fix crash bug when running the linter
-- Niels Thykier <niels@thykier.net> Thu, 28 Mar 2024 07:52:57 +0100
debputy (0.1.22) unstable; urgency=medium
[ Niels Thykier ]
* migrate-from-dh:
- Fix bug where some dh config lines were migrated wrong
* LSP/Lint:
- Provide better "guards" for `debian/rules` and `debputy.manifest`.
Since the LSP is accepting generic languages here for compatibility,
it should not apply to all instances of those generic languages.
- Add basic semantic token and folding range support for comments
in deb822 based files.
- Detect and leverage trivial cases of `dh ... --with addon` for
better precision.
- Fix the quick fix handler in LSP mode. It was disabled by mistake
due to some refactoring.
- Add some basic checks of the changelog sign off dates.
* CLI Breaking change: Rename `plugable` to `pluggable` in API
and command line interface. The relevant API is currently
"private-only", which is why this is not listed under a
"Plugin API" heading.
* LSP editor-config: Correct snippet for `vim+ycm`
* LSP editor-config emacs: Recommend elpa-markdown-mode
* Fix warning about -dbgsym packages for automatic M-A: same
* d/control: Add 3.11 version bound on python for now
* Improve migration from `dh` related documentation.
* Fix bug where `dpkg-gencontrol` could error out on dbgsym packages.
Fundamentally the same as debhelper's #1067711.
[ Otto Kekäläinen ]
* Apply 'wrap-and-sort -abkt'
* Fix misc spelling errors
-- Niels Thykier <niels@thykier.net> Wed, 27 Mar 2024 07:42:58 +0100
debputy (0.1.21) unstable; urgency=medium
* Plugin API:
- VirtualPath API: The `lookup` method now resolves symlinks if
necessary
- VirtualPath API: Provide `interpreter` method to resolve the
interpreter of a file (based on the `#!`-line).
* migrate-from-dh:
- Support different integration levels using the new --migration-target
option with defaults derived from existing packaging where possible.
* debputy: Code better with faulty optional plugins (Closes: debputy#73)
* README.md: Document communication channels
* debputy: Accept usr/lib/MA/Package as private python dir
* debputy: Provide `plugin {list,show} type-mappings` subcommand
* debputy: Preserve name of mapped type in most cases for plugin show p-m-r
* d/changelog: Typo fixes and re-align some entries that were "too long".
* Preserve mtime from ref_path where possible
* Fix bug where `binary-version` from the manifest was not used
* Add minimal `R³ dh` integration mode for `util-linux` and other packages
that want to migrate away from `fakeroot`. Use
`debputy migrate-from-dh --migration-target dh-sequence-zz-debputy-rrr`
to get migration aid for this integration mode.
* debputy: Make `mtime` resolution more robust (Closes: debputy#75)
* Auto-correct common interpreters
* Update handling of `t64:Provides` to match debhelper
* debputy: Fix crash bug when packages did not use debhelper
* debputy: Avoid passing the substvars file to dh_gencontrol for -dbgsym
packages
* debputy: Automatically apply relationship substvars. See
https://lists.debian.org/debian-devel/2024/03/msg00030.html for
details.
* debputy: Use `shlibs:Pre-Depends` by default for essential packages
* Implement initial Language Server based on `pygls` and linter. With this
comes the following new subcommands:
- `debputy lsp server` starts the language server to support editors
with Debian packaging files.
- `debputy lsp editor-config NAME` provides config snippets for
known editors.
- `debputy lsp features` provides a human readable list of features
and language IDs currently supported. Mostly useful for people
trying to determine what to put in their editor config where
`debputy lsp editor-config` cannot help them.
- `debputy lint` provides a "batch" (non-interactive) version of
the diagnostics that `debputy lsp server` provides for the case
where you want these without an editor as intermediate (or
where you editor does not support LSP).
Most of these features will require optional dependencies. Check the
Recommends and Suggests for packages that may be relevant for you.
The `debputy` man page has a section on how `debputy lint` relates
to other tools such as `debputy lsp` and `lintian`.
* Vendor a copy of the `python-debian` RTS parser until the relevant
features are merged into `python-debian`.
-- Niels Thykier <niels@thykier.net> Sun, 24 Mar 2024 11:29:19 +0100
debputy (0.1.20) unstable; urgency=medium
* Plugin API:
- Support cross package content checks in metadata detectors.
The feature prevents the metadata detector from "unsafe"
access to other packages. As an example, arch:any packages
can never see the content for arch:all packages (since
they are not always built together).
* migrate-from-dh:
- Add migration support for the `sodeps` sequence along with its
related `so:Depends` substvar.
* debputy: Support the `X-Time64-Compat` field as used by `debhelper`
* debputy: Tweak wording of automatic-discard-rules examples in
the output of `debputy plugin show a-d-r ...`.
* debputy: Accessibility related changes:
- Add CSV output for *human* consumption on many of the plugin
list commands. This enables easier consumption for screen
readers when the user wants structured data. Note the CSV
is *not* guaranteed to remain stable for scripting purposes.
- Do not describe the table for screen readers. Instead,
generate the ASCII table again but without the divider
lines, which would just be line noise.
- Revert on URL rewriting of man pages for screen readers. For now
also disable creating urls when the link text is not equal to
the url as it is not clear how the screen reader reacts to the
hyperlinks.
* debputy: Fix automatic pager feature not working as intended.
This was a regression in the previous release.
* debputy.pod: Improve `debputy` man page. Among other,
document more subcommands. Example, `migrate-from-dh` was
not documented previously.
* debputy: Provide a better error message for
`--plugin ./fake/debputy.json`. It never worked and now you
just get a better error message than `debputy` saying that
`debputy` was already loaded.
* debputy: Support bug#950723 style pkgfiles when `dh_assistant`
announces it for `annotate-debian-directory`.
* debputy: Fallbackless only applies to files without an explicit
package. Unclear whether it could be abused or cause issues.
* debputy: Make ASCII list headers bold face for terminal output.
* debputy: Generate `libfooX (= ${binary:Version})` `misc:Depends`
via libfoo.so symlink. This largely replaces `dh_sodeps.
* d/changelog: Fix typo in a previous entry.
-- Niels Thykier <niels@thykier.net> Wed, 31 Jan 2024 21:14:21 +0100
debputy (0.1.19) unstable; urgency=medium
* Plugin API:
- Breaking change (JSON-only): Group reference documentation
attributes for packager provided files under the new
`reference-documentation` attribute.
* debputy: Fix double inverted boolean
* debputy: Improve the command output in multiple ways
- When users set `OPTIMIZE_FOR_SCREEN_READER=1`, `debputy` now
prints less visualization. Notably, ASCII formatting such as
underlying is removed. Some commands now also uses a more
textual description rather than a visual output. As the
poster example, compare `debputy plugin show a-d-r la-files`
with and without this option.
- Documentation URLs are now rendered as clickable links for
terminal emulators that support the relevant ANSI escape
sequence. When optimizing output for screen readers,
`man:name(section)` URIs are unconditionally written to
their `https://manpages.debian.org/name.section` as man pages
are generally not working very well with screen readers
unlike HTML based documentation.
- With `python3-colors`, output now uses a bit more
formatting such as boldface text when outputting to a
terminal.
* debputy: Fix crash when doing `annotate-debian-directory` on a
`debputy`-based package
* d/changelog: Document plugin API change in 0.1.18
* Move `lua` plugin into a separate folder to avoid failing in
autopkgtests.
* d/tests/debputy-cli: Fix invalid usage of a subcommand that
failed the test.
-- Niels Thykier <niels@thykier.net> Sun, 28 Jan 2024 16:12:42 +0100
debputy (0.1.18) unstable; urgency=medium
* Plugin API:
- Packager Provided Files can now reference documentation
in the form of a generic description and URIs documenting
the file format.
* Plugins:
- Add `perl-openssl` plugin to mirror `dh-perl-openssl`.
* debputy: Refactor to make root level partly introspectable
* migrate-from-dh: Avoid asking users to remove Build-Depends
on dh sequences that are replaced. This is because they often
also provide relevant dependencies that the `debputy` plugin
dependency cannot provide (as long as the plugin is provided
by `dh-debputy`).
* Added partial migration of the `dh-lua` sequence. It is not
installed because the `lua` debhelper build system uses
build-time `d/pkg.install` files, which are not supported
by `debputy`. Omitted the migration code for `lua` as it
would just lead to false-hopes and broken hearts!
* debputy: Provide a `show` for packager provided files
* debputy: Provide a `used-packager-provided-files` list topic
* debputy: Add new `tool-support` command with the following
subcommands:
- annotate-debian-directory: Will scan the `debian` directory
for known packager files and annotate with hints and
documentation URIs. Data partly sourced from plugins and
from `dh_assistant`. Output is always JSON.
- export-reference-data: Provides access to reference data
used in other commands. Outputs text by default, but
supports `--output-format=json` for json exports.
- supports-tool-command: Test whether a particular
`tool-support` command is supported (without having to
parse `--help` output).
* debputy: Avoid printing `Loading plugin` in all sub commands
* Support nested `TypedDict`s in the declarative parsers
-- Niels Thykier <niels@thykier.net> Sat, 27 Jan 2024 20:54:33 +0100
debputy (0.1.17) unstable; urgency=medium
* Plugin API:
- VirtualPath: Introduce `size` attribute to simplify some code
* debputy: Auto-detect and provide maintscripts for pam-config files.
Specifically, add the `pam-auth-update` call to relevant
maintscripts.
* MANIFEST-FORMAT.md: Clarify conflict resolution description
* debputy: Tweak the wording of the reference documentation placeholder
for when a plugin does not provide any (online) documentation.
* debputy: Refactored some internals to add a (non-public) plugin
infrastructure for adding parsing hooks to `packages.<PKG>`.
As a side-effect:
- `debputy plugin list/show p-m-r` can now access and describe these
hooks.
- The `show` output for these rules that reference certain other
rules now report them by their type name. As an example,
`when` is now described as a `ManifestCondition` rather than
`string or mapping`. This provides better traceability between
the rules.
* debputy: Fix bug in generated scripts for `clean-after-removal`
where a start quote (`"`) was missing.
* debputy: Fix bug where Installed-Size was wrong for -dbgsym packages
(it incorrectly excluded the size for anything in the data.tar).
* debputy: Fix online description for `not`, which was a copy-waste
from another rule.
-- Niels Thykier <niels@thykier.net> Sat, 20 Jan 2024 11:18:45 +0100
debputy (0.1.16) unstable; urgency=medium
* migrate-from-dh:
- Remove `d/tmp` from sources in d/install files. Having
`d/tmp` in the paths would not work the same without an
explicit `as` or `dest-dir`.
* debputy: Fix crash when showing certain plugable-manifest-rules
* d/changelog: Avoid using `install-{,-doc}-as` like it is an install
rule. It was used as a short-hand for `install` (or `install-doc`)
with the `as` attribute but implied you could write `install-as`
in the manifest.
* docs: Correct the description of `required-when` for `discard`
* debputy: Fix source date epoch for strip-nondeterminism with
binNMU builds.
* Test API: Provide features to validate/test manifest variables
* d/tests/debputy-cli: Add tests for recent broken doc
* test: Add negative test for automatic discard rule example checks
* d/control: Add dependency on `man-db` needed to run `man-recode`.
Previously, we relied on the `debhelper` to pull this dependency.
* THANKS.md: Acknowledge Paul Gevers for his early adoption and
testing.
* debputy: Incomplete support for `dh_installdebconf`. Any debconf
templates (such as `debian/templates`) will now be processed and
lead to a `DEBIAN/templates` file in the resulting deb and the
`postrm` will run `db_purge` on `purge`. However, it is not possible
to provide a `DEBIAN/config` or custom `postinst` snippets leveraging
the debconf templates. Accordingly, the migration tool still flags
`templates` files as unsupported for now.
* debputy.pod: Provide man page for `debputy` itself.
-- Niels Thykier <niels@thykier.net> Mon, 08 Jan 2024 15:44:03 +0100
debputy (0.1.15) unstable; urgency=medium
* manifest:
- Support `capabilities` via `path-metadata` (Closes: debputy#62)
* debputy: Fix regression where maintscripts would not be generated.
* debputy: Fix a bug where `systemctl daemon-reload` would always
be added to postrm.
-- Niels Thykier <niels@thykier.net> Fri, 29 Dec 2023 17:30:54 +0100
debputy (0.1.14) unstable; urgency=medium
* manifest:
- Breaking change: The `discard` rule must now match at least one
path by default when it applies to at least one existing
search directory.
- Breaking change: Renamed `when` to `required-when` for `discard`
rules. The name better reflects that the `discard` rule is
always applied. The conditional decides whether it is an error
for a path to match nothing
- Support `**/non-glob` as a basename match. This form must use
the leading `**/` part to be a basename match. Without the leading
`**/`, the pattern would be interpreted as an exact path match
for a top-level file/directory.
* migrate-from-dh:
- List `dh_install` as replaced which ensures `debputy` will
detect overrides/hook targets for `dh_install`.
* debputy: Align md5sums order with `dh_md5sums` to reduce the diffs
between a `debhelper` and a `debputy` produced `.deb`.
* debputy: Support processing files with `strip-nondeterminism` to
reduce the amount of non-deterministic content in a package.
-- Niels Thykier <niels@thykier.net> Thu, 28 Dec 2023 17:39:07 +0100
debputy (0.1.13) unstable; urgency=medium
* Manifest:
- Support per-package installation search directories via the new
`installation-search-dirs` attribute (under `packages.*`) .
- The `discard` install rule now accepts a `search-dir`/`search-dirs`
attribute, which can be used to restrict which search directories
the discarding applies too.
- Added new `multi-dest-install` rule for the rare case where a
package needs to install the same source *twice*. This was needed
for `kafs-client`. (Closes: debputy#66)
- Any `udeb` packages are ignored when install-doc (etc.) evaluates
default for `into`. This means if a source package only builds a
single `deb` plus one or more `udeb`s, then `into` is now optional
for all documentation related `install-X` rules.
* migrate-from-dh:
- Support migrating multi-dest sources in d/install.
* Plugin API:
- VirtualPath API: Use of `path.replace_fs_path_content` no longer
detaches the path
* debputy: Fix `FileNotFoundError` when building `udeb` packages
* debputy: Fix bug where install rules with multiple `into` did not
always work correctly
* debputy: Fix online documentation for `into` in most install rules
* debputy: Fix bug where `shlibs` where not generated when it should
have been. This was a regression introduced in 0.1.10.
* debputy: Let dpkg-shlibdeps see SONAMEs from other packages. This
was necessary for `kafs-client`. (Closes: debputy#66)
* debputy: Fix bug where plugin provided triggers were silently
discarded.
-- Niels Thykier <niels@thykier.net> Mon, 25 Dec 2023 22:41:13 +0100
debputy (0.1.12) unstable; urgency=medium
* Plugin API:
- Test API: Breaking change. Make metadata related tests stateless
- `VirtualPath` API: Add an `is_executable` property
* migrate-from-dh:
- Assume minimum compat of 12 for all packages now to match the
`dh_installinit` mechanics that `debputy` now perform when an
`init` script is present.
* d/control: Use `Debian-based` in the description to appease lintian
* d/control: Canonicalize the URL in the Vcs-Browser field
* d/control: Use `debputy@packages.debian.org` as maintainer address
* debputy: Tweak wording for several error messages
* Add initial support for service management. It covers the default
flow of `dh_installinit` and `dh_installsystemd`. Notably, the
`dh_installsystemduser` is *not* covered.
* Fix bug in `install-man` rule that made it unusable
* Internal refactoring (notably of the installation rules code).
-- Niels Thykier <niels@thykier.net> Sun, 17 Dec 2023 18:08:13 +0000
debputy (0.1.11) unstable; urgency=medium
* Manifest:
- Breaking change: Correct spelling of `build-profiles-matches`
so it now matches the documentation.
- The `install-docs` rule now supports `dest-dir` and `as`. Its
default `dest-dir` remains the same.
- Provide `path:GNU_INFO_DIR` manifest variable that represents
the directory where GNU info files should be installed into.
* Plugin API:
- VirtualPath now supports `open` with buffering.
- When declaring manifest snippets, automatically pick up
`FileSystemMatchRule` (and subclasses) up as `path hints` (used
to provide context for error messages)
* migrate-from-dh:
- Improve some error messages to provide the actual file path
instead on an internal object name/id.
- Fix detection of `dh-exec` conditionals that could cause the
conditions to be interpreted as literal values rather than
conditionals.
- Support `dh-exec` conditionals in `d/install`.
- Provide more support for dh-exec features in d/manpages. Notably,
`SOURCE => DEST` is now rewritten into an `install-doc` (with `as`)
rule and conditionals are now supported.
- Multiple conditions in `d/links` files are now supported
and will be translated into an `all-of`.
- Avoid single-item `sources` for migrated bash-completions.
(Style-only change)
- Create a placeholder variable for unknown manifest variables.
Previously, it would result in a hard error as the resulting
manifest could not be parsed. (Closes: debian/debputy#65)
- Support migrating `d/info` files
* debputy: Convert transformation and install rules to using
`FileSystemMatchRule`s for paths. This unifies parsing of globs for
all rules except `clean-after-removal` (which still uses shell glob
semantics).
* online doc for path-metadata: Fix copy-paste mistake
* Fix crash bug where `d/tmp` is not a directory but an install rule is
used (unclear if this was reproducible in older versions).
* debputy: Fix internal error by `debputy` setting wrong "CoW"-flag on
some paths
* d/changelog: Clarify wording of a previous entry and fix a few typos.
* debputy: Correct two error messages that should have shown valid attribute
names when incorrect values were provided.
* debputy: Fix bug in parsing of `all-of` and `any-of` manifest conditions
that made it impossible to use these manifest conditions.
* tests: Provide initial tests of basic install rules. Required some
refactoring related to the virtual file system to support these
tests.
-- Niels Thykier <niels@thykier.net> Sun, 10 Dec 2023 14:40:05 +0000
debputy (0.1.10) unstable; urgency=medium
* Manifest changes:
- Support `clean-after-removal` feature, where you can ask
`debputy` to remove files when the package has been removed
or is being purged. This feature is similar in spirit to
`rpm`'s `%ghost` files. (Closes: debputy#35)
* plugin API: Fix bug where `path.chmod("symbolic-mode")` would
raise an exception
* debputy: Defer error'ing out when dpkg-gensymbols returns with a non-zero
exit code until all packages have been processed
* debputy: Optimize materialization to require less copying via
the following features:
- Properly implement lazy copy-on-write actions to avoid
copying a file into the scratch directory only to copy it
to the materialization directory later. Now, the case
only performs one copy (directly from the source to the
materialization directory).
- When a file has already been copied into the scratch
directory because `debputy` needed to mutate the file,
use a `mv` rather than a `cp` to move the file to its
final destination.
-- Niels Thykier <niels@thykier.net> Sun, 03 Dec 2023 16:01:57 +0100
debputy (0.1.9.3) unstable; urgency=medium
* migrate-from-dh:
- Support full migration of `dh-sequence-numpy3`. Though, there
is still no `dh-sequence-python3` migration support, which
may make this less useful at the moment.
* tests: Fix bug where `debputy` provided plugins fails in
installed mode causing `debputy` autopkgtests to fail.
* tests: Improve test coverage for gnome plugin.
-- Niels Thykier <niels@thykier.net> Wed, 29 Nov 2023 21:24:15 +0100
debputy (0.1.9.2) unstable; urgency=medium
* gnome plugin: Fix broken version in substvars and add a basic
regression test.
* debputy: Some internal refactoring.
-- Niels Thykier <niels@thykier.net> Tue, 28 Nov 2023 19:23:53 +0100
debputy (0.1.9.1) unstable; urgency=medium
* plugin test API: Enable the test API to validate ADR examples
* debputy: Skip compression of .html/.htm files.
Thanks to Sven Joachim <svenjoac@gmx.de> (Closes: #1057001)
* debputy: Special-case doc-base files to minimize delta between
`debputy` and debhelper.
-- Niels Thykier <niels@thykier.net> Mon, 27 Nov 2023 22:01:14 +0100
debputy (0.1.9) unstable; urgency=medium
* Plugin changes:
- Breaking change: The features of the `bash-completion`
plugin has been embedded into the `debputy` plugin. The
`bash-completion` plugin has been removed without a
backwards compatibility feature.
- Breaking change (test-api): The `virtual_path` function
got renamed to `virtual_path_def` and got promoted to
the non-test API.
- Add more features to the `VirtualPath` API. Notably some
mutations are now supported when the file system is in
read-write mode.
- InstallRule's no longer accept an explicit search dir.
Search dir handling is now done differently and plugins
are not involved in that process.
* migrate-from-dh:
- Support full migration of `dh-sequence-bash-completion`.
- Support partial migration of `dh-sequence-gnome`. The
`dh_gnome` side will be migrated, but `dh_gnome_clean`
will still be done via the `dh-sequence-gnome`.
- List which `dh-sequence-X` Build-Dependencies should be
removed. These are listed as manual migrations.
- Migration now detects *simple* cases of `dh` addons
loaded via `--with` in `debian/rules`.
* Let `debputy` handle loading of additional variables
* d/changelog: Reformat line in the 0.1.8 entry
* MANIFEST-FORMAT.md: Correct name of two example manifest variables
* MANIFEST-FORMAT.md: Improve documentation related to manifest variables
* Add private plugin api for package processors and migrate some
`debputy` code to use this feature.
* debputy: Provide a `clean .la files` feature by default based on a
similar feature from `dh_gnome`.
* debputy: Filter out doxygen related cruft (replacing `dh_doxygen`)
* Make discard rules a plugin provided feature (currently private)
and provide (validated) examples for automatic discard rules.
These can be seen via the example command:
`debputy plugin list a-d-r doxygen-cruft-files`
* debputy: Show which paths have been matched by an automatic discard
rule in the build out along with how to override them.
-- Niels Thykier <niels@thykier.net> Sun, 26 Nov 2023 15:20:44 +0100
debputy (0.1.8) unstable; urgency=medium
* Manifest changes:
- Breaking change: Rename some manifest variables like `{{TAB}}`
`{{token:TAB}}`. This change only affects manifest variables
intended to provide textual tokens that might be hard to write
literally or to avoid triggering substitution of another manifest
variable.
- Split `arch-matches` condition into three. The `arch-matches`
is still preferred. The other two variants are for special-cases
related to cross-building. As a side-effect of this change,
`arch-matches` can now be used in source context.
- Support manifest declared variables. A new `definitions.variables`
key is defined where variables can be declared. See
MANIFEST-FORMAT.md for the details. (Closes: debputy#58)
- It is now possible to use substitution variables in package names
in the manifest. This enables the use of `libfoo{{SONAME}}` instead
of hard-coding the value.
* Plugin changes:
- Breaking change: Remove the previously required plugin-version
attribute.
- Streamline installation process for "simple" `debputy` plugins by
providing a debhelper tool and by having `debputy` take
responsibility for the Python byte-compilation requirement for
`debputy` plugins. Additionally, support for running plugin tests
have been added too (both as build-time and as installed tests).
- Breaking (test-only) change: The test API for loading plugins have
been renamed and should no longer be passed a JSON descriptor file.
Instead, the test framework will attempt to find the JSON descriptor
file on its own. With this method, the test does not have to
distinguish between install-time and build-time test runs.
- A metadata detector can now request the binary package version
of a package via the context parameter.
- Plugins can now provide literal manifest variables like `path:FOO_DIR`.
* debputy: Provide online documentation for most manifest rules
* debputy: Correct detection of required/conditional fields in
`plugin show pmr`
* debputy: Provide "on-line" documentation of manifest conditions
* MANIFEST-FORMAT.md: Correct some anchors that would cause broken links
in HTML rendered versions of the file.
* MANIFEST-FORMAT.md: Clarify `replacement-rule` for `create-symlink` only
applies if the declared symlink path exists. If it does not exist and
cannot be because it would require a non-directory to become a directory,
then `replace-rule` cannot be used.
* plugin changes: Make single-file Python module easier to provide
* debputy: Add `--plugin` parameter to load plugins for most commands.
* debputy: Fix bug where some common args were ignored depending on argument
order.
* dh_installdebputy: New helper to install `debputy` plugins from
debhelper packages.
* d/control: Have `dh-debputy` provide `dh-sequence-installdebputy`.
* dh-sequence-debputy: Restore `dh_installdir` command. This enables packages
to still use the `dh_installdir` helper to work around upstreams that does
assumes install directories exist (such as `DEST_DIR`).
* debputy: Support d/alternatives files like `dh_installalternatives`.
* Provide basic plugin to support d/bash-completion files. The feature is
deliberately written as a stand-alone plugin, so it is easier to migrate
to the `bash-completion` package later if that is relevant.
* GETTING-STARTED-WITH-dh-debputy.md: List `dh_installalternatives` as a
replaced command. It has been replaced for quite a while and the omission
in the docs was unintentional.
* Provide basic bash-completion plugin and provide migrations for the
users of `dh-sequence-bash-completion`.
* d/tests/control: Add explicit test dependency on python3-all
(Closes: #1056240)
* debputy: Provide a `plugin list manifest-variables` subcommand that will
list known variables. Default special-case and token manifest variables
are hidden and have to be requested explicitly.
* debputy: Provide a `plugin show manifest-variables VAR` subcommand that
will show information about a given manifest variable.
* Breaking change: Plugins can now provide manifest variables
* d/changelog: Bump snapshot version
-- Niels Thykier <niels@thykier.net> Sun, 19 Nov 2023 19:00:00 +0100
debputy (0.1.7.8) unstable; urgency=medium
* Manifest changes:
- Breaking change: The `remove` transformation now prunes empty
dirs by default. The previous behavior can be restored with
an explicit `keep-empty-parent-dirs: true`.
* d/tests/debputy-py.test: Fix bugs in autopkgtest
* debputy: Provide new `plugable-manifest-rules` topic for `plugin list`.
This subcommand enables the user to get a list of all rules available
under `installations` or `packages.{{PACKAGE}}.transformations`, etc.
(Note: it was renamed to `pluggable-manifest-rules` in 0.1.22)
* debputy: Provide a `plugin show plugable-manifest-rules` command that
can provide some details about each rule (such as `install`).
(Note: it was renamed to `pluggable-manifest-rules` in 0.1.22)
* MANIFEST-FORMAT.md: Clarify some of the "shell"-like examples.
* MANIFEST-FORMAT.md: Clarify that "install" (with `as`) behaves like
`foo => bar`. Previously, the documentation said `=>` which could also
cover the `=> bar` feature from `dh-exec`. However, that feature is
handled by the `installations` itself rather than "install" (with
`as`).
* d/tests/control: Add superficial test of `debputy` command line
-- Niels Thykier <niels@thykier.net> Sat, 28 Oct 2023 17:15:55 +0200
debputy (0.1.7.7) unstable; urgency=medium
* debputy: Mention `yamllint` in YAML-level parse errors
* debputy: Avoid crashing on usr/share/doc/foo symlinks for non-native
packages. Thanks to Paul Gevers <elbrus@debian.org> (Closes: debputy#49)
* debputy: Fix crash on octal mode being specified as an int.
Thanks to Paul Gevers <elbrus@debian.org> (Closes: debputy#54)
* debputy: Ensure dh-integration based scratch (temp) dir is used when called
from dh_debputy. This ensures that `dh_clean` will always clean up after
`debputy` when `debputy` is used with `debhelper`.
* debputy: Resolve variables when processing `as` in `install` rules.
Thanks to Paul Gevers <elbrus@debian.org>. It resolves debputy#57, but a
regression test has not been added yet.
* debputy: Provide contextual error message when using `{{PACKAGE}}` variable
when it is not available
* debputy: Fix multiple bugs related to installing upstream changelogs
* debputy: Unlink empty `conffiles` in the control.tar
* d/control: Version the Provides for `dh-sequence-*`
Thanks to Paul Gevers <elbrus@debian.org> for the suggestion.
* packaging: Add initial autopkgtests
-- Niels Thykier <niels@thykier.net> Fri, 27 Oct 2023 16:19:48 +0200
debputy (0.1.7.6) unstable; urgency=medium
* Manifest changes:
- Implement substitution in symlink target. Thanks to Paul Gevers
for reporting the issue. (Closes: debputy#56)
- Add `replacement-rule` parameter to `create-symlink`. With the
`replacement-rule` parameter, you can control how `debputy`
should react to the `path` of a symlink clashing with an
existing file system object. The default behavior remains
unchanged.
* migrate-from-dh:
- Merge more `debian/install` rules. Most install rules from
`dh_install` will now be grouped by `dest-dir`. There are a few
special-cases, where merging is not applied (`=> usr/bin/foo`)
and probably will not be.
[ Paul Gevers ]
* MANIFEST-FORMAT.md: Make the difference between the YAML version and the
`debputy` manifest-version more explicit. (Closes: debputy#51)
[ Niels Thykier ]
* debputy. Improve error handling of some transformation rules for dir vs.
non-dir clashes
* debputy: Avoid crashing on an attempt to replace a symlink with a non-empty
dir. (Closes: debputy#48)
* MANIFEST-FORMAT.md: Remove references to aliases that are not applicable
* Declarative parser: Support `Literal` values as type. It is basically
interpreted as an enum-like input.
* debputy: Fix exception on `remove` rules that used globs (Closes: debputy#52)
-- Niels Thykier <niels@thykier.net> Sun, 22 Oct 2023 19:08:55 +0200
debputy (0.1.7.5) unstable; urgency=medium
* migrate-from-dh:
- migrate-from-dh: Provide better error message for unresolvable
subst vars
- migrate-from-dh: Support DEB_VERSION-related substvars.
Thanks to Paul Gevers <elbrus@debian.org>. (Closes: debputy#53)
[ Paul Gevers ]
* MANIFEST-FORMAT.md: Multiple improvements to the wording and
correction of several examples.
* README.md: remove double 'better support'
* d/control: same as previous README fix
[ Niels Thykier ]
* GETTING-STARTED-WITH-dh-debputy.md: Correct example
* Makefile: Correct name of dh_debputy.1 man page
* debputy: Provide better error messages for invalid YAML.
Thanks to Paul Gevers <elbrus@debian.org> (Closes: debputy#47)
* debputy: Fix crash on relative symlinks when compressing files.
Thanks to Paul Gevers <elbrus@debian.org> (Closes: debputy#50)
-- Niels Thykier <niels@thykier.net> Fri, 20 Oct 2023 18:12:52 +0200
debputy (0.1.7.4) unstable; urgency=medium
[ Andres Salomon ]
* Fix typo in GETTING-STARTED-WITH-dh-debputy.md
[ Niels Thykier ]
* debputy: Insert explicit shebang line + `set -e` (Closes: debputy#46)
* Makefile: Provide and install a man page for dh_debputy
* debputy: Use `dpkg-parsechangelog` to determine version during self-hosted
clean chroot builds.
-- Niels Thykier <niels@thykier.net> Sun, 15 Oct 2023 15:59:28 +0200
debputy (0.1.7.3) unstable; urgency=medium
* Correct copy-paste mistake in a warning
* migrate-from-dh: Avoid internal error with d/package.foo being a directory
* Support `open` on symlink for `FSROOverlay` as OS can resolve the symlink.
-- Niels Thykier <niels@thykier.net> Tue, 10 Oct 2023 19:59:18 +0200
debputy (0.1.7.2) unstable; urgency=medium
* Changes related to `migrate-from-dh`:
- Merge multiple d/install lines when no dest-dir is provided
- Group d/manpages lines by language
* debputy: Fix internal error triggered while building src:remind.
Thanks to Jochen Sprickerhof <jspricke@debian.org>
* debputy: Include document references in some parse errors (when available)
-- Niels Thykier <niels@thykier.net> Mon, 09 Oct 2023 18:24:49 +0200
debputy (0.1.7.1) unstable; urgency=medium
* migrate-from-dh: Correct some messages to provide the proper path name
* debputy: Fix internal error caused by some manifest errors
-- Niels Thykier <niels@thykier.net> Sun, 08 Oct 2023 18:10:47 +0200
debputy (0.1.7) unstable; urgency=low
* Upload to unstable.
* Manifest changes:
- Breaking change: `path-metadata` rules never match symlinks.
Previously, you could match symlinks when ownership information
was changed. However, there is no known case in Debian where this
feature would be useful. To keep the logic and documentation simple,
symlinks are now no longer matched.
* Plugin API changes:
- Breaking change: Rewrite the API declaring packager provided files to
use a full path format rather than dir + basename.
- Breaking change: The directory `/usr/share/debputy/debputy/plugins` is
now the official plugin directory. Previously, it was not explicitly
defined (but ended up being `/usr/share/dh-debputy/plugins`).
- It is now possible declare packager provided files in the plugin json
file (that is, without needing any python code at all).
* Changes related to `migrate-from-dh`:
- Remove the `systemd` dh addon from the list of supported add-on. The
addon implies compat 10 and `debputy` assumes compat 11 at least.
Users are better off migrating to compat 11 and then to `debputy`.
- When generating an updated manifest, the migration will now verify
that the generated manifest can be parsed. If not, `debputy` will
raise an internal error promoting the user to file a bug.
* Parse plugin json via the declarative parser
* debputy: Avoid stacktrace if run outside package root
* debputy: Support running some subcommands outside of source roots
* IMPLEMENTATION-DECISIONS.md: Document some decisions behind plugin integration
* debputy: Package builds and `check-manifest` now only loads explicitly
requested plugins to ensure deterministic behavior. Other commands (notably
the `plugin`) still loads all plugins that `debputy` can find. Plugins are
"explicitly requested" when the package has a `Build-Depends` on
`debputy-plugin-X` where `X` is the name of the plugin.
* MIGRATING-A-DH-PLUGIN.md: Advice against providing Python-based plugins for
now as the logistics are not fully prepared.
* debputy: Pipe to pager for some subcommands (such as
`debputy plugin list ppf`), if `DEBPUTY_PAGER` or `PAGER` is set, or if `less`
is available in `PATH`. The `LESS` variable is set to `-FRSXMQ` if not set.
* debputy: Show where the plugin is installed when listing plugins
(`debputy plugin list`)
* debputy: Provide more details in `debputy plugin list ppf`
* debputy: Restore ability to build packages with non-root static ownership.
There was a regression in a recent release that made `debputy` not realize
it would need to account for `(fake)root`.
* debputy: Provide better error message when plugin JSON is invalid.
Previously, you would just get a stack trace.
* Support sub-second mtime in the intermediate manifest
* debputy: Preserve `mtime` for compressed files like `gzip` does.
* debputy: Reduce the number of `stat`s when performing installations.
* debputy: Align changelog trimming closer with `debhelper` to minimize any
diffs between a `debhelper` produced deb and a `debputy` produced deb.
* debputy: Fix a cache retention issue that caused `Installed-Size` to be
wrong some cases.
-- Niels Thykier <niels@thykier.net> Sun, 08 Oct 2023 13:38:22 +0200
debputy (0.1.6) experimental; urgency=medium
* Manifest changes:
- Breaking change: Replace `exclude` with `discard` and remove inline
`exclude` rule
- Breaking change: Rename `exclude` (transformation) to `remove`
- Breaking change: Symlink creation is now a transformation rule
- Breaking change: Empty directory creation is now a transformation rule
- Permit str/list forms of current install rules
- Support `install-man` rule similar to `dh_installman`. Note that
`install-man` does *not* automatically fallback to guessing the
language from the basename like `dh_installman`. The feature is
supported but requires explicit opt-in.
* Changes related to `migrate-from-dh`:
- Fix invalid error message on `${env:FOO}` variables
- The migration tool is now more clear on "unsupported" vs. "supported but
there is no automatic migration feature". The former will require an
explicit "I know and I am ignoring it" parameter, whereas the latter
gets a "manual migration" warning.
- Automatic migration from `d/manpages` to the new `install-man` rule. Be
sure to double-check the `language` attribute (of lack thereof). You may
need to add `language: derive-from-basename` in some cases.
- Automatic migration to translate `debian/not-installed` into `discard`
rules.
- The migration tool now detects unsupported dh sequence add-ons used.
- The migration tool now detects missing `dh-sequence-debputy` (or the `-zz-`
variant) in the Builds-Depends and provides you with a warning.
* Plugin API changes:
- `VirtualPath` now has a new `open` method.
* d/changelog: Correct a `Closes` to specific it was a gitlab issue
* IMPLEMENTATION-DECISIONS.md: New file that document some implementation
decisions in a new document.
* MANIFEST-FORMAT.md: Tweak some wording and remove an invalid exclude example
* MANIFEST-FORMAT.md: Clarify that conditions may partially evaluate rules
* Parse transformation rules via declarative parsers. Same behavior, just
with better error messages.
* Set `DPKG_NLS=0` when calling `dpkg-architecture`
* FSPath: Support tracking ownership and rewrite mode tracking
* Remove internal `show-manifest-rules` command
* Avoid crash if two ELF binaries have the same build-id
* Support running `dwz` for ELF binaries
* GETTING-STARTED-WITH-dh-debputy.md: Improve migration section
* Correct python public directory detection. Previously, if the debug
version of the directory was available, only that was checked for
python scripts. Now `debputy` checks both directories when they are
both present.
* Remove shlibs + symbols migration code it is no longer necessary.
* migration: Fix `min` that should have been `max` causing it to use the
min dh-compat level rather than the max compat level required by
migrations.
* migrate-from-dh: Detect unsupported dh-addons and missing debputy B-D
* debputy: Clarify that `plugin list --help` will list topics
* Remove support for `menutest` and `isinstallable` scripts for now.
There is no support for the deb maintscripts. It seems weird to have
support for the udeb ones.
* Generate the control root in a tempdir to reset state between runs.
* shlibs.py: Fix crash when no `shlibs` and `symbols` files were provided
* Generate temp names with `__` separating the original basename for making
the original basename a little easier to spot.
* Fix bug where perl shebang lines were always rewritten
* debputy: Provide better contextual error messages
* Default most scripts with shebang lines to 755 if no other rule matches it.
This applies to any file having /usr/bin, /usr/sbin, /bin, or /sbin
in its #!-line, where a more specific rule does not apply.
(Closes: debputy#36)
-- Niels Thykier <niels@thykier.net> Sun, 01 Oct 2023 22:21:03 +0200
debputy (0.1.5) experimental; urgency=medium
* New migration features:
- Lower the min dh compat to 11 for the simplest cases. Some cases
will require higher compat levels (notably, any arch:any packages bumps
the minimum to compat 12).
* debputy: Breaking change: Detect missing installation rules for `debian/tmp`
similar to `dh_missing`. The `debputy` detects completely directories as
possible integration points and provides a bit of context to what kind of
path entry the missing file system object is. The new install-time `exclude`
rule can be used to deliberately ignore uninteresting path objects that is
this feature detects.
* Manifest changes:
- Breaking change: Make `all-of` and `any-of` consistent (case-wise) with
other conditions.
- The `into` key on installation rules are now optional for single binary
packages.
- Fix bug where `dest-dir`, `as` and `when` was ignored for `install` (etc.)
- Support symbolic mode for mode attributes in additional to octal modes.
- Support `exclude` as an install rule (under `installations`) as an
experimental feature.
- Support `exclude` as an inline attribute in some `install` rules.
* Fix error in built-in permission normalization rule that broke directory modes
in some cases.
* Support main-doc package in install rules and apply_compression
* Remove support for debian/udev as it involves `/lib` and `debputy` should not
be involved in the `/usr-merge` transition.
* util.py: Fix bug in detect_fakeroot that would neuter the check
* util.py: Implement an xargs-like interface
* highlevel_manifest_parser.py: Prettify the definition reference
* highlevel_manifest_parser.py: Detect typos if python3-levenshtein is installed
* Remove debug symbols from static libraries (Closes: debputy#32)
* Remove remaining code for supporting "install"- and "mtree"-like formats.
* Provide a new declarative parser and migrate installation rules to use it.
* Replace internal attribute path tracking strings with the new AttributePath
class.
* Improve handling of installation rules that are disabled by conditionals.
* Ensure binNMU changelogs are split out of the main changelog
(Closes: debputy#34)
* Use declarative parser as a subparser for more parts of the manifest
* MANIFEST-FORMAT.md: Installations is now its own top level section
* Generate `${t64:Provides}` for the t64 migration (Closes: debputy#37)
* Fix invalid root dir for multi-binary packages
* MANIFEST-FORMAT.md: Write a conflict rule to apply to `installations` too.
* Avoid assertion error when `owning-package` was used without
`prior-to-version`.
* Support bash-completion via python3-argcomplete. For now, this must be
activated manually via `eval "$(register-python-argcomplete debputy)"`. It is
a bit slow due to start up times not being optimized for this case.
* Breaking change: Rewrite command line handling to remove special case options
(such as `-p`) from the root level. On the other hand, the new logic supports
providing default options on all subparsers, enabling default options such as
`--debug` to appear in all subparsers.
* Make symbols + shlibs "discoverable" by pretending they are packager provided
files. Reuse the detection logic from provider provided files rather than
"hand-rolling" a similar logic.
-- Niels Thykier <niels@thykier.net> Tue, 12 Sep 2023 20:43:15 +0200
debputy (0.1.4) experimental; urgency=medium
* debputy.pm: Breaking change: The debputy dh sequence now removes the
following debhelper tools from the sequence:
- dh_installdirs
- dh_install
- dh_installdocs
- dh_installchangelogs
- dh_installexamples
- dh_installman
- dh_installcatalogs (!)
- dh_installdebconf (!)
- dh_installemacsen (!)
- dh_installinfo
- dh_installinit (!)
- dh_installsysusers
- dh_installsystemd (!)
- dh_installsystemduser (!)
- dh_installmenu (!)
- dh_ucf (!)
- dh_perl
- dh_usrlocal (!)
- dh_installwm (!)
- dh_strip_nondeterminism (!)
- dh_dwz (!)
- dh_strip
- dh_missing (!)
At this point, basically any command *after* dh_auto_install (plus
dh_installdirs, which runs before dh_auto_install) has been removed.
As a consequence, the `debputy.pm` sequence no longer interacts very
well with most debhelper sequence addons. Basically any command
relying on content in `debian/<pkg>` will no longer work with
`dh-debputy`.
Commands marked with (!) has no or almost no replacement support.
If a package rely on these commands, odds are debputy will be
unlikely to support that package. Other commands will have
support for common cases (similar to debhelper's default behavior).
* debputy.py: Breaking change: Remove support for services, debhelper
provided maintscripts and triggers.
* New migration features:
- Auto-migrate `debian/tmpfile` to `debian/tmpfiles`
- Auto-migrate `debian/README.debian` to `debian/README.Debian`.
(debhelper allowed both, debputy only supports the latter, which
is the more common variant).
- Auto-migrate `debian/doc-base.<suffix>` to
`debian/<pkg>.<suffix>.doc-base`. Note that debhelper and debputy
are not aligned on the naming scheme here. Applying this migration
causes debhelper to no longer see the doc-base files.
- Auto-migrate common `debian/install`, `debian/docs` and
`debian/examples` into the `installations` feature (see
"manifest changes" below). Some (but not 100%) dh-exec support
provided as well.
- Detect `debian/<foo>` files for unsupported debhelper tools or
where no migration has been written yet and warn about their usage
affecting the migration.
- Migration now works with debhelper compat 13 rather than compat 14
in most cases. Notable exception being packages that have a
`debian/pam`, which will still trigger a min compat of 14.
* manifest changes:
- Implement `installations` to replace `dh_install`, `dh_installdocs`
and `dh_installexamples`. Please see the `Installations` section
in `MANIFEST-FORMAT.md` for how to use it. Note that `debputy`
installations work differently than debhelper when multiple
patterns match the same path.
* debputy plugin API: Important changes:
- Detached paths are now less volatile. Notably, the `path`
attribute will now always work for plugins. The `parent_dir`
attribute should still be avoided however. Additionally, the
`.lookup` method will now always trigger an exception for a
detached path (previously, it would "sometimes" trigger the
exception depending on the path being resolved).
- Plugins can now choose whether a Packager Provided File (PPF)
should have name segments or have architecture specific
segments. Additionally, the plugin can request that
`debian/foo` is considered a fallback for all packages for
a given file.
- The `BinaryPackagePath` type has been renamed to
`VirtualPath`.
* Improve wording in documentation and fix typos various places.
* Remove `> /dev/null` for `systemd-tmpfiles`.
* Add support for systemd's sysusers file.
* Provide standard excludes for commonly unwanted things
* Support pruning changelog files. When pruning NEWS, keep only entries listed
in the Debian changelog.
* Ensure man, info pages, changelog files and Debian.NEWS files are always
compressed. Previously, these would only be compressed if they had a
certain size. This change makes `debputy` match `dh_compress` better.
* migration: Renames count as successful changes. Previously, the migration
tool would say it could do renames and then claim nothing could be done
followed by not doing anything at the end.
* Fix bug where mode was used as mtime for symlinks.
* manifest/parser: Recognise -dbgsym packages. The package names
are now known and will not trigger an "unknown" package
exception when used. However, currently no directives are allowed
for dbgsym packages so the net result of specifying them is still
an error.
* Migrate to the python logging. Along with a dependency on colorlogs,
this means that output will have some color support. This changes means
more "info" level messages now have basic colors.
* util.py: Fix double quote handling when doing shell escapes.
* debputy.py: Improve error reporting a bit. Notably, previously
some exceptions that should have been caught and rendered in a
user-friendly way now are as intended. Additionally, the debputy
frontend now catches a common cause of exceptions (`RuntimeError`)
and classifies them as "Unexpected exceptions" along with a note
recommending filing a bug for debputy.
* debputy.py: Hide unstable/internal commands. Most of the frontend
commands are now hidden behind an `internal-command` subcommand.
this means that the default help output now only uses 1-2 lines on
the internal or unstable subcommands.
* debputy.py: Provide a `check-manifest` command to parse the manifest
and check for obvious errors without having to build debs.
* Do not mandate dpkg archs to be known. Previously, debputy
would trigger an error if the manifest in the `arch-matches`
condition listed an unknown dpkg arch. This error has been
removed as it is common practice to list new architectures
long before dpkg in stable/oldstable knows the architecture.
* Tweak the auto-generated maintscripts. Notably, indentation
is now two spaces and applied better to avoid weird hanging
lines. Additionally, the first line of a snippet is no longer
accidentally merged into the condition line, which could
cause syntax errors if the fixed line did not have
indentation.
* Detect and register python byte compilation for public
dist-packages dirs and default "package private" dirs
similar to `dh_python3`. This is done because `debputy`
cannot rely on `dh_python3` when it is self-hosting.
Other `dh_python3` are not ported.
* Move all of dh-debputy's files from `usr/share/debputy`
to `usr/share/dh-debputy`. In tandem with the previous
change, this causes debputy now to properly integrate with
the python byte compilation system.
* Correct the "inner" snippet order of generated maintscripts.
All postrm and prerm snippets are supposed in reverse order
and previously some snippets were not reordered correctly.
* migrate-from-dh: Reduce the output to make warnings less likely
to drown in other output.
* migrate-from-dh: Better error reporting on failed executable
dh config emulation.
* migrate-from-dh: Require an explicit --apply-changes for
migrations to performed.
-- Niels Thykier <niels@thykier.net> Thu, 24 Aug 2023 19:14:48 +0200
debputy (0.1.3) experimental; urgency=medium
* debputy.pm: Breaking change: The debputy dh sequence now removes the
following debhelper tools from the sequence:
- dh_lintian
- dh_bugfiles
- dh_compress (note: hardlinks are not supported correctly)
* Create a basic plugin API infrastructure and move some of the
debputy into a plugin. Plugins can currently register packager
provided files (`d/pkg.foo -> usr/.../pkg[.conf]`) and detection
(and generation) of maintscript snippets, substvars and triggers.
However, plugins cannot alter the contents of the data.tar.
Additionally, the plugins are not loaded deterministically during
builds (unclean chroot can load too many plugins), so they are not
ready for prime time yet.
* Fixed a bug in debputy's handling of icon-cache generation
(dh_icons).
* Detect kernel modules under /usr in addition to /lib.
* debputy.py: When migrating from dh, detect use of `=>` in
debhelper config files and report it as unsupported. The migrator
would not generate the correct code for these lines. Currently,
none of the debhelper tools where you can use `=>` would be migrated,
so this is just future proofing.
* debputy.py: Provide a `plugin` subcommand to interact with the
plugins. Currently, it can only list plugins and a bit of the
content they provide.
* all frontends: Show colorized error and warning messages similar to
debhelper.
* all frontends: Provide a `--version` that prints the version of
debputy.
* debputy.py: Detect `/usr/local` paths and abort as they are unhandled.
Note that `dh_usrlocal` would normally be run and clean up these
directories, so this is only an issue if you bypass `dh_usrlocal` or
ask debputy to create content in `/usr/local`.
-- Niels Thykier <niels@thykier.net> Sun, 23 Jul 2023 07:52:46 +0000
debputy (0.1.2) experimental; urgency=medium
* debputy.pm: Breaking change: The debputy dh sequence now removes the
following debhelper tools from the sequence:
- dh_installudev
- dh_installgsettings
- dh_makeshlibs
* debputy.py: Breaking change: The manifest use `{{X}}` rather than
`${X}` for substitution and remove support for environment variables
in substitutions.
* deb_packer.py: Support most of the dpkg-deb environment variables for
compress settings (etc.). Only known omission is thread count, which
despite having a `--threads-max` option, `deb_packer.py` ignores the
value in the name of compatibility.
* deb_packer.py: Reset the `mtime` of control.tar members according
to the SOURCE_DATE_EPOCH rules (clamping). Previously, the `mtime`
was unconditionally reset. Most control.tar members are
generated at runtime, so it only mattered when the control file
is not generated.
* deb_materialization.py: New internal command for materializing the
data.tar part of the deb before assembly (or debugging). The
command can also be used to assembling the materialized deb by
using dpkg-deb or deb_packer.py (referred to as `debputy`).
* debputy.py: Default to using `deb_materialization.py` to
materialize the package and then assemble it with dpkg-deb where
possible. However, automatically fallback to the internal assembly
method when (fake)root is required and `Rules-Requires-Root` is
`no`.
* debputy.py: When using the `migrate-from-dh` subcommand, use
`dh_assistant` to detect override targets that might cause issues
with the migration.
* debputy.py: Rename `show-manifest-changes` to `show-manifest-rules`
and `--show-implicit-changes` to `--show-implicit-rules`.
* builtin_manifest_rules.py: Correct permission for two bugreport
builtin rules when matching a directory. Previously, the
directories would keep their file system mode. Now they are
correctly normalized to 0755 as other directories would have been.
* manifest_conditions.py: Fix a bug where the description of build
profile conditionals where rendered poorly.
* packages.py: Prevent assertion error when user provides a typo'ed
package name for `-p`.
-- Niels Thykier <niels@thykier.net> Sun, 18 Jun 2023 14:30:41 +0000
debputy (0.1.1) experimental; urgency=medium
* Initial release. (Closes: #1029645)
-- Niels Thykier <niels@thykier.net> Sun, 05 Feb 2023 18:27:25 +0000
|