Skip to main content

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

ComponentLead (+Deputies)Description
Authentication & AuthorisationDimitrios Christidis, Mario LassnigClient-server authentication, Rucio tokens, auth methods (kerberos, ssh, userpass, OIDC, ...)
ClientsMaggie Voetberg, Mario LassnigGeneral Python Clients and Command Line interface related development, rucio download, rucio upload; Specific component related client functionality is part of the other components
Consistency checksFabio Luchetti, Guilherme LimaDark data detection daemon: Auditor
Core & InternalsMartin Barisits, Mario LassnigCore functionality not specifically part of other components
DatabaseDimitrios Xenakis, Mario Lassnig, Martin BarisitsDatabase (Compatibility and optimisation) and SQLAlchemy framework specific issues
Dataset deletionAlexander Richards, Martin BarisitsDataset deletion daemon: Undertaker
DeletionHugo Gonzalez Labrador, Cedric SerfonFile deletion daemon: Reaper
DIRACMaximilian Linhoff, Cedric SerfonRucio integration with Dirac
Docker & KubernetesMario Lassnig, Eric Vaandering, Hugo Gonzalez LabradorDocker & Kubernetes deployment
DocumentationMartin Barisits, Maggie VoetbergGeneral documentation
Jupyterlab extensionFrancesc Torradeflot, Giovanni GuerrieriRucio Jupyterlab extension
Life time modelDimitrios ChristidisLife time model processing and exceptions
MessagingAlexander Richards, Mario LassnigMessaging daemon: Hermes, Creation of eMails and ActiveMQ messages
MetadataRob Barnsley, Dimitrios XenakisMetadata workflows
Monitoring & TracesMayank Sharma, Mario LassnigAll things internal monitoring and traces
Multi VOTim NobleIssues and developments related to Rucio Multi VO mode
PoliciesJames PerryAll things related to separate settings/config/policies into community specific things
Probes & AlarmsDimitrios Christidis, Eric VaanderingProbes and alarms for Nagios
ProtocolsMaggie Voetberg, Mario LassnigProtocols (Upload, Download, Deletion)
RebalancingCedric SerfonData rebalancing daemon: BB8
RecoveryCedric SerfonData recovery daemon: Necromancer and suspicious replica recovery
Release managementMartin Barisits, Dimitrios ChristidisPackaging of new versions, package configuration
ReplicasAlexander RichardsReplicas related workflows (list_replicas, add_replica, ...)
REST & APIMaggie Voetberg, Martin BarisitsWeb-Framework (Web.py & Flask)
RulesMartin BarisitsReplication rules and rule daemons: Judge
SecurityBenedikt ZiemonsOverseeing 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
SubscriptionsCedric SerfonSubscription daemon: Transmogrifier
TestingMayank SharmaRegression and Unit tests, automatic tests of submissions
TransfersHugo Gonzalez LabradorTransfer daemons: conveyor and functional transfer tests
WebUIMayank SharmaWeb 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;