question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Package naming policies for Julia packages

See original GitHub issue

Your question:

Question

How should Julia packages be named within conda-forge?

Introduction

The julia-feedstock is now current with upstream Julia at version 1.8.0. Support is currently best on Linux. Mac OS X support is possible on x86_64 and arm64 but needs further work and testing. Windows support is likely not possible within conda-forge without a comprehensive mingw-w64 ecosystem as opposed to a Microsoft Visual C.

We current have two feedstocks employing a dual language Python - Julia strategy within conda-forge:

These two packages primarily are Python interfaces for the following Julia packages:

Currently the installation of the Julia packages needs to be initiated by the user and is handled completely outside of the conda or mamba package management. The Julia feedstock configures the Julia depot within the conda prefix rather than the default ~/.julia depot location.

It would best if these Julia packages could be directly installed by conda rather than having the user initiate a manual step. I have developed a mechanism using the Julia depot stack that allows conda to directly install Julia packages into the user’s Julia load path if they use a preconfigured Julia project environment. Thus we are now prepared to propose conda-forge feedstocks for individual Julia packages and now need to decide upon a naming scheme.

Julia package naming guidelines

Julia packages typically include capitalization according to camel case and a “file extension” with a preceding period. For example:

Julia package naming guidelines are located at the following URL: https://pkgdocs.julialang.org/v1/creating-packages/#Package-naming-guidelines-1

Potential naming schemes within conda-forge

My first preference would be to preserve the original package names. Julia packages can be uniquely identified by the “.jl” extension from those in other languages.

From #18, many seem to prefer no capitalization. If we do want to conform to a language prefix with all lowercase, my preference would be “julia-” since this would be unambiguous:

  • julia-pycall
  • julia-conda
  • julia-hdf5
  • julia-hdf5_jll
  • julia-clustermanagers
  • julia-symbolicregression
  • julia-bitinformation

I could also see an argument for using “jl-” based on brevity and similarity to the original name:

  • jl-pycall
  • jl-conda
  • jl-hdf5
  • jl-hdf5_jll
  • jl-clustermanagers
  • jl-symbolicregression
  • jl-bitinformation

cc: @ngam, @isuruf @ocefpaf

References

  1. https://github.com/conda-forge/julia-feedstock/issues/14
  2. https://github.com/conda-forge/pysr-feedstock/pull/43#issuecomment-1233129264

Issue Analytics

  • State:open
  • Created a year ago
  • Reactions:2
  • Comments:23 (8 by maintainers)

github_iconTop GitHub Comments

4reactions
MilesCranmercommented, Aug 31, 2022

julia-* gets a +1 from me as well.

2reactions
ngamcommented, Sep 3, 2022

@mkitti a good general precedent for this is R-packages (not sure if you’re aware of this…), https://github.com/orgs/conda-forge/repositories?q=r-&type=all&language=&sort=

Read more comments on GitHub >

github_iconTop Results From Across the Web

Package naming guidelines - Community - Julia Discourse
The Guidelines for Naming Packages (link above) begins “Package names should be sensible to most Julia users, even to those who are not...
Read more >
Style.jl - Julia Packages
Style guideline for Julia. ... (3) Package names do not end in .jl . ... Do not rely upon Matlab-like precedence rules. Good...
Read more >
Packages · The Julia Language
Be sure to read the section below on package naming conventions, tagging versions and the importance of a REQUIRE file for when you're...
Read more >
11 - Developing Julia packages
First, we create the repository in GitHub, considering a package name that follows the Julia's package naming guidelines and, by custom, calling the...
Read more >
Introducing Julia/Modules and packages - Wikibooks
Logging, recording the history and progress of computations ; Markdown, support for Markdown text formatting conventions ; Mmap, working with memory-mapped arrays.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found