Topics covered in this episode:
Git: Force push safely with--force-with-lease* and*--force-if-includes* * Thoughts from PyCon 2024 * Being friendly: Strategies for friendly fork management * tach * Extras * Joke**

Watch on YouTube
About the show

Sponsored by Mailtrap: pythonbytes.fm/mailtrap

Connect with the hosts

  • Michael: @mkennedy@fosstodon.org
  • Brian: @brianokken@fosstodon.org
  • Show: @pythonbytes@fosstodon.org

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.

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 our friends of the show list, we'll never share it.

Brian #1: Git: Force push safely with--force-with-lease and--force-if-includes

  • Adam Johnson
  • Using gentle force
  • Avoid stomping on remote changes with a couple extra flags.

Michael #2: Thoughts from PyCon 2024

  • PyCon is special - the connections you make are always more than you expect
  • Great to see many old friends
  • Did a ”live” Talk Python episode that’ll be out in a few weeks.
  • The talks look great, we’ll let you know when they land on YouTube.
  • Masks were a mistake - universally heard complaints from fellow attendees. This is my two cents towards a more reasonable next PyCon.

Brian #3: Being friendly: Strategies for friendly fork management

  • That’s part 2.
  • Part 1 is Being friendly: Friendly forks 101
  • Lessley Dennington on GitHub Blog
  • Examples of long running friendly forks
    • git-for-windows/git, microsift/git, github/git
    • two public, one private
  • Fork management strategies - when pulling changes downstream
    • merging rebase
      • git-for-windows/git uses this proactively and regularly
      • fake merge + rebase
    • new branch
      • microsoft/git uses this
      • new branch from upstream major versions
      • merge previous changes to new branch
    • traditional merge
      • github/git uses this, conservatively, after a few point bug fix versions

Michael #4: tach

  • A Python tool to enforce a modular, decoupled package architecture.
  • tach allows you to define boundaries and control dependencies between your Python packages.
  • Each package can define its public interface.
  • If a package tries to import from another package that is not listed as a dependency, tach will report an error.
  • 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.
  • Zero runtime impact.

Extras

Brian:

  • Logfire - new observability platform from the pydantic team - free for now

Michael:

  • 10% off the new spaCy course throughout May

Joke: Evolution of smart products