Over 10,500 Julia registered packages, thereof over 9000 pure-Julia/non-JLL packages. Congratulation Julia community!

We just hit 7000 packages (it’s IsotopicCalc.jl) and 49 more waiting in the package pipeline. Would be good to get relevant sites updated, Julialang.org, JuliaComputing.com; and Modulecounts.com which shows a blank line plus “0/day”.

9 Likes

Package 8000 is:

A 1000 new packages from one JuliaCon to the next is great!

one intriguing registered recently:

It would be interesting to have a bit of stats regarding these 8000 packages. How many are still maintained? How many are compatible with the last Julia version? How many are working on all platforms? How many of them are really used?..etc
Personally, I 'd rather have 10 high quality packages than 1000 poor quality packages hence the reason of having a bit of stats on the julia package ecosystem would be interesting…

10 Likes

I agree with this sentiment, and this idea was mentioned earlier in this thread. But how would be such a thing?

Some interesting facts I would like to see about each package would be the following:

Metric: Quantity

Active: Time of latest commit
It would be pretty cool to see a histogram of all the packages with respect to their time of latest commit. I’d probably expect a flipped bell curve. Not sure tho.

Impact: Number of packages that depend on this package (caveat this discounts user facing packages)

Reliance: Number of packages it depends on
If we are looking at the outneighbors of a package might as well look at the inneighbors, seems like an interesting metric (maybe not particulary useful tho)

idkwhattocallthis: Ratio of open PRs to open Issues (like a contribution to complain ratio?) I think this ratio can provide a bit of information on “activity” as well

Popularity: Stars on Github (this is to account for mature, but inactive packages like Calculus.jl, and also accounts for user facing packages. End users are more likely to star the direct package they are using than a lower level dependency.)

So I think overall the metric usefulness can be a function of impact and popularity
The metric activity could be a function of active and the “PR to issue” ratio.

And what will happen when we reach the 500.000 packages? Will they all still be in regestries\General? Now General.tar.gz~4.8 MB but the dir expands to ~28.800 files and 190 MB. Still manageable but is this going to be multipliable by 10, by 100?

the good news is that the tarball doesn’t need to be expanded, and at long as Julia doesn’t grow significantly faster than Moore’s law, we’ll be fine.

But it is expanded.

Not by default from Julia 1.7. If you are using Julia 1.7 or later and have an unpacked registry and don’t want that, just remove it, e.g. with

using Pkg
Pkg.Registry.rm("General")

Yes, I have Julia 1.7 (and aboves). But what that did was to remove the tar ball and left the directory, which is marked with an icon by turtoisegit meaning that is being version controlled.

image

Well, do Registry.rm twice in that case. There are three possible registry representations; git clone, unpacked tarball, and tarball. Apparently you had both of the first two at once.

1 Like

OK, running it twice deleted everything but a posterior ] up brought back that tarball only. Let’s see how it behaves.

Thanks.

1 Like

For some more numerology, Julia’s number of GitHub stars hit 40 K today. It was displayed as 39.9 K yesterday, but now it’s at 39.95 K and gets rounded up to 40 K in the display.

4 Likes

Julia has now over 900 packages registered, and package nr. 9000 is @ChrisRackauckas

It (like other similar packages) seems intriguing.I THINK it does actually have nothing to do with SciML, just put under that umbrella, despite the ODEProblem example.

I don’t know much Ruby, but I still posted such code in my comment there to get the current count (using wget), can anyone help make a PR there (and maybe more idiomatic Ruby code, without wget…):

https://github.com/edebill/modulecounts/issues/58#issuecomment-1523455679

We’re up to 48% the size of the CRAN (R) package system.

We’re likely the 14th largest package ecosystem of any language, and not like we can’t use packages from others, e.g. Python.

It would be great to get modulecounts.com working again, some time ago we were fastest growing package system (according to Reddit thread). Would be interesting to know if still true. By new packages (or even new versions).

Package 9300 is HorizonsEphemeris.jl and if I recall the exiting new PrecompileTools.jl at 9296, I had to scroll through a lot of pages to find the number (i.e. over JLL packages), it’s great so see how many new versions are registered, even in just one day.

3 Likes

We actually have over 10,000 packages already, but the next one up to be registered as nr. 10,000 is VibrationalAnalysis.jl That package is now number 10001 since another slipped in.

[Nr. 9999 is PeriodicHiddenMarkovModels.jl]

EDIT: CIFTI.jl got unblocked and registered as package 10,000:

This Julia package supplies a basic function CIFTI.load for reading files of the CIFTI-2 format https://www.nitrc.org/projects/cifti for fMRI data, along with some convenience functions for indexing into the data matrix.

The intended use case is for simple, fast reading of CIFTI data.

CIFTI (Connectivity Informatics Technology Initiative) standardizes file formats for the storage of connectivity data. These formats are developed by the Human Connectome Project and other interested parties.

Which is a cool project, so far we only have the full connectome of three organisims, first the C. elegans worm, and by now the (“brain”) nervous system of the fruit fly D. melanogaster, most complex so far, only mapped in 2023 (I assume both with help of the file format/spec):

Dense connectomes have been completed for the female adult brain,[3] the male nerve cord,[4] and the female larval stage.[5] The available connectomes show only chemical synapses - other forms of inter-neuron communication such as gap junctions or neuromodulators are not represented. Drosophila is the most complex creature with a connectome, which had only been previously obtained for three other simpler organisms, first C. elegans. […]

  • The brain contains about 135,000 neurons,[6] small enough to be currently reconstructed.[7]
  • The fruit fly exhibits many complex behaviors. Hundreds of different behaviors (feeding, grooming, flying, mating, learning, and so on) have been qualitatively and quantitatively studied over the years.
    […]

In 2023, using the data from 2017 (above), the full brain connectome (for a female) was published, containing roughly 5x10^7 chemical synapses between ~130,000 neurons.[3] A projectome, a map of projections between regions, can be derived from the connectome. In parallel, a consensus cell type atlas for the Drosophila brain was published, produced based on this ‘FlyWire’ connectome and the prior ‘hemibrain’.[20] This resource includes 4,552 cell types: 3,094 as rigorous validations of those previously proposed in the hemibrain connectome; 1,458 new cell types

And more trivia on (fruit) flies, XY chromosomes always means “Normal Male” (unlike in birds), while XX can mean “Normal Female”, or intersex if there’s an extra autosome, and X (only) means a “Normal Male (sterile)” or if there’s an extra autosome a metamale (also called supermale), and XXX and XXXX can be superfemale (or normal).

Unlike humans, the Y chromosome does not confer maleness; rather, it encodes genes necessary for making sperm. Sex is instead determined by the ratio of X chromosomes to autosomes. […] Furthermore, each cell “decides” whether to be male or female independently of the rest of the organism, resulting in the occasional occurrence of gynandromorphs.

Three major genes are involved in determination of Drosophila sex. These are sex-lethal, sisterless, and deadpan.

We are not strictly yet at “Over 10,000 registered packages”, so if anyone wants to compete for package 10001 (still a cool number), please do:

Unless some other package beats it too it, by unblocking their registration.

Instead of simply waiting for the package to be merged, then announcing, I’m seeing if we can have a race for some worthy package.

I’m not sure if some admin should hand-pick a nr. 10,000… any suggestion from the queue?

6 Likes

first come first serve, strictly ! :wink:

You have to wait 3 days to qualify for registration, yes. Of the 69 packages waiting to be registered, at least 69-18= 51 packages are blocked after more than 3 days, and can be unblocked at any time in case people figure out how. So suggesting a package, and helping with that is possible, to have a change at 10001.

We are up to 10391 registered packages, there of 9016 non-JLL/pure-Julia packages.*

I believe this one is nr. 9000 of those:

* All the JLL packages DO strictly speaking contain Julia code also, a module, or rather a baremodule, but all the Julia code is autogenerated as far as I know. See e.g. this one:

I believe a wrapper for Fortran compiled code. Usually for C or C++ code. Sometimes Rust and others. [In theory a JLL could be wrapping Julia code, i.e. it CAN be compiled into a library, though I don’t know any to be wrapped as such as a JLL, since would be redundant, though could be helpful for use from other languages and then not in a JLL form.]

FYI: All the JLL packages are backed by Yggrasil, and there you’ll see non-auto-generated Julia code:

I see despite the .jl file, and Julia code, most of it is actually an embedded shell script, and the rest is trivial Julia code (for URL location): Yggdrasil/H/HDF5/build_tarballs.jl at master · JuliaPackaging/Yggdrasil · GitHub

Do only of you register “GPL-v2-only” package, not just GPLv2 (“or later”). Because of GPLv3 packages such as: