<div class="product-page-section table-of-contents meap-contents" style="box-sizing: border-box; margin-bottom: 36px; color: rgb(51, 51, 51); font-family: Lato, -apple-system, BlinkMacSystemFont, "avenir next", avenir, "helvetica neue", helvetica, Ubuntu, roboto, noto, "segoe ui", arial, sans-serif; font-size: 17.25px; background-color: rgb(255, 255, 255);"> <h2 class="header" style="box-sizing: border-box; line-height: 1.1; color: inherit; margin: 0px 0px 10px; font-size: 27px; text-transform: lowercase;"><span style="box-sizing: border-box;">table of contents</span></h2> <div class="toc" style="box-sizing: border-box; padding-top: 0px; user-select: none; margin-bottom: 0px; padding-bottom: 0px;"> <h1 id="part_id_1" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 1: FOUNDATIONS</h1> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/chapter-1?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_1" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/chapter-1?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">1</span>THE WHAT AND WHY OF PYTHON PACKAGES</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/chapter-2?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_2" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/chapter-2?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">2</span>PREPARING FOR PACKAGE DEVELOPMENT</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/chapter-3?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_3" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/chapter-3?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">3</span>THE ANATOMY OF A MINIMAL PYTHON PACKAGE</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <h1 id="part_id_2" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 2: CREATING A VIABLE PACKAGE</h1> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/chapter-4?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_4" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/chapter-4?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">4</span>HANDLING PACKAGE DEPENDENCIES, ENTRY POINTS, AND EXTENSIONS</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/chapter-5?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_5" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/chapter-5?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">5</span>BUILDING AND MAINTAINING A TEST SUITE</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/chapter-6?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_6" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/chapter-6?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">6</span>AUTOMATING CODE QUALITY TOOLING</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <h1 id="part_id_3" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 3: GOING PUBLIC</h1> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <h2 id="chapter_id_7" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">7 AUTOMATING WORK THROUGH CONTINUOUS INTEGRATION</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_8" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">8 AUTHORING AND MAINTAINING DOCUMENTATION</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_9" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">9 MAKING A PACKAGE EVERGREEN</h2> </div> <h1 id="part_id_4" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 4: THE LONG HAUL</h1> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <h2 id="chapter_id_10" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">10 CREATING A REPEATABLE PROCESS</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_11" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">11 BUILDING AN OPEN SOURCE COMMUNITY</h2> </div> <h1 id="part" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">APPENDIXES</h1> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/appendix-a?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="_installing_asdf_and_python_launcher" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/appendix-a?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;">APPENDIX A: INSTALLING ASDF AND PYTHON-LAUNCHER</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; background-color: transparent; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/publishing-python-packages/appendix-b?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="_installing_pipx_build_and_tox" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/publishing-python-packages/appendix-b?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; background-color: transparent; color: rgb(64, 127, 191); text-decoration-line: none;">APPENDIX B: INSTALLING PIPX, BUILD, AND TOX</a></h2> </div> </div> </div>