-
Notifications
You must be signed in to change notification settings - Fork 473
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New package: MicroMag v0.3.1 #107231
New package: MicroMag v0.3.1 #107231
Conversation
JuliaRegistrator
commented
May 20, 2024
- Registering package: MicroMag
- Repository: https://github.com/ww1g11/MicroMag.jl
- Created by: @ww1g11
- Version: v0.3.1
- Commit: d52eda69f1a7685f0b0680d14b0bd40c13b49232
- Reviewed by: @ww1g11
- Reference: @JuliaRegistrator register MagneticSimulation/MicroMagnetic.jl#6 (comment)
UUID: cef16ca0-16a8-11ef-389e-9fbcf1974e83 Repo: https://github.com/ww1g11/MicroMag.jl.git Tree: a3424e0bcbafb94a82d4cb9ccf581a95cabe81ad Registrator tree SHA: 17aec322677d9b81cdd6b9b9236b09a3f1374c6a
The problem is the same as with your previous two registrations. Even if the automated checks pass, anyone from the community (like me) can object to a package registration. In this case, the name is once again too short and not precise enough. What about "MicromagneticSimulations"? See also: |
Your Since you are registering a new package, please make sure that you have read the package naming guidelines: https://pkgdocs.julialang.org/v1/creating-packages/#Package-naming-guidelines If you want to prevent this pull request from being auto-merged, simply leave a comment. If you want to post a comment without blocking auto-merging, you must include the text |
Sorry for what must feel like harassment at this point ^^ But the package namespace is limited, and it doesn't cost much to be more specific |
[noblock] I think MicroMag is better than MicromagneticSimulations, suppose we want to use a function from the package, it would be inconvenient to use MicromagneticSimulations.fun_name. |
You have plenty of options to avoid this, here are a few: using MicromagneticSimulations # you can now call every exported name
using MicromagneticSimulations: fun_name # you can now call fun_name
import MicromagneticSimulations as MS # you can now call MS.fun_name |
[noblock] Thanks for the suggestion, but I still think MicroMag is better. |
@goerz care to weigh in? |
I would strongly prefer |
I think we're often going overboard with @ww1g11 the others and already mentioned the sparsity of the namespace resource but from an author's perspective it's also useful to have a descriptive name for potential users and contributors to discover your package. |
MicroMagnetic.jl or similar seems like a good enough name to me. |
@nilshg Thanks for the suggestions, for me MicroMag.jl is not an ideal name, so MicroMagnetic.jl is okay for me (I still think this kind of name is worse than JuMag.jl and NuMag.jl). @gdalle @goerz In terms of limit space of package namespace, I believe it's not just Julia that has this problem, so how pip and debian solve this problem? Long and descriptive naming is not the only solution. PS: I have measured the Damerau-Levenshtein distance between NuMag and NUMA, which gives 3. Since Julia is case-sensitive, why the automatic checking use the lower cases? I believe most people will not think NuMag is too close to NUMA. |
For such a generic case, the people watching the general registry (like @goerz and I) would probably suggest either of the following options:
I am not qualified enough to say whether your package will be the "reference" package in micromagnetic simulations. However, I don't think this doubt is an argument for naming it MicroMag.jl either, because you claim generality both over the topic of magnetism and the topic of magazines ;)
I have no clue. You obviously feel very strongly about this, and I don't have infinite energy to spend debating it. MicroMagnetic.jl is not ideal but it's much better and more explicit, so I suggest you register your package under that name. |
I will change the package name to MicroMagnetic.jl, but I believe that the descriptive naming will eventually become problematic because it significantly reduces the number of available names. |
Please close this PR since the package name is changed #107408 |
There seems to be a little bit of a confusion between "descriptive" and "general".
No, "MachineLearning" would not be an appropriate name for a package just related to machine learning. The package name (if it follows the "descriptive" route) should describe which aspect of machine learning the package covers, as narrowly as possible. And yes, this may be a long name. But "long" is not a problem. Actually, registering a package with the name "MachineLearning" would be quite difficult: it would have to cover the entire field of machine learning (the way DifferentialEquations covers the entire world of differential equation solving). I would also insist that it is fairly well-developed at the time of registration, and has a team of maintainers with long-term funding that guarantees continuing maintenance and the resources to develop a package with such a wide scope. Similarly, (a little less so) for something like "FiniteElementMethods.jl": Registering such a package implies taking on the responsibility to maintain it appropriately for a wide scope. Anyone working in finite elements should generally be contributing to that package, not starting their own package. Of course, if they have a package with a narrower scope, that can still be an independent package (with a more specific name). Or, if it's a general framework just with a different philosophy, often "less systematic" names are a good way to go. Like how I'm maintaining the very general QuantumControl.jl, but there is also Piccolo.jl that covers a different approach to quantum control. The one thing we want to avoid is abbreviations for the sake of shortness. Shortness is not a goal in Julia package naming. And,
PyPI is almost completely unregulated, so package names are used up on a first-come-first-serve basis. There is no review of whether package names are appropriate or whether they are too similar to existing packages, or even whether there is malicious typo-squatting. That's now how we do things in Julia. It is also important to note that many languages have a culture of "short" package names. This especially includes compiled languages because these are run from the command line. Same for Debian packages: these names need to be short (which is actually a much bigger constraint than in Julia: there are far fewer good short names than good long names). Also, Debian has a maintainer team that deals with naming conflicts by renaming packages as they see fit.
There's always the "less systematic names" (Makie, Zygote, etc.), which I'm actually a big fan of. But they require more creativity. IMO, these can also include pronounceable acronyms – we shouldn't have a strict rule against all-caps names.
This is a feature, not a bug. We would not want a dozen competing packages with the same scope and with names that are small variations of each other (as Python might have). It's much better if there is one authoritative package for a specific problem domain. Of course, that puts responsibilities of the maintainer, and is partly also why we have a review for registrations in General. Julia has a much stronger community aspect than any other language I've worked with. Up to the point where if the maintainer of package with a large scope were to disappear, the registry maintainers could appoint an authoritative fork of the package. We also encourage the development of "large" packages in organizations (with multiple owners), not personal accounts. In my opinion, this bodes well for the longevity of the Julia ecosystem.
Like I said, whether you name it
The "name similarity check" is 90% false positives. It's just that we haven't come up with any better automatic check, so this just puts a pause on the registration until a maintainer can review it. Most of the time, the name similarities get overridden without any discussion. And yes, |