The component lead is responsible for the planning and development of patches and features for the respective component. This does not mean that the component lead is the only person developing the component, but he/she should direct the efforts and be the point of contact in case of problems.
Rucio Project Leader: Martin Barisits
| Component | Lead (+Deputies) | Description |
|---|---|---|
| Authentication & Authorisation | Dimitrios Christidis, Mario Lassnig | Client-server authentication, Rucio tokens, auth methods (kerberos, ssh, userpass, OIDC, ...) |
| Clients | Maggie Voetberg, Mario Lassnig | General Python Clients and Command Line interface related development, rucio download, rucio upload; Specific component related client functionality is part of the other components |
| Consistency checks | Fabio Luchetti, Guilherme Lima | Dark data detection daemon: Auditor |
| Core & Internals | Martin Barisits, Mario Lassnig | Core functionality not specifically part of other components |
| Database | Dimitrios Xenakis, Mario Lassnig, Martin Barisits | Database (Compatibility and optimisation) and SQLAlchemy framework specific issues |
| Dataset deletion | Alexander Richards, Martin Barisits | Dataset deletion daemon: Undertaker |
| Deletion | Hugo Gonzalez Labrador, Cedric Serfon | File deletion daemon: Reaper |
| DIRAC | Maximilian Linhoff, Cedric Serfon | Rucio integration with Dirac |
| Docker & Kubernetes | Mario Lassnig, Eric Vaandering, Hugo Gonzalez Labrador | Docker & Kubernetes deployment |
| Documentation | Martin Barisits, Maggie Voetberg | General documentation |
| Jupyterlab extension | Francesc Torradeflot, Giovanni Guerrieri | Rucio Jupyterlab extension |
| Life time model | Dimitrios Christidis | Life time model processing and exceptions |
| Messaging | Alexander Richards, Mario Lassnig | Messaging daemon: Hermes, Creation of eMails and ActiveMQ messages |
| Metadata | Rob Barnsley, Dimitrios Xenakis | Metadata workflows |
| Monitoring & Traces | Mayank Sharma, Mario Lassnig | All things internal monitoring and traces |
| Multi VO | Tim Noble | Issues and developments related to Rucio Multi VO mode |
| Policies | James Perry | All things related to separate settings/config/policies into community specific things |
| Probes & Alarms | Dimitrios Christidis, Eric Vaandering | Probes and alarms for Nagios |
| Protocols | Maggie Voetberg, Mario Lassnig | Protocols (Upload, Download, Deletion) |
| Rebalancing | Cedric Serfon | Data rebalancing daemon: BB8 |
| Recovery | Cedric Serfon | Data recovery daemon: Necromancer and suspicious replica recovery |
| Release management | Martin Barisits, Dimitrios Christidis | Packaging of new versions, package configuration |
| Replicas | Alexander Richards | Replicas related workflows (list_replicas, add_replica, ...) |
| REST & API | Maggie Voetberg, Martin Barisits | Web-Framework (Web.py & Flask) |
| Rules | Martin Barisits | Replication rules and rule daemons: Judge |
| Security | Benedikt Ziemons | Overseeing software security in Rucio project, setting and monitoring the security policy in the project, reacting to incidents, advising project leader and component leads in matters of security |
| Subscriptions | Cedric Serfon | Subscription daemon: Transmogrifier |
| Testing | Mayank Sharma | Regression and Unit tests, automatic tests of submissions |
| Transfers | Hugo Gonzalez Labrador | Transfer daemons: conveyor and functional transfer tests |
| WebUI | Mayank Sharma | Web user interface: Rucio Web UI |
Component lead duties
This guide should give prospective, and current, Rucio component leads a better understanding of what is expected from them in their role. Component leads, together with the project leader, form the Core Development team of Rucio. The main responsibility of a component lead is to take formal responsibility in planning and developing contributions for their respective component. They are the core experts and the point-of-contact in case of issues as well as to guide new developments within their components.
However, their responsibility as a member of the Rucio Core Development team goes further than that. Every Core Development team member should be focused on improving the Rucio software and project at large, beyond the limits of their component.
There is no expectation that the component lead (or deputies) implement any arbitrary feature request to their component, however, they should advise other contributors in their efforts.
As a component lead you must
- Take responsibility for the evolution and maintenance of your component;
- This means making an effort to actively improve the component, rather than solely reacting to bug submissions;
- Take an active role in the Rucio project, be open to share your opinion on how your component, but also the wider Rucio project, should evolve;
- Participate in the major release planning;
- Regularly join the weekly Rucio meeting;
- Be present on the Rucio Mattermost team;
- Give advice and guide other developers in their contributions to Rucio, especially concerning your component;
- Give advice to Rucio operators in their usage of Rucio, especially concerning areas of your component;
- Actively participate in code reviews; Be the default code reviewer of contributions to your component;
- Participate in the bi-weekly sprints and volunteer for the role of sprint moderator;
- On GitHub
- Actively read and react to Github notifications;
- Assign maintenance issues (to yourself, or if agreed to others) which fall into your component;
- Advise on feature requests or proposed developments of your component;
- Close issues (if duplicate, unsuitable) of your component;
- Comment issues, especially the ones of your component;
- Review pull requests, especially the ones of your component;
- Merge pull requests ...
- ... in the core repository, if you are part of the merge team;
- ... in the secondary repositories, if they fall into the responsibility of your component;
As a deputy component lead you must
- Collaborate with and support the component lead in their duties;
- For large components it is acceptable to agree on a partition of different work areas of a component assigned to the different deputies;
- Replace the component lead in their absence;