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:
PowerShellGet
module 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:
Tool | Description |
---|---|
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 Invoke-Build . |
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”.
GitHub fosters collaboration through the notion of pull requests. On GitHub, anyone can fork an existing repository into their own user account, where they can make private changes to their fork.
Once you have your own version of the project, you should:
** powershell
git clone https://github.com/<YOUR USER NAME>/<NAME OF THE PROJECT>.git
**
Create a new branch for your changes
You should make the changes in a branch for tracking them.
You should also create your own branch out of develop
.
You can read more here: Git Flow Guide.
cd <NAME OF THE PROJECT>
git checkout develop
git checkout -b <NAME FOR YOUR FEATURE>
Additional references:
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)
Checklist:- 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.
Additional material:
The projects have several tests to ensure everything is working as expected.
The tests are all in the /Tests/
folder.
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
Now our maintainers and reviewers will look over what you submitted.
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:
Write-Verbose
messages)Once the reviewer approves your Pull Request, it will be merged into the develop
branch and part of the next release.