Skip to content
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

PRIMA.jl or prima.jl? #7

Closed
zaikunzhang opened this issue Oct 17, 2023 · 2 comments
Closed

PRIMA.jl or prima.jl? #7

zaikunzhang opened this issue Oct 17, 2023 · 2 comments

Comments

@zaikunzhang
Copy link
Member

zaikunzhang commented Oct 17, 2023

In general, I tend to write the name of the package as "PRIMA" when communicating with humans, but I tend to write "prima" in the code, excluding comments, which are human-oriented. The reason is as follows.

1."prima" or "Prima" may confuse a human due to the existence of this word in English / Latin / Italian.
2. In code, however, lower cases look nicer and "more modern".

That said, what do you think should be the answer to the following questions?

  1. The name of the package, known to humans, should it be PRIMA.jl or prima.jl?
  2. When we resister the package at https://github.com/JuliaRegistries/General (is this the correct place?), should it be PRIMA.jl, prima.jl, or simply PRIMA?
  3. In the code, should we use PRIMA.jl or prima.jl? (Consequently, using PRIMA or using prima)?

Currently, the Fortran code and the MATLAB /Python/C interfaces all use prima in the code.

Thanks.

@emmt
Copy link
Collaborator

emmt commented Oct 17, 2023

The .jl extension is not considered as the name of the package, although it can be used for the repository name as a remainder of the destination language (most Julia packages do that).

For me PRIMA is fine as a Julia package name, this name only appears in very few places in the code, like using PRIMA which imports exported symbols for the package in your code. Accessing to non-exported symbols is possible via the PRIMA. prefix. I use that for some constants like the exit codes (e.g. PRIMA.MAXFUN_REACHED) to make clear from where the symbols belong to.

There are rules for package names (see https://github.com/JuliaRegistries/General/blob/master/README.md), in particular they should not be too close to other existing package names. Package RegistryCI can be used to check for that. These rules guided my choice for PRIMA which was found by RegistryCI to be similar to ARFIMA. But, to me, no human will really make the confusion. On the contrary Prima was found to be close to Primes with a greatest risk of confusion (again to me). Julia package names are also module names and it is recommended that they start with an uppercase letter. This prevents, in principle, to use the name prima which, by the way, was found by RegistryCI to be not too close to any existing package names.

To summarize, I would keep PRIMA if possible and let us see whether it is accepted as a Julia package name.

@emmt
Copy link
Collaborator

emmt commented Oct 19, 2023

I think that a decision has been taken regarding the name: it is PRIMA for the package and PRIMA.jl for the repository. I therefore close this issue.

@emmt emmt closed this as completed Oct 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants