This page describes:
Here is a list for project specific instructions. These are more technical - pretty much what would have to be executed in the console.
To make changes to the code or documentation and send it as a Pull Request, only one tool is required:
PowerShellGetmodule must be installed.
Additional required modules are installed when
Invoke-Build is called.
There are more tools that are not required, but will make life much easier. Such as:
|Graphic Interfaces for Git||Git can get messy. A nice UI can be helpful. This page contains some for you to use.|
|Visual Studio Code||This is the editor of choice for working with Powershell. The project contains settings to make life easier.|
|PowerShell Extension for VSCode||This extension provides rich PowerShell language support for Visual Studio Code. Now you can write and debug PowerShell scripts using the excellent IDE-like interface that Visual Studio Code provides.|
|Plaster Module||Plaster is a template-based file and project generator written in PowerShell.|
|Pester Module||Build Automation in PowerShell. Will be installed as a dependency with
|PlatyPS||Write PowerShell External Help in Markdown.|
If you are interested in contributing and have nothing specific in mind, we are looking for help here: Issue that are “Up-For-Grabs”.
Once you have your own version of the project, you should:
git clone https://github.com/<YOUR USER NAME>/<NAME OF THE PROJECT>.git
develop. You can read more here: Git Flow Guide.
cd <NAME OF THE PROJECT> git checkout develop git checkout -b <NAME FOR YOUR FEATURE>
We do not impose a specific way to write code.
However, there are some Guidelines which should be followed at all times.
The checklist when creating the Pull Request will look something like this:
Types of changes:
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to change)
- My code follows the code style of this project.
- I have added Pester Tests that describe what my changes should do.
- I have updated the documentation accordingly.
In general, PowerShell is verbose in a way that the code explains what it does. So, minimal code documentation is needed.
When code is not easy to read or requires more extensive explaining (such as workarounds), use comments to explain what it does to make it more readable for others.
All parts of the code that affect user interaction are expected to have detailed documentation. This includes (but is not limited to) Functions, Parameters and Output Types.
It is also expected that the tests that describe the functionality are either updated or created, if the functionality is new.
The projects have several tests to ensure everything is working as expected.
The tests are all in the
The projects are set up so that running
Invoke-Build will make sure the code is working as the tests describe.
The command must be run from the root of the project.
When you are done and all tests pass, you can send the changes “upstream” (to the AtlassianPS project).
Here is how you create the Pull Request: Creating a Pull Request
To help them, the GitHub repositories will use CI jobs to run the tests and report if the submitted code is working as expected.
Every Pull Request must be approved after review and the reviewer(s) might:
Once the reviewer approves your Pull Request, it will be merged into the
develop branch and part of the next release.