Posts

I downloaded the metadata for every package on PyPi and this is what I found out

Image
I recently presented a lightning talk to some colleagues on how to port Python 2 code to Python 3. Writing code that supports Python 3 is now especially important after Python 2 reached its end of support on 01/01/2020. When writing the presentation I was looking for some statistics on how many Python packages now support Python 3, and how many of those have dropped support for Python 2. From scouring the internet I wasn't able to find anything concrete, so I though I would answer the question for the rest of the world. PyPi.org is the main Python Package repository and is maintained by the Python Packaging Authority . There are many other public mirrors and it's common for large organisations to host their own, but PyPi tends to be the source of truth when it comes to Python libraries. This is likely the best place to get an answer to my question. The most prominent way to denote versioning of a Python package is via classifier strings . However after inspecting the sourc

You can now execute RobotFramework Test Suites remotely

Image
I have just published to new package to PyPi: robotframework-remoterunner . This lightweight library allows you to execute Robot Framework Test Suites on a remote host. The library itself comes in the form of two command-line scripts: rfslave - A lightweight agent that initialises an XML-RPC server that you launch on the host you wish to execute tests on.  rfremoterun - A script that you use to initiate a remote robot execution. It provides a similar interface to robot.run , but packages up Test Suites & resources before passing them to the rfslave server to execute the run.  This solution is implemented as a lightweight agent, designed to work alongside or instead of other CI Agents (e.g. Jenkins Slave). It is well suited to scenarios that involve downloading and installing applications that are then tested, and where there is a requirement to test across multiple platforms and Operating Systems. Implementation The executor script begins by parsing the input arguments