|
| 1 | +--- |
| 2 | +layout: single |
| 3 | +title: "From Zero to Python Package: A 2-Hour Python Packaging Workshop" |
| 4 | +excerpt: "Turn your Python code into a professional package that others can easily install, use, and contribute to. Learn the complete packaging workflow with hands-on demos and proven templates." |
| 5 | +author: "pyopensci" |
| 6 | +event: |
| 7 | + start_date: "2025-11-06" |
| 8 | + location: Online |
| 9 | +permalink: /events/python-packaging-workshop-jan-2026.html |
| 10 | +header: |
| 11 | + overlay_image: images/headers/pyopensci-sustainability.png |
| 12 | +categories: |
| 13 | + - events |
| 14 | +classes: wide |
| 15 | +type: "event" |
| 16 | +last_modified: 2025-09-08 |
| 17 | +comments: true |
| 18 | +--- |
| 19 | + |
| 20 | +## Everything that you need to know |
| 21 | + |
| 22 | +* **When:** Thursday, 6 November 2025 10:00 AM Mountain Time - 12:15 PM Mountain Time |
| 23 | +* **Where:** Interactive webinar with live demos |
| 24 | + |
| 25 | +### Cost |
| 26 | + |
| 27 | +Prices are in US Dollars. This workshop not only provides you with expert training, but it also supports the work that pyOpenSci does to support scientific open source. |
| 28 | + |
| 29 | +| Ticket Type |Early Bird (Before 5 October 2025 ) | Regular | |
| 30 | +| Regular | $149 | $199 | |
| 31 | +| Student | $45 | $85 | |
| 32 | + |
| 33 | + |
| 34 | +<i class="fa-regular fa-circle-right"></i> Register Now (Registration will open on 12 September 2025) |
| 35 | +{: .btn .btn--success } |
| 36 | + |
| 37 | +<div class="notice" markdown="1"> |
| 38 | +Scholarships are available to individuals who have been affected by job loss and funding cuts and who don't have the resources to attend our training. We will ensure that scholarship recipients represent a diverse range of voices, backgrounds, and experiences. Scholarships will reduce the cost of the workshop to 20$ (Students) or 45$ (academics and others) |
| 39 | + |
| 40 | +[To apply for a scholarship, please fill out this Google form.](https://forms.gle/tnV3tj13cChQXLEH7) |
| 41 | +</div> |
| 42 | + |
| 43 | +Your research code deserves to reach more people. In this hands-on workshop, you'll learn how to transform your Python scripts into professional packages that others can easily install, use, and contribute to. Walk away with a complete packaging workflow and the confidence to share your work with the world. |
| 44 | + |
| 45 | +This workshop is part of pyOpenSci's commitment to building better research software through accessible packaging practices. Whether you're sharing analysis tools with colleagues or building the next great Python library, you'll gain practical skills to package like a pro. |
| 46 | + |
| 47 | +### Workshop Structure |
| 48 | + |
| 49 | +#### Part 1: Modern Python packaging foundations (30 minutes) |
| 50 | + |
| 51 | +- <i class="fas fa-folder-tree" style="color: #999;" ></i> **Package Structure:** Set up your project the right way from day one |
| 52 | +- <i class="fas fa-file-alt" style="color: #999;"></i> **Essential Files Walkthrough:** pyproject.toml, README, and what actually matters |
| 53 | +- <i class="fas fa-tools" style="color: #999;"></i> **Tool Decision Framework:** Navigate the packaging ecosystem with confidence |
| 54 | + |
| 55 | +#### Part 2: Build your Python package (30 minutes) |
| 56 | + |
| 57 | +- <i class="fas fa-hammer" style="color: #999;"></i> **Live Build Demo:** See packaging in action with real code |
| 58 | +- <i class="fas fa-vial" style="color: #999;"></i> **Setup Tests:** Make sure your package works everywhere and as new pull requests come in |
| 59 | +- <i class="fas fa-check-circle" style="color: #999;"></i> **Quality Checklist:** Professional packaging standards made simple |
| 60 | + |
| 61 | +#### <i class="fa-solid fa-mug-hot" style="color: #81c0aa;"></i> Break (10 minutes) |
| 62 | + |
| 63 | +#### Part 3: Publish and share your Python package (30 minutes) |
| 64 | + |
| 65 | +- <i class="fas fa-upload" style="color: #999;"></i> **PyPI Publishing:** Get your package on the Python Package Index |
| 66 | +- <i class="fas fa-shield-alt" style="color: #999;"></i> **Security Best Practices:** Protect your package and users when you are publishing using Trusted Publishing. |
| 67 | +- <i class="fas fa-sync-alt" style="color: #999;"></i> **Automation Setup:** Never manually release your package again; instead use GitHub actions with trusted publishing. |
| 68 | + |
| 69 | +#### Part 4: Documentation for a healthy project (20 minutes) |
| 70 | + |
| 71 | +- <i class="fas fa-users" style="color: #999;"></i> **What docs matter most?:** A brief overview of documentation to make it easier to onboard both contributors and new maintainers to your project. |
| 72 | + |
| 73 | + |
| 74 | +#### Wrap up: Questions (20 Minutes) |
| 75 | + |
| 76 | +- <i class="fas fa-question-circle" style="color: #999;"></i> **Q&A:** Get your questions answered |
| 77 | + |
| 78 | +### Why attend |
| 79 | + |
| 80 | +- <i class="fa-solid fa-rocket" style="color: #999;"></i> Learn modern packaging practices used by successful Python projects |
| 81 | +- <i class="fa-solid fa-tools" style="color: #999;"></i> Get production-ready templates and automation you can use immediately |
| 82 | +- <i class="fa-solid fa-shield-alt" style="color: #999;"></i> Understand publishing security best practices from day one |
| 83 | +- <i class="fa-solid fa-eye" style="color: #999;"></i> See live demos of the complete packaging workflow |
| 84 | +- <i class="fa-solid fa-graduation-cap" style="color: #999;"></i> Learn from pyOpenSci's experience reviewing dozens of packages |
| 85 | + |
| 86 | +### Perfect for you if... |
| 87 | + |
| 88 | +- <i class="fas fa-check" style="color: #81c0aa;"></i> You have Python code that others could benefit from using |
| 89 | +- <i class="fas fa-check" style="color: #81c0aa;"></i> You're tired of sharing code via email or messy file transfers |
| 90 | +- <i class="fas fa-check" style="color: #81c0aa;"></i> You want people to be able to install and use your tools |
| 91 | +- <i class="fas fa-check" style="color: #81c0aa;"></i> You've heard of PyPI but don't know how to get your package there and how to do it securely. |
| 92 | +- <i class="fas fa-check" style="color: #81c0aa;"></i> You want to better understand the complex Python packaging ecosystem |
| 93 | + |
| 94 | +### What you'll walk away with |
| 95 | + |
| 96 | +- **Complete Package Template:** Ready-to-use project structure |
| 97 | +- **Automation Workflows:** GitHub Actions for testing and publishing |
| 98 | +- **Quality Checklists:** Never miss important packaging steps |
| 99 | +- **Publishing Guide:** Step-by-step instructions for secure PyPI deployment using GitHub actions |
| 100 | + |
| 101 | +### Pre-requisites |
| 102 | + |
| 103 | +To successfully follow along in this workshop, you should: |
| 104 | + |
| 105 | +* Know how to write Python code |
| 106 | +* Understand how to write and use functions |
| 107 | +* Have a Free account to create a GitHub account (you can work using GitHub codespaces during this workshop, and setting this account up is free if you don't already have one. |
| 108 | +* You should have internet access |
| 109 | + |
| 110 | +### Your instructors & helpers |
| 111 | + |
| 112 | +[Leah Wasser](https://www.github.com/lwasser), the Executive Director and Founder of pyOpenSci, brings over 20 years of experience teaching technical data science topics in the scientific space. pyOpenSci has worked with hundreds of scientific Python package maintainers and has helped over 50 packages improve their structure and distribution through our peer review process. |
0 commit comments