microsoft / microsoft/BuildXL

SDK not getting fully packaged

Open
#1,277 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
1k
Forks
167
PR merge metrics
No merged PRs in 30d

Description

Hi, I'm trying to use BuildXL external to Microsoft, and given the lightness of the documentation I've been running into a lot of confusing areas, one such area is the Sdks directory.

So, it appears to me that Sdks is supposed to be the dscript binding of a lot of internal functionality, is that correct?

So, to even get access to Sdk.Transformers, it seems that I have to:

  1. Install BuildXL as a sub-directory to my project,
  2. Set an environment variable so I have access to that directory: i.e. $env:BUILDXL_BIN=(Get-Item ".\Microsoft.BuildXL.win-x64.0.1.0-20200711.0").FullName
  3. add something like f`${Environment.getPathValue("BUILDXL_BIN")}/Sdk/Sdk.Transformers/package.config.dsc`, to my config.dsc.

So, that already seems suspect, so let me know if I'm just misunderstanding the setup, but this comes mostly from the HelloWorld example project, and seems to be the only real example of doing a DScript build.

So, the problem is, now when I try to use any additional functionality, such as Json, I run into some problems.

I try to import from Sdk.Json
import * as Json from "Sdk.Json";

And I get the error:
[0:03] error DX11230: C:\Temp\SetupBin\Git.Package.dsc(2,23): No resolver was found that owns module 'Sdk.Json'. Known modules are: [Sdk.Transformers, git.package], [Sdk.Prelude]

So, as I look into the distribution, the vast majority of the Sdk directory does not seem to be included, is that intentional? Is it intended I import the Sdk into my project?

Additional samples of using advanced functionality in DScript would greatly improve the experience of working-out how to properly use BuildXL.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the distributed Sdks directory and the HelloWorld example's package.config.dsc, then compare the available SDK modules with the reported Sdk.Transformers and missing Sdk.Json imports. Determine whether the packaging behavior is intentional and whether the issue requires changing the distribution or documenting the external-project setup.

Written by the indexing model from the issue text.

Assessment

Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.