Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
260d997
Add commercial licensing path
masarray Jul 14, 2026
2610382
Document ARSVIN copyright identity
masarray Jul 14, 2026
2b77566
Add trademark and branding policy
masarray Jul 14, 2026
29c5f93
Add contributor license agreement
masarray Jul 14, 2026
db3e2e2
Add Developer Certificate of Origin
masarray Jul 14, 2026
1d441d9
Document GPL and historical Apache boundary
masarray Jul 14, 2026
8756115
Add external IP and provenance review
masarray Jul 14, 2026
2a825ac
Add public wording and claim review
masarray Jul 14, 2026
56d0e80
Relicense current ARSVIN main under GPL-3.0-or-later
masarray Jul 14, 2026
844a365
Clarify current GPL and historical licensing boundary
masarray Jul 14, 2026
9e45407
Set current package license to GPL-3.0-or-later
masarray Jul 14, 2026
22ed6f6
Rebuild README for GPL community and commercial licensing
masarray Jul 14, 2026
3db288c
Align contribution policy with GPL and commercial licensing
masarray Jul 14, 2026
40efa69
Update repository engineering guidance
masarray Jul 14, 2026
5fe2011
Add licensing and provenance documentation index
masarray Jul 14, 2026
80a1fa4
Add licensing provenance and claim gates to PR template
masarray Jul 14, 2026
a4cc6ed
Update landing page for GPL and commercial licensing
masarray Jul 14, 2026
c2a43f7
Add GPL-aware static documentation site builder
masarray Jul 14, 2026
a8862b1
Route public site generation through GPL-aware builder
masarray Jul 14, 2026
3e5f629
Package current GPL and commercial licensing documents
masarray Jul 14, 2026
220284a
Install GPL and commercial licensing documents
masarray Jul 14, 2026
b347891
Add current-license and public-wording verification
masarray Jul 14, 2026
f93e69d
Run licensing and wording verification before build
masarray Jul 14, 2026
af873a4
Enforce current licensing and wording in CI
masarray Jul 14, 2026
fd3ebad
Validate licensing before Pages deployment
masarray Jul 14, 2026
c928b19
Update web manifest licensing description
masarray Jul 14, 2026
417fd0d
Record GPL and commercial licensing transition
masarray Jul 14, 2026
1d08e97
Refresh repository audit after licensing migration
masarray Jul 14, 2026
5cf2546
Update release checklist for current GPL packages
masarray Jul 14, 2026
fdda37a
Update SEO launch guidance for current licensing and scope
masarray Jul 14, 2026
47f5c8e
Update recommended GitHub metadata for GPL licensing
masarray Jul 14, 2026
a49ec76
Update build and release guide for GPL packages
masarray Jul 14, 2026
2e2b93b
Clarify third-party licensing boundary
masarray Jul 14, 2026
2cf3693
Refresh release notes and licensing boundary
masarray Jul 14, 2026
81480a7
Refresh roadmap for Publisher Subscriber and licensing model
masarray Jul 14, 2026
2e22eb2
Expand public terminology and licensing policy
masarray Jul 14, 2026
ee5b9b4
Separate cybersecurity and operational reporting boundaries
masarray Jul 14, 2026
70b739d
Clarify community commercial and data support boundaries
masarray Jul 14, 2026
6a90ebb
Clarify operational and evidence boundaries
masarray Jul 14, 2026
e0fd0f1
Replace broad safety wording with live-operation guardrails
masarray Jul 14, 2026
59e8723
Record the ARSVIN license transition
masarray Jul 14, 2026
9138cec
Add concise current licensing summary
masarray Jul 14, 2026
f43dbb3
Add documentation entry point
masarray Jul 14, 2026
491de8b
Add commercial licensing FAQ
masarray Jul 14, 2026
e412400
Document required package legal files
masarray Jul 14, 2026
0bb1b1d
Add completed licensing transition checklist
masarray Jul 14, 2026
4fd76a9
Add legal and provenance navigation
masarray Jul 14, 2026
46e1dff
Describe community and commercial model
masarray Jul 14, 2026
c0b54cc
Add concise legal notice for documentation readers
masarray Jul 14, 2026
4e90a04
Document current-release license clarity rule
masarray Jul 14, 2026
05472fb
Add final legal model summary
masarray Jul 14, 2026
a443d3c
Clarify commercial rights notice
masarray Jul 14, 2026
06ef8e9
Remove redundant legal summary document
masarray Jul 14, 2026
c3faaa2
Remove redundant current-license rule document
masarray Jul 14, 2026
d5360a2
Remove redundant final legal model summary
masarray Jul 14, 2026
6088e7f
Remove redundant commercial rights summary
masarray Jul 14, 2026
50287ab
Remove redundant licensing model summary
masarray Jul 14, 2026
6e7cfa8
Remove redundant license summary document
masarray Jul 14, 2026
9a73563
Consolidate legal and provenance documentation index
masarray Jul 14, 2026
3a73f42
Improve issue routing for security support and commercial inquiries
masarray Jul 14, 2026
0ee93b8
Add concise transition implementation notes
masarray Jul 14, 2026
f5119d1
Remove redundant transition implementation notes
masarray Jul 14, 2026
a4b7c56
Add commercial notice clarification
masarray Jul 14, 2026
902fda8
Remove accidental placeholder file
masarray Jul 14, 2026
2819ca0
noop
masarray Jul 14, 2026
f7abaec
Remove accidental placeholder
masarray Jul 14, 2026
77a0378
temporary
masarray Jul 14, 2026
d3b0d7b
Remove accidental temporary file
masarray Jul 14, 2026
828dc83
Fix generated documentation links and root references
masarray Jul 14, 2026
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
14 changes: 10 additions & 4 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: Security report
- name: Security vulnerability
url: https://github.com/masarray/arsvin/security/advisories/new
about: Please report security issues privately.
- name: Support guide
about: Report vulnerabilities privately. Do not publish exploit or confidential evidence.
- name: Support and sanitization guide
url: https://github.com/masarray/arsvin/blob/main/SUPPORT.md
about: Read what information to include in support requests.
about: Review environment details, evidence limits, and data-sanitization requirements before filing an issue.
- name: Commercial licensing
url: https://github.com/masarray/arsvin/blob/main/COMMERCIAL-LICENSE.md
about: Review the commercial licensing notice. Do not post confidential commercial or station information publicly.
- name: Product website
url: https://masarray.github.io/arsvin/
about: Product overview, downloads, engineering documentation, and licensing model.
51 changes: 36 additions & 15 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
## Summary
## Engineering problem

Describe the change, why it is needed, and the user or engineering impact.
Describe the change, why it is needed, and whether it belongs in the shared engine, Publisher, Subscriber, documentation, website, or release tooling.

## Solution

Summarize the implementation and any application/engine boundary changes.

## Type of change

Expand All @@ -11,29 +15,46 @@ Describe the change, why it is needed, and the user or engineering impact.
- [ ] Refactor
- [ ] Build / CI
- [ ] Release preparation
- [ ] Safety wording / guardrail
- [ ] Operational wording / guardrail
- [ ] Licensing / provenance

## Engineering notes
## Engineering and evidence notes

Explain any IEC 61850, Sampled Values, SCL/SCD, COMTRADE, PTP, timing, packet-layout, or UI behavior affected by this PR. Write **Not applicable** when the change is unrelated to runtime engineering behavior.
Explain any IEC 61850, Sampled Values, SCL/SCD, COMTRADE, timing, packet-layout, capture, or UI behavior. Identify the requirement source and evidence environment. Write **Not applicable** when unrelated to runtime behavior.

## Safety impact
## Operational impact

- [ ] No runtime or live-network behavior changes
- [ ] Changes offline parsing, display, reporting, or PCAP behavior only
- [ ] Changes live capture behavior and was tested on an authorized isolated link
- [ ] Changes live packet publishing and was tested on an authorized isolated link
- [ ] Safety documentation or warnings were reviewed and updated where needed
- [ ] Offline parsing, display, reporting, or PCAP behavior only
- [ ] Live capture was tested only on an authorized isolated link
- [ ] Live transmission was tested only on an authorized isolated link
- [ ] Operational documentation and warnings were reviewed

## Validation

- [ ] Current-license, provenance, and public-wording checks passed
- [ ] `dotnet build ARSVIN.sln -c Release`
- [ ] `dotnet test tests/ARSVIN.Tests/ARSVIN.Tests.csproj -c Release`
- [ ] Public-site validator passed, when applicable
- [ ] Relevant automated tests and coverage gates passed
- [ ] Public-site build and validator passed, when applicable
- [ ] Release packaging and installer smoke test passed, when applicable
- [ ] Manual dry run tested, when applicable
- [ ] Live mode tested only on an isolated lab link, when applicable
- [ ] Simulator, loopback, or dry-run evidence recorded, when applicable
- [ ] Laboratory equipment evidence recorded, when applicable
- [ ] Public documentation updated for changed behavior or claims

## Data and external-material boundary

- [ ] No confidential customer, employer, station, credential, restricted network, or production data is included
- [ ] Any SCL, COMTRADE, PCAP, screenshot, or diagnostic sample is synthetic, contributor-owned, or documented as authorized and sanitized
- [ ] No external proprietary code, API composition, example, test, wording, screenshot, manual, report, asset, or UI design was copied or mechanically translated
- [ ] The change does not claim formal conformance, universal interoperability, calibrated measurement, deterministic timing, functional safety, cybersecurity approval, switching authority, or IED-consumption proof

## Contribution licensing

- [ ] I have read and affirmatively agree to `CONTRIBUTOR-LICENSE-AGREEMENT.md`
- [ ] I have the legal right and any required employer or organizational authorization to submit this contribution
- [ ] Every commit includes a DCO sign-off: `Signed-off-by: Name <email>`
- [ ] Any third-party material is identified with its license and provenance

## Evidence

Add relevant screenshots, sanitized Wireshark notes, test output, release artifact names, or a concise explanation when visual/packet evidence is not applicable.
Add the smallest relevant test output, screenshots, or sanitized protocol evidence. Explain what the evidence demonstrates and what it does not demonstrate.
10 changes: 8 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@ permissions:

jobs:
public-content:
name: Validate public terminology
name: Validate licensing, provenance, and public wording
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7

- name: Verify current GPL and commercial-license boundaries
run: python3 scripts/verify-current-license.py

- name: Validate public terminology neutrality
id: neutrality
continue-on-error: true
Expand Down Expand Up @@ -54,6 +57,9 @@ jobs:
src/**/packages.lock.json
tests/**/packages.lock.json

- name: Verify current licensing and public wording
run: python scripts/verify-current-license.py

- name: Build public site and HTML documentation
run: python scripts/build-public-site.py --output artifacts/public-site

Expand Down Expand Up @@ -97,4 +103,4 @@ jobs:
run: dotnet list src/ARSVIN/ARSVIN.csproj package --vulnerable --include-transitive

- name: Subscriber dependency vulnerability report
run: dotnet list src/ARSVIN.Subscriber/ARSVIN.Subscriber.csproj package --vulnerable --include-transitive
run: dotnet list src/ARSVIN.Subscriber/ARSVIN.Subscriber.csproj package --vulnerable --include-transitive
12 changes: 11 additions & 1 deletion .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,17 @@ on:
paths:
- 'site/**'
- 'docs/**'
- 'README.md'
- 'LICENSE'
- 'NOTICE'
- 'COMMERCIAL-LICENSE.md'
- 'TRADEMARK.md'
- 'scripts/build-public-site.py'
- 'scripts/public_site_builder.py'
- 'scripts/validate-public-site.ps1'
- 'scripts/validate-public-site.py'
- 'scripts/validate-public-neutrality.py'
- 'scripts/verify-current-license.py'
- '.github/workflows/pages.yml'
workflow_dispatch:

Expand All @@ -32,6 +39,9 @@ jobs:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7

- name: Verify current GPL and commercial-license boundaries
run: python3 scripts/verify-current-license.py

- name: Validate public terminology neutrality
run: python3 scripts/validate-public-neutrality.py

Expand All @@ -52,4 +62,4 @@ jobs:

- name: Deploy
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
35 changes: 27 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
# Repository Guidance

ARSVIN is a focused IEC 61850 Sampled Values injector.
ARSVIN is an IEC 61850 Sampled Values engineering suite with a shared engine, ARSVIN Publisher, and ArSubsv Subscriber.

Priority order:
## Priority order

1. Correct SV injection behavior.
2. Clean public user workflow.
3. Multi-stream and COMTRADE reliability.
4. Release automation and documentation.
5. Avoid analyzer-style scope creep.
1. Observable and evidence-backed Sampled Values behavior.
2. Explicit operational guardrails for live capture and transmission.
3. Clear separation between Publisher, Subscriber, and shared engine responsibilities.
4. Repeatable SCL, COMTRADE, PCAP, scenario, test, and release workflows.
5. Accurate public documentation, licensing, provenance, and claim boundaries.
6. Performance and usability improvements that preserve engineering evidence.

Do not add broad station-analysis features unless they directly support SV injection.
## Architecture boundary

Protocol parsing, stream generation, SCL semantics, profile observations, comparison logic, capture, and transport behavior belong in `ARSVIN.Engine`. WPF applications should consume typed engine contracts rather than reimplement protocol rules.

## External-material boundary

External software may be used only as a lawfully licensed black-box interoperability endpoint. Do not use unrelated source, API composition, examples, tests, internal structure, documentation wording, UI composition, screenshots, icons, reports, or extracted resources as implementation design material.

Use synthetic or contributor-owned fixtures. Real SCL, COMTRADE, PCAP, screenshots, and diagnostics require documented authority to share and sanitization.

## Public claim boundary

Do not claim formal IEC 61850 conformance, universal interoperability, calibrated measurement, deterministic real-time execution, functional safety, cybersecurity certification, switching authority, or proof that another IED consumed a multicast stream.

State the evidence source and use scoped terms such as implemented, tested, observed, provisional, unsupported, or not yet verified.

## Licensing boundary

Current community revisions are `GPL-3.0-or-later`. Historical Apache-2.0 revisions end at `9440f08b6909ef2dc93dd483cfdcb4e1e86077d0` and remain on `archive/apache-2.0-final`. Commercial rights require a separate negotiated agreement and can cover only rights controlled by the relevant copyright holder.
Loading
Loading