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 the debian-devel mailing list as the User for your Usertags and once a mailing list exists, the usertags can be moved to the new mailing list.

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

/!\ It is best to complete each item before moving to later steps.

Preparation

Upstreaming

Downstreaming

Bootstrap

Unofficial port

Official port

Released 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.