swift-style

作者: contentstack

SwiftLint、Sources 佈局、Kanna/libxml2、平台、命名規範、此儲存庫中所有 Swift 程式碼的存取控制。

npx skills add https://github.com/contentstack/contentstack-utils-swift --skill swift-style

Swift style and repo layout – Contentstack Utils Swift

When to use

  • Editing any Swift under Sources/ or Tests/.
  • Adding files or changing platform/deployment assumptions.

Tooling

  • Run SwiftLint with .swiftlint.yml. Do not relax rules for new code without team agreement.
  • Sources/Kanna/ is excluded from SwiftLint—do not copy patterns into Sources/ContentstackUtils/ that would fail lint there.

Package layout

  • Library code: Sources/ContentstackUtils/.
  • Vendored Kanna: Sources/Kanna/—treat as third-party unless you are deliberately upgrading the vendored copy; prefer fixes in ContentstackUtils or documented Kanna upgrades.

Platforms and libxml2

  • Deployment targets: macOS 10.13+, iOS/tvOS 11+, watchOS 4+ (Package.swift). Avoid newer SDK-only APIs without availability checks or a deliberate target bump.
  • libxml2: Apple platforms use system libxml where applicable; Linux uses the libxml2 system target and pkg-config. Keep Modules/ and Package.swift conditionals in sync when changing platform support.

Naming and API surface

  • Swift conventions: types UpperCamelCase, members lowerCamelCase.
  • Preserve established public names even when imperfect (e.g. historical typos) unless doing a semver-major cleanup with maintainer agreement.

Imports and access control

  • import Foundation as needed; HTML parsing follows existing Kanna usage in this package.
  • Mark public / open intentionally; keep implementation internal or private unless tests use established @testable patterns.

References

  • skills/framework/SKILL.md (SPM, podspec, CI)
  • skills/testing/SKILL.md (lint exclusions in tests)

來自 contentstack 的更多技能

cms-assets
contentstack
為開發人員提供有關在Contentstack中組織、交付和轉換資產的建議。涵蓋資料夾結構、Image Delivery API轉換、發佈……
cms-branches-aliases
contentstack
為開發人員提供使用 Contentstack 分支進行隔離內容開發以及使用別名實現零停機內容部署的建議。涵蓋分支策略,…
cms-data-modeling-best-practices
contentstack
引導開發人員在Contentstack中使用最簡單的可重用結構來建模內容。此技能說明何時使用內容類型、引用、全域…
cms-live-preview-visual-builder-support-assistant
contentstack
診斷並指導 Contentstack Live Preview 和 Visual Builder 的實作。追蹤預覽上下文,識別中斷的合約,並建議…
cms-releases
contentstack
指導開發人員使用 Contentstack Releases 進行協調、原子化的內容部署。涵蓋版本建立、項目管理、分階段部署等內容。
cms-roles-permissions
contentstack
為開發人員提供關於在Contentstack中設計角色、權限、團隊和Token存取權限的建議。解釋內建角色、自訂角色、權限合併等。
cms-taxonomy
contentstack
為開發人員提供關於使用 Contentstack Taxonomy 進行結構化、階層式內容分類及傳遞端篩選的建議。涵蓋 taxonomy 與 tags 的比較,…
cms-tokens-authentication
contentstack
為開發人員提供建議,協助他們為前端、後端、自動化及第三方應用程式使用情境選擇正確的Contentstack驗證方法與權杖類型。…