# AiiDA Team Meeting 2025-02-20 ###### tags: `team meetings` ###### time: 14:00 CET [TOC] ### Present - Alex - Julian - Ali - Miki - Edan - Kristjan - Giovanni - Jusong - Xing ### Catch-up round *Max. 3 minutes each* Alex: - Release v2.7.0 progress (see [project](https://github.com/orgs/aiidateam/projects/15)): - Talked with Michail about production tests, still need TODO - Not there yet, 20th February was too ambitious for prerelease. --> Moving it to in 4-6 weeks, if we move it again we do a patch release with some of the database features because @Kristjan could use these now - ssh with password authentication [aiidateam/pull/6761](https://github.com/aiidateam/aiida-core/pull/6761), should we push to v2.7.0 release? There seems to be interest/momentum now, ideally for testing it --> If it slows down the release we drop it, otherwise we include it. - Continuing on the issues mentioned in my talk last week, I tried to identify a solution for creating a while representation in aiida-core that could be used in aiida-workgraph (see [slides showing current state in aiida](https://docs.google.com/presentation/d/1h4rnYwv2vLLH11ogAXNf7sNoO1OhPxVW3xyCQ7E-qo4/edit?usp=sharing)), still a lot of thinking, discussed with @Xing already, will talk with @jusongyu on Friday about it - TODO review PR from Xing regarding the while loop [workgraph/pull/409](https://github.com/aiidateam/aiida-workgraph/pull/409) - [Py3.13 support PR](https://github.com/aiidateam/aiida-core/pull/6600) depends on [aiidateam/disk-objectstore/pull/184](https://github.com/aiidateam/disk-objectstore/pull/184), [180](https://github.com/aiidateam/disk-objectstore/pull/180), [181](https://github.com/aiidateam/disk-objectstore/pull/181) and another one doing releaes for disk-objectstore Julian: - [[6763] `QueryBuilder` Implement `get_creation_statistics` for SQLite backend](https://github.com/aiidateam/aiida-core/pull/6763) by Zisen: - Ready to be merged. Tests pass. But, contains a check: `backend_class == sqlite_dos.backend.SqliteDosStorage`, should we extend that to `SqliteZipBackend` (`SqliteTempBackend`)? Function only used in `src/aiida/restapi/translator/nodes/node.py`. - Work on: [[6723] WIP: Profile data mirroring](https://github.com/aiidateam/aiida-core/pull/6723/): - For now, only mirroring of Processes, PR already rather large - Default behavior is incremental updating of directory based on existing subdirectories with data of nodes that have an `mtime` since the last mirroring time - `DumpLogger` class tracks dumped nodes and paths -> Load from (write to) JSON file at beginning (end) of mirroring - Some of the options: - `--delete-missing`: Deletes directories and enries in log file when node is deleted from AiiDA's DB -> Must be run explicitly. By default, files are kept. - `--symlink-duplicates`: If nodes in multiple collections (or otherwise duplicated e.g. due to caching) create symlinks rather than dumping the same files in a different directory. False by default, so that all subdirectories can be zipped and shared, thus containing all files. - `--update-groups`: Updates the mirrored subdirectory and dump log of a group if group was renamed - Only specific groups can be selected, only nodes in groups, etc. - Would need some testers at this stage :rocket: - GP: Test with larger DB, e.g. 100k, time for first run, and time for next runs -> Doing nothing should be very quick - GP: Possibly also check for files, e.g. if file is corrupt; or possibly write first to sandbox and then move atomically to the final directory - GP: For `verdi process dump`, see if I can use AGE tools, e.g. [see here](https://github.com/aiidateam/aiida-core/pull/3686) - Next blog posts, anybody excited to share something? Xing: - WorkGraph coding week for stable release (Feb. 24th-28th), see [project](https://github.com/orgs/aiidateam/projects/10) - Thursday (27th) MSD group meeting, WorkGraph discussion - [improved if/while syntax](https://github.com/aiidateam/aiida-workgraph/pull/409): provides the syntax sugar by using similar `if_` and `while_` instructions as in the WorkChain. Ali: - Stashing: - My development plans are explained here on issue [6764](https://github.com/aiidateam/aiida-core/issues/6764) Let me know there if you have any comments. - As of now with these two PRs, I'm providing support for compression formats during stashing, `TARGZ`, etc. [PR 6743](https://github.com/aiidateam/aiida-core/pull/6743) and [PR 6746](https://github.com/aiidateam/aiida-core/pull/6746) - Let's make a decision on ``--clean-workdir` - [PR CLI: add option --clean-workdir to verdi node delete #6756](https://github.com/aiidateam/aiida-core/pull/6756) - Blog post tomorrow: - Debugging the AiiDA Daemon Jason: - Discourse, the "annoucement" channel has been set to broadcast only the first post. - Wrap up `keyring-rs` into [`keyringrs`](https://github.com/unkcpz/keyringrs) for managing the password cross-platform. - GSoC is on the way, I put Ali and Julian as co-mentors. Edan - [Pydantic PR](https://github.com/aiidateam/aiida-core/pull/6255) - CLI issue mostly resolved, albeit with the UX regression caviat (see PR discussion) - File handling using base64 encoding - Need to understand how to handle large files (discussing with Kristjan) - Will benchmark pre-merging in aiidalab-qe - Any workflow should provide some info when compared before/after PR - Possible issue with v2.3 query - If I recall correctly, `QueryBuilder`'s `in` operation did not work for sets (which would be most performant) - This was fixed as part of the `fields` [PR](https://github.com/aiidateam/aiida-core/pull/6245), I think, which is unavailable in v2.3 - Noticed during AiiDAlab-QE development (see [this PR](https://github.com/aiidalab/aiidalab-qe/pull/1174) for details) - However, it seems `list({pk-set})` still does not resolve this matter - If indeed an issue, will open a formal one Kristjan - nothing to report Miki - nothing to report Giovanni - do not store passwords in DB (only on file or external keyring) - tested MFA support with Paramiko, @Ali do you want to get the code so we see if/what we can make official? - profile data mirroring (@Julian): - test time for second dumping with no changes, with e.g. 100k processes (both with and without symlinks) - what happens if you CTRL+C? The mtime is "recent", but might be partially written only. Will the file be "fixed/updated" at the next run, or considered "OK"? - @Edan, serving files - can we avoid pass content of files in pydantic and/or serving with the JSON in the REST API? I would just have links, and have direct download of those Discussion: - Move next meeting? - Extend ssh transport by password authentication. Related to discussions in issues [aiida-core/issues/6642](https://github.com/aiidateam/aiida-core/issues/6642), [aiida-core/issues/6688](https://github.com/aiidateam/aiida-core/issues/6688) and PR draft [aiida-core/pull/6761](https://github.com/aiidateam/aiida-core/pull/6761) -