JuliaPackageComparisons is looking for a new maintainer

Hi everyone!

Introduction

For those who have not heard about JuliaPackageComparisons (which I will reference as JPC), I made a pre-announcement about it here in september 2023. Since then a lot has happened, but not enough to push the project to the point at which a full announcement is appropriate.

Since then I have graduated, and unfortunately no longer use Julia on a regular basis :confused: Also, I barely found time to develop JPC back then, and now it is just unrealistic that I will be able to take it where it needs to be taken.

I still strongly believe in the project though: As an organic ecosystem, the Julia package ecosystem can have a bunch of overlap and related projects that can be difficult to navigate. Many package developers have recognized this issue, and often link to related projects. Some go beyond, and provide some narrative/explanation, which I was always very happy to find. For example, explaining why a new package was created, and comparing and contrasting related projects. So at some point I got tired of reading through README’s, package announcements (and their comments), and the documentation proper to find such explanations, and decided to create JPC. JPC is an attempt to collect such comparisons, invite project maintainers to write them more often, and also improve the quality and objectivity of them.

Current state of JPC

The current JPC website does achieve this in many ways: For example the File I/O page does a good job of collecting related projects on a single page, and e.g. the section on JSON provides a rather short and sweet overview of the JSON landscape. The embedded and auto-generated star-history plots also add a lot of great context for people looking to find the right JSON package for them (Shoutout to @hyrodium for making that happen!):

So the scaffolding is all there for a functional site. The only thing missing is more and better content, and advertising for it.

The request

So this is me, who has been feeling bad that this project has lost momentum and started collecting dust just because I could not find the time to prioritze it. I now feel like it is time to formally request someone else to pick up the mantle where I left it.

The project needs a new maintainer (or two!) who can manage the site, and ask package developers to write content. To jumpstart that process, the maintainer(s) will have to write significant content themselves, and potentially make the site more navigatable.

This does not have to be a big effort, and a little here and there would go a very long way. Especially if the community agrees that this is useful, and the project starts getting some organic grass-root growth as well, in both content creation and usage.

I am in essence ready to hand out write permissions to anyone asking, and after some time, admin priviliges. If you think that this project is useful and interesting, and feel like you can contribute to it, do not hesitate to reach out! :rocket:

13 Likes

This is similar to CRAN’s taskviews for R, which has been chugging along for 20 years. It currently has five maintainers for the infrastructure that oversee the work of the many contributors to the 48 task areas, which cover about an average of 100 packages each. (There are currently about 25,000 R packages.) We’re getting a comparatively late start in terms of the backlog of packages to survey for inclusion, but it’s doable and well worth doing.

I can contribute as an organizer, but in light of my limited remaining shelf life (I’m 78) should probably not take the lead role.

To start, I propose replacing Geometry as a top level topic with Spatial Analysis with analytic geometry as a topic under Math and adding a top-level topic for Visualization.

Am I right that your thought is to work through git pushes rather than pull requests?

5 Likes

Thanks for setting up this resource @TheLateKronos.

I contributed a couple of PR’s today to see what it’s like to work with the repo. It’s pretty easy, and I hope to find time to do that from time to time.

I can also be part of reviewing PR’s and maintain the repo, if you want.

Actually, I have been maintaining a similar list here: GitHub - tp2750/JuliaEcosystem.jl. I’ll try to incorporate some of that via PR’s.

6 Likes

This is a good observation. In Julia, many packages are owned by Github organizations.
So having a list of those Github organizations will already get us a long way.
I have an incomplete list here: Github Organizations ¡ JuliaEcosystem.jl.
It should be possible to generate such a list dynamically from the registry, I suppose.

3 Likes

Could it be something that in the meanwhile (or in near future) can be done by AI?

Just to test, I asked JuliaHub AI “compare Julia packages for working with genome data”, and below see the report. I have little knowledge about the topic, just took something not included in JPC. Therefore also no idea about the percentage of hallucinations, but if you are looking for a package, you need in any case to evaluate each candidate on your own. Asking several AIs could also be useful.


When working with genomic data in Julia, several packages offer different functionalities tailored to various aspects of genomic analysis and visualization. Here’s a comparison of some notable packages based on the context provided:

1. GenomicMaps.jl

  • Purpose: This package is specifically designed for visualizing genomic data.
  • Features: It provides tools to create visual representations of genomic information, which can be crucial for understanding complex data sets in genomics.
  • Use Cases: Ideal for researchers who need to visualize genomic features, such as gene locations, mutations, or other genomic annotations.

2. XSim

  • Purpose: XSim focuses on defining and building genomes, either from files or DataFrames.
  • Features: It allows users to construct genomes from pre-loaded data, making it flexible for simulations and analyses that require specific genomic configurations.
  • Use Cases: Useful for simulations in genomic studies, where users need to manipulate and analyze genomic structures efficiently.

3. GeneFinder

  • Purpose: This package serves as a gene finder library that is species-agnostic and algorithm-extensible.
  • Features: It implements various algorithms for gene finding, allowing users to apply different methods to DNA sequences. It also supports sequence alignment through the BioAlignment package.
  • Use Cases: Suitable for researchers looking to identify genes in genomic sequences, especially when working with diverse organisms or requiring specific algorithmic approaches.

4. Recombinase

  • Purpose: Recombinase is designed for data analyses and visualizations, particularly with grouped data.
  • Features: It provides simple tools for analyzing and visualizing genomic data, making it accessible for users who may not need the complexity of more specialized tools.
  • Use Cases: Good for exploratory data analysis in genomics, especially when dealing with grouped or categorical genomic data.

5. CausalELM

  • Purpose: While not exclusively focused on genomic data, CausalELM offers functionalities that can be applied in genomic contexts, particularly in causal inference.
  • Features: It includes comparisons with other packages, which can help users understand its unique advantages in specific analyses.
  • Use Cases: Useful for researchers interested in causal relationships in genomic data, potentially integrating genomic features into broader statistical models.

Summary

  • Visualization: Use GenomicMaps.jl for visualizing genomic data.
  • Genome Construction: Use XSim for defining and building genomes from various data sources.
  • Gene Finding: Use GeneFinder for identifying genes in sequences with various algorithms.
  • Data Analysis: Use Recombinase for simple analyses and visualizations, especially with grouped data.
  • Causal Analysis: Use CausalELM for causal inference in genomic contexts.

Each of these packages has its strengths and is suited for different tasks within the realm of genomic data analysis. Depending on your specific needs—whether it’s visualization, genome construction, gene finding, or data analysis—you can choose the appropriate package or even combine them for a more comprehensive approach.

1 Like

Here is a gist of a GitHub API script and the 840 organizations it returns from the 3,262 unique user names in the Julia general registry

4 Likes

Not neccesarily, I have just done it “quick and dirty” while working solo and making a bunch of changes all over the place. PR’s are better, but if you end up as a contributor then I dont care much either way.

Lovely! I will review those soon, and give you write priviliges while I am at it.

My point exactly. I think we are many who feel the need for something like this, so joining forces would be great.

I have asked similay stuff from ChatGPT before, and I found quite frequent halucinations, such as references to packages that do not exist at all. So I would say no: the risk of polluting good content with BS is just unacceptable, and wouldbe a sure way to erode trust from thefew people who visit.

1 Like

I was not meaning adding AI-generated content to JPC, at least not without previous check. I just mean, AI can generate package comparizons of sufficient quality according to user specified profile. Hallucinations is not a serious issue in this case, as the user would re-check the results anyway.

1 Like

That is a fair point. Absolutely, AI could be used for some of the grunt-work here.

I just feel like AI weitten content often is missing the “human touch”, and I feel like that is av important aspect of JPC. But yes, with some care it could be super-helpful

1 Like