mozbuild variable conversions part deux

mozbuild conversions are ongoing, the following is a status update around progress.

The following variables are now supported by mozbuild. Any content changes or addition to them should be made within directory specific moz.build files rather than editing Makefile.in:

  • ASFILES
  • CSRCS
  • CPP_SOURCES
  • EXPORT*
  • SIMPLE_PROGRAMS
  • XPCSHELL_TESTS

Some Makefile.in content for variables will persist while conversions are ongoing. As individual variables are converted and cleanup work is complete, expect changes to be made that will reject future use of converted variables within Makefile.in.

Pending variable conversions

  • CMMSRCS
  • DEFINES
  • HOST_LIBRARY_NAME
  • PREF_JS_EXPORTS
  • SUBMAKEFILES

Pass-through variable conversions:

To expedite migrating content from makefile to mozbuild, per-variable passthrough conversions can be added in python/mozbuild/ without having to fully implement a subroutine to handle each variable and nuances.

The following approach has helped avoid taking an all-or-nothing approach for transitioning variables.

  • Add support for an individual variable within python/mozbuild.
  • Convert makefiles within several directories.
  • loop on: review, try, submit
  • Submit several smaller patches containing bundles of files.
  • post conversion makefile cleanup.
  • reject variable use within Makefile.in
  • deprecate Makefile.in if all logic and variables have been converted.

These operations can be done asynchronously and test/random failures will not imply backing out the entire set of changed files for isolated problems. In contrast some of the early conversion patches contained 800+ files and cycled through several iterations and wide area failures before finally landing.

If you would like to work on some of the passthrough conversions an example from the CSRCS= conversion can be found here:

http://hg.mozilla.org/mozilla-central/rev/e3faa44c33e4

Add support for new varibles + unit test within python/mozbuild.
Convert makefile content to mozbuild.

Ongoing status tracking for variable conversions can be found here:

A list of variables currently suppored by moz.build can be found in sandbox_symbols.py:
http://hg.mozilla.org/mozilla-central/file/ddb7b23166ef/python/mozbuild/mozbuild/frontend/sandbox_symbols.py

Advertisements
This entry was posted in mozbuild. Bookmark the permalink.

One Response to mozbuild variable conversions part deux

  1. njn says:

    Excellent!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s