package naming
chkwon opened this issue · comments
This is to brainstorm wrapper package names of Julia and Python.
Python
There are three names required, which can be the same, or different.
- Project Name (say, the GitHub repository name)
pip
package name (to be used when we install the package:pip install packagename
)- module name (to be used when we import the module:
import modulename
)
Examples:
PyTorch / torch / torch
PyConcorde / pyconcorde / concorde
elkai / elkai / elkai
(a python wrapper for LKH)NumPy / numpy / numpy
PyVroom / pyvroom / vroom
Python style guide says:
Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.
I think the Project Name can be anything, but it will be better to make the package name and the module name the same.
Some ideas for the package/module name:
hgscvrp
hygese
hygesecvrp
hgs_cvrp
(the use of underscores is discouraged)
...
Julia
There is only one name to determine: PackageName.jl
.
The GitHub repo will be called PackageName.jl
.
When we install, we will type add PackageName
.
When we use it in the code, we will type using PackageName
.
The package naming guidelines are given here. It needs to be CamelCase without hyphen or underscore.
Some examples:
DifferentialEquations.jl
Pluto.jl
DiffEqFlux.jl
NeuralPDE.jl
Convex.jl
PATHSolver.jl
Julia generally doesn't like all capital letters, but we could probably make a case, since the original C++ code is called HGS-CVRP. In that case, it will be called HGSCVRP.jl
, which could a little difficult to read and type.
Some ideas:
HGSCVRP.jl
Hygese.jl
HygeseCVRP.jl
HgsCvrp.jl
HybridGeneticSearchCVRP.jl
...
In general, I think the benefit of having both HGS and CVRP in the name is clear. On the other hand, using only HGS or its variant can leave the door open to the possibility that the package extends to HGS like algorithms applied in other types of routing/transportation problems. But this may not be important at this moment.
Please let me know if you have any suggestions. To satisfy the two different style guidelines with a single name for both Python and Julia, I ended up with hygese
or Hygese.jl
, while keeping usability, readability, and consistency, but sacrificing some clarity. But maybe we don't need to use the same name for Python and Julia. Let me know what you think.
Thank you so much for taking the time for making this breakdown of the different naming requirements!
Considering all the elements that you have listed, I think we can either go as:
- Python
hygese / hygese / hygese
and JuliaHygese.jl
or - Python
HGS-CVRP / hgscvrp / hgscvrp
and JuliaHGSCVRP.jl
I like the name that you made up, Hygese, as it's straightforward to pronounce and to remember.
Ultimately, I let you choose your favorite one. Given that the first one (current name of your repositories) leads to the smallest of changes I think it's a good option.
--Thibaut
@vidalt Thanks for your input. While we work on the C/C++ part, we can keep the current names for now. Whenever we come up with a better idea, we can move forward with that name. We can change the name anytime until we register the packages.
With the release of v2.0.0, this is closed.