Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Harmonize Arcade and Runtime Repos #6560

Closed
10 of 22 tasks
shawnro opened this issue Nov 13, 2020 · 1 comment
Closed
10 of 22 tasks

Harmonize Arcade and Runtime Repos #6560

shawnro opened this issue Nov 13, 2020 · 1 comment

Comments

@shawnro
Copy link
Member

shawnro commented Nov 13, 2020

Motivation and Business Impact

Arcade has mostly focused on providing shared infrastructure to build the product but is primarily focused on addressing the managed code needs and thus doesn't provide the same kind of support when it comes to building and testing native code.
On top of that, the dotnet/runtime repo merges code and different build infrastructures from various historical repositories (coreclr, corefx, core-setup, mono) that had onboarded to the Arcade infrastructure on different levels with introduction of many custom, non-standard steps and workarounds (from the Arcade perspective).

Based on the reasons above, as well as the feedback form the CLR and mono teams, the dotnet/runtime repo doesn't fully utilize the features offered by Arcade, which makes work with the repository more complex. There are also gaps in Arcade support of building the native code managing the native dependencies in reliable, reproducible and secure way.

The goal of this epic is to team-up with the clients, the CLR and Mono teams and identify and address these issues.

Areas of focus

These are the areas that we have determined based on discussion with the Runtime team and from our own investigation. More areas may be found as we investigate each space.

  1. Native Toolset Acquisition
    1. Acquisition of Xcopy-able toolsets.
    2. Acquisition of C++ toolset.
    3. Acquisition of the Windows sdk.
  2. Close the gaps between arcade standard packages and tasks, and dotnet/runtime specific implementations
    1. Address limitations of current shared infrastructure.
    2. Minimize usage of custom packages within the runtime repository.
    3. increase adoption of arcade distributed build templates to simplify runtime's template matrix.
    4. Simplify the Runtime Helix scenarios.
  3. Improve reproducibility of build / test failures
    1. Clear way for a developer to obtain an environment "close enough" to where the failure occurred.
  4. Incremental build performance improvements
    1. Provide Mono and CLR teams with build telemetry so that it's possible to reason about build efficiency.
    2. Determine next steps based on acquired data
  5. Explore improvements for the acquisition of dumps and native symbols for debugging failures

Business Objectives

  • Identify the areas of focus with the clients to deliver the most impact from their perspective.
  • Ensure that developers can clone and build the runtime repository with minimal possible prerequisites (e.g., Windows SDK) to set up.
  • Ensure local and CI builds run with a well defined set of dependencies
  • Ensure the build always runs with safe native dependencies
  • Ensure the dependency acquisition is reproducible
  • Standardize the repo-specific infrastructure in the runtime repository in favor of using the shared infrastructure.
  • Developers working in the runtime repository know how to investigate and, when possible, reproduce failures that occur in CI / Helix.
  • Identify the future improvements that are out of scope of this epic (e.g., better native dump and symbol acquisition experience)
  • Provide monitoring and tooling to facilitate long-term health and correctness of runtime's incremental build

Milestones

  • Initial formulation of areas of focus with the CLR and Mono teams.
  • Investigation of dump and symbol acquisition improvements.
  • Addition of build time measurements for the clean build and no-op rebuild scenarios.

Recently Triaged Issues

All issues in this section should be triaged by the v-team into one of their business objectives or features.

@missymessa
Copy link
Member

This work was completed a while ago. Moved the remaining open issues to https://github.com/dotnet/arcade/milestone/30

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants