Accomplishments & status:
Bug 866260 - cut over build/* repos to the new vcs-sync system
I have the build repos all converting ok, after hitting some issues which i have begun documenting / raising bugs for.
I’m sure we can go live this week with the build repos.
I’m now intimately familiar with the mozharness code base. :D
Issues found were:
- The recording of whether a push is successful is per repo, rather than per repo target - so if you push to three target repos, you only have one field to say if it was successful or not - these means if one of the pushes fail, but the other two are successful, on the next iteration it will attempt to push to all three, rather than just the failed one. Another consequence is that if you add a target to the config, and run again, the new target will get skipped if there are no code changes, since the state will be “last push successful”. If we change this to per-target, both these problems would be solved.
- I’d like to move the virtualenv_modules out of the config files, since this could be in vcs_sync module and does not need to be in every config
- I think it might be cleaner to have _query_l10n_repos() in l10n.py, and similarly when methods relate to a specific class of config, to have the logic in the related config file - the reason I suggest this is then vcs_sync.py is a class that simply handles a given config dictionary, and is not concerned with different types of repos, so if people create new classes of repo, the core vcs class is not affected. Otherwise I can see that vcs_sync.py is going to grow with each type of repo we add to it - whereas having a separation that it is only responsible for taking a configuration of repos to convert and their target repos, it means any logic relating to particular classes of configs is kept separate.
- I noticed in my original case of failure (now fixed, but where the .hg/hgrc file was not getting properly created), the logs did not report that the file could not be written to, and I was only able to troubleshoot the problem by connecting a debugger and stepping through the code. I would like to fix it so that all errors are reported in the log - need to go back to that one and work out why it wasn’t
- The “hg” exe target assumes that hg will be under <working dir>/build/venv/bin/hg, however this only works if —base-work-dir is equal to the working directory (which is the default) but not if you change it. Also “build” and “venv” are also defaults that can be changed by command line options (—work-dir and —venv-path or —virtualenv-path), so instead of building the hg path from this, instead I changed it to use the already existing query_virtualenv_path() method, and pulled this config out of the config file, and set it directly in the vcs_sync.py module, so that it is also not needed in all config files. Just creating a bug and patch for this now.
- Raised bug 968195 - see below
Work in progress is here: https://github.com/petemoore/build-mozharness/tree/bug866260
Bug 968195 - vcs2vcs sync in mozharness does not work if repo_name is different to basename of repo url
Found this bug in mozharness, fixed, and created a patch.
Bug 967650 - final verification should report remote IP addresses
Added further debugging output after problems with CDN. Reviewed by rail, and committed/pushed.
Bug 966637 - Purge CDNs of firefox/releases/24.3.0esr
CDN issues, helped with troubleshooting.
Bug 905742 - Provide B2G Emulator builds for Darwin x86
Got a response back that we can go ahead with our compiler settings.
Bug 947209 - Auto-create bugzilla tracking bugs for machines
Added comments :)
Bug 965691 - Create a Comprehensive Slave Loan tool
Added comments :)
To look at over the next week:
Continue with this work on the OS X emulator builds.
Areas to develop:
To be discussed.
Quarterly goal tracking:
Notes / Actions: