Quantum 0.14.0
Fixed
A
q:functionof the page can be called inside aq:action(ACT-10). It was a 500 every time: actions ran in one runtime shared by every request and thread, which never registered the page's functions. Each request now gets its own runtime, so simultaneous requests cannot see each other's state either.ui:*elements inside a served page are an error that says they are not supported there yet (UI-0); they came out as<window>/<vbox>tags no browser lays out. Building a UI from a file that is not<q:application type="ui">says how to fix it instead of raisingAttributeError. The console and desktop targets write different files (<id>_console.py,<id>_desktop.py); they both wrote<id>.py, so one erased the other.accepton aq:param type="file"restricts the upload (ACT-11): it was accepted and never checked, so any file passed. The file name has to match as well as the type the browser declares — an.exesent asimage/pngis refused.returnTypeonq:functionis checked on every return (FN-4); it was accepted and never read.logging.formatsets the format of log lines, andpaths.migrationsthe folderquantum migratereads (CFG-3); both were documented and ignored. Unknown keys underserver,pathsandloggingare named in a warning, as they already were undersecurityandperformance.
Breaking
- Attributes that were accepted and never did anything are parse errors (PARSE-3):
maskonq:set,transformonq:invoke,validationonq:param,basePath,health,metricsandtraceonq:component. A test now scans the Core's AST nodes and fails when a field set from the XML is not read by anything that executes. - A
q:functionwhose value does not match itsreturnTypeis an error; an unknownreturnTypeis a parse error (FN-4).
Changed
- The test suite runs in parallel in CI (
pytest -n auto);pytest-xdistis in the[dev]extra. Tests that cannot share the machine are markedisolado.