Harden NDI packaging and repository compliance - #13
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Keeps Android on its separate legacy packaging path.
SDK discovery and validation
Adds explicit NDI SDK resolution through:
-DndiSdkNDI_SDK_DIRValidates required runtime and license files before integrated packaging.
Supports the current universal macOS NDI runtime for Intel and Apple Silicon.
Public distribution policy
THIRD_PARTY_NOTICES.md.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:
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.1public Maven artifact verified free of NDI runtime binaries
external Maven consumer successfully loaded NDI SDK 6.3.2 and created a
DevolaySenderexplicit integrated macOS build verified with:
libndi.dylibintegrated 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.