You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pre-generated files experimental-feature-windows.json and experimental-feature-linux.json exist only for building purpose -- so that the powershell.config.json file can include all experimental features for the pre-release builds to enable all experimental features by default. (A little background context -- you cannot start the newly built pwsh when doing cross-compilation for ARM architectures)
However, it turns out this becomes a burden to the developer who is working on an experimental feature -- they have to update those 2 files to make the new experimental feature enabled in CI builds and private builds. This makes declaring an experimental feature harder and more confusing, as there is no documentation saying that those 2 files need to be updated as part of creating an experimental feature.
This PR update Start-PSBuild to avoid depending on those 2 files for private builds and CI builds. For release builds, since we have a GitHub Action workflow to update those 2 files daily, we should be good.
If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.
Optimal pull request sizes drive a better predictable PR flow as they strike a
balance between between PR complexity and PR review overhead. PRs within the
optimal size (typical small, or medium sized PRs) mean:
Fast and predictable releases to production:
Optimal size changes are more likely to be reviewed faster with fewer
iterations.
Similarity in low PR complexity drives similar review times.
Review quality is likely higher as complexity is lower:
Bugs are more likely to be detected.
Code inconsistencies are more likely to be detected.
Knowledge sharing is improved within the participants:
Small portions can be assimilated better.
Better engineering practices are exercised:
Solving big problems by dividing them in well contained, smaller problems.
Exercising separation of concerns within the code changes.
What can I do to optimize my changes
Use the PullRequestQuantifier to quantify your PR accurately
Exclude files that are not necessary to be reviewed or do not increase the review complexity. Example: Autogenerated code, docs, project IDE setting files, binaries, etc. Check out the Excluded section from your prquantifier.yaml context profile.
Understand your typical change complexity, drive towards the desired complexity by adjusting the label mapping in your prquantifier.yaml context profile.
Only use the labels that matter to you, see context specification to customize your prquantifier.yaml context profile.
Change your engineering behaviors
For PRs that fall outside of the desired spectrum, review the details and check if:
Your PR could be split in smaller, self-contained PRs instead
Your PR only solves one particular issue. (For example, don't refactor and code new features in the same PR).
How to interpret the change counts in git diff output
One line was added: +1 -0
One line was deleted: +0 -1
One line was modified: +1 -1 (git diff doesn't know about modified, it will
interpret that line like one addition plus one deletion)
Change percentiles: Change characteristics (addition, deletion, modification)
of this PR in relation to all other PRs within the repository.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CL-BuildPackagingIndicates that a PR should be marked as a build or packaging change in the Change LogExtra Small
4 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary
The pre-generated files
experimental-feature-windows.jsonandexperimental-feature-linux.jsonexist only for building purpose -- so that thepowershell.config.jsonfile can include all experimental features for the pre-release builds to enable all experimental features by default. (A little background context -- you cannot start the newly built pwsh when doing cross-compilation for ARM architectures)However, it turns out this becomes a burden to the developer who is working on an experimental feature -- they have to update those 2 files to make the new experimental feature enabled in CI builds and private builds. This makes declaring an experimental feature harder and more confusing, as there is no documentation saying that those 2 files need to be updated as part of creating an experimental feature.
This PR update
Start-PSBuildto avoid depending on those 2 files for private builds and CI builds. For release builds, since we have a GitHub Action workflow to update those 2 files daily, we should be good.PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright headerWIP:or[ WIP ]to the beginning of the title (theWIPbot will keep its status check atPendingwhile the prefix is present) and remove the prefix when the PR is ready.