Skip to content

T0 Development Notes

Germán Felipe Giraldo Villa edited this page Apr 30, 2021 · 11 revisions

T0 Agent is build upon WMAgent, so it is likely that your T0 developments will need some WMCore developments as well. For instructions on how to contribute to WMCore code, refer to the WMCore wiki.

WMAgent consist on several different components in charge of creating, submitting and tracking jobs. In a regular WMAgent, the WorkQueueManager takes care of creating new workflows for the agent to execute. In a T0 Agent, WorkQueueManager is replaced by Tier0Feeder.

Available tests

While developing for T0, you will have te following tools at your disposition:

  • Syntax Tests: We are slowly trying to improve our code to comply to WMCore conventions. For that, we are using pylint to check syntax following WMCore's .pylintrc file. Please try to produce code that complies with the standard, and fix existing warnings when possible.

  • Unit Tests: The first way to test that your code works properly, if to check if it passes T0 unit test. You can find them in the test/ folder of this repo.

  • Replay: After passing the unit tests, you should be able to successfully run a replay using your changes. You can use the last available replay configuration in ReplayOfflineConfiguration.py.

Procedure

  1. Fork dmwm/T0 repository. This way you can work in the new developments in your personal repository. It is recommended to create a specific branch to work on your code.

  2. It's time to code. Use the tools at your disposition to make sure the code you produce is working correctly. Sometimes, our existing code is difficult to read, specially if you lack knowledge of the regular submission procedure. Don't hesitate asking for guidance.

  3. Sometimes, while developing, the commits history can get a bit messy. While that's ok for the development, we would like to keep master branch's history as clean as possible, so it is easier to traceback changes. So, please make sure to reduce the number of commits you create for every new feature (hopefully only one commit for every new development). You may find these information useful:

  4. Once you consider your development branch is ready, create a PR towards dmwm/t0 master branch. The PR will automatically undergo Syntax and Unit tests. You can also request a containerized replay test. Then, ask for reviews from the admins.

Clone this wiki locally