PackageGraph first working version

This commit is contained in:
2025-10-08 18:02:47 -04:00
parent 9899426f60
commit 5cbd13fb3c
6 changed files with 515 additions and 347 deletions

View File

@@ -15,8 +15,13 @@
enable = true;
requirements = ''
beautifulsoup4==4.14.2
certifi==2025.10.5
charset-normalizer==3.4.3
idna==3.10
requests==2.32.5
soupsieve==2.8
typing_extensions==4.15.0
urllib3==2.5.0
'';
};
};

View File

@@ -1,310 +1,310 @@
Name,Packages,Fresh Packages
Adélie Linux current,8243,2091
AIX Open Source Packages,8065,260
AIX Toolbox,644,116
AlmaLinux 8,5986,750
AlmaLinux 9,3034,655
Alpine Linux 3.15,15848,2873
Alpine Linux 3.16,17032,3179
Alpine Linux 3.17,17811,3675
Alpine Linux 3.18,20062,4597
Alpine Linux 3.19,23027,5654
Alpine Linux 3.20,24163,6561
Alpine Linux 3.21,25389,8133
Alpine Linux 3.22,26312,11533
Alpine Linux Edge,34749,22634
ALT Linux p9,18262,4531
ALT Linux p10,19057,5321
ALT Linux p11,19794,7204
ALT Sisyphus,20700,10196
Amazon Linux 1,3448,298
Amazon Linux 2,7253,717
AOSC,5749,2188
Apertis v2023,5612,1131
Apertis v2024,5976,1296
Apertis v2025,5981,1297
Apertis v2026 Development,6825,2581
Arch Linux,15099,11591
Arch Testing,307,222
Arch Linux ARM aarch64,21174,11004
ArchPOWER powerpc,5417,2531
ArchPOWER powerpc64le,5650,2559
ArchPOWER riscv64,5330,2169
AUR,100544,28117
Artix,8904,5688
Artix Testing,163,129
BackBox 6,19,3
BackBox 7,26,8
Baulk,71,50
BioArch,5251,4631
BlackArch,5578,1420
Calculate,88,9
Carbs Linux,347,99
CentOS 6,2399,316
CentOS 7,3541,493
CentOS 8,3380,535
CentOS Stream 8,9841,794
CentOS Stream 9,6029,929
CentOS Stream 10,6072,1967
Chimera Linux,11338,7594
Chocolatey,4042,1552
Chromebrew,2458,1118
ConanCenter,5821,736
CPAN,9696,9519
MetaCPAN,11349,9211
CRAN,22832,22445
crates.io,4978,4670
CRUX 3.6,2070,451
CRUX 3.7,2374,1220
CRUX 3.8,2402,2143
Cygwin,11520,3674
Deb Multimedia Unstable,438,316
Debian 11,32129,7992
Debian 12,35113,10168
Debian 12 Backports,1018,173
Debian 12 Backports sloppy,4,2
Debian 13,38138,16317
Debian 13 Backports,129,65
Debian 14,38390,18950
Debian Unstable,40247,19811
Debian Experimental,1180,354
deepin 20,29950,6345
deepin 23,11181,2840
Devuan 4.0,31290,7955
Devuan Unstable,39510,19710
distri,541,31
ELRepo el8,190,5
ELRepo el8 Testing,11,0
ELRepo el9,174,6
ELRepo el9 Testing,15,0
Endless OS 4.0,116,3
Endless OS master,100,6
EPEL 6,5978,1002
EPEL 7,7303,1593
EPEL 8,5210,1659
EPEL 9,7974,3440
EPEL 10,6262,3679
EuroLinux 8,8070,678
EuroLinux 9,7422,888
Exherbo,8605,3637
F-Droid,10973,379
Fedora 37,29763,8271
Fedora 38,30232,8926
Fedora 39,29890,9699
Fedora 40,31164,11094
Fedora 41,30595,12992
Fedora 42,29193,14406
Fedora Rawhide,23805,15722
FreeBSD Ports,37153,22108
Gentoo,29958,10960
Gentoo overlay GURU,3023,971
Gentoo overlay Pentoo,1160,323
Gentoo Science overlay,745,166
glaucus,119,31
GNU Elpa,478,465
GNU Guix,29927,9074
GoboLinux,3775,840
Hackage,18316,18219
HaikuPorts master,3893,1107
Homebrew,11881,6386
Homebrew Casks,2242,1657
Homebrew tap Brewsci/bio,318,94
HP-UX 11.31,2259,527
IBM i,315,30
IzzyOnDroid,2554,366
Kali Linux Bleeding Edge,84,2
Kali Linux Rolling,38755,18712
KaOS,2116,1763
KaOS Build,44,38
KDE neon Testing,929,18
KDE neon Unstable,980,19
KDE neon User,1992,36
KDE neon User LTS,541,23
KISS Community - main,152,128
KISS Community - community,394,147
Libregamewiki,651,249
LiGurOS stable,32494,10419
LiGurOS develop,32521,11861
LuaRocks,7457,573
MacPorts,38061,16613
Mageia 8,17033,3349
Mageia 9,17504,4265
Mageia cauldron,16944,8196
Manjaro Stable,15827,10594
Manjaro Testing,15847,11496
Manjaro Unstable,15865,11887
MELPA,5962,0
MELPA Stable,3234,3179
MidnightBSD mports,7141,2761
MPR,926,166
MSYS2 clang64,3450,2434
MSYS2 clangarm64,3363,2407
MSYS2 mingw,3989,2837
MSYS2 msys2,748,518
MSYS2 ucrt64,3534,2490
MX Linux MX-21,708,67
MX Linux MX-21 Testing,546,66
MX Linux MX-23,449,68
MX Linux MX-23 Testing,363,71
nixpkgs stable 22.11,95572,32675
nixpkgs stable 23.05,99994,35717
nixpkgs stable 23.11,107004,40861
nixpkgs stable 24.05,114973,48855
nixpkgs stable 24.11,120736,53957
nixpkgs stable 25.05,128147,64601
nixpkgs unstable,130313,83168
NOIR Linux Main,243,59
Npackd Stable,13040,186
Npackd Stable64,7742,82
Npackd Unstable,96,0
opam,1191,962
OpenBSD Ports,12177,6940
openEuler 20.03-LTS-SP3,3382,725
openEuler 20.03-LTS-SP4,3418,735
openEuler 22.03-LTS,4234,1066
openEuler 22.03-LTS-SP1,4266,1181
openEuler 22.03-LTS-SP2,4275,1188
openEuler 22.03-LTS-SP3,4307,1219
openEuler 22.03-LTS-SP4,4320,1221
openEuler 23.03,4294,1242
openEuler 23.09,4617,1434
openEuler 24.03-LTS,4876,1750
openEuler 24.03-LTS-SP1,4905,1753
openEuler 24.09,4880,1912
openEuler 25.03,4990,2238
OpenIndiana packages,6052,4060
openmamba,5951,4625
OpenMandriva 4.3,12605,3228
OpenMandriva 5.0,15311,3332
OpenMandriva 6.0,16177,4649
OpenMandriva Rolling,16176,4647
OpenMandriva Cooker,16059,5829
OpenPKG,2386,695
openSUSE Leap 15.4,19608,3511
openSUSE Leap 15.5,20732,4214
openSUSE Leap 15.6,20362,4658
openSUSE Tumbleweed,16640,9861
openSUSE Education Tumbleweed,380,130
openSUSE Emulators Tumbleweed,143,55
openSUSE games Tumbleweed,934,509
openSUSE graphics Tumbleweed,317,170
openSUSE hardware:sdr Tumbleweed,181,71
openSUSE multimedia:apps Tumbleweed,386,219
openSUSE multimedia:libs Tumbleweed,348,235
openSUSE network Tumbleweed,266,141
openSUSE science Tumbleweed,1150,485
openSUSE security Tumbleweed,295,157
openSUSE server:irc Tumbleweed,43,27
openSUSE shells Tumbleweed,45,15
Open VSX,352,295
OpenWrt 23.05 x86_64,8976,908
OpenWrt 24.10 x86_64,9433,1180
OS4Depot,946,280
PackMan openSUSE Tumbleweed,641,266
PackMan SLE 12,259,66
PackMan SLE 15,80,29
pacstall,864,204
Parabola,15519,11074
Parabola Testing,29,4
Pardus 21,32630,8009
Pardus 23,365,15
Parrot,70726,20592
PCLinuxOS,12198,3098
Pisi Linux,3400,1566
Pisi Linux Contrib,138,27
pkgsrc current,20099,11165
PLD Linux,14171,5713
postmarketOS 22.12,436,10
postmarketOS 23.06,434,12
postmarketOS 23.12,487,8
postmarketOS 24.06,1189,17
postmarketOS 24.12,1247,22
postmarketOS master,1583,56
PTXdist,956,285
PureOS amber,28585,6322
PureOS byzantium,30901,7897
PureOS landing,37686,16203
PyPI,27537,19657
Raspbian Oldstable,35274,8814
Raspbian Stable,39331,11189
Raspbian Testing,43680,17717
Ravenports,3728,3051
ReactOS rapps,198,58
RebornOS,422,69
Rocky Linux 8,4991,659
Rocky Linux 9,3394,727
Rosa 2021.1,20016,5406
Rosa 13,21087,7584
RPM Fusion EL 6,74,15
RPM Fusion EL 7,142,24
RPM Fusion EL 8,119,23
RPM Fusion EL 9,68,11
RPM Fusion Fedora 39,451,110
RPM Fusion Fedora 40,437,121
RPM Fusion Fedora 41,439,165
RPM Fusion Fedora Rawhide,307,170
RPM Sphere,2874,1079
RubyGems,4443,4191
SageMath stable,372,116
SageMath development,370,129
Salix 14.2,735,52
Scientific Linux 7.x,12293,1110
Software Collections,416,41
Scoop,4469,2540
Side Linux,951,680
Siduction,580,4
Siduction Experimental,30,0
SlackBuilds,9959,4446
Slackware 14.2,1599,308
Slackware 15.0,1923,350
Slackware current,1816,1077
Slackware64 14.2,1586,306
Slackware64 15.0,1887,347
Slackware64 current,1815,1074
Slackwarearm 14.2,1578,295
Slackwarearm 15.0,1814,341
SliTaz Cooking,5922,1649
SliTaz Current,1863,243
SliTaz Next,12181,1977
Solus,11646,5954
Spack,9685,2920
Stackage LTS Haskell,3411,3248
Stackage Nightly,3262,3212
stal/IX,1380,1188
stal/IX dev,1381,1194
T2 SDE,6175,5160
Tails stable,3,1
Tails devel,3,1
Termux,2674,2097
Termux User Repository,297,127
Terra 39,2351,413
Terra 40,2865,894
Terra 41,3221,1484
Terra rawhide,3395,1645
Tin Can Linux,81,42
Trisquel 10.0,32930,7062
Trisquel 10.0 backports,82,10
Trisquel 11.0,36144,8844
Trisquel 11.0 backports,64,7
UBI 8,1623,157
Ubuntu 14.04,24127,3793
Ubuntu 14.04 Backports,109,2
Ubuntu 16.04,27276,4738
Ubuntu 16.04 Backports,25,0
Ubuntu 18.04,30870,5904
Ubuntu 18.04 Backports,18,0
Ubuntu 20.04,32759,7096
Ubuntu 20.04 Backports,21,1
Ubuntu 22.04,36182,8883
Ubuntu 22.04 Backports,21,1
Ubuntu 24.04,38934,11974
Ubuntu 24.04 Backports,18,1
Ubuntu 25.04,39935,15714
Ubuntu 25.04 Backports,3,0
Ubuntu 25.10,39745,17706
Ubuntu 25.10 Proposed,273,90
Vcpkg,2696,1217
Void Linux x86_64,14331,7324
WakeMeOps,3981,153
Wikidata,5553,3039
YACP,3724,2215
name,color,packages,freshPackages
Adélie Linux current,#27f676,8243,2091
AIX Open Source Packages,#e1d77b,8065,260
AIX Toolbox,#6b0b92,644,116
AlmaLinux 8,#e7b63a,5986,750
AlmaLinux 9,#3a17d8,3034,655
Alpine Linux 3.15,#0d597f,15848,2873
Alpine Linux 3.16,#0d597f,17032,3179
Alpine Linux 3.17,#0d597f,17811,3695
Alpine Linux 3.18,#0d597f,20062,4617
Alpine Linux 3.19,#0d597f,23027,5677
Alpine Linux 3.20,#0d597f,24163,6582
Alpine Linux 3.21,#0d597f,25389,8154
Alpine Linux 3.22,#0d597f,26312,11521
Alpine Linux Edge,#0d597f,34749,22568
ALT Linux p9,#7bdee9,18262,4531
ALT Linux p10,#e35430,19057,5322
ALT Linux p11,#cf81dd,19795,7204
ALT Sisyphus,#115799,20700,10202
Amazon Linux 1,#2f2558,3448,298
Amazon Linux 2,#234b7a,7255,717
AOSC,#0af098,5749,2184
Apertis v2023,#4205cd,5612,1131
Apertis v2024,#b1b089,5977,1297
Apertis v2025,#d9ba1d,5981,1298
Apertis v2026 Development,#9bc337,6825,2581
Arch Linux,#02ba84,15099,11588
Arch Testing,#bf6e11,263,194
Arch Linux ARM aarch64,#3ca5dc,21174,10946
ArchPOWER powerpc,#7beb18,5417,2529
ArchPOWER powerpc64le,#dd275f,5650,2558
ArchPOWER riscv64,#16ece5,5330,2169
AUR,#1793d1,100533,28097
Artix,#f0c1fa,8904,5643
Artix Testing,#7fa3b3,163,116
BackBox 6,#9997c4,19,2
BackBox 7,#02b384,26,7
Baulk,#16e637,71,48
BioArch,#7b8a5b,5251,4629
BlackArch,#0a499c,5578,1418
Calculate,#45ee36,88,9
Carbs Linux,#7557f4,347,100
CentOS 6,#b53b07,2399,316
CentOS 7,#227ce7,3541,493
CentOS 8,#f44498,3380,535
CentOS Stream 8,#33d093,9841,794
CentOS Stream 9,#0ee97e,6029,929
CentOS Stream 10,#0f0726,6072,1968
Chimera Linux,#545112,11344,7591
Chocolatey,#848169,4042,1506
Chromebrew,#5f5949,2458,1099
ConanCenter,#55432b,5827,736
CPAN,#2b9c3f,9699,9517
MetaCPAN,#58ed89,11503,9199
CRAN,#0d2702,22682,22445
crates.io,#50a416,4979,4671
CRUX 3.6,#7a9f20,2070,452
CRUX 3.7,#edbab6,2374,1215
CRUX 3.8,#1b1f08,2402,2155
Cygwin,#164dbb,11523,3683
Deb Multimedia Unstable,#396954,438,316
Debian 11,#d80150,32129,7998
Debian 12,#d80150,35113,10178
Debian 12 Backports,#d80150,1018,172
Debian 12 Backports sloppy,#d80150,4,2
Debian 13,#d80150,38138,16327
Debian 13 Backports,#d80150,129,65
Debian 14,#d80150,38433,19085
Debian Unstable,#d80150,40247,19858
Debian Experimental,#d80150,1178,351
deepin 20,#b49487,29950,6353
deepin 23,#5aa976,11181,2841
Devuan 4.0,#c74001,31290,7961
Devuan Unstable,#c5a2df,39500,19758
distri,#5dd3d8,541,31
ELRepo el8,#2a1eab,190,5
ELRepo el8 Testing,#c3c746,11,1
ELRepo el9,#731a49,174,6
ELRepo el9 Testing,#f45275,16,1
Endless OS 4.0,#572032,116,3
Endless OS master,#ee1231,100,6
EPEL 6,#104bec,5978,1002
EPEL 7,#5c4e96,7303,1593
EPEL 8,#f562dd,5210,1659
EPEL 9,#57ef37,7971,3443
EPEL 10,#ce5625,6269,3904
EuroLinux 8,#357d95,8070,678
EuroLinux 9,#23092a,7422,888
Exherbo,#f4067d,8604,3650
F-Droid,#417588,10986,386
Fedora 37,#294072,29763,8272
Fedora 38,#294072,30232,8931
Fedora 39,#294072,29890,9702
Fedora 40,#294072,31164,11094
Fedora 41,#294072,30595,12989
Fedora 42,#294072,29200,14399
Fedora Rawhide,#294072,23783,15634
FreeBSD Ports,#f8bd97,37162,22096
Gentoo,#fd50aa,29980,10998
Gentoo overlay GURU,#0833e8,3029,995
Gentoo overlay Pentoo,#320606,1160,323
Gentoo Science overlay,#3e6a59,745,165
glaucus,#4a4605,119,31
GNU Elpa,#715082,478,466
GNU Guix,#627484,29927,9060
GoboLinux,#cae358,3775,841
Hackage,#f66bb8,18399,18302
HaikuPorts master,#728050,3893,1099
Homebrew,#474193,11963,6422
Homebrew Casks,#d6a8e7,2243,1654
Homebrew tap Brewsci/bio,#dae89f,318,93
HP-UX 11.31,#966c7c,2260,529
IBM i,#e55874,315,30
IzzyOnDroid,#fe4491,2549,363
Kali Linux Bleeding Edge,#5a1f1d,84,2
Kali Linux Rolling,#95e659,38801,18919
KaOS,#865f75,2116,1745
KaOS Build,#99f29d,54,47
KDE neon Testing,#ea8b8b,929,18
KDE neon Unstable,#13feb2,980,19
KDE neon User,#e2aa26,1992,36
KDE neon User LTS,#79cd19,541,23
KISS Community - main,#f7148c,152,127
KISS Community - community,#a15c95,394,148
Libregamewiki,#269f00,651,249
LiGurOS stable,#5e6670,32494,10429
LiGurOS develop,#99c0d7,32525,11835
LuaRocks,#59937e,7459,573
MacPorts,#a04660,38065,16569
Mageia 8,#12e19a,17033,3349
Mageia 9,#c995b0,17504,4266
Mageia cauldron,#d58be0,16944,8184
Manjaro Stable,#f48f55,15827,10523
Manjaro Testing,#1f1346,15865,11783
Manjaro Unstable,#586bd7,15863,11851
MELPA,#26bee7,5962,0
MELPA Stable,#ca0898,3234,3178
MidnightBSD mports,#04ed66,7141,2759
MPR,#45feab,926,165
MSYS2 clang64,#acd000,3450,2427
MSYS2 clangarm64,#fa82fd,3363,2400
MSYS2 mingw,#6d8331,3989,2827
MSYS2 msys2,#4e00e0,748,524
MSYS2 ucrt64,#3f7a69,3534,2483
MX Linux MX-21,#728b48,708,67
MX Linux MX-21 Testing,#652a7e,546,66
MX Linux MX-23,#b70e44,449,68
MX Linux MX-23 Testing,#f7442f,363,71
nixpkgs stable 22.11,#4f73bd,95572,32670
nixpkgs stable 23.05,#4f73bd,99994,35711
nixpkgs stable 23.11,#4f73bd,107004,40851
nixpkgs stable 24.05,#4f73bd,114973,48842
nixpkgs stable 24.11,#4f73bd,120736,53933
nixpkgs stable 25.05,#4f73bd,128154,64513
nixpkgs unstable,#4f73bd,129995,83052
NOIR Linux Main,#4c7c34,243,60
Npackd Stable,#3a1e98,13043,182
Npackd Stable64,#120f93,7748,80
Npackd Unstable,#2b8b36,96,0
opam,#2297f9,1191,962
OpenBSD Ports,#891876,12177,6914
openEuler 20.03-LTS-SP3,#18bd9c,3382,725
openEuler 20.03-LTS-SP4,#919d1b,3418,735
openEuler 22.03-LTS,#c4ad42,4234,1066
openEuler 22.03-LTS-SP1,#a405a5,4266,1181
openEuler 22.03-LTS-SP2,#ca0e55,4275,1188
openEuler 22.03-LTS-SP3,#ab42b1,4307,1219
openEuler 22.03-LTS-SP4,#580c72,4320,1221
openEuler 23.03,#326384,4294,1243
openEuler 23.09,#7d1c84,4617,1435
openEuler 24.03-LTS,#9c9543,4876,1751
openEuler 24.03-LTS-SP1,#cd2051,4905,1754
openEuler 24.09,#23dc5d,4880,1912
openEuler 25.03,#5937f1,4990,2238
OpenIndiana packages,#a74006,6071,4032
openmamba,#fd5169,5956,4629
OpenMandriva 4.3,#075f75,12605,3228
OpenMandriva 5.0,#f156ba,15311,3333
OpenMandriva 6.0,#1d0a44,16177,4647
OpenMandriva Rolling,#02f5d9,16176,4645
OpenMandriva Cooker,#570f0f,16064,5828
OpenPKG,#b97229,2386,691
openSUSE Leap 15.4,#97b4d1,19608,3510
openSUSE Leap 15.5,#0d90e3,20732,4212
openSUSE Leap 15.6,#5b1cb0,20411,4658
openSUSE Tumbleweed,#5bf012,16644,9811
openSUSE Education Tumbleweed,#dd60fa,371,129
openSUSE Emulators Tumbleweed,#078d37,143,57
openSUSE games Tumbleweed,#20def3,928,510
openSUSE graphics Tumbleweed,#9a1ea7,324,184
openSUSE hardware:sdr Tumbleweed,#85dbee,181,72
openSUSE multimedia:apps Tumbleweed,#7b3b31,389,223
openSUSE multimedia:libs Tumbleweed,#7fe250,353,244
openSUSE network Tumbleweed,#6503eb,266,143
openSUSE science Tumbleweed,#da6270,1168,499
openSUSE security Tumbleweed,#938865,295,157
openSUSE server:irc Tumbleweed,#33ffac,43,27
openSUSE shells Tumbleweed,#8b4d82,45,16
Open VSX,#b9e6d6,354,296
OpenWrt 23.05 x86_64,#4120a0,8976,909
OpenWrt 24.10 x86_64,#96e1e9,9127,1180
OS4Depot,#504257,946,280
PackMan openSUSE Tumbleweed,#6ee548,639,264
PackMan SLE 12,#7bc2cd,259,66
PackMan SLE 15,#e20898,85,33
pacstall,#2805fa,865,201
Parabola,#bfea9d,15524,11085
Parabola Testing,#2a6c01,29,2
Pardus 21,#f4772f,32630,8015
Pardus 23,#d31d86,365,15
Parrot,#2ee02f,70726,20612
PCLinuxOS,#3ae8ee,12198,3095
Pisi Linux,#0e3ce2,3400,1568
Pisi Linux Contrib,#7c744e,138,26
pkgsrc current,#00175f,20109,11226
PLD Linux,#6c408b,14171,5707
postmarketOS 22.12,#18a24f,436,10
postmarketOS 23.06,#d554fb,434,12
postmarketOS 23.12,#6ac29d,487,8
postmarketOS 24.06,#d25d55,1189,17
postmarketOS 24.12,#723926,1247,22
postmarketOS master,#f494c6,1583,56
PTXdist,#5fc7b3,956,283
PureOS amber,#cb7004,28585,6330
PureOS byzantium,#f97445,30901,7903
PureOS landing,#8c4f15,37686,16214
PyPI,#b0b02d,27564,19661
Raspbian Oldstable,#770eb3,35274,8820
Raspbian Stable,#6464d2,39331,11200
Raspbian Testing,#e63299,43680,17727
Ravenports,#f8a053,3733,3370
ReactOS rapps,#58b95d,198,58
RebornOS,#59ff67,422,69
Rocky Linux 8,#f6ebc7,4991,659
Rocky Linux 9,#7dcd4b,3394,727
Rosa 2021.1,#97c3d3,20016,5407
Rosa 13,#b4c1ad,21087,7577
RPM Fusion EL 6,#2de995,74,15
RPM Fusion EL 7,#a6739d,142,24
RPM Fusion EL 8,#c58faa,119,23
RPM Fusion EL 9,#8a57ff,68,11
RPM Fusion Fedora 39,#f92297,451,110
RPM Fusion Fedora 40,#16f121,437,121
RPM Fusion Fedora 41,#d0e95c,439,165
RPM Fusion Fedora Rawhide,#ec9021,307,170
RPM Sphere,#f6f97e,2874,1079
RubyGems,#15938d,4443,4191
SageMath stable,#3ac6c0,372,116
SageMath development,#156a83,370,131
Salix 14.2,#f0f291,735,52
Scientific Linux 7.x,#151d89,12293,1110
Software Collections,#cad081,416,41
Scoop,#a1e30a,4471,2535
Side Linux,#49532c,951,677
Siduction,#4777fa,580,4
Siduction Experimental,#aa1eb5,30,0
SlackBuilds,#fce93a,9959,4429
Slackware 14.2,#6c14f7,1599,308
Slackware 15.0,#a22b02,1923,351
Slackware current,#980320,1816,1076
Slackware64 14.2,#d6d7fe,1586,306
Slackware64 15.0,#2e9a90,1887,348
Slackware64 current,#ddb20d,1815,1073
Slackwarearm 14.2,#00da1f,1578,295
Slackwarearm 15.0,#b7db19,1815,343
SliTaz Cooking,#97e44a,5922,1650
SliTaz Current,#37210f,1863,243
SliTaz Next,#5b3349,12181,1979
Solus,#a9b7c9,11649,5949
Spack,#192307,9686,2913
Stackage LTS Haskell,#627186,3413,3245
Stackage Nightly,#eed336,3283,3232
stal/IX,#a406c8,1380,1184
stal/IX dev,#215855,1381,1190
T2 SDE,#2ddf69,6176,5157
Tails stable,#87aae6,3,1
Tails devel,#ea6ad5,3,1
Termux,#e00735,2675,2098
Termux User Repository,#92c6da,298,129
Terra 39,#fbb1b6,2351,413
Terra 40,#84ac9a,2865,888
Terra 41,#3fc0ce,3232,1526
Terra rawhide,#7e6353,3428,1717
Tin Can Linux,#373572,81,41
Trisquel 10.0,#bcd150,32930,7067
Trisquel 10.0 backports,#cf06fb,82,10
Trisquel 11.0,#14ab52,36148,8850
Trisquel 11.0 backports,#9aeca9,64,7
UBI 8,#86a4f1,1623,157
Ubuntu 14.04,#e95420,24127,3792
Ubuntu 14.04 Backports,#e95420,109,2
Ubuntu 16.04,#e95420,27276,4739
Ubuntu 16.04 Backports,#e95420,25,0
Ubuntu 18.04,#e95420,30870,5911
Ubuntu 18.04 Backports,#e95420,18,0
Ubuntu 20.04,#e95420,32759,7101
Ubuntu 20.04 Backports,#e95420,21,1
Ubuntu 22.04,#e95420,36192,8890
Ubuntu 22.04 Backports,#e95420,21,1
Ubuntu 24.04,#e95420,38934,11984
Ubuntu 24.04 Backports,#e95420,18,1
Ubuntu 25.04,#e95420,39939,15724
Ubuntu 25.04 Backports,#e95420,3,0
Ubuntu 25.10,#e95420,39743,17734
Ubuntu 25.10 Proposed,#e95420,243,70
Vcpkg,#b3633a,2698,1218
Void Linux x86_64,#cce6b9,14332,7324
WakeMeOps,#a47399,3986,151
Wikidata,#d0de02,5553,3022
YACP,#668578,3724,2216
1 Name name color Fresh Packages Packages packages freshPackages
2 Adélie Linux current Adélie Linux current #27f676 2091 8243 2091
3 AIX Open Source Packages #e1d77b 260 8065 260
4 AIX Toolbox #6b0b92 116 644 116
5 AlmaLinux 8 #e7b63a 750 5986 750
6 AlmaLinux 9 #3a17d8 655 3034 655
7 Alpine Linux 3.15 #0d597f 2873 15848 2873
8 Alpine Linux 3.16 #0d597f 3179 17032 3179
9 Alpine Linux 3.17 #0d597f 3675 17811 3695
10 Alpine Linux 3.18 #0d597f 4597 20062 4617
11 Alpine Linux 3.19 #0d597f 5654 23027 5677
12 Alpine Linux 3.20 #0d597f 6561 24163 6582
13 Alpine Linux 3.21 #0d597f 8133 25389 8154
14 Alpine Linux 3.22 #0d597f 11533 26312 11521
15 Alpine Linux Edge #0d597f 22634 34749 22568
16 ALT Linux p9 #7bdee9 4531 18262 4531
17 ALT Linux p10 #e35430 5321 19057 5322
18 ALT Linux p11 #cf81dd 7204 19794 19795 7204
19 ALT Sisyphus #115799 10196 20700 10202
20 Amazon Linux 1 #2f2558 298 3448 298
21 Amazon Linux 2 #234b7a 717 7253 7255 717
22 AOSC #0af098 2188 5749 2184
23 Apertis v2023 #4205cd 1131 5612 1131
24 Apertis v2024 #b1b089 1296 5976 5977 1297
25 Apertis v2025 #d9ba1d 1297 5981 1298
26 Apertis v2026 Development #9bc337 2581 6825 2581
27 Arch Linux #02ba84 11591 15099 11588
28 Arch Testing #bf6e11 222 307 263 194
29 Arch Linux ARM aarch64 #3ca5dc 11004 21174 10946
30 ArchPOWER powerpc #7beb18 2531 5417 2529
31 ArchPOWER powerpc64le #dd275f 2559 5650 2558
32 ArchPOWER riscv64 #16ece5 2169 5330 2169
33 AUR #1793d1 28117 100544 100533 28097
34 Artix #f0c1fa 5688 8904 5643
35 Artix Testing #7fa3b3 129 163 116
36 BackBox 6 #9997c4 3 19 2
37 BackBox 7 #02b384 8 26 7
38 Baulk #16e637 50 71 48
39 BioArch #7b8a5b 4631 5251 4629
40 BlackArch #0a499c 1420 5578 1418
41 Calculate #45ee36 9 88 9
42 Carbs Linux #7557f4 99 347 100
43 CentOS 6 #b53b07 316 2399 316
44 CentOS 7 #227ce7 493 3541 493
45 CentOS 8 #f44498 535 3380 535
46 CentOS Stream 8 #33d093 794 9841 794
47 CentOS Stream 9 #0ee97e 929 6029 929
48 CentOS Stream 10 #0f0726 1967 6072 1968
49 Chimera Linux #545112 7594 11338 11344 7591
50 Chocolatey #848169 1552 4042 1506
51 Chromebrew #5f5949 1118 2458 1099
52 ConanCenter #55432b 736 5821 5827 736
53 CPAN #2b9c3f 9519 9696 9699 9517
54 MetaCPAN #58ed89 9211 11349 11503 9199
55 CRAN #0d2702 22445 22832 22682 22445
56 crates.io #50a416 4670 4978 4979 4671
57 CRUX 3.6 #7a9f20 451 2070 452
58 CRUX 3.7 #edbab6 1220 2374 1215
59 CRUX 3.8 #1b1f08 2143 2402 2155
60 Cygwin #164dbb 3674 11520 11523 3683
61 Deb Multimedia Unstable #396954 316 438 316
62 Debian 11 #d80150 7992 32129 7998
63 Debian 12 #d80150 10168 35113 10178
64 Debian 12 Backports #d80150 173 1018 172
65 Debian 12 Backports sloppy #d80150 2 4 2
66 Debian 13 #d80150 16317 38138 16327
67 Debian 13 Backports #d80150 65 129 65
68 Debian 14 #d80150 18950 38390 38433 19085
69 Debian Unstable #d80150 19811 40247 19858
70 Debian Experimental #d80150 354 1180 1178 351
71 deepin 20 #b49487 6345 29950 6353
72 deepin 23 #5aa976 2840 11181 2841
73 Devuan 4.0 #c74001 7955 31290 7961
74 Devuan Unstable #c5a2df 19710 39510 39500 19758
75 distri #5dd3d8 31 541 31
76 ELRepo el8 #2a1eab 5 190 5
77 ELRepo el8 Testing #c3c746 0 11 1
78 ELRepo el9 #731a49 6 174 6
79 ELRepo el9 Testing #f45275 0 15 16 1
80 Endless OS 4.0 #572032 3 116 3
81 Endless OS master #ee1231 6 100 6
82 EPEL 6 #104bec 1002 5978 1002
83 EPEL 7 #5c4e96 1593 7303 1593
84 EPEL 8 #f562dd 1659 5210 1659
85 EPEL 9 #57ef37 3440 7974 7971 3443
86 EPEL 10 #ce5625 3679 6262 6269 3904
87 EuroLinux 8 #357d95 678 8070 678
88 EuroLinux 9 #23092a 888 7422 888
89 Exherbo #f4067d 3637 8605 8604 3650
90 F-Droid #417588 379 10973 10986 386
91 Fedora 37 #294072 8271 29763 8272
92 Fedora 38 #294072 8926 30232 8931
93 Fedora 39 #294072 9699 29890 9702
94 Fedora 40 #294072 11094 31164 11094
95 Fedora 41 #294072 12992 30595 12989
96 Fedora 42 #294072 14406 29193 29200 14399
97 Fedora Rawhide #294072 15722 23805 23783 15634
98 FreeBSD Ports #f8bd97 22108 37153 37162 22096
99 Gentoo #fd50aa 10960 29958 29980 10998
100 Gentoo overlay GURU #0833e8 971 3023 3029 995
101 Gentoo overlay Pentoo #320606 323 1160 323
102 Gentoo Science overlay #3e6a59 166 745 165
103 glaucus #4a4605 31 119 31
104 GNU Elpa #715082 465 478 466
105 GNU Guix #627484 9074 29927 9060
106 GoboLinux #cae358 840 3775 841
107 Hackage #f66bb8 18219 18316 18399 18302
108 HaikuPorts master #728050 1107 3893 1099
109 Homebrew #474193 6386 11881 11963 6422
110 Homebrew Casks #d6a8e7 1657 2242 2243 1654
111 Homebrew tap Brewsci/bio #dae89f 94 318 93
112 HP-UX 11.31 #966c7c 527 2259 2260 529
113 IBM i #e55874 30 315 30
114 IzzyOnDroid #fe4491 366 2554 2549 363
115 Kali Linux Bleeding Edge #5a1f1d 2 84 2
116 Kali Linux Rolling #95e659 18712 38755 38801 18919
117 KaOS #865f75 1763 2116 1745
118 KaOS Build #99f29d 38 44 54 47
119 KDE neon Testing #ea8b8b 18 929 18
120 KDE neon Unstable #13feb2 19 980 19
121 KDE neon User #e2aa26 36 1992 36
122 KDE neon User LTS #79cd19 23 541 23
123 KISS Community - main #f7148c 128 152 127
124 KISS Community - community #a15c95 147 394 148
125 Libregamewiki #269f00 249 651 249
126 LiGurOS stable #5e6670 10419 32494 10429
127 LiGurOS develop #99c0d7 11861 32521 32525 11835
128 LuaRocks #59937e 573 7457 7459 573
129 MacPorts #a04660 16613 38061 38065 16569
130 Mageia 8 #12e19a 3349 17033 3349
131 Mageia 9 #c995b0 4265 17504 4266
132 Mageia cauldron #d58be0 8196 16944 8184
133 Manjaro Stable #f48f55 10594 15827 10523
134 Manjaro Testing #1f1346 11496 15847 15865 11783
135 Manjaro Unstable #586bd7 11887 15865 15863 11851
136 MELPA #26bee7 0 5962 0
137 MELPA Stable #ca0898 3179 3234 3178
138 MidnightBSD mports #04ed66 2761 7141 2759
139 MPR #45feab 166 926 165
140 MSYS2 clang64 #acd000 2434 3450 2427
141 MSYS2 clangarm64 #fa82fd 2407 3363 2400
142 MSYS2 mingw #6d8331 2837 3989 2827
143 MSYS2 msys2 #4e00e0 518 748 524
144 MSYS2 ucrt64 #3f7a69 2490 3534 2483
145 MX Linux MX-21 #728b48 67 708 67
146 MX Linux MX-21 Testing #652a7e 66 546 66
147 MX Linux MX-23 #b70e44 68 449 68
148 MX Linux MX-23 Testing #f7442f 71 363 71
149 nixpkgs stable 22.11 #4f73bd 32675 95572 32670
150 nixpkgs stable 23.05 #4f73bd 35717 99994 35711
151 nixpkgs stable 23.11 #4f73bd 40861 107004 40851
152 nixpkgs stable 24.05 #4f73bd 48855 114973 48842
153 nixpkgs stable 24.11 #4f73bd 53957 120736 53933
154 nixpkgs stable 25.05 #4f73bd 64601 128147 128154 64513
155 nixpkgs unstable #4f73bd 83168 130313 129995 83052
156 NOIR Linux Main #4c7c34 59 243 60
157 Npackd Stable #3a1e98 186 13040 13043 182
158 Npackd Stable64 #120f93 82 7742 7748 80
159 Npackd Unstable #2b8b36 0 96 0
160 opam #2297f9 962 1191 962
161 OpenBSD Ports #891876 6940 12177 6914
162 openEuler 20.03-LTS-SP3 #18bd9c 725 3382 725
163 openEuler 20.03-LTS-SP4 #919d1b 735 3418 735
164 openEuler 22.03-LTS #c4ad42 1066 4234 1066
165 openEuler 22.03-LTS-SP1 #a405a5 1181 4266 1181
166 openEuler 22.03-LTS-SP2 #ca0e55 1188 4275 1188
167 openEuler 22.03-LTS-SP3 #ab42b1 1219 4307 1219
168 openEuler 22.03-LTS-SP4 #580c72 1221 4320 1221
169 openEuler 23.03 #326384 1242 4294 1243
170 openEuler 23.09 #7d1c84 1434 4617 1435
171 openEuler 24.03-LTS #9c9543 1750 4876 1751
172 openEuler 24.03-LTS-SP1 #cd2051 1753 4905 1754
173 openEuler 24.09 #23dc5d 1912 4880 1912
174 openEuler 25.03 #5937f1 2238 4990 2238
175 OpenIndiana packages #a74006 4060 6052 6071 4032
176 openmamba #fd5169 4625 5951 5956 4629
177 OpenMandriva 4.3 #075f75 3228 12605 3228
178 OpenMandriva 5.0 #f156ba 3332 15311 3333
179 OpenMandriva 6.0 #1d0a44 4649 16177 4647
180 OpenMandriva Rolling #02f5d9 4647 16176 4645
181 OpenMandriva Cooker #570f0f 5829 16059 16064 5828
182 OpenPKG #b97229 695 2386 691
183 openSUSE Leap 15.4 #97b4d1 3511 19608 3510
184 openSUSE Leap 15.5 #0d90e3 4214 20732 4212
185 openSUSE Leap 15.6 #5b1cb0 4658 20362 20411 4658
186 openSUSE Tumbleweed #5bf012 9861 16640 16644 9811
187 openSUSE Education Tumbleweed #dd60fa 130 380 371 129
188 openSUSE Emulators Tumbleweed #078d37 55 143 57
189 openSUSE games Tumbleweed #20def3 509 934 928 510
190 openSUSE graphics Tumbleweed #9a1ea7 170 317 324 184
191 openSUSE hardware:sdr Tumbleweed #85dbee 71 181 72
192 openSUSE multimedia:apps Tumbleweed #7b3b31 219 386 389 223
193 openSUSE multimedia:libs Tumbleweed #7fe250 235 348 353 244
194 openSUSE network Tumbleweed #6503eb 141 266 143
195 openSUSE science Tumbleweed #da6270 485 1150 1168 499
196 openSUSE security Tumbleweed #938865 157 295 157
197 openSUSE server:irc Tumbleweed #33ffac 27 43 27
198 openSUSE shells Tumbleweed #8b4d82 15 45 16
199 Open VSX #b9e6d6 295 352 354 296
200 OpenWrt 23.05 x86_64 #4120a0 908 8976 909
201 OpenWrt 24.10 x86_64 #96e1e9 1180 9433 9127 1180
202 OS4Depot #504257 280 946 280
203 PackMan openSUSE Tumbleweed #6ee548 266 641 639 264
204 PackMan SLE 12 #7bc2cd 66 259 66
205 PackMan SLE 15 #e20898 29 80 85 33
206 pacstall #2805fa 204 864 865 201
207 Parabola #bfea9d 11074 15519 15524 11085
208 Parabola Testing #2a6c01 4 29 2
209 Pardus 21 #f4772f 8009 32630 8015
210 Pardus 23 #d31d86 15 365 15
211 Parrot #2ee02f 20592 70726 20612
212 PCLinuxOS #3ae8ee 3098 12198 3095
213 Pisi Linux #0e3ce2 1566 3400 1568
214 Pisi Linux Contrib #7c744e 27 138 26
215 pkgsrc current #00175f 11165 20099 20109 11226
216 PLD Linux #6c408b 5713 14171 5707
217 postmarketOS 22.12 #18a24f 10 436 10
218 postmarketOS 23.06 #d554fb 12 434 12
219 postmarketOS 23.12 #6ac29d 8 487 8
220 postmarketOS 24.06 #d25d55 17 1189 17
221 postmarketOS 24.12 #723926 22 1247 22
222 postmarketOS master #f494c6 56 1583 56
223 PTXdist #5fc7b3 285 956 283
224 PureOS amber #cb7004 6322 28585 6330
225 PureOS byzantium #f97445 7897 30901 7903
226 PureOS landing #8c4f15 16203 37686 16214
227 PyPI #b0b02d 19657 27537 27564 19661
228 Raspbian Oldstable #770eb3 8814 35274 8820
229 Raspbian Stable #6464d2 11189 39331 11200
230 Raspbian Testing #e63299 17717 43680 17727
231 Ravenports #f8a053 3051 3728 3733 3370
232 ReactOS rapps #58b95d 58 198 58
233 RebornOS #59ff67 69 422 69
234 Rocky Linux 8 #f6ebc7 659 4991 659
235 Rocky Linux 9 #7dcd4b 727 3394 727
236 Rosa 2021.1 #97c3d3 5406 20016 5407
237 Rosa 13 #b4c1ad 7584 21087 7577
238 RPM Fusion EL 6 #2de995 15 74 15
239 RPM Fusion EL 7 #a6739d 24 142 24
240 RPM Fusion EL 8 #c58faa 23 119 23
241 RPM Fusion EL 9 #8a57ff 11 68 11
242 RPM Fusion Fedora 39 #f92297 110 451 110
243 RPM Fusion Fedora 40 #16f121 121 437 121
244 RPM Fusion Fedora 41 #d0e95c 165 439 165
245 RPM Fusion Fedora Rawhide #ec9021 170 307 170
246 RPM Sphere #f6f97e 1079 2874 1079
247 RubyGems #15938d 4191 4443 4191
248 SageMath stable #3ac6c0 116 372 116
249 SageMath development #156a83 129 370 131
250 Salix 14.2 #f0f291 52 735 52
251 Scientific Linux 7.x #151d89 1110 12293 1110
252 Software Collections #cad081 41 416 41
253 Scoop #a1e30a 2540 4469 4471 2535
254 Side Linux #49532c 680 951 677
255 Siduction #4777fa 4 580 4
256 Siduction Experimental #aa1eb5 0 30 0
257 SlackBuilds #fce93a 4446 9959 4429
258 Slackware 14.2 #6c14f7 308 1599 308
259 Slackware 15.0 #a22b02 350 1923 351
260 Slackware current #980320 1077 1816 1076
261 Slackware64 14.2 #d6d7fe 306 1586 306
262 Slackware64 15.0 #2e9a90 347 1887 348
263 Slackware64 current #ddb20d 1074 1815 1073
264 Slackwarearm 14.2 #00da1f 295 1578 295
265 Slackwarearm 15.0 #b7db19 341 1814 1815 343
266 SliTaz Cooking #97e44a 1649 5922 1650
267 SliTaz Current #37210f 243 1863 243
268 SliTaz Next #5b3349 1977 12181 1979
269 Solus #a9b7c9 5954 11646 11649 5949
270 Spack #192307 2920 9685 9686 2913
271 Stackage LTS Haskell #627186 3248 3411 3413 3245
272 Stackage Nightly #eed336 3212 3262 3283 3232
273 stal/IX #a406c8 1188 1380 1184
274 stal/IX dev #215855 1194 1381 1190
275 T2 SDE #2ddf69 5160 6175 6176 5157
276 Tails stable #87aae6 1 3 1
277 Tails devel #ea6ad5 1 3 1
278 Termux #e00735 2097 2674 2675 2098
279 Termux User Repository #92c6da 127 297 298 129
280 Terra 39 #fbb1b6 413 2351 413
281 Terra 40 #84ac9a 894 2865 888
282 Terra 41 #3fc0ce 1484 3221 3232 1526
283 Terra rawhide #7e6353 1645 3395 3428 1717
284 Tin Can Linux #373572 42 81 41
285 Trisquel 10.0 #bcd150 7062 32930 7067
286 Trisquel 10.0 backports #cf06fb 10 82 10
287 Trisquel 11.0 #14ab52 8844 36144 36148 8850
288 Trisquel 11.0 backports #9aeca9 7 64 7
289 UBI 8 #86a4f1 157 1623 157
290 Ubuntu 14.04 #e95420 3793 24127 3792
291 Ubuntu 14.04 Backports #e95420 2 109 2
292 Ubuntu 16.04 #e95420 4738 27276 4739
293 Ubuntu 16.04 Backports #e95420 0 25 0
294 Ubuntu 18.04 #e95420 5904 30870 5911
295 Ubuntu 18.04 Backports #e95420 0 18 0
296 Ubuntu 20.04 #e95420 7096 32759 7101
297 Ubuntu 20.04 Backports #e95420 1 21 1
298 Ubuntu 22.04 #e95420 8883 36182 36192 8890
299 Ubuntu 22.04 Backports #e95420 1 21 1
300 Ubuntu 24.04 #e95420 11974 38934 11984
301 Ubuntu 24.04 Backports #e95420 1 18 1
302 Ubuntu 25.04 #e95420 15714 39935 39939 15724
303 Ubuntu 25.04 Backports #e95420 0 3 0
304 Ubuntu 25.10 #e95420 17706 39745 39743 17734
305 Ubuntu 25.10 Proposed #e95420 90 273 243 70
306 Vcpkg #b3633a 1217 2696 2698 1218
307 Void Linux x86_64 #cce6b9 7324 14331 14332 7324
308 WakeMeOps #a47399 153 3981 3986 151
309 Wikidata #d0de02 3039 5553 3022
310 YACP #668578 2215 3724 2216

View File

@@ -1,21 +1,46 @@
import csv
import math
import random
import requests
from bs4 import BeautifulSoup, Tag
# Load your HTML (replace this with reading from a file or requests.get().text)
with open("packages_table.html", "r", encoding="utf-8") as f:
html = f.read()
soup = BeautifulSoup(html, "html.parser")
def repo_color(name: str) -> str:
lower_name = name.lower()
if lower_name.startswith("ubuntu"):
return "#e95420"
if lower_name.startswith("nixpkgs"):
return "#4f73bd"
if lower_name.startswith("debian"):
return "#d80150"
if lower_name.startswith("alpine"):
return "#0d597f"
if lower_name.startswith("fedora"):
return "#294072"
if lower_name.startswith("aur"):
return "#1793d1"
rows: list[tuple[str, str, str]] = []
return f"#{math.floor(random.random() * 0xFFFFFF):06x}"
URL = "https://repology.org/repositories/packages"
HEADERS = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0"
}
response = requests.get(URL, headers=HEADERS)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
rows: list[tuple[str, str, str, str]] = []
for tr in soup.select("tbody > tr"):
# 1 First column: repo name
# First column: repo name
name_tag = tr.select_one("th a")
name = name_tag.get_text(strip=True) if name_tag else ""
# 2 Second and third columns: prefer span[title], fall back to span text
# Second and third columns: prefer span[title], fall back to span text
td_tags = tr.select("td")
if len(td_tags) >= 2:
@@ -37,12 +62,14 @@ for tr in soup.select("tbody > tr"):
else:
packages = fresh_packages = ""
rows.append((name, packages, fresh_packages))
color = repo_color(name)
rows.append((name, color, packages, fresh_packages))
# Write to CSV
with open("packages.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["Name", "Packages", "Fresh Packages"])
writer.writerow(["name", "color", "packages", "freshPackages"])
writer.writerows(rows)
print("✅ Extracted", len(rows), "rows into packages.csv")

View File

@@ -1,39 +1,33 @@
<script lang="ts">
import 'reveal.js/dist/reveal.css'
import 'reveal.js/dist/theme/black.css'
import 'reveal.js/plugin/highlight/monokai.css'
import 'reveal.js/dist/reveal.css'
import 'reveal.js/dist/theme/black.css'
import 'reveal.js/plugin/highlight/monokai.css'
import Reveal from 'reveal.js'
import Markdown from 'reveal.js/plugin/markdown/markdown.esm.js'
import RevealHighlight from 'reveal.js/plugin/highlight/highlight.esm.js'
import Reveal from 'reveal.js'
import Markdown from 'reveal.js/plugin/markdown/markdown.esm.js'
import RevealHighlight from 'reveal.js/plugin/highlight/highlight.esm.js'
import { onMount, tick } from 'svelte';
import { onMount, tick } from 'svelte'
onMount(async () => {
await tick()
const deck = new Reveal({
plugins: [Markdown, RevealHighlight],
import Title from './slides/Title.svelte'
import PackageGraph from './slides/PackageGraph.svelte'
onMount(async () => {
await tick()
const deck = new Reveal({
plugins: [Markdown, RevealHighlight],
})
deck.initialize()
})
deck.initialize()
})
</script>
<svelte:head>
<title>Nix Presentation</title>
<title>Nix Presentation</title>
</svelte:head>
<div class="reveal">
<div class="slides">
<section data-markdown>
<textarea data-template>
## Slide 1
A paragraph with some text and a [link](https://hakim.se).
---
## Slide 2
---
## Slide 3
</textarea>
</section>
</div>
</div>
<div class="slides">
<Title />
<PackageGraph />
</div>
</div>

View File

@@ -0,0 +1,141 @@
<script lang="ts">
import * as d3 from 'd3'
import { onMount } from 'svelte'
import PackagePoint from '../lib/PackagePoint.svelte'
type PackageStat = {
name: string
color: string
packages: number
freshPackages: number
}
let queuedRepositories: PackageStat[] = []
let repositories: PackageStat[] = []
export let width: number = 800
export let height: number = 500
export let marginTop: number = 30
export let marginRight: number = 80
export let marginBottom: number = 50
export let marginLeft: number = 70
let gx: SVGGElement, gy: SVGGElement
$: innerWidth = width - marginLeft - marginRight
$: innerHeight = height - marginTop - marginBottom
$: x = d3
.scaleLinear([0, Math.max(...repositories.map((d) => d.packages))], [0, innerWidth])
.nice()
$: y = d3
.scaleLinear([0, Math.max(...repositories.map((d) => d.freshPackages))], [innerHeight, 0])
.nice()
// render axes with transitions
$: if (gx && repositories.length > 0) {
const t = d3.transition().duration(750).ease(d3.easeCubicInOut)
d3.select(gx).transition(t).call(d3.axisBottom(x))
}
$: if (gy && repositories.length > 0) {
const t = d3.transition().duration(750).ease(d3.easeCubicInOut)
d3.select(gy).transition(t).call(d3.axisLeft(y))
}
onMount(async () => {
const nixpkgsOrAUR = (pkg: PackageStat) =>
pkg.name.startsWith('nixpkgs') || pkg.name === 'AUR'
const res = await d3.csv<PackageStat, string>('packages.csv', d3.autoType)
repositories = res.filter((pkg) => !nixpkgsOrAUR(pkg))
queuedRepositories = res.filter(nixpkgsOrAUR).sort((a, b) => {
if (a.name === 'AUR' && b.name !== 'AUR') return -1
if (b.name === 'AUR' && a.name !== 'AUR') return 1
return b.packages - a.packages
})
})
let highlightedRepos: Set<string> = new Set()
let grayRepos: boolean = false
function* animations(): Generator<() => void> {
yield () => {
grayRepos = true
highlightedRepos.add('ubuntu')
highlightedRepos = highlightedRepos
}
yield () => {
highlightedRepos.add('debian')
highlightedRepos = highlightedRepos
}
yield () => {
highlightedRepos.add('fedora')
highlightedRepos = highlightedRepos
}
yield () => {
highlightedRepos.add('alpine')
highlightedRepos = highlightedRepos
}
grayRepos = false
highlightedRepos.clear()
highlightedRepos = highlightedRepos
while (queuedRepositories.length > 0) {
const nextPkg = queuedRepositories.shift()!
yield () => {
highlightedRepos.add(nextPkg.name.toLowerCase().split(' ')[0])
highlightedRepos = highlightedRepos
repositories = [...repositories, nextPkg]
}
}
}
const animate = animations()
</script>
<section
role="presentation"
on:mouseup={() => {
const fun = animate.next()
if (!fun.done) fun.value()
}}
>
<strong>Packages</strong>
<svg {width} {height}>
<g transform="translate({marginLeft},{marginTop})">
<g bind:this={gx} transform="translate(0,{innerHeight})" fill="white">
<text fill="white" text-anchor="middle" x={innerWidth / 2} y="40">Packages</text>
</g>
<g bind:this={gy} x={-innerHeight / 2} y={-50} fill="white" text-anchor="middle">
<text
transform="rotate(-90)"
fill="white"
text-anchor="middle"
x={-innerHeight / 2}
y={-50}>Fresh Packages</text
>
</g>
{#each repositories as { name, color, packages, freshPackages } (name)}
{@const highlight = highlightedRepos.has(name.toLowerCase().split(' ')[0])}
<circle
fill={!grayRepos || highlight ? color : '#666666'}
cx={x(packages)}
cy={y(freshPackages)}
r="5"
/>
{#if highlight}
<text fill="white" x={x(packages) + 7} y={y(freshPackages)} font-size="8"
>{name}</text
>
{/if}
{/each}
</g>
</svg>
</section>
<style>
circle {
transition: all 750ms ease-in-out;
}
</style>

1
src/slides/Title.svelte Normal file
View File

@@ -0,0 +1 @@
<section>Nick's guide to Nix</section>