Skip to content

Release 1.1.0#23

Merged
PierreJanineh merged 5 commits into
mainfrom
release/1.1.0
Jun 1, 2026
Merged

Release 1.1.0#23
PierreJanineh merged 5 commits into
mainfrom
release/1.1.0

Conversation

@PierreJanineh

Copy link
Copy Markdown
Member

📋 Release 1.1.0

First release since 1.0.4. Minor bump — adds new public API (Options initializer) and a documentation/CI overhaul.

Added

  • Public Options initializer — construct Options(...) directly (was previously impossible from a consumer module; only .setX() modifiers worked).
  • Unit test target (ProgressUITests) — Options defaults/init, Progressable.calculate(from:), GrowDirection alignment.
  • DocC catalog + published to GitHub Pages on release (via swift-docc-plugin).
  • Contribution guide, issue/PR templates, CHANGELOG.

Changed

  • CI builds + tests across all 6 platforms; redundant runs avoided.

Fixed

  • README "Dynamic Colors"/"Customization Options" examples now compile.
  • DocC symbol-link warnings cleaned up — docs build with 0 warnings.

Security

  • Least-privilege GITHUB_TOKEN (contents: read) on Build & Test (resolves CodeQL alerts).

Verification

  • xcrun swift test → 9 tests, 0 failures.
  • DocC generate-documentation → 0 warnings (full audit completed).

After merge: tag 1.1.0, publish the GitHub Release, back-merge to develop, and the Pages deploy fires automatically.

🤖 Generated with Claude Code

PierreJanineh and others added 5 commits May 30, 2026 21:36
…20)

* docs: add CLAUDE.md with build, layout, and API conventions

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: public Options init, tests, CI matrix, docs & template fixes

- Options: add public memberwise initializer so consumers can construct
  Options(...) directly (synthesized memberwise init was internal-only).
- Tests: add ProgressUITests target (Options defaults/init, Progressable
  bucketing, GrowDirection alignment).
- CI: bump checkout v3->v4, run `swift test`, build across all supported
  platforms (iOS/macOS/macCatalyst/watchOS/tvOS/visionOS).
- Docs: fix uncompilable README examples; add DocC catalog, CHANGELOG,
  CONTRIBUTING; document Git Flow branching/release conventions in CLAUDE.md.
- Templates: move PR template to default path so it auto-applies; add a
  required ProgressUI-version field to the bug report; refresh Xcode/iOS
  example versions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: publish DocC documentation to GitHub Pages

- Add swift-docc-plugin (build-tool only) to Package.swift.
- Add Documentation workflow that builds the ProgressUI.docc catalog for
  static hosting and deploys it to GitHub Pages on push to main.
- Gitignore Package.resolved (no lockfile imposed on consumers) and the
  generated /docs site.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: avoid redundant Build & Test runs

- Build on push for `main` only; `develop` is reached via PR, which already
  runs the suite, so per-merge double runs are eliminated.
- Add a concurrency group to cancel superseded runs for the same ref.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: note DocC Pages publishing and CI redundancy change in CHANGELOG

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…#21)

* chore: example linear-progress demo, shared schemes, ignore local artifacts

- Example: add a ViewModel-driven random progress loop and a TimelineView
  linear-progress demo in ContentView.
- Add shared Xcode schemes (ProgressUI, Example) so `xcodebuild -scheme` is
  stable.
- .gitignore: ignore `.claude` local state, `*.local.*` files, and `/td`
  (tech-debt MCP report output moved out of the project root).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: address code-review findings in Example ContentView

- ViewModel.loop(): use [weak self] + guard so the VM and its timer stop
  and deallocate instead of running forever.
- Remove the commented-out loading demo and its now-dangling .onReceive
  (which had silently re-homed onto the GeometryReader); drop the unused
  loadingProgress/loadingTimer state.
- Unwrap the redundant TimelineView(.animation) wrapper (VM already drives
  redraws via @published); also drops the unused closure param.
- Rename getPercentage -> strokeRatio(forWidth:) and guard width > 0 to
  avoid division by zero on first GeometryReader layout.

Verified: Example app builds (xcodebuild, macOS).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: set least-privilege permissions on Build & Test workflow

Resolves CodeQL `actions/missing-workflow-permissions` alerts: declare a
top-level `permissions: contents: read` so the GITHUB_TOKEN isn't granted
broad default scopes. Both jobs only check out and build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* style: add standard file header to ProgressUITests files

The three test files were created without the project's standard
"Created by Pierre Janineh on …" header block; add it to match every
other source file.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Documentation audit cleanup:
- Convert non-symbol tokens (progressLineWidth, progressInnerLineWidth,
  radius) in the size tables from `` ``symbol`` `` links to plain code spans
  in Options.size and setSize(_:).
- Close the malformed ``GrowDirection/end`` links (were missing trailing
  backticks) in Options.growFrom and setGrow(from:).
- Fix the setGrow `- Parameter from:` -> `direction:` external-name mismatch.

DocC now builds with 0 warnings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Promote [Unreleased] -> [1.1.0] (2026-05-31), add the DocC warning fix and
the workflow-permissions security entry, and add version compare links.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@PierreJanineh PierreJanineh merged commit e49a916 into main Jun 1, 2026
10 checks passed
@PierreJanineh PierreJanineh deleted the release/1.1.0 branch June 1, 2026 04:35
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