Make fawkes builds and dependencies reproducible and easy to maintain #190
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.
Situation: Fawkes is a brilliant research project. I personally enjoyed reading the research paper. However, numerous issues and pull requests have resulted from how difficult it is to run after initially downloading it due to poorly documented python version requirements and compatibility collapse with numerous dependencies following ~4 years of drift. Example links in the last paragraph for brevity.
Action: I rewrote the setup code to depend on pyenv and poetry allowing us to explicitly require the use of python 3.9.0 rather than having users guess at how best to execute the code. I've used stricter dependency requirements (lots of ~= in pyproject.toml dependencies) as the project is unlikely to be maintained regularly and reviving the code required a lot of dependency incompatibility navigation we should avoid for future users.
Result: A new user can build this great research project with ~10 lines! A big win in my opinion.
Some relevant pull requests and issues.
#168
#158
#186
#178