I want to publish a new Elixir package to Hex.pm. What are the essential steps involved in publishing, and what are the key naming conventions I should follow for both my package and its modules to avoid conflicts within the Hex ecosystem?
Navigate to the 'Docs' section on Hex.pm. Click on 'Publishing packages' under the 'Mix' section. Identify the three main steps for publishing a package. Locate and summarize the guidelines for choosing a package name. Locate and summarize the guidelines for naming modules within the package.
State the three main steps for publishing a package: registering a Hex user, adding metadata to the project’s `mix.exs` file, and submitting the package with a `mix hex.publish` task. Summarize package naming guidelines, including avoiding offensive names, considering existing package names as prefixes if building on them, and avoiding namespace conflicts with existing packages. Summarize module naming guidelines, specifically that all modules (except special ones like mix tasks) should start with the package name to avoid conflicts in the BEAM system.