- product ownership, how feature requests are considered: origin, priority,…
- quality of the code and robustness (design patterns, abstraction and construct, coding standard..)
- CI/CD pipelines and test-driven development backlog, time for merging PR, release process, issues management, doc, size of development effort and needs,…
# CSCS
- product ownership, how feature requests are considered: origin, priority,…
- DaCe is owned by the SPCL group and all the decisions are taken in the weekly developers meeting. The prioritisation is mainly orchestrated by the more senior core developers, i.e. Tal Ben-Nun, Alexandros Nikolaos Ziogas & Timo Schneider.
- Overall, the feature request process is well-managed/supported. A lot of discussions are happening in their Mattermost channel (like slack) where everybody is welcome to join and ask for new features.
- Additionally, SPCL holds a workshop on a regular basis (all involved parties are invited), where general architectural decisions are made.
- quality of the code and robustness (design patterns, abstraction and construct, coding standard..)
- The quality of the code is mixed, some parts are better than others. Certain parts were written with high abstraction in mind while others chose a more direct solution.
- A big issue is encapsulation, or the lack of it. Thus sometimes the internals are directly manipulated instead through an API.
- Nevertheless, it started as a research code, i.e. it was written to publish papers.
- But there are discussions and efforts going on to solve these kind of issues.
- CI/CD pipelines and test-driven development
- Validation & Verification of PRs is happening through GitHub actions. Also, they provide testing for heterogeneous hardware, i.e. CPUs, GPUs, FPGAs.
- The DaCe development is not test driven but the DaCe owners strive to add test coverage for new functionalities. The problem is to cover all lowering paths for different kinds of hardware.
- backlog, time for merging PR, release process, issues management, doc, size of development effort and needs,…
- The development mostly takes part on [GitHub](https://github.com/spcl/dace), that is also used for issue management. They are aware that the list of issues are not fully up to date and working on it to resolve it.
- The merging of PRs (made by us/CSCS) is quite fast, i.e. contributions are more than welcome. Nevertheless, requesting a feature from the core developers can be a slow process.
- The online documentation is quite useful in the sense that it allows one to start working with DaCe. However, the internals are not at all or rather poorely documented, which makes it very hard to made some modifications to the internals.
# Ben's answer: