diff --git a/doc/src/tutorials/creating-packages.md b/doc/src/tutorials/creating-packages.md index d1f79e8c88a9d..bd5c9b32d34b3 100644 --- a/doc/src/tutorials/creating-packages.md +++ b/doc/src/tutorials/creating-packages.md @@ -605,9 +605,22 @@ may fit your package better. * `CPLEX.jl` wraps the `CPLEX` library, which can be identified easily in a web search. * `MATLAB.jl` provides an interface to call the MATLAB engine from within Julia. + 7. Avoid naming a package closely to an existing package * `Websocket` is too close to `WebSockets` and can be confusing to users. Rather use a new name such as `SimpleWebsockets`. +8. Avoid using a distinctive name that is already in use in a well known, unrelated project. + * Don't use the names `Tkinter.jl`, `TkinterGUI.jl`, etc. for a package that is unrelated + to the popular `tkinter` python package, even if it provides bindings to Tcl/Tk. + A package name of `Tkinter.jl` would only be appropriate if the package used Python's + library to accomplish its work or was spearheaded by the same community of developers. + * It's okay to name a package `HTTP.jl` even though it is unrelated to the popular rust + crate `http` because in most usages the name "http" refers to the hypertext transfer + protocol, not to the `http` rust crate. + * It's okay to name a package `OpenSSL.jl` if it provides an interface to the OpenSSL + library, even without explicit affiliation with the creators of the OpenSSL (provided + there's no copyright or trademark infringement etc.) + ## Registering packages Once a package is ready it can be registered with the [General Registry](https://github.com/JuliaRegistries/General#registering-a-package-in-general) (see also the [FAQ](https://github.com/JuliaRegistries/General#faq)).