Present: Milosz, Federico, Philippe, Zoltan, Andre, Marko, Hamza, Joel, Wojciech, Chris
Remote: Luisa, Andrei, Hideki, Daniela, Simon
The first part of the meeting was dedicated to listing what factually is creating troubles. Only these written in the slides were discussed. There was a general agreement on all of them, so I refer you to the slides for exact content.
The second part (as important as the other) was to reckon that there is a lot of progress being done on all those topics, and we should pursue this way.
The last part was dedicated to the propositions contained in the slides and meant to help (if not solve) the issues mentioned earlier. The outcome of the discussions is bellow:
dirac-install:
A script, potentially dirac-install, should be able to do what dirac-install does, but with parametrized input: there should be no hardcoded urls, but the default. This will allow to test easier the integration branch, or to test various combinations of extensions, externals and LcgBundle, without the need to make releases.
It is not clear whether this will go through dirac-install directly, or if we need a new script, because dirac-install does more than just installing. Some technical ideas were thrown, but we decided to keep it for further offline discussion (plugin-based, similarity with pilot bootstrap problem, dirac-install-++, etc).
It was agreed that Zoltan will take care of the implementation
This is the top priority task
Deprecation policy
It was acknowledged that we have a lot of dead code, deprecated features, deprecated options, etc. This pollutes the code and the configuration. We agreed on a strict policy:
- version vXrY: new feature introduced
- version vXr(Y+1): the old feature is marked as deprecated (see bellow)
- version vXr(Y+2): the old feature is removed
This requires methodology:
- Deprecation should always be associated to a task, and we shall use the milestone in github issues
- We should use a "deprecated" decorator for method deprecation. Warning should be popped up, one way or another
- Sphinx already has a deprecated flag to keep track of it in the documentation
Progressive changes
It was agreed that new features should now be implemented in parallel of the existing code, but disabled by default with a configuration flag. This way the two codes co-exist, and the new one can be merged earlier as technology preview. Taking it out of the technology preview is just another milestone task.
Making sure that there is a flag, and that the changes are well encapsulated become part of the review process.
Pull Request
It was agreed that for PR targeting the release branch, they should be merged as soon as the tests have passed and the PR was reviewed OK. It is asked to developers to do their PR as topical as possible.
The merging of PR into integration should still be done carefully.
Documentation
There is a general consensus that there are in general 4 roles/uses cases, and that they should have dedicated part in the documentation:
* user: the users of a VO
* Admins: people installing and managing a DIRAC installation
* Experts: people who wants to know more about the internal behavior of and relations between components
* Developers: the code documentation
This already exists, but the content is not matching the description. It needs a revamp.
Chris to write a first proposition and circulate it to iterate over.
Tests
This topic is way too long to be addressed in a meeting shared with other topic. A lot of progress were done lately, but they are the result of individual efforts. We agreed on having a separate discussion in order to define a few key points for the evolution of our tests:
* what to test and how
* mocking strategy
* what automation should be done
* etc
Target branch
The proposition consisting in developing against integration and propagating backward instead of forward did not reach an agreement. Keep going forward for now