PowerShell/docs/git/submodules.md
Andrew Schwartzmeyer 4960e6e39c Refactor submodule documentation
Moved notes on submodules out of contributing guidelines and into
`docs/git/submodules.md` as most developers will touch them infrequently
now.
2016-04-07 13:56:20 -07:00

1.6 KiB

Submodules

While most developers will not have to deal with submodules on a regular basis, those who do should read this information. The submodules currently in this project are:

  • src/Modules/Pester: The Pester testing framework for PowerShell

  • src/libpsl-native/test/googletest: The GoogleTest framework for Linux native code

  • src/windows-build: Collection of pre-generated artifacts required until .NET CLI deprecates them (C# resource bindings) and NuGet packages that will soon be moved to a MyGet feed

  • src/omi: The Open Management Infrastructure project for PSRP on Linux (to be removed)

  • src/omi-provider: The OMI provider for PSRP on Linux (to be removed)

Rebase and Fast-Forward Merge Pull Requests in Submodules

This is not necessary in the superproject, only submodules!

DO NOT commit updates unless absolutely necessary. When submodules must be updated, a separate Pull Request must be submitted, reviewed, and merged before updating the superproject.

Because GitHub's "Merge Pull Request" button merges with --no-ff, an extra merge commit will always be created. This is especially annoying when trying to commit updates to submodules. Therefore our policy is to merge using the Git CLI after approval, with a rebase onto master to enable a fast-forward merge.

When committing submodule updates, ensure no other changes are in the same commit. Submodule bumps may be included in feature branches for ease of work, but the update must be independently approved before merging into master.