pydelhi / talks

Talks at Python Delhi User Group!
https://pydelhi.org/talks/
66 stars 51 forks source link

Let's shadow a Python release #285

Closed agriyakhetarpal closed 1 month ago

agriyakhetarpal commented 2 months ago

Title

Let's shadow a Python release: insights from packaging, distribution, and supply-chain security

Describe your Talk

As the Python programming language nears its annual release with version 3.13 in October 2024, there are a bunch of exciting new features, such as a greatly improved interactive read-eval-print-loop (REPL), a just-in-time (JIT) compiler via PEP 744, free-threading builds that disable the global interpreter lock (GIL) via PEP 703, and iOS support via PEP 730.

However, have you ever wondered how one ends up receiving a Python distribution for a particular version with all these features and updates, packaged for convenience and subsequent use for one's desired operating system? Also, what are the intricacies around this process, viz. software project management and security implications? This talk aspires to explore these areas in the Python release process, right from beta versions to the final published builds.

The takeaways from the talk, summarised in a (provisional) outline shall be as follows:

  1. (Ten minutes) – the process of releasing a new Python 3.X version:
  2. (Fifteen minutes) – a cursory look over SLSA (supply-chain levels for software artifacts) provenance and SBOM (software bill-of-materials) for release artifacts in the Python ecosystem

[!NOTE] Owing to the varied nature of the word, the use of the term "Python" and its derivatives in this issue/proposal unambiguously refers to CPython, i.e., the most popular implementation of the Python programming language, unless explicitly specified otherwise.

Pre-requisites & reading material

The major prerequisite is an interest in the Python programming language. Some insights into the use of package managers and installation archives might tend to be useful, but will not be needed. No prior knowledge is required or assumptions made w.r.t the concepts of build provenance or SLSA – owing to the advanced nature of these topics, a deep dive into their internals is not planned for inclusion in the material.

Time required for the talk

Thirty minutes; twenty-five for the presentation, five for fielding questions

Link to slides/demos

No response

About you

I am an undergraduate student at the University of Delhi, and a software engineer at Quansight, where my work is aligned towards the packaging and distribution of fundamental open-source software in the PyData ecosystem. My current work assignment is based around @pyodide, a Python implementation designed for the browser based on WebAssembly, and on approaches to interactive documentation for packages and libraries in the Scientific Python ecosystem through it.

My interests include Python packaging, scientific computing, numerical software, compilers and toolchains, and a lot more.


Please feel free to reach out to me through my social media handles:

or contact me via social messaging apps, such as Telegram: https://t.me/agriyakhetarpal or on Signal: @agriyakhetarpal.01. For enquiries of private disposition, please reach out to me at my email address: agriyakhetarpal [at] outlook [dot] com

Availability

July/August

Any comments

I am unsure about my availability at this time – hence, I am opening this issue as a placeholder in order to indicate my interest in delivering this talk in the meetups that are to be scheduled for either of these months. I will be in a better position to share my availability and my slides closer to the planned date.

pulsar17 commented 2 months ago

Hi Agriya, thanks for proposing a talk. Would you be available on 20th July (3rd Saturday) to present?

agriyakhetarpal commented 2 months ago

Hi Ishaan, I will be available to present on the 20th, thank you!

agriyakhetarpal commented 2 months ago

Hi again; I think I'll need the talk to last slightly longer (perhaps a margin of ten or so more minutes). Would this be conducive? I thought it would be nice to let this be known beforehand while the venue and the timings are being decided.

pulsar17 commented 1 month ago

Yes, +10 mins is fine, you can go on for longer even if people seem interested. That anyway depends on what happens on the day itself.

The venue is confirmed, it is Sun foundation World class skill center (Blue Line). We haven't announced it yet. The timings will be 1-5 pm.

agriyakhetarpal commented 1 month ago

Thanks for the confirmation on the venue! I'll be there.

agriyakhetarpal commented 1 month ago

Hi, I'm closing the issue since the talk was delivered on 20th July, 2024. Thanks for having me!

[!TIP] The slides shall remain available at the following link: https://slides.com/agriyakhetarpal/pydelhi-july-2024.

Resources for further reading

[!NOTE] These resources aim to complement what was discussed in the slides. A link to this comment has been added to the final slide.

  1. Python release PEPs

  2. The Python development and release cycle, and related notes

  3. Software Bill-of-Materials, and Python

  4. SLSA and build provenance

  5. Dependency confusion exploits

  6. DoS via typosquatting

  7. Ancillary resources

  8. Scientific Python and Python packaging

Animesh-Ghosh commented 1 month ago

Thanks for the talk @agriyakhetarpal and also for updating the issue with resources for further reading!