Repository navigation
Conversation
Eleventh and last series. Refs #197. Every release from 1.0 to 4.2 now ships. Plone 1.0.6 with CMF 1.3.3 on Zope 2.7.8 / Python 2.3.7 -- the same stack 2.0 uses. No new shared scripts. 1.0 is the only image in the matrix assembled from more than one artifact, and the only one that patches upstream source. No single 1.0.6 artifact carries a working Plone. CMFPlone/INSTALL.txt asks for CMFPlone, DCWorkflow and Formulator plus CMF 1.3 or later, and the 1.0.6 tarball holds only the first. Neither DCWorkflow nor Formulator is separately downloadable any more -- old.zope.dev 404s for both -- so the 1.0.5 release bundle supplies them, and CMF comes from old.zope.dev. Three sources for one image, where every other series has one. The two patches are consequences of running a Zope 2.6-era Plone on 2.7, and they live in 1.0/patches/ as unified diffs applied with `patch -p1 --forward --batch`, never as in-line sed. --forward makes an already-applied patch a hard failure rather than a silent re-application, and the build stops if either is rejected. 0001 widens an exception handler in isExpired.py. Zope 2.6's DateTime raised IndexError on an unparseable string, which is what the handler was written against; 2.7's raises DateTime.SyntaxError, and CMF hands it the literal string 'None' whenever no expiry is set -- so the exception escaped and every page render 500'd. 0002 splits HTML close-tags inside a <script> block in login_form.pt across a string concatenation. Zope 2.6's parser tolerated them inline; 2.7's HTMLTALParser raises NestingError and the template fails to compile. The smoke gate absorbed a third era-specific behaviour without a change. Plone 1.0 predates the <meta name="generator"> tag every other series is asserted against, so shared/smoke-test.sh fell back to a plone.css resource reference on its own -- after already discovering the two different site factories in 2.1 and 2.5. Nothing version-specific was added to the gate for any of the four tarball-era ports. Two documentation claims stop being true with this commit and are corrected here rather than left to rot. 2.0/README.md opened with "The oldest image in the matrix", which was accurate until this commit and is now contradicted by 1.0/README.md's own first paragraph. It now says what remains true: 2.0 is the oldest image that runs upstream source unmodified. legacy/README.md's "one series lands per pull request; the remaining one follows these" is replaced by a statement that the matrix is complete, noting why 1.0 is the sole patched image. Verified locally: make lint passes with 12 Dockerfiles and 11 shell scripts; make -n resolves all four 1.0 targets, including the test-demo-1.0 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 21167 bytes) and the -demo variant passes make test-demo-1.0 (6/6), with the build-time password confirmed dead after the ADMIN_PASSWORD reset. Read out of the built image rather than taken from the ARGs: Products/CMFPlone/version.txt reads 1.0.6, the interpreter reports 2.3.7, simplejson is 1.9.3, both patch markers are present in the patched files, and Products/ holds exactly the seven products the three sources are meant to supply -- CMFPlone, DCWorkflow, Formulator, CMFCore, CMFDefault, CMFTopic and CMFCalendar. Both builds were cache-hit from the source repository's layers, so the cold build is exercised for the first time in CI.
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 1.0.6 image — the eleventh and last series. The matrix is complete: every release from 1.0 to 4.2 now ships.
Closes #197
Plone 1.0.6 with CMF 1.3.3 on Zope 2.7.8 / Python 2.3.7 — the same stack 2.0 uses. No new shared scripts.
This is the only image assembled from more than one artifact, and the only one that patches upstream source.
Three sources for one image
No single 1.0.6 artifact carries a working Plone.
CMFPlone/INSTALL.txtasks for CMFPlone, DCWorkflow and Formulator plus CMF 1.3+, and the 1.0.6 tarball holds only the first.dist.plone.org/archive/Plone-1.0.6.tar.gzCMFPlone— and nothing elsedist.plone.org/archive/CMFPlone1.0.5.tar.gzDCWorkflow,Formulatorold.zope.dev/.../CMF-1.3.3.tar.gzCMFCore,CMFDefault,CMFTopic,CMFCalendarNeither DCWorkflow nor Formulator is separately downloadable any more —
old.zope.dev404s for both — so the 1.0.5 release bundle is the only surviving source for the two companions of a 1.0.6 CMFPlone.The two patches
Both are consequences of running a Zope 2.6-era Plone on 2.7. They live in
1.0/patches/as unified diffs applied withpatch -p1 --forward --batch, never as in-linesed.--forwardmakes an already-applied patch a hard failure rather than a silent re-application, and the build stops if either is rejected.0001-isExpired-datetime-syntaxerror.patchwidens an exception handler. Zope 2.6'sDateTimeraisedIndexErroron an unparseable string, which is what the handler was written against; 2.7's raisesDateTime.SyntaxError, and CMF hands it the literal string'None'whenever no expiry is set — so the exception escaped and every page render 500'd.0002-login_form-tal-nesting.patchsplits HTML close-tags inside a<script>block across a string concatenation. Zope 2.6's parser tolerated them inline; 2.7'sHTMLTALParserraisesNestingErrorand the template fails to compile.The shared gate absorbed a third era, again unchanged
Plone 1.0 predates the
<meta name="generator">tag that every other series is asserted against.shared/smoke-test.shfell back to aplone.cssresource reference on its own:That is the third era-specific behaviour it has handled without modification, after discovering the two different site factories during the 2.1 and 2.5 ports. Nothing version-specific was added to the gate for any of the four tarball-era ports.
Two claims corrected rather than left to rot
legacy/2.0/README.mdopened with "The oldest image in the matrix" — accurate until this commit, and now contradicted by1.0/README.md's own first paragraph. It states what remains true: 2.0 is the oldest image that runs upstream source unmodified.legacy/README.md's "one series lands per pull request; the remaining one follows these" is replaced by a completion statement noting why 1.0 is the sole patched image.Verification
make lint— 12 Dockerfiles, 11 shell scripts, workflow YAMLmake -non all four 1.0 targets, including thetest-demo-1.0case the GNU Make 3.81 stem rule would otherwise route totest-%SMOKE_CREATE_SITE=1 make test-1.0— 6/6, site root 21167 bytesmake test-demo-1.0— 6/6, build-time password confirmed dead after theADMIN_PASSWORDresetRead out of the built image, not from the
ARGs:Products/CMFPlone/version.txt→1.0.6, interpreter →2.3.7, simplejson →1.9.3, both patch markers present in the patched files, andProducts/holds exactly the seven products the three sources are meant to supply —CMFPlone,DCWorkflow,Formulator,CMFCore,CMFDefault,CMFTopic,CMFCalendar.Both builds were cache-hit from the
plone-legacycheckout, so the cold build is exercised for the first time in this PR's CI run.