This is an aspirational document describing the most ideal procedure for creating a new port and getting it included into Debian. Since every port will have different circumstances, the procedure may differ for your port, but the best way to do it should be documented below. It is a work in progress and is based on the port template wiki page.

If you encounter any unfamiliar jargon, please refer to the Debian glossary for more information.

If you require help at any stage, each section below may include specific teams to contact or the debian-devel mailing list may be able to provide fallback assistance.

When filing bug reports with Debian that are related to your port, please use architecture usertags to mark the bugs as relating to your port. Until your port family has a mailing list, you can use a likely mailing list name for usertags even while it doesn't exist. If the list name gets changed before it is accepted, then you can move all existing bug usertags to the new list name. You should not use the mailing list name in the X-Debbugs-CC pseudo-header until it exists, once it exists you should start using it. Do not add the usertags and X-Debbugs-CC for your architecture to a bug report if the bug also applies to more commonly used architectures like amd64.

/!\ It is best to not skip any of the steps.

/!\ It is best to complete each item before moving to later steps, but some items incur significant delay, so working on them in parallel often is necessary.

Preparation

Upstreaming

Downstreaming

Bootstrap

Unofficial port

Official port

Other work

Unlike the above sections, this one is an unordered wishlist of optional ideas to improve the experience of a port for Debian contributors and users. Ensure you CC the port mailing list or when filing bugs, XCC the port mailing list.