From fee7f376ae438b161a849efb033c91bb81357b6d Mon Sep 17 00:00:00 2001 From: Gale W Date: Thu, 11 Jun 2026 13:52:22 -0400 Subject: [PATCH] docs: align swiftui availability and license notes --- COMMERCIAL-USE.md | 42 +++++++------------ CONTRIBUTING.md | 2 +- ...PACHE-2.0 => LICENSE-HISTORICAL-APACHE-2.0 | 0 NOTICE | 10 ++--- README.md | 4 +- ROADMAP.md | 2 +- .../presentation-ui-targets-plan.md | 42 +++++++++++++++++++ 7 files changed, 65 insertions(+), 37 deletions(-) rename LICENSE-APACHE-2.0 => LICENSE-HISTORICAL-APACHE-2.0 (100%) diff --git a/COMMERCIAL-USE.md b/COMMERCIAL-USE.md index dcb5ab2..e4f7e10 100644 --- a/COMMERCIAL-USE.md +++ b/COMMERCIAL-USE.md @@ -1,40 +1,26 @@ # Commercial Use -SwiftASB is licensed under the PolyForm Noncommercial License 1.0.0 for -noncommercial use. The full license text is in [LICENSE](./LICENSE), and the -required notice is in [NOTICE](./NOTICE). +SwiftASB is publicly available under the PolyForm Noncommercial License 1.0.0. -## Noncommercial Use +Commercial use is not licensed by the public license. If you want to use +SwiftASB, its documentation, examples, generated wire models, maintainer tools, +AgentSB, UI component targets, package artifacts, or derived works for +business, employer, client, product, model-training, paid-service, or +revenue-generating work, contact Gale W at . -You may use SwiftASB under the PolyForm Noncommercial License for personal, -hobby, educational, research, public-interest, and other noncommercial work -that is not intended to generate revenue, reduce business costs, or provide a -commercial advantage. - -## Commercial Use - -Commercial use requires a separate written commercial license from Gale. - -For commercial licensing, contact Gale W at . - -Commercial use includes, without limitation, using SwiftASB, its documentation, -examples, generated wire models, maintainer tools, AgentSB, UI component -targets, package artifacts, or derived works: - -- for a business, employer, client, customer, or contractor relationship -- in a paid product, paid service, hosted service, or internal business tool -- for training, consulting, professional services, or product development -- to develop, evaluate, operate, or improve a commercial agentic coding - application or workflow -- to generate revenue, reduce business costs, or provide commercial advantage - -## Earlier Versions +Commercial terms are handled by separate written agreement. SwiftASB versions published before the PolyForm Noncommercial change remain available under the license terms that applied to those versions. The historical Apache License 2.0 text is preserved in -[LICENSE-APACHE-2.0](./LICENSE-APACHE-2.0). +[LICENSE-HISTORICAL-APACHE-2.0](./LICENSE-HISTORICAL-APACHE-2.0). ## Required Notice +PolyForm Noncommercial requires copies to include the license terms or URL and +any plain-text `Required Notice:` lines provided with the software. SwiftASB's +required notice is: + +```text Required Notice: Copyright 2026 Gale Williams (mailto:mail@galewilliams.com) +``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b8fa6be..67fb480 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -174,6 +174,6 @@ Record settled decisions in `ROADMAP.md`, DocC, maintainer docs, or this guide s Unless a contribution explicitly says otherwise in writing, contributions to SwiftASB are made under the PolyForm Noncommercial License 1.0.0 terms in [LICENSE](./LICENSE). The root legal-notice surface lives in [NOTICE](./NOTICE). -Commercial use requires a separate written commercial license from Gale. For commercial licensing, contact Gale W at . See [COMMERCIAL-USE.md](./COMMERCIAL-USE.md) for the current commercial-use policy. +Commercial use is not licensed by the public license. See [COMMERCIAL-USE.md](./COMMERCIAL-USE.md) for the current commercial-use policy and contact path. Do not submit contributions unless you have the right to license them under these terms and understand Gale may offer separate commercial licenses for SwiftASB. diff --git a/LICENSE-APACHE-2.0 b/LICENSE-HISTORICAL-APACHE-2.0 similarity index 100% rename from LICENSE-APACHE-2.0 rename to LICENSE-HISTORICAL-APACHE-2.0 diff --git a/NOTICE b/NOTICE index db9f883..fc59e86 100644 --- a/NOTICE +++ b/NOTICE @@ -6,14 +6,14 @@ Required Notice: Copyright 2026 Gale Williams (mailto:mail@galewilliams.com) This repository is licensed under the PolyForm Noncommercial License 1.0.0. See [LICENSE](./LICENSE) for the full license text. -Commercial use requires a separate written commercial license from Gale. -For commercial licensing, contact Gale W at . -See [COMMERCIAL-USE.md](./COMMERCIAL-USE.md) for the current commercial-use -policy. +Commercial use is not licensed by the public license. See +[COMMERCIAL-USE.md](./COMMERCIAL-USE.md) for the current commercial-use policy +and contact path. SwiftASB versions published before the PolyForm Noncommercial change remain available under the license terms that applied to those versions. The historical -Apache License 2.0 text is preserved in [LICENSE-APACHE-2.0](./LICENSE-APACHE-2.0). +Apache License 2.0 text is preserved in +[LICENSE-HISTORICAL-APACHE-2.0](./LICENSE-HISTORICAL-APACHE-2.0). Third-Party Trademarks And Brand References diff --git a/README.md b/README.md index 9a6a147..4340e24 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,6 @@ Agent-facing maintainer guidance lives in [AGENTS.md](./AGENTS.md). SwiftASB is licensed under the PolyForm Noncommercial License 1.0.0 for future public versions. See [LICENSE](./LICENSE), [NOTICE](./NOTICE), and [COMMERCIAL-USE.md](./COMMERCIAL-USE.md). -Commercial use requires a separate written commercial license from Gale. For commercial licensing, contact Gale W at . +Commercial use is not licensed by the public license. See [COMMERCIAL-USE.md](./COMMERCIAL-USE.md) for the current commercial-use policy and contact path. -SwiftASB versions published before the PolyForm Noncommercial change remain available under the license terms that applied to those versions. The historical Apache License 2.0 text is preserved in [LICENSE-APACHE-2.0](./LICENSE-APACHE-2.0). +SwiftASB versions published before the PolyForm Noncommercial change remain available under the license terms that applied to those versions. The historical Apache License 2.0 text is preserved in [LICENSE-HISTORICAL-APACHE-2.0](./LICENSE-HISTORICAL-APACHE-2.0). diff --git a/ROADMAP.md b/ROADMAP.md index e700026..67b0c4c 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1522,7 +1522,7 @@ Completed Decision: yes, but as opt-in suites rather than as part of the default `swift test` path while the live Codex runtime remains an external local dependency. - [x] Add an explicit source-available license for the package. Decision: future public versions now use the PolyForm Noncommercial License - 1.0.0, commercial use requires a separate written license from Gale, and the + 1.0.0, commercial use is handled by separate written agreement, and the historical Apache License 2.0 text is preserved for earlier versions. ### Exit Criteria diff --git a/docs/maintainers/presentation-ui-targets-plan.md b/docs/maintainers/presentation-ui-targets-plan.md index fe2c560..350673a 100644 --- a/docs/maintainers/presentation-ui-targets-plan.md +++ b/docs/maintainers/presentation-ui-targets-plan.md @@ -133,6 +133,46 @@ representable wrappers for dense surfaces such as the thread sidebar and turn timeline when scrolling, selection, reuse, or incremental updates are central to the component. +#### OS Availability Strategy + +Keep the public `ASBSwiftUI` entry points stable across the package's supported +macOS floor. The baseline files should build against the package minimum and +should expose views that can render without requiring the newest SDK features. + +Put OS-specific SwiftUI adoption in narrow availability islands: + +- Use `if #available(macOS 27.0, *)` inside stable public views when one public + component should choose a newer rendering path at runtime. +- Use `@available(macOS 27.0, *)` on declarations that only make sense when the + caller can opt into an OS 27-only style, modifier, helper view, or overload. +- Use `#if os(macOS)` for platform separation and `#if canImport(SwiftUI)` only + for module availability. Use `#if compiler(>=...)` only when new language or + SDK syntax would not parse on older supported toolchains. +- Keep availability checks in renderer, style, adapter, and modifier files. + Do not put OS-version branches in `ASBPresentation` snapshots or intents. + +Suggested file shape: + +```text +Sources/ASBSwiftUI/ + ThreadSidebar/ + ASBThreadSidebar.swift + ASBThreadSidebarRepresentable.swift + ASBThreadSidebar+macOS27.swift + Agenda/ + ASBAgendaPanel.swift + ASBAgendaPanel+macOS27.swift + Dashboard/ + ASBDashboardPanel.swift + ASBDashboardPanel+macOS27.swift + Support/ + ASBAvailabilitySupport.swift +``` + +This is a durable building-block rule for the SwiftUI target. It keeps new SDK +adoption readable without forcing OS-specific concepts into framework-neutral +presentation data. + ## Ownership Rules - SwiftASB owns runtime truth. @@ -332,6 +372,8 @@ view reuse inside `ASBAppKit`. are light current-state surfaces. - Document when consumers should choose native SwiftUI components versus AppKit-backed wrappers. +- Establish the OS availability file shape before adopting OS 27-specific + SwiftUI APIs, and keep baseline public views available at the package minimum. ### Slice 6: Turn Timeline Renderer