WIP: feat: python phase 1 #4609
Reference in New Issue
Block a user
Delete Branch "(deleted):feat/python-tools"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Install python deps using venv during the build process
Rewrite the entirety of Phase1 in python.
This brings significant speed ups. At time of writing, pre some further optimization, I am seeing ~6secs vs ~113secs for worst case scenario (Full rebuild)
This will unfortunately require some additionally dependencies on the build server. The upside is that any future python deps can be added without touching the build server.
The additional deps are:
I believe this worthwhile for the speed improvements, superior portability and more reproducible development environments.
Pinging @tobiasd as maintainer.
910ed37845to8e510f094bPr for updating build server as required found here: fsfe-system-hackers/build-server#14
@@ -86,3 +86,3 @@The package names for Debian, are```bash bash-completion coreutils diffutils findutils inotify-tools libxml2-utils libxslt make procps python3 rsyncbash bash-completion coreutils diffutils findutils inotify-tools libxml2-utils libxslt make procps python3 pip rsyncThe Debian package for
pipispython3-pipI thinkYes, I think you are right
@@ -23,3 +23,3 @@# Check dependencies for all kinds of build envs (e.g. development, fsfe.org)check_dependencies realpath rsync xsltproc xmllint sed find egrep grep wc make tee date iconv wget shuf python3check_dependencies realpath rsync xsltproc xmllint sed find egrep grep wc make tee date iconv wget shuf python3 pipHere as well
python3-pipright?8e510f094btoc5defbf983c5defbf983tod15c2c5a76d15c2c5a76to279100dd71Pr now includes a python
build.pywrapper over the main build scripts. It enjoys far more sensible arguments thanbuild_main.sh, and is easier to write and maintain thanbuild.sh.My goal is that all builds of the website will be done using this script, and then the build process itself can be slowly rewritten with
build.pyas its stable interface.As of now this pr is designed such that it requires #4660 and #4564
279100dd71to2302fbddbe2302fbddbeto930acdc344The scope of this pr has increased a little from when it started, and I have updated the main comment to reflect this.
This pr does not require altering the cron job on the server, although it does need the deps mentioned above.
After this has been merged for a bit I would like to alter the cronjobs to use the interface provided by
build.py. Its far easier to make sense of, and I intendbuild.pyso serve as a stable frontend throughout the rest of the rewrite process.930acdc344to8914820be7WIP: feat: pythonisationto WIP: feat: python phase 18914820be7to6ac91ca7bcIs currently fully functional and seems to correctly handle all pages, tags etc.
Will keep in wip until the two prerequisites are merged, but can be tested in the meantime.
6ac91ca7bcto881b24d83f881b24d83fto3393a778363393a77836toccc40ab9a5Will conglomerate these changes in a full python rewrite
Pull request closed