<strong>Topics covered in this episode:</strong><br>
<ul>
<li><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"><strong>Git: Force push safely with</strong></a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"> </a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"><strong>--force-with-lease</strong></a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"> <strong>and</strong></a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"> </a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"><strong>--force-if-includes</strong></a></li>
<li><strong>Thoughts from PyCon 2024</strong></li>
<li><a href="https://github.blog/2022-05-02-friend-zone-strategies-friendly-fork-management/"><strong>Being friendly: Strategies for friendly fork management</strong></a></li>
<li><a href="https://github.com/gauge-sh/tach"><strong>tach</strong></a></li>
<li><strong>Extras</strong></li>
<li><strong>Joke</strong></li>
</ul><a href='https://www.youtube.com/watch?v=aI0eYTu1ab8' style='font-weight: bold;'data-umami-event="Livestream-Past" data-umami-event-episode="384">Watch on YouTube</a><br>
<p><strong>About the show</strong></p>
<p>Sponsored by Mailtrap: <a href="https://pythonbytes.fm/mailtrap"><strong>pythonbytes.fm/mailtrap</strong></a></p>
<p><strong>Connect with the hosts</strong></p>
<ul>
<li>Michael: <a href="https://fosstodon.org/@mkennedy"><strong>@mkennedy@fosstodon.org</strong></a></li>
<li>Brian: <a href="https://fosstodon.org/@brianokken"><strong>@brianokken@fosstodon.org</strong></a></li>
<li>Show: <a href="https://fosstodon.org/@pythonbytes"><strong>@pythonbytes@fosstodon.org</strong></a></li>
</ul>
<p>Join us on YouTube at <a href="https://pythonbytes.fm/stream/live"><strong>pythonbytes.fm/live</strong></a> to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.</p>
<p>Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to <a href="https://pythonbytes.fm/friends-of-the-show">our friends of the show list</a>, we'll never share it.</p>
<p><strong>Brian #1:</strong> <a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"><strong>Git: Force push safely with</strong></a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"> </a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"><strong>--force-with-lease</strong></a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"> <strong>and</strong></a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"> </a><a href="https://adamj.eu/tech/2023/10/31/git-force-push-safely/"><strong>--force-if-includes</strong></a></p>
<ul>
<li>Adam Johnson</li>
<li>Using gentle force </li>
<li>Avoid stomping on remote changes with a couple extra flags.</li>
</ul>
<p><strong>Michael #2:</strong> <strong>Thoughts from PyCon 2024</strong></p>
<ul>
<li>PyCon is special - the connections you make are always more than you expect</li>
<li>Great to see many old friends</li>
<li>Did a ”live” Talk Python episode that’ll be out in a few weeks.</li>
<li>The talks look great, we’ll let you know when they land on YouTube.</li>
<li>Masks were a mistake - universally heard complaints from fellow attendees. This is my two cents towards a more reasonable next PyCon.</li>
</ul>
<p><strong>Brian #3:</strong> <a href="https://github.blog/2022-05-02-friend-zone-strategies-friendly-fork-management/"><strong>Being friendly: Strategies for friendly fork management</strong></a></p>
<ul>
<li>That’s part 2. </li>
<li>Part 1 is <a href="https://github.blog/2022-04-25-the-friend-zone-friendly-forks-101/">Being friendly: Friendly forks 101</a></li>
<li>Lessley Dennington on GitHub Blog</li>
<li>Examples of long running friendly forks
<ul>
<li>git-for-windows/git, microsift/git, github/git</li>
<li>two public, one private</li>
</ul></li>
<li>Fork management strategies - when pulling changes downstream
<ul>
<li>merging rebase
<ul>
<li>git-for-windows/git uses this proactively and regularly</li>
<li>fake merge + rebase</li>
</ul></li>
<li>new branch
<ul>
<li>microsoft/git uses this</li>
<li>new branch from upstream major versions</li>
<li>merge previous changes to new branch</li>
</ul></li>
<li>traditional merge
<ul>
<li>github/git uses this, conservatively, after a few point bug fix versions</li>
</ul></li>
</ul></li>
</ul>
<p><strong>Michael #4:</strong> <a href="https://github.com/gauge-sh/tach"><strong>tach</strong></a></p>
<ul>
<li>A Python tool to enforce a modular, decoupled package architecture.</li>
<li>tach allows you to define boundaries and control dependencies between your Python packages. </li>
<li>Each package can define its public interface.</li>
<li>If a package tries to import from another package that is not listed as a dependency, tach will report an error. </li>
<li>If a package tries to import from another package and does not use its public interface, with strict: true set, tach will report an error.</li>
<li>Zero runtime impact.</li>
</ul>
<p><strong>Extras</strong> </p>
<p>Brian:</p>
<ul>
<li><a href="https://pydantic.dev/logfire">Logfire - new observability platform from the pydantic team</a> - free for now</li>
</ul>
<p>Michael:</p>
<ul>
<li><a href="https://training.talkpython.fm/courses/getting-started-with-spacy">10% off the new spaCy course</a> throughout May</li>
</ul>
<p><strong>Joke:</strong> <a href="https://marketoonist.com/2023/01/evolution-of-smart-products.html">Evolution of smart products</a></p>
↧