Creating a Package
Before You Begin
Consider the following items:
- Does this package already exist?
- If so, are you uploading a specific version? Add a version to the original package instead.
- Does this package contain everything necessary for it to work?
What should a package have?
A package should contain the following:
- The package itself
- Any pieces of the package that are necessary for use.
For example, consider the rust
package. It downloads rustup
, then uses rustup
to install rustc
and cargo
. This provides a complete rust environment.
Package Versions
Package versions should correspond to versions of the actual software. For example, version 3.6 of python
should install python 3.6. Package maintainers should make an effort to provide all versions of a package (automatic deployment of non-breaking versions is recommended).
Package Flavors
Package flavors are often provided in the form of a specific architecture. For example, rust
uses flavors for the target triple. A package should provide flavors for anything that seems relevant. In other cases, package flavors specify the origin of the package. For example, jdk
provides flavors openjdk
and oracle
.
Package Names
A package name should reflect what's inside the package. If the package provides a single executable, it should be named for that executable. Otherwise, if a package provides a collection of software, like gcc
, it should be named after the cannonical name for that software. In addition, if there are multiple sources for said software, like Java JDKs, they should be specified in the package flavors.
Begin
Now that you have considered all of these, you may continue on to the next section to begin your package.