Repository navigation
Conversation
Ninth series of the legacy matrix. Refs #195. Plone 2.1.4 on Zope 2.8.12 / Python 2.4.6, tarball era. No new shared scripts: the closure is the same one 2.5 uses -- build-python2.sh, build-pil.sh, install-simplejson.sh, docker-entrypoint.sh, upgrade-plone.py and configure-zeo.sh. The site factory is the older pair. 2.1.4 links CMFPlone/addSite and posts to manage_addSite, where 2.5.4-2 links addPloneSiteForm and posts to addPloneSite. shared/smoke-test.sh discovered both steps at run time with no change, which is now the second independent series to exercise that discovery -- the gate resolved "addSite -> manage_addSite" on its own. Python 2.4.6 needs the multiarch patch that build-python2.sh carries. Python 2.4 predates Debian multiarch, so its setup.py looks in /usr/lib while bookworm keeps libz and libcrypt only in /usr/lib/x86_64-linux-gnu; without the patch zlib and crypt are skipped silently and the interpreter comes out unusable. Verified on the built image: `import zlib, sha, md5` exits 0. Two product counts in 2.1/README.md were wrong, and are corrected here rather than copied forward. The ledger claimed "32 products land in Products/". The image has 30 product directories; `ls` reports 32 because CONTENTS.txt and README.txt sit alongside them and are not products. The bullet now gives the directory count, says which number `ls` reports, and says why -- so the entry count cannot quietly come back. The same mistake was one step from being made in the 2.5 port, where the README's 38 happened to be a directory count and survived checking. The opening paragraph claimed "All 37 products register". That number is not reproducible from the image at all: it is not the 30 bundle directories, not the 32 entries, and not the 30 plus Zope's 22 built-in products, which would be 52 and double-counts BTreeFolder2. Rather than substitute another guess, the sentence now states what the smoke gate actually proves -- that all 30 register with no import or install errors. legacy/2.5/README.md carried the bad figure too, in its cross-reference "vs. 20 in 2.0.5 and 32 installed in 2.1.4", so that is corrected in the same commit. Its other two figures were checked and are right: 2.5.4-2 has 38 product directories and 2.0.5 has 20, both directory counts. Verified locally: make lint passes with 10 Dockerfiles and 11 shell scripts; make -n resolves all four 2.1 targets, including the test-demo-2.1 case the GNU Make 3.81 stem rule would otherwise send to test-%. The base image passes the smoke gate with SMOKE_CREATE_SITE=1 (6/6, site root 23630 bytes) and the -demo variant passes make test-demo-2.1 (6/6), with the build-time password confirmed dead after the ADMIN_PASSWORD reset. The versions were read out of the built image rather than taken from the ARGs: Products/CMFPlone/version.txt reads 2.1.4, the interpreter reports 2.4.6, simplejson 2.0.9 imports, and `from PIL import Image` succeeds. The base build was fully cache-hit from the source repository's layers, so the cold build -- CPython 2.4.6, PIL and Zope 2.8.12 all compiled from source -- is exercised for the first time in CI. The -demo layer did rebuild locally, seed step included.
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.
Adds the Plone 2.1.4 image to the legacy matrix — Zope 2.8.12 / Python 2.4.6, tarball era.
Closes #195
No new shared scripts: the closure is the same one 2.5 uses —
build-python2.sh,build-pil.sh,install-simplejson.sh,docker-entrypoint.sh,upgrade-plone.py,configure-zeo.sh.The older site factory
2.1 posts to a different endpoint than every ported series so far:
/manage_mainCMFPlone/addSitemanage_addSiteaddPloneSiteFormaddPloneSiteshared/smoke-test.shresolvedaddSite -> manage_addSiteon its own, with no change. That is now the second independent series to exercise the run-time discovery added during the 2.5 port — the version-agnostic gate is holding up.The multiarch patch matters here
Python 2.4 predates Debian multiarch, so its
setup.pylooks in/usr/libwhile bookworm keepslibzandlibcryptonly in/usr/lib/x86_64-linux-gnu. Without the patchbuild-python2.shcarries, zlib and crypt are skipped silently and the interpreter comes out unusable. Verified on the built image:import zlib, sha, md5exits 0.Two wrong product counts, corrected rather than copied forward
The port convention is a verbatim copy from
plone-legacy, but the ledger's whole purpose is to be the verified record, so these are fixed here.32 products land in Products/→ the image has 30 product directories.lsreports 32 becauseCONTENTS.txtandREADME.txtsit alongside the products and are not products. The bullet now gives the directory count, says which numberlsreports, and says why — so the entry count cannot quietly come back.This was one step from happening in the 2.5 port too, where the README's
38happened to be a genuine directory count and survived checking.All 37 products register→ not reproducible from the image at all. It is not the 30 bundle directories, not the 32 entries, and not 30 + Zope's 22 built-in products (which would be 52, and double-countsBTreeFolder2). Rather than substitute another guess, the sentence now states what the smoke gate actually proves: all 30 register with no import or install errors.legacy/2.5/README.mdcarried the bad figure in its cross-reference — "vs. 20 in 2.0.5 and 32 installed in 2.1.4" — so that is corrected in the same commit. Its other two figures were checked and are right: 2.5.4-2 has 38 product directories and 2.0.5 has 20, both directory counts.Verification
make lint— 10 Dockerfiles, 11 shell scripts, workflow YAMLmake -non all four 2.1 targets, including thetest-demo-2.1case the GNU Make 3.81 stem rule would otherwise route totest-%SMOKE_CREATE_SITE=1 make test-2.1— 6/6, site root 23630 bytesmake test-demo-2.1— 6/6, build-time password confirmed dead after theADMIN_PASSWORDresetVersions read out of the built image, not from the
ARGs:Products/CMFPlone/version.txt→2.1.4, interpreter →2.4.6, simplejson 2.0.9 imports,from PIL import Imagesucceeds.Note on CI
The base build was fully cache-hit from the
plone-legacycheckout, so the cold build — CPython 2.4.6, PIL and Zope 2.8.12 all compiled from source — is exercised for the first time in this PR's CI run. The-demolayer did rebuild locally, seed step included.Two series remain after this one: #196 (2.0) and #197 (1.0).