Skip to content

Conversation

michaeltlombardi
Copy link
Collaborator

PR Summary

This change:

  1. Defines the configuration on a per-project basis in newly defined .project.data.json files. These files contain the build metadata for each project except for the RelativePath field.
  2. Replaces the root build.data.psd1 file with build.data.json containing the same data.
  3. Defines JSON Schemas to validate and provide in-editor help for modifying and creating new project data files and modifying the root build data file.
  4. Updates the build helpers to work with JSON data files instead of the PSD1.
  5. Provides a model to retrieve updated project data for use in the build script, even when the root build data file hasn't been updated yet.
  6. Defines the helper function Update-DscBuildData to pull changes from the per-project data files into the root build data file.

Except for using the JSON files, this change doesn't modify the build behavior. This change doesn't remove the copy_files.txt files, though they are now redundant with the project data files. Once we remove the old build script, the copy_files.txt files should also be removed.

PR Context

Prior to this change, any updates to project build configuration needed to land in the root build.data.psd1 file. This made it relatively easy to forget to update the configuration when working on a specific project.

@michaeltlombardi michaeltlombardi force-pushed the maint/main/per-project-data branch 2 times, most recently from 0d6f9f1 to 13e2f5b Compare October 14, 2025 20:42
Prior to this change, any updates to project build configuration needed
to land in the root `build.data.psd1` file. This made it relatively easy
to forget to update the configuration when working on a specific project.

This change:

1. Defines the configuration on a per-project basis in newly defined
   `.project.data.json` files. These files contain the build metadata for
   each project _except_ for the `RelativePath` field.
1. Replaces the root `build.data.psd1` file with `build.data.json` containing
   the same data.
1. Defines JSON Schemas to validate and provide in-editor help for modifying
   and creating new project data files and modifying the root build data file.
1. Updates the build helpers to work with JSON data files instead of the PSD1.
1. Provides a model to retrieve updated project data for use in the build script,
   even when the root build data file hasn't been updated yet.
1. Defines the helper function `Update-DscBuildData` to pull changes from the
   per-project data files into the root build data file.

Except for using the JSON files, this change doesn't modify the build behavior.
This change doesn't remove the `copy_files.txt` files, though they are now
redundant with the project data files. Once we remove the old build script,
the `copy_files.txt` files should also be removed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant