General  by JuliaRegistries

Julia's official package registry

Created 8 years ago
672 stars

Top 50.2% on SourcePulse

GitHubView on GitHub
Project Summary

The JuliaRegistries/General repository serves as the default package registry for Julia, enabling its package manager, Pkg.jl, to discover and manage a vast ecosystem of community-contributed libraries. It acts as an open platform for developers to share Julia packages, making them easily accessible to users worldwide and fostering a robust, collaborative environment.

How It Works

This registry stores metadata about Julia packages, including versions and dependencies. New packages and updates are submitted via pull requests to this repository, a process largely automated by tools like Registrator.jl and TagBot. This automated workflow ensures efficient, consistent updates, facilitating the seamless integration of new packages into the Julia ecosystem.

Quick Start & Requirements

  • Usage: Packages are added via Pkg.add("PackageName") or ] add PackageName in the Pkg REPL. Direct URL installation is also supported.
  • Registration: New packages and versions are registered via pull requests, ideally automated with Registrator.jl.
  • Prerequisites: Registered packages MUST have an OSI-approved license. Documentation and CI-run tests are highly recommended. Links to Registrator.jl README and Pkg documentation on registries are available.

Highlighted Details

  • Automated Merging: Pull requests opened by Registrator.jl meeting specific criteria merge automatically. New packages have a 3-day waiting period for community feedback; new versions and JLL packages have a 15-minute wait.
  • License Mandate: All registered packages require an OSI-approved license.
  • LLM Policy: LLM-assisted code is acceptable if human-reviewed; "vibe-coded" packages (LLM-generated without human review) are rejected. Disclosure of substantial LLM contributions is advised.
  • Reproducibility: Packages cannot depend on unregistered packages or unregistered versions to ensure registry reproducibility.

Maintenance & Community

The registry is a shared resource for the Julia community, welcoming contributions and suggestions. Discussions and help regarding package registration can be found on the official Julia Slack or Zulip channels (e.g., #pkg-registration). Decisions regarding the registry are at the discretion of its maintainers. Active pull request merging, automated checks, and community engagement channels indicate a healthy, actively maintained project.

Licensing & Compatibility

Registered packages must possess an OSI-approved license. The registry itself facilitates use with Julia's Pkg.jl package manager. Commercial compatibility depends on the individual package's license, not the registry itself.

Limitations & Caveats

  • No Curation: The General registry is not a curated list; packages are not deeply reviewed or scrutinized by maintainers. Users are responsible for reviewing their code dependencies.
  • Permanence: Package registrations and versions are permanent and cannot be removed or overwritten. Yanking is available for problematic releases but does not delete them.
  • Manual Review: While automation is extensive, some pull requests require manual intervention for review and merging.
  • LLM Code: Human oversight is mandatory for LLM-generated code; "vibe-coded" packages are unsuitable for registration.
Health Check
Last Commit

6 hours ago

Responsiveness

Inactive

Pull Requests (30d)
2,039
Issues (30d)
2
Star History
9 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.