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

Allow nogo to depend on go_library #2922

Merged
merged 4 commits into from
Sep 23, 2021

Commits on Jul 13, 2021

  1. This is a limited version of a previous PR that added a config transi…

    …tion to
    
    the nogo rule that enabled it to build itself without depending on itself.
    
    Unfortunately that PR had to be rolled back because of complexities around
    host configuration. Host configuration is terminal (specifically user defined
    transitions are skipped) and therefore the transition in the nogo rule that
    avoids dependency cycles was skipped. This prevented all host mode tools from
    building.
    
    This PR works around host mode limitations via using a config_setting with a
    default value of noop nogo. [Making host mode buildable - although without nogo].
    This config_setting is controlled via 2 boolean settings - 1 indicating that
    we are currently bootstrapping nogo (and therefore cannot depend on it) and
    another indicating that we are requesting the nogo binary thru go_context_data rule
    to execute a build. This allows target, exec and other non-hostmode configs
    to use nogo (as long as we're not bootstrapping nogo).
    
    This PR replaces go_tool_librarys in org_golang_x_tools with aliases to the
    go_default_library. go_tool_library cannot be removed 100% because it is used
    by other parts of go_rules (eg: coverdata) to avoid circular deps.
    thomas-wk-cb committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    f61dd9d View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2021

  1. Configuration menu
    Copy the full SHA
    46172f6 View commit details
    Browse the repository at this point in the history
  2. This is a limited version of a previous PR that added a config transi…

    …tion to
    
    the nogo rule that enabled it to build itself without depending on itself.
    
    Unfortunately that PR had to be rolled back because of complexities around
    host configuration. Host configuration is terminal (specifically user defined
    transitions are skipped) and therefore the transition in the nogo rule that
    avoids dependency cycles was skipped. This prevented all host mode tools from
    building.
    
    This PR works around host mode limitations via using a config_setting with a
    default value of noop nogo. [Making host mode buildable - although without nogo].
    This config_setting is controlled via 2 boolean settings - 1 indicating that
    we are currently bootstrapping nogo (and therefore cannot depend on it) and
    another indicating that we are requesting the nogo binary thru go_context_data rule
    to execute a build. This allows target, exec and other non-hostmode configs
    to use nogo (as long as we're not bootstrapping nogo).
    
    This PR replaces go_tool_librarys in org_golang_x_tools with aliases to the
    go_default_library. go_tool_library cannot be removed 100% because it is used
    by other parts of go_rules (eg: coverdata) to avoid circular deps.
    thomas-wk-cb authored and thomas-wk committed Sep 22, 2021
    Configuration menu
    Copy the full SHA
    8823c26 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'nogo_master_shim' of git+ssh://github.com/thomas-wk/rul…

    …es_go into nogo_master_shim
    thomas-wk committed Sep 22, 2021
    Configuration menu
    Copy the full SHA
    6ee6b06 View commit details
    Browse the repository at this point in the history