---
# System prepended metadata

title: AiiDA Team Meeting 2025-02-20
tags: [team meetings]

---

# 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)
- 