Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 205 additions & 0 deletions 205 .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
# PowerShellOrg Code of Conduct

PowerShellOrg has adopted the Contributor Covenant version 3.0 as our Code of
Conduct. The full text follows, with PowerShellOrg-specific reporting and
enforcement details filled in.

## Our Pledge

We as members, contributors, leaders, and participants in the PowerShellOrg
community pledge to make participation in our community a harassment-free
experience for everyone, regardless of age, body size, visible or invisible
disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, caste, color, religion, sexual identity and orientation, or
any other dimension of diversity.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community, focused on the shared goal of
building and maintaining open source PowerShell tooling.

## Encouraged Behaviors

We encourage all community members to:

- Demonstrate empathy, kindness, and respect toward other people
- Be respectful of differing opinions, viewpoints, and experiences
- Give and gracefully accept constructive feedback
- Accept responsibility, apologize to those affected by our mistakes, and learn
from the experience
- Focus on what is best not just for us as individuals, but for the overall
community
- Use welcoming and inclusive language
- Help newcomers feel welcome and supported
- Credit others' contributions generously

## Unacceptable Behaviors

The following behaviors are considered violations of this Code of Conduct:

- Harassment of any participant, in any form
- Discrimination, particularly against members of vulnerable or underrepresented
groups
- The use of sexualized language or imagery, and sexual attention or advances of
any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment, including stalking, doxxing, or sustained
disruption of discussions
- Publishing others' private information, such as a physical or email address,
without their explicit permission
- Advocating for, or encouraging, any of the above behavior
- Other conduct which could reasonably be considered inappropriate in a
professional setting

We recognize that even well-intentioned actions can cause harm. Impact matters
more than intent. When informed that our behavior has caused harm, the
appropriate response is to listen, take responsibility, apologize sincerely, and
change the behavior — not to defend the original intent.

## Consent and Boundaries

Community members must respect stated boundaries immediately. When a member asks
another to stop a behavior, end a line of conversation, or leave them alone, the
request must be honored without argument.

Repeated boundary violations after a clear request to stop will be treated as
harassment.

## Scope

This Code of Conduct applies within all PowerShellOrg community spaces,
including:

- All repositories within github.com/PowerShellOrg
- GitHub Discussions, Issues, and Pull Requests
- Any official PowerShellOrg communication channels (chat platforms, mailing
lists, video calls)
- Public events where someone is officially representing PowerShellOrg

It also applies when an individual is officially representing the community in
public spaces. Examples of representing our community include using an official
email address, posting via an official social media account, or acting as an
appointed representative at an online or offline event.

This Code of Conduct also applies to behavior outside these spaces when that
behavior has the potential to adversely affect the safety and well-being of
community members.

## Reporting Concerns

If you experience or witness behavior that violates this Code of Conduct, please
report it. You will not be retaliated against for making a good-faith report.

**Primary contact:** <Privacy@powershell.org>

**Alternate contact:** Direct message to the Steward via GitHub or Discord.

When reporting, please include:

- Your contact information (so we can follow up)
- Names (real or usernames) of any individuals involved, including witnesses
- A description of what happened, with as much specificity as possible
- The approximate date and time
- Links to any relevant public records (issues, pull requests, chat messages)
- Any additional context that would help us understand the situation
- Whether you believe the situation is ongoing

Reports will be acknowledged within 72 hours.

All reports will be handled with discretion. We will not share your identity
with the person you are reporting without your explicit consent, except where
required by law.

## Addressing and Repairing Harm

When a Code of Conduct violation is reported, the Steward (with input from the
Council where appropriate) will determine an appropriate response. Our goal is
to address harm, support those affected, and where possible find a path for the
person who caused harm to repair the relationship and reintegrate into the
community.

The following is a guideline. The Steward retains discretion to apply responses
appropriate to the specific situation, including responses not listed here.

### 1. Private Conversation

**Community impact:** Use of inappropriate language, a single instance of
unprofessional behavior, or behavior that, while not severe, was unwelcome.

**Response:** A private written communication from the Steward, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community impact:** A violation through a single incident or series of
actions, or a pattern of behavior that has caused harm to one or more community
members.

**Response:** A written warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community impact:** A serious violation of community standards, including
sustained inappropriate behavior or harassment of an individual.

**Response:** A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community impact:** Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Response:** A permanent ban from any sort of public interaction within the
community.

## Restorative Paths

Where appropriate, and at the discretion of the Steward and the affected
parties, we may offer paths for community members who have caused harm to repair
the relationship and re-engage with the community. This may include:

- A private acknowledgment of the harm caused
- A public apology, when requested by those harmed
- A defined period of restricted participation
- A clear set of expectations for re-engagement

Restorative paths are not available for severe violations, including but not
limited to harassment, doxxing, threats of violence, or sexual misconduct.

## Appeals

A person who has been subject to enforcement action may appeal the decision by
writing to the Steward within 30 days. The Steward will review the appeal with
input from the Council and respond within 30 days.

If the appeal involves the Steward's own decision and the appellant believes the
Steward cannot review it impartially, they may request that the Council review
the appeal collectively. In that case, the Council reviews and decides by
majority, and the Steward does not vote.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 3.0, available at
<https://www.contributor-covenant.org/version/3/0/code_of_conduct/>.

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this Code of Conduct, see the FAQ at
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.

---

*Last updated: 2026/04/21. Reports go to <Privacy@powershell.org>.*
135 changes: 135 additions & 0 deletions 135 .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Contributing to PowerShellOrg Projects

Welcome — and thank you for considering a contribution. PowerShellOrg maintains PowerShell open-source tools that depend on community involvement to survive. Every bug report, doc fix, and pull request matters.

This document covers org-wide expectations. Individual repos may add project-specific guidance in their own `README.md` or `CONTRIBUTING.md`; where they conflict with this document, the repo-level doc takes precedence.

---

## Scope and governance

PowerShellOrg focuses on PowerShell tooling. Before proposing a large feature or a significant design change, read [GOVERNANCE.md](GOVERNANCE.md) to understand how decisions get made. For substantial proposals, open an issue first so we can align before you invest time writing code.

---

## Before you contribute

1. **Check existing issues and PRs.** Someone may already be working on it.
2. **Read the repo's README.** Each project documents its purpose, status, and any project-specific constraints.
3. **Agree to the license terms.** By submitting a contribution you agree that your work is licensed under the repo's license (MIT unless noted otherwise). See [License by contribution](#license-by-contribution) below.

---

## Development setup

All PowerShellOrg projects use the same build stack:

| Tool | Purpose |
|---|---|
| [psake](https://github.com/psake/psake) | Build automation |
| [PowerShellBuild](https://github.com/psake/PowerShellBuild) | Shared psake task library |
| [Pester 5](https://pester.dev) | Testing |
| [PSScriptAnalyzer](https://github.com/PowerShell/PSScriptAnalyzer) | Static analysis |

**Install build dependencies:**

```powershell
Install-Module psake -Scope CurrentUser -Force
Install-Module PowerShellBuild -Scope CurrentUser -Force
Install-Module Pester -Scope CurrentUser -Force -MinimumVersion '5.0'
Install-Module PSScriptAnalyzer -Scope CurrentUser -Force
```

**Common psake tasks** (every repo exposes these):

```powershell
Invoke-psake Init # First-time setup
Invoke-psake Clean # Remove build artifacts
Invoke-psake Build # Compile / stage the module
Invoke-psake Test # Run Pester tests
Invoke-psake Analyze # Run PSScriptAnalyzer
Invoke-psake Publish # Publish to PSGallery (maintainers only)
```

Run `Invoke-psake ?` to see all available tasks and their descriptions.

**Target platforms:** Windows PowerShell 5.1 and PowerShell 7.x on Windows, Linux, and macOS. Write code that runs on all six combinations.

---

## Branching and commits

- **Fork the repo** and work on a branch named for the thing you're changing: `fix/null-ref-in-invoke`, `feat/add-verbose-output`, `docs/update-readme`.
- **Keep commits focused.** One logical change per commit. Use the [Conventional Commits](https://www.conventionalcommits.org/) style:
- `fix: correct null reference in Invoke-PSDepend`
- `feat: add -WhatIf support to Install task`
- `docs: clarify quickstart example`
- `chore: bump Pester to 5.6`
- `test: add coverage for empty dependency file`
- **Do not squash history prematurely.** Maintainers may squash on merge if appropriate.
- **Keep `main` green.** Never force-push to `main` or shared branches.

---

## Pull request expectations

Before opening a PR:

- [ ] `Invoke-psake Test` passes locally on at least one platform
- [ ] `Invoke-psake Analyze` passes with no new warnings
- [ ] New behavior has Pester test coverage
- [ ] `CHANGELOG.md` is updated for user-facing changes
- [ ] Docs are updated if behavior changed

Fill out the PR template completely. PRs with empty templates or no linked issue for non-trivial changes will be asked to complete the template before review starts.

**Draft PRs** are welcome for early feedback. Mark them ready for review when you want the full review pass.

---

## Code review expectations

### For contributors

- Respond to review comments within **14 days**. If you need more time, say so — we will wait.
- If a comment is a question, answer it. If it is a request, either make the change or explain why you disagree.
- A maintainer will make the final call. Disagreements are discussed, not escalated.

### For maintainers

| Repo status | First response SLA | Review completion SLA |
|---|---|---|
| `status-active` | 7 days | 30 days |
| `status-stable` | 30 days | 60 days |

SLAs are best-effort commitments, not guarantees. If a repo is understaffed, the Steward will note this in the repo's README.

If a PR sits without response past the SLA, ping `@PowerShellOrg/maintainers` or open a discussion.

---

## Releases

Releases are cut by maintainers. The process:

1. Maintainer updates `CHANGELOG.md` and bumps the module version in the manifest.
2. Maintainer opens a PR titled `chore: release vX.Y.Z`.
3. PR is reviewed and merged to `main`.
4. Maintainer pushes a version tag (`vX.Y.Z`) to `main`.
5. The tag triggers `powershell-release.yml`, which builds, publishes to PSGallery, and creates a GitHub Release.

Contributors do not cut releases. If you believe a release is overdue, open an issue and tag the maintainers.

---

## License by contribution

By submitting a pull request or other contribution, you agree that your contribution is made under the same license as the project you are contributing to (MIT unless the repo states otherwise). You represent that you have the right to make the contribution under those terms.

If your employer has rights to code you write, ensure you have permission to contribute it before submitting.

---

## Questions?

See [SUPPORT.md](SUPPORT.md).
18 changes: 18 additions & 0 deletions 18 .github/DISCUSSION_TEMPLATE/announcements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
title: "[Announcement]: "
labels:
- announcement
body:
- type: markdown
attributes:
value: |
Use this template for official announcements: new releases, adoption news, governance changes, maintainer changes, or other org-wide updates.

Only maintainers and the Steward should post in this category. Community members can react and reply.

- type: textarea
id: announcement
attributes:
label: Announcement
description: The full announcement text. Include links to relevant issues, PRs, or releases.
validations:
required: true
16 changes: 16 additions & 0 deletions 16 .github/DISCUSSION_TEMPLATE/general.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
title: ""
labels: []
body:
- type: markdown
attributes:
value: |
This is the place for general conversation about PowerShellOrg and its projects.

For bug reports, use [Issues](../../issues/new/choose). For feature requests, use [Issues](../../issues/new/choose). For how-to questions, use the [Q&A category](../../discussions/new?category=q-a).

- type: textarea
id: discussion
attributes:
label: What's on your mind?
validations:
required: true
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.