Skip to content
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
5 changes: 5 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
<!-- =========================================================================
.github/CODE_OF_CONDUCT.md

Copyright © 2025 Network Pro Strategies (Network Pro™)
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
This file is part of Network Pro.
========================================================================== -->

<sup>[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
`CC-BY-4.0 OR GPL-3.0-or-later`</sup>

<section id="top">

# Contributor Covenant Code of Conduct
Expand Down
254 changes: 226 additions & 28 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
<!-- =========================================================================
.github/CONTRIBUTING.md

Copyright © 2025 Network Pro Strategies (Network Pro™)
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
This file is part of Network Pro.
========================================================================== -->

<section id="top">
<sup>[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
`CC-BY-4.0 OR GPL-3.0-or-later`</sup>

# 🤝 Contributing to Network Pro Strategies
<a name="top"></a>

</section>
# 🤝 Contributing to Network Pro Strategies

**Network Pro Strategies**
**Effective Date:** September 23, 2025
**Effective Date:** October 29, 2025

&nbsp;

Expand All @@ -35,6 +38,11 @@ Use the [issue tracker](https://github.com/netwk-pro/netwk-pro.github.io/issues)
- [GitHub Discussions](https://discuss.neteng.pro)
- [Discord](https://discord.neteng.pro)

**Please refer to the following documentation before initiating any feature or pull requests:**

- [Before You Begin](#before-you-begin)
- [Dependency Management](#dependency-management)

---

<section id="bug-reports">
Expand All @@ -56,14 +64,14 @@ _Example_:
<!-- markdownlint-disable MD042 -->

> **Title**: Checkbox toggle fails on Safari 17
> Steps:
> Steps:
>
> 1. Visit page X
> 2. Click toggle
> 1. Visit page X
> 2. Click toggle
> 3. Observe that...
> Expected: ...
> Actual: ...
> [Live example](#)
> Expected: ...
> Actual: ...
> [Live example](#)

<!-- markdownlint-enable MD042 -->

Expand Down Expand Up @@ -97,6 +105,151 @@ Strong proposals help us prioritize.

---

<section id="before-you-begin">

## 🧭 Before You Begin

Before opening a pull request, please make sure your environment and commits follow the project’s conventions.

### 🧱 Prerequisites

- **Node.js:** v22.x (LTS)
- **npm:** v11.x
_(See package.json → `engines` field for exact supported versions.)_

Install dependencies with:

```bash
npm ci
```

### 🪶 Code Style & Linting

This project uses:

- **[Prettier](https://prettier.io)** for formatting
- **[ESLint](https://eslint.org)** for static analysis
- **[Vitest](https://vitest.dev)** for testing

Please refer to **[Editor Configuration](https://github.com/netwk-pro/netwk-pro.github.io/wiki/Editor-Configuration)** in the [Wiki](https://github.com/netwk-pro/netwk-pro.github.io/wiki) for the full toolchain.

To ensure consistency, please run:

```bash
npm run checkout
```

This will:

- Verify Node and npm versions
- Run all tests (client + server)
- Lint and format your code
- Run SvelteKit’s type and build checks

> ✅ Tip: Run this before committing to catch issues early.
> If Prettier check fails, use `npm run format:fix` to correct formatting, then re-run `npm run checkout`.

### 🧩 Branch Naming Convention

Use clear, consistent names for feature branches:

| Type | Example | Description |
| -------- | ------------------------------ | ------------------------------ |
| Feature | `feature/auth0-integration` | New feature or enhancement |
| Fix | `fix/login-redirect` | Bug fix or regression |
| Chore | `chore/deps-update` | Dependency or tooling updates |
| Docs | `docs/contributing-update` | Documentation-only changes |
| Refactor | `refactor/component-structure` | Code cleanup or reorganization |

### 📝 Commit Messages

Please use clear, descriptive commit messages.
If you prefer a convention, **Conventional Commits** are supported:

```cpp
type(scope): short description

[optional body]
```

Examples:

```scss
fix(auth): handle expired access token
chore(deps): pin vitest to 3.2.4 for compatibility
docs(contributing): clarify build process for SvelteKit
```

</section>

&nbsp;

<sub>[Back to top](#top)</sub>

---

<section id="dependency-management">

## 📦 Dependency Management

This project uses [`npm-check-updates`](https://github.com/raineorshine/npm-check-updates) (NCU) to manage dependency upgrades safely and predictably.

### ⚙️ Configuration

All upgrade rules and exclusions are defined in the root `.ncurc.cjs` file.
This configuration ensures we only upgrade compatible dependencies and avoid breakage in core tooling.

**Example rules:**

- Only upgrade **production** and **dev** dependencies.
- Reject potentially breaking tools (e.g., `vitest`, `@vitest/coverage-v8`, `prettier`).
- Maintain clean, grouped CLI output during upgrade runs.

### 🪄 Commands

| Command | Description |
| ----------------------- | -------------------------------------------------------------------- |
| `npm run check:updates` | Lists available dependency updates without modifying `package.json`. |
| `npm run upgrade` | Applies safe upgrades using `.ncurc.cjs` rules. |

These commands are wrappers around NCU, keeping the behavior consistent across environments.

### 🚫 Rejected Packages

Certain packages are **intentionally pinned** due to breaking changes between major versions or ongoing test compatibility work.
Do **not manually upgrade** these unless the project maintainer specifically approves it.

Commonly pinned packages include:

- `vitest`
- `@vitest/coverage-v8`
- `prettier`
- `jsdom`

If you think one of these can be safely updated, open a discussion issue or mention it in your PR description before upgrading.

### 🧱 Why We Use This Approach

We separate **rules** (in `.ncurc.cjs`) from **presentation** (via npm scripts) to keep updates consistent:

- `.ncurc.cjs` defines _what_ can change
- `npm run upgrade` defines _how_ it’s displayed
- Contributors don’t need to remember CLI flags or project-specific exclusions

This ensures every update is:

- predictable
- consistent
- and easy to review

</section>

&nbsp;

<sub>[Back to top](#top)</sub>

---

<section id="pull-requests">

## 🔁 Pull Requests
Expand All @@ -105,19 +258,19 @@ Well-scoped, well-documented pull requests are the lifeblood of open-source.

### ⚠️ Ask First

Before large PRs (new features, refactors, dependency upgrades), please check with maintainers first.
Before starting large PRs (new features, major refactors, or dependency upgrades), please open an issue or discussion first to align on approach.

### 📋 Steps

1. **Fork the repo & set remotes**:
1. **Fork and clone the repo:**

```bash
git clone https://github.com/<your-username>/netwk-pro.github.io.git
cd netwk-pro.github.io
git remote add upstream https://github.com/netwk-pro/netwk-pro.github.io.git
```

2. **Stay Updated**
2. **Stay up to date with upstream:**

```bash
git checkout master
Expand All @@ -127,37 +280,60 @@ Before large PRs (new features, refactors, dependency upgrades), please check wi
3. **Create a topic branch:**

```bash
git checkout -b my-feature
git checkout -b feature/my-feature
```

4. **Install & test locally:**
4. **Install:**

```bash
cp .env.template .env
npm install
npm ci
npx playwright install
```

5. **Make and commit your changes:**
- Use clear, descriptive commit messages.
- Group related changes together logically.

6. **Test locally:**

```bash
npm run dev
npm run checkout
```

5. **Make your changes**
7. **Do not commit build artifacts.**

⚠️ SvelteKit builds are environment-specific and should not be checked into source control.
The CI/CD pipeline will automatically build, test, and deploy your changes.

(and commit them in logical chunks with good commit messages).
Please **do not commit**:
- `.svelte-kit/`
- `build/`
- `node_modules/`

6. **Build:**
To ensure your local environment matches CI:

```bash
npm run build
git add build/
git commit -m "Build: update assets"
```

7. **Push and open a PR:**
(This validates your build works, but does not need to be committed.)

8. **Push and open your PR:**

```bash
git push origin my-feature
git push origin feature/my-feature
```

Open your PR with a clear title, description, and reference the related issue (if any).
9. **Open your PR on GitHub:**
- Use a clear title and description.
- Reference any related issues.
- Include screenshots or logs if relevant.

---

✅ Tip: Keep your PRs small and focused — it’s easier to review and merge quickly.

</section>

Expand All @@ -169,9 +345,9 @@ Open your PR with a clear title, description, and reference the related issue (i

## ✅ Coding & Style Notes

- Use the defined code style (Prettier, ESLint, Stylelint, markdownlint)
- Avoid unrelated changes in the same PR
- Keep PRs focused and test-covered when appropriate
- Use the defined code style (Prettier, ESLint, Stylelint, markdownlint).
- Avoid unrelated changes in the same PR.
- Keep PRs focused and test-covered when appropriate.

&nbsp;

Expand All @@ -186,6 +362,28 @@ By submitting a pull request, you agree to license your contributions under:

<sub>[Back to top](#top)</sub>

&nbsp;

_Thanks again for your contribution and for being part of the Network Pro&trade; community!_

---

_Thanks again for your contribution and for being part of the Network Pro community!_
<div style="font-size: 12px; font-weight: bold; text-align: center;">

[Home](https://netwk.pro) &nbsp; | &nbsp; [Terms of Use](https://netwk.pro/terms-of-use)
[Privacy Policy](https://netwk.pro/privacy) &nbsp; | &nbsp; [Legal](https://netwk.pro/license)

</div>

&nbsp;

<span style="font-size: 12px; text-align: center;">

Copyright &copy; 2025
**[Network Pro Strategies](https://netwk.pro/)** (Network Pro&trade;)

Network Pro&trade;, the shield logo, and the "Locking Down Networks...&trade;" slogan are [trademarks](https://netwk.pro/license#trademark) of Network Pro Strategies.

Licensed under **[CC BY 4.0](https://netwk.pro/license#cc-by)** and the **[GNU GPL](https://netwk.pro/license#gnu-gpl)**, as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

</span>
5 changes: 5 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
<!-- =========================================================================
.github/SECURITY.md

Copyright © 2025 Network Pro Strategies (Network Pro™)
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
This file is part of Network Pro.
========================================================================== -->

<sup>[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
`CC-BY-4.0 OR GPL-3.0-or-later`</sup>

# 🔐 Security Policy

**Network Pro Strategies**
Expand Down
Loading