mozilla-releng/tooltool

tooltool client location, duplication and usage

Opened this issue · 1 comments

Hey, the doc says

If you want to use the client, just copy out tooltool.py -- it has no dependencies.

I think it's a problem.

Having people copy that script here and there has two major disadvantages:

  • it leads to some issues of having deprecated tooltool.py instances in many places.
  • it makes it hard to deploy a new improved version
  • we don't know if the version we use is the right one

For example the version in this repo says version == '1' but the one in mozharness
has the same version but is a different module.

We bumped into the issue because we started to work on https://phabricator.services.mozilla.com/D54090 to add a small retry mechanism to try
to reduce intermittents on Raptor, and decided to use mozbuild's tooltool version as
the source of truth, but it turns out this repo is the one :)

there's also https://github.com/mozilla/build-relengapi ?

I would like to make this proposal:

  • ask people not to copy around tooltool.py
  • remove all tooltool.py instances in mozilla-central
  • release on pypi and our internal pypi a tooltool client with no dep that can be used in all py versions
  • make that package a commodity everywhere in our CI and tests environements

We (RelEng + Tarek) talked about this a bit elsewhere. Everyone agrees that copying around a random file is not great at this point. We decided that we should:

  • Make it possible to do proper Releases of tooltool. This probably requires some code change in this repo.
  • Release packages on Github
  • Vendor them into mozilla-central

RelEng tries to avoid releasing Mozilla-specific stuff to the official pypi. We can upload packages to our pypi if that's useful.