Skip to content

Improve total build configuration time#54611

Merged
mark-vieira merged 10 commits intomasterfrom
config-time-improvements
Apr 8, 2020
Merged

Improve total build configuration time#54611
mark-vieira merged 10 commits intomasterfrom
config-time-improvements

Conversation

@mark-vieira
Copy link
Copy Markdown
Contributor

This commit includes a number of changes to reduce overall build
configuration time. These optimizations include:

  • Removing the usage of the 'nebula.info-scm' plugin. This plugin
    leverages jgit to load read various pieces of VCS information. This
    is mostly overkill and we have our own minimal implementation for
    determining the current commit id.
  • Removing unnecessary build dependencies such as perforce and jgit
    now that we don't need them. This reduces our classpath considerably.
  • Expanding the usage lazy task creation, particularly in our
    distribution projects. The archives and packages projects create
    lots of tasks with very complex configuration. Avoiding the creation
    of these tasks at configuration time gives us a nice boost.

Overall we've shaved close to 2 seconds off the best-case config time by ditching the SCM stuff and creating about 1700 fewer tasks.

Before
image

After
image

This commit includes a number of changes to reduce overall build
configuration time. These optimizations include:

 - Removing the usage of the 'nebula.info-scm' plugin. This plugin
   leverages jgit to load read various pieces of VCS information. This
   is mostly overkill and we have our own minimal implementation for
   determining the current commit id.
 - Removing unnecessary build dependencies such as perforce and jgit
   now that we don't need them. This reduces our classpath considerably.
 - Expanding the usage lazy task creation, particularly in our
   distribution projects. The archives and packages projects create
   lots of tasks with very complex configuration. Avoiding the creation
   of these tasks at configuration time gives us a nice boost.
@mark-vieira mark-vieira added >non-issue :Delivery/Build Build or test infrastructure labels Apr 1, 2020
@elasticmachine
Copy link
Copy Markdown
Collaborator

Pinging @elastic/es-core-infra (:Core/Infra/Build)

@mark-vieira mark-vieira self-assigned this Apr 6, 2020
Copy link
Copy Markdown
Member

@rjernst rjernst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

…ments

# Conflicts:
#	buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy
@mark-vieira mark-vieira merged commit 3b5fb80 into master Apr 8, 2020
@mark-vieira mark-vieira deleted the config-time-improvements branch April 8, 2020 22:31
mark-vieira added a commit to mark-vieira/elasticsearch that referenced this pull request Apr 8, 2020
This commit includes a number of changes to reduce overall build
configuration time. These optimizations include:

- Removing the usage of the 'nebula.info-scm' plugin. This plugin
   leverages jgit to load read various pieces of VCS information. This
   is mostly overkill and we have our own minimal implementation for
   determining the current commit id.
- Removing unnecessary build dependencies such as perforce and jgit
   now that we don't need them. This reduces our classpath considerably.
- Expanding the usage lazy task creation, particularly in our
   distribution projects. The archives and packages projects create
   lots of tasks with very complex configuration. Avoiding the creation
   of these tasks at configuration time gives us a nice boost.
mark-vieira added a commit that referenced this pull request Apr 8, 2020
This commit includes a number of changes to reduce overall build
configuration time. These optimizations include:

- Removing the usage of the 'nebula.info-scm' plugin. This plugin
   leverages jgit to load read various pieces of VCS information. This
   is mostly overkill and we have our own minimal implementation for
   determining the current commit id.
- Removing unnecessary build dependencies such as perforce and jgit
   now that we don't need them. This reduces our classpath considerably.
- Expanding the usage lazy task creation, particularly in our
   distribution projects. The archives and packages projects create
   lots of tasks with very complex configuration. Avoiding the creation
   of these tasks at configuration time gives us a nice boost.
mark-vieira added a commit that referenced this pull request Apr 8, 2020
This commit includes a number of changes to reduce overall build
configuration time. These optimizations include:

- Removing the usage of the 'nebula.info-scm' plugin. This plugin
   leverages jgit to load read various pieces of VCS information. This
   is mostly overkill and we have our own minimal implementation for
   determining the current commit id.
- Removing unnecessary build dependencies such as perforce and jgit
   now that we don't need them. This reduces our classpath considerably.
- Expanding the usage lazy task creation, particularly in our
   distribution projects. The archives and packages projects create
   lots of tasks with very complex configuration. Avoiding the creation
   of these tasks at configuration time gives us a nice boost.
@mark-vieira mark-vieira added the Team:Delivery Meta label for Delivery team label Nov 11, 2020
@jakelandis jakelandis removed the v8.0.0 label Jul 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Delivery/Build Build or test infrastructure >non-issue Team:Delivery Meta label for Delivery team v7.7.1 v7.8.0 v8.0.0-alpha1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants