Engineering Intelligence Framework v0.2.2
A patch on top of v0.2.1, published the same day and for the same reason
v0.2.1 existed: the fix was checked by installing the published wheel and
cloning a real connected project on Windows, rather than by trusting that it
was finished. It was not.
What was still broken
The managed .gitattributes block that v0.2.1 introduced covered only the
files EIF hashes. That left .gitattributes and .gitignore uncovered, so
both fell into the trap the block exists to close: EIF writes them as LF,
core.autocrlf wants CRLF, and git reports them modified forever with
nothing in the diff. A dirty .gitattributes is the worst one to leave,
because git reads the attribute stack from it while deciding how to
materialize everything else.
Separately, .eif/config.yaml, .eif/framework.lock.yaml and .gitignore
were still written through Python's text mode, so newline translation landed
them as CRLF on Windows while git stored LF. That mismatch predates v0.2.1
and was invisible until the new attributes made git assert a specific
ending. They are written as bytes now, the way the agent entrypoint and the
knowledge index already were for exactly this reason.
What changed in the test, which matters more
scripts/tests/test_line_endings.py asserted the mechanism: that the managed
block contained the right lines. That passed while the property was broken,
which is how v0.2.1 shipped. It now asserts the property end to end: clone a
connected project with core.autocrlf=true, upgrade it, and the tree must
still be committable-clean. core.autocrlf is set explicitly rather than
inherited, so the check means the same thing on a Linux runner as on the
Windows machine where the symptom appeared. It fails on v0.2.1 and passes
here.
Upgrading
Nothing beyond the normal path. A project created or upgraded on v0.2.2 gets
the complete block. A project already upgraded to v0.2.1 gets the two extra
lines on its next upgrade.
python -m pip install ./engineering_intelligence_framework-0.2.2-py3-none-any.whl
eifctl upgrade --instance-path ../my-project
A project committed before v0.2.2 with converted line endings needs one
normalization after the upgrade writes the block:
git -C ../my-project add --renormalize .
Known limitations
Unchanged from v0.2.1, including the three installed-wheel
integration-status checks in scripts/tests/test_package_build.py that fail
identically on v0.2.0, v0.2.1 and v0.2.2. They are not a regression and are
not fixed here. The package is still distributed through GitHub Releases
rather than PyPI.