Skip to content

Improve contributor experience with build.cmd #3645

@abelbraaksma

Description

@abelbraaksma

This issue is to minute suggested changes in a soon to be created PR. This follows from my recent bug reports on build.cmd. At the moment I am thinking of some cleaning up and slightly improved error reporting:

  1. Remove code that can cause build.cmd and related build scripts to fallback to older build tools
    • For instance, if the VS2017 tools are not found, it will default to VS2015 or even VS2012 tools, with spurious errors as a result, this should be removed).
  2. Fix that build.cmd all is broken, i.e. it removes FSharp.Core.dll from the Debug\net40\bin output directory (ideas???)
  3. Raise a clean and clear error if an elevated command prompt is required:
    • scenario: seeing build errors after waiting a few minutes is rather tedious, and often nothing truly suggests you forgot to use an elevated command prompt).
  4. Possibly: do not execute ngen if it is not required for the build:
    • this could alleviate problems some contributors have mentioned, in particular when they are in a restricted environment (question: not sure if there are other scenarios where an elevated command prompt is required).
  5. Possibly: update the build server to run several variants of the build scripts. Or put this in a NUnit test. The output could be checked for the presence of errors/warnings, if not we have a failing test. This could help any contributor to make sure his code is clean of warnings, or fails in a lesser-used build scenario.
  6. Remove warnings
    • several warnings are currently raised. They should either be suppressed, or fixed. For instance:

      D:\Projects\OpenSource\VisualFSharp\src\buildtools\fslex\fslexast.fs(14,6): warning FS0044: This construct is deprecated. The type 'Position' is less accessible than the value, member or type 'Code' it is used in.↔As of F# 4.1, the accessibility of type abbreviations is checked at compile-time. Consider changing the accessibility of the type abbreviation. Ignoring this warning might lead to runtime errors.

      D:\Projects\OpenSource\VisualFSharp\src\fsharp\FSharp.Compiler.Interactive.Settings\obj\debug\netstandard1.6\FSInteractiveSettings.fs(105,16): warning FS1182: The value 'GetStringFunc' is unused

      build.cmd all currently gives 685 warnings (!!!):
      image

Other suggestions are welcome. I think if we make the learning curve less steep for new contributors, it may invite more of them to the club :).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions