Conversation
Took the Git repo dependencies listed in `extremely-simple-setup.sh` and added them as submodules in the `external/` directory with the correct commits checked out. Now we can get rid of that portion of the setup script by simply calling `git submodule update --init --recursive`, and all dependencies will be setup with the correct context. Signed-off-by: Jason Pena <jasonpena@awkless.com>
Leverage UV project manager to collect and manage required dependencies for Taveren. The required repositories needed to build the state recovery machines used by the project have been added as submodules that point to the required commits. We point UV to these submodules to build the patched version of angr and claripy that Bonnie Dong coded. Thus, the `extremely-simple-setup.sh` bootstrap script is now no longer needed. A fresh build can simply perform the following commands if and only if uv is already installed beforehand: ``` git submodule update --init --recursive uv sync ``` We can now execute the tests through UV like so: ``` cd elevator/test uv run python test_elevator.py dot -Tpng graph/elevator.dot > graph/elevator.png ``` Note, this is the first step to refactoring the codebase of Taveren. In order for UV to actually work, I needed to disable packaging in the [tool.uv] section of `pyproject.toml`. Taveren does not use a proper Python project structure. If packaging was not disabled, then UV would complain that it does not know how to build the project, because there are multiple module components that do not follow Python programming conventions. We will need to fix this by using either the flat or src project layouts as seen in standard Python projects and packages. Signed-off-by: Jason Pena <jasonpena@awkless.com>
awkless
force-pushed
the
refac/uv-replacement
branch
from
August 28, 2026 14:51
5beab84 to
53939eb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
First step of a much larger refactoring of the codebase. Instead of using
extremely-simple-setup.shto setup the build environment, we can leverage the UV package and project manager tool. The external static analysis repositories cloned byextremely-simple-setup.shcan be managed through Git submodules; including the patched code written by Bonnie Dong. From there, UV can be directed to build these submodules, and gather any remaining dependencies needed to run the test code for each PLC state machine.Example workflow for fresh repository clones:
Notes