LeMill is not a normal Plone product that can be just plugged into any Plone instance. LeMill is an extension profile which means it customizes all aspects of a Plone instance. You cannot run LeMill as part of a normal Plone instance, but rather you need an exclusive instance for LeMill. Here's what you need to do:

Download the archive

Extract the package into Zope's Products folder

Restart Zope

Using ZMI create a new Plone instance to a suitable location, and select "LeMill site" as the extension profile.

Upgrade LeMill (you can automate these steps by customizing and running the docs/upgrade_lemill.py script):

If you run into error messages with any of these following steps, just continue down the list and rerun the step that gave you the error after the other steps. It's safe to run these as many times as you want. Sometimes changes between LeMill versions will actually require a different order in which these steps need to run, but usually this is the best. But you can just keep trying until you get all steps to succeed.

In portal_quickinstaller reinstall LeMill (may take several minutes if there's lots of changes)

In portal_migration go to Setup and update the "LeMill site" customization policy

In portal_workflow run "Update security settings"

In archetypes tool run "Update schema" (may take quite a while if schemas have changed significantly)

In portal_catalog, go to "Advanced" tab and run "Update catalog"

Done!

Upgrading from 2.0-2.1 to 2.1.4 requires things to be done in this order, as many content types have changed, but changes are depend on each others:

In archetype_tool/Update Schema uncheck all except Pieces and click 'Update schema'. This will take a while.

Prototype 1 (0.1)

Prototype 2 (0.2)

First release with working basic functionality. Planned release 18.5.2006, released 22.5.2005.
This is the first supported version, meaning that any data created with this version will be
retained when upgrading to a newer version of LeMill.

Planned release 25.8.2006. Released 30.8.2006, due to wasting a lot of developer time on features that were then cancelled.
Designers need more time to properly design features and agree with each other, so that when development starts, design is
ready.

Planned release 16.8.2007, released 17.8.2007.
If you're upgrading from 1.12, you have to run portal_quickinstaller after archetype update. The upgrade script does this in opposite order. This is because the archetype update creates new fields for group objects and Install.py, which is ran by portal_quickinstaller, populates these fields.

Planned release 28.9.2007, released 28.9.2007.
Major release and deliverable for CALIBRATE project. Includes new template, makes LeMill-material visible in CALIBRATE Portal searches and allows tex/latex math formulas in text. Read TexSupport for instructions how to get local math drawing to work.

Released 11.12.2007
New navigation inside collections, human readable page urls when browsing content, new nicer view when searching for pieces to use in content or as cover images, support for Georgian and Russian characters in said searches, major internal changes to content-types and overall cleaning of code there, some code optimizing, and many, many bugfixes.

Version 2.3 removes dependency to Plone's workflow tool, which will give benefits in speed and simplify the code. Upgrading from 2.2.x to 2.3 requires first upgrading to 2.2.10 and running schema update to all checked object types in archetype_tool and then running reinstallLeMill 2.2.10 in portal_quickinstaller.

These operations create new field 'state' for every object and copy the existing workflow state there. Version 2.3 will remove the workflow state and start using object's field 'state', so these fields should have correct values before upgrading to 2.3.

Version 2.5 released. Major update! New content types: Lesson plan and School project. Also changed drafts to be private (invisible to others) by default and ability to lock down a version so that if others want to edit it, they edit a copy instead. Numerous internal fixes.

Several bugfixes and small improvements. portal_quickinstaller will run through so many installation steps, that it may be useful to modify Install.py and add change conditions so that the upgrade can be done few scripts at a time. For example you can change condition "if doWeMigrate(old, '2.5.1.2'):" to "if doWeMigrate(old, '2.5.1.2') and False:" to prevent that migration running. Or "if doWeMigrate(old, '2.5.1.2') or True:" to force it to run. You can change Install.py without restarting Zope, it refreshes automatically.

A major update, which moves binary data (images, audio, video, attachments) from pieces and presentations to external file system. This reduces the size of Data.fs to about 20% of what it was and improves speed, but it will create multiple folders into filesystem. Back up your Data.fs before upgrading.

Converting existing pieces to use FileSystemStorage? should be done by quickinstaller scripts, not by archetype_update! In Extensions/Install?.py there are multiple commented lines at the end of the file, like (l.678): "#updateArchetypes(self, ['ExerciseMaterial?', 'PresentationMaterial?', 'PILOTMaterial'], start=0, end=6000, out=out)". Uncommenting that line and running reinstall will do archetype update that will also move binary data to external file system for those content types. Lines like "#updateArchetypes(self, Piece, start=1000, end=2000, out=out)" upgrade pieces. Modify it to start from 0 and end somewhere abowe your total number of pieces, or do it in smaller batches by changing start and end points. When running reinstall, you can check if there is activity in your Data.fs -folder and its subfolders.

After running updateArchetypes for all resource types, uncomment (l.680) "#checkUnusedAttributes(self, LeMillPrintResource?, start=0, end=500, out=out)" and run it too for all Pieces. And then (l.696) "#cleanBinariesFromHistory(self, Piece, start=0, end=2000, out=out)" for Pieces and main Content types. It can save a lot of space.

Using FileSystemStorage? is now optional: If there is no such product, pieces are saved as they used to be and there is no need to run complicated update scripts (see v. 2.8.2.6). If the Data.fs can handle archetype_update, then upgrade from 2.5 to here should happen in a usual fashion.