January 31, 2025

60 Minutes Suit

The propsect of Paramount settling to Trump for 60 Minutes editing a Kamala Harris interview is alarming (1). This seems to ultimately boil down to the inherent conflict of business pragmatism and journalistic integrity. This is largely implied within the article, but is also a clear example of that concern and how it may have wider ripples as corporations get in the ring-kissing line. I'm particularly concerned about it given that I've really come to appreciate the value of a free press over recent years, and one of my potential "deal breakers" would be signs that relatively independent information is no longer available (since then you've ceded the ability to make an informed decision).

While I certainly don't have a deep legal background, not only does the described suit seem to have questionable primary merit, it would also presumbly hinge on establishing proof of harm. While I haven't seen the clip in question it certainly is not described as having content that would have direct negative impact on Trump (and without such proof he should lack the standing to bring the suit), and therefore this seems to amount to allowing our legal system to be dragged down in to playground petulance.

I certainly understand the multiple pragmatic reasons to settle from a business perspective, but it also seems to pose a compromise in a field which should cling to principles and a dangerous precedent.

Bazel Python Rules

A few weeks ago I was working on getting some python libraries loaded into an image using the Bazel Python rules (2). Likely the biggest challenge is that story of packaging in the Python ecosystem seems to lag behind many others (there's a blog post by Alyssa Coughlan that I read many years ago that outlines some of the background).

A particular challenge was that I wanted to pull in existing artifacts without building anything new - which isn't so much a distinct challenge but is not the focus of the documentation.

Creating a requirements.in file which could be compiled to a requirements.txt file all clicked together once I dusted off some dormant Python knowledge. The actual loading of the files into the image in a desirable form took a little bit of fiddling. The end goal was to retrieve the desired packages and any transitive dependencies. Using py_library and selecting the desired requirement allowed me to pull in all the relevant files in an expanded form, ready to be consumed by the Python runtime.

For use of the package I opted for a small shell script which would set the PYTHONPATH to the place where the above files were placed before invoking python -m with the desired package (where the locations are all coordinated by the bazel file using things like environment variables. This offers the advantage that different applications could make use of different sets of Python packages (analogous to venvs).

One additional wrinkle was around any native extensions - the bazel file was written to produce multi-platform images and, among other challenges, pip seems to be focused on building for the current host without clear support for cross-compilation. The workaround for this was to install system (Alpine) packages for impacted libraries and prepend the host location to PYTHONPATH. This definitely feels a bit rough around the edges but gets the job done.

In the longer term I'd want to dig more deeply into the Python side of things to refine some better packaging practices where bazel just provides some glue…but at present I'm not actively working with Python so this will just be left as is.

1.
HIRSCH, Lauren, STEWART, James B. and GRYNBAUM, Michael M. Paramount in Settlement Talks With Trump Over “60 Minutes” Lawsuit. The New York Times [online]. 31 January 2025. [Accessed 31 January 2025]. Available from: https://www.nytimes.com/2025/01/30/business/media/paramount-trump-cbs-news-settlement.html
A settlement, if reached, would be an extraordinary concession by a major U.S. media company to a sitting president.
2.
Python Rules for Bazel — rules_python 0.0.0 documentation. [online]. [Accessed 31 January 2025]. Available from: https://rules-python.readthedocs.io/en/latest/index.html