Skip to content

Conversation

@Co1lin
Copy link

@Co1lin Co1lin commented Aug 21, 2025

Motivation

Currently, we need to install swe-rex into the container using python. However, it is not compatible with some old OS versions, such as ubuntu 14/16, which is used in some security benchmarks. For example, for some containers in the ARVO dataset, the OS version is old and python version is also too old to install this package.

root@bc9d66643156:/src/lcms# cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.7 LTS (Xenial Xerus)"

root@bc9d66643156:/src/lcms# python3 -m pipx ensurepath
Python 3.8 or later is required. See https://github.com/pypa/pipx for installation instructions.

Proposal

Use pre-built standalone executable (realized by https://pyinstaller.org/) for swe-rex remote server. It has the following benefits:

  • Compatible with old OS versions. It is hard to use apt to install newer python versions on ubuntu 14/16.
  • Faster setup process. While it is possible to use uv/conda to install swe-rex to old OS versions, the process is repetitive so we can just pre-build it and use it.

Currently I used ubuntu:14.04 as the building environment, which has good glibc compatibility.

TODO list

  • add a CI workflow to build swe-rex remote server and release it; support both amd64 and arm64
  • use the pre-built executable after starting the container; we can download it from the latest release link from github (example for released download links: https://github.com/Co1lin/SWE-ReX/releases/tag/v1.4.0-test)
  • not sure if we want to use the pre-built server in other remote deployments

@Co1lin Co1lin marked this pull request as draft August 21, 2025 23:44
@Co1lin
Copy link
Author

Co1lin commented Aug 22, 2025

For bringing the swe-rex remote server into the container, we have the following options:

  • use wget to download the executable from the latest release link
  • use container specific APIs to upload it

Actually I prefer the second one, because it will also support environments without the capability of downloading (lack of wget/curl, network issues, dependency issues, etc.). For local env and docker container, it is doable. For remote ones, I think it is also possible (https://www.daytona.io/docs/file-system-operations/#uploading-files). For each deployment, we only have to implement a upload_file without the dependency on the remote server itself to achieve this.

@Co1lin Co1lin marked this pull request as ready for review August 22, 2025 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant