- Pass shared decks with
lab.compile(protocol, deck=deck, liquid_handler=...). A positional second argument is now reserved for a concrete target. lab.compile(protocol)defaults to a manual target and writes a bundle to~/.lab/<protocol>/<target>/. Useto=Noneto compile without writing,to=pathto choose a directory, orLAB_HOMEto change the default root. Recompilation replaces the files in that protocol/target bundle;Compilation.write()still refuses to replace different existing artifacts.- Replace the removed
lab.protocolsrequest and material API with the cloning experiment builders andlab.samples.AssemblyandTransformationrecipes take nativesbol3.Componentobjects; pySBOL3 is now a core dependency.
- Sample identities, lineage, design references, and optional implementation references are preserved in the protocol snapshot. Declared outputs produce
manifest.jsonand are available throughCompilation.manifest. - Assembly, transformation, and plating examples carry native SBOL design identities through their planned outputs, with a separate example for computational design provenance.
- An optional LabOP integration exports prospective protocol plans using upstream LabOP. It is installed from the checkout in a separate environment and is not imported by the core package.
- Move the source repository to
https://github.com/MyersResearchGroup/LabCompilerand update package URLs, README links, and publishing instructions. The PyPI package remainslab-compiler; the Python import remainslab.