JuliaRegistries / General

The official registry of general Julia packages
https://github.com/JuliaRegistries/General/blob/master/README.md
MIT License
608 stars 469 forks source link

over 1000 packages starting with `S` #104451

Open oxinabox opened 7 months ago

oxinabox commented 7 months ago

78672 happened again. About 1 year later

We once again have over 1000 packages starting with S causing github not to display all folders

Options from #78672

  1. Move to 2 layers of folders: A/B/Abacus.jl
  2. Move to 2 letter prefixes: Ab/Abacus.jl
  3. Move all JLLs to own folder (done)

Either of these options would shunt the problem down the road for a few more years

Here is break down of the states for counting up packages by the first two letters of their names: (ignoring cases where there are none)

julia> using DataStructures, StatsBase

julia> packages = sort([lowercase(x["name"]) for (_,x) in TOML.parsefile("Registry.toml")["packages"] if dirname(dirname(x["path"]))!="jll"]);

julia> summarystats(collect(values(counter(x[1:2] for x in packages))))
Summary Stats:
Length:         486
Missing Count:  0
Mean:           19.197531
Std. Deviation: 35.549154
Minimum:        1.000000
1st Quartile:   2.000000
Median:         4.000000
3rd Quartile:   19.000000
Maximum:        302.000000

julia> for (x,y) in counter(x[1:2] for x in packages)
           y>100 && println("$x=>$y")
       end
sp=>134
bi=>116
te=>106
mo=>127
di=>173
co=>302
se=>101
qu=>122
si=>167
pr=>111
ge=>150
re=>205
in=>156
mi=>101
gr=>103
st=>224
li=>125
po=>164
ma=>162
da=>103
pa=>128
tr=>110
fi=>108
me=>110
oxinabox commented 7 months ago

Mose pointed out that cargo does 2 layers of 2 letter prefixes, populated on registration. (so combo of option 2) https://github.com/rust-lang/crates.io-index

"If in doubt, copy Cargo" is always good advise for a package management I think

tecosaur commented 6 months ago

For the sake of still being able to still see the readme without excessive scrolling, what about A/BA/Abacus.jl?

PallHaraldsson commented 6 months ago

what about A/BA/Abacus.jl?

Rust/Crate seems to plan on having way more packages then Julia with ab/ac/abacus... :-/ [and only support lower-case] But at least since we are changing I support as you proposed, forced to upper case, not A/ba/abacus, maybe even just A/B/Abacus enough(?), because while we have ASCIIbetical ordering A-Za-z, and Aa-Zz is better, I think we can't work against it except as you suggested:

https://github.com/JuliaRegistries/General/tree/master/jll/B

DilumAluthge commented 1 month ago

I do think we need to do something here. I personally don't care which specific naming convention we pick, as long as the user is able to reach the README by scrolling down.

Does anyone feel strongly about the approach we should pick?