Skip to content

Harden NDI packaging and repository compliance - #13

Merged
vicvalentim merged 7 commits into
releasefrom
chore/repository-compliance
Aug 7, 2026
Merged

Harden NDI packaging and repository compliance#13
vicvalentim merged 7 commits into
releasefrom
chore/repository-compliance

Conversation

@vicvalentim

Copy link
Copy Markdown
Owner

Summary

This PR hardens the community-maintained Devolay fork for public distribution, clarifies NDI runtime handling, and modernizes repository compliance and CI policy.

NDI runtime packaging

  • Makes integrated NDI runtime packaging explicitly opt-in through -PenableIntegratedNdi=true.

  • Keeps normal builds and public Maven artifacts runtime-separated.

  • Prevents integrated NDI packaging in CI by default.

  • Allows an explicit override only for controlled/private CI environments.

  • Requires the corresponding NDI runtime license file whenever an integrated runtime is packaged.

  • Defines maintained integrated desktop targets as:

    • Windows x86-64
    • macOS x86-64
    • macOS arm64
    • Linux x86-64
  • Keeps Android on its separate legacy packaging path.

SDK discovery and validation

  • Adds explicit NDI SDK resolution through:

    • -DndiSdk
    • NDI_SDK_DIR
    • recognized platform installation locations
    • checkout-local SDK fallback
  • Validates required runtime and license files before integrated packaging.

  • Supports the current universal macOS NDI runtime for Intel and Apple Silicon.

Public distribution policy

  • Adds THIRD_PARTY_NOTICES.md.
  • Documents the Apache-2.0 status of Devolay and the separate licensing status of NDI headers and runtime binaries.
  • Adds explicit modification notices to inherited files modified by this fork.
  • Documents the runtime-separated public Maven distribution model.
  • Clarifies NDI trademark and independent-project status.
  • Adds a comprehensive release checklist in docs/RELEASING.md.

Build and CI

  • Replaces the legacy OSXCross-based CI workflow.

  • Removes the obsolete GitHub Packages publishing workflow.

  • Uses JDK 11 with the current WalkerKnapp Gradle 7.2cc wrapper.

  • Builds and validates:

    • Linux x86 / x86-64
    • Windows x86 / x86-64
    • macOS x86-64 / arm64
  • Explicitly rejects proprietary NDI runtime binaries from normal/public build artifacts.

  • Keeps Maven Central staging separate from the actual release upload workflow.

Validation

Validated on the final branch state:

  • local clean build on Apple Silicon with JDK 11

  • Java CI on Linux/Windows and macOS

  • macOS Intel and Apple Silicon native artifacts

  • Maven Central staging repository generation

  • generated POM validation

  • JReleaser Central bundle validation

  • Maven Local publication of io.github.vicvalentim:devolay:2.1.1-vic.1

  • public Maven artifact verified free of NDI runtime binaries

  • external Maven consumer successfully loaded NDI SDK 6.3.2 and created a DevolaySender

  • explicit integrated macOS build verified with:

    • Devolay JNI
    • libndi.dylib
    • corresponding NDI runtime license files
  • integrated NDI packaging remains disabled in public CI by default

Distribution model

The public Maven artifact does not redistribute the proprietary NDI runtime. Applications using Devolay are expected to obtain the NDI runtime separately in accordance with the applicable NDI SDK license and distribution terms.

Integrated runtime packaging remains an explicit local/application-packaging option and is not part of the Maven Central publication path.

@vicvalentim
vicvalentim merged commit 2bf427d into release Aug 7, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant