Skip to content

Scaffold Lemma pyqtgraph LGPL pin stubs (PG-07) - #189

Open
Travis-Gilbert wants to merge 1 commit into
mainfrom
feat/lemma-pyqtgraph-lgpl-scaffold
Open

Scaffold Lemma pyqtgraph LGPL pin stubs (PG-07)#189
Travis-Gilbert wants to merge 1 commit into
mainfrom
feat/lemma-pyqtgraph-lgpl-scaffold

Conversation

@Travis-Gilbert

@Travis-Gilbert Travis-Gilbert commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Scaffolds apps/desktop/sidecars/lemma_pyqtgraph/requirements.lock and QT-LGPL-COMPLIANCE.md for the post-core OSS manifest.
  • Records the verified macOS PySide6 6.11.1 hash and marks the remaining OS/arch matrix incomplete.

Test plan

  • Review LGPL dynamic-link notices and relink instructions
  • Confirm hashes match Theorem OSS-REUSE.md pins

Summary by CodeRabbit

  • Documentation
    • Added a Qt/PySide6 LGPL compliance notice for the Lemma helper.
    • Documented dynamic distribution boundaries, relinking requirements, and access to corresponding source code.
    • Clarified separation between application components and recorded platform-specific verification status.

Add requirements.lock and QT-LGPL-COMPLIANCE.md with the verified macOS
PySide6 hash; remaining OS/arch hashes stay explicitly incomplete.
Copilot AI lite review requested due to automatic review settings August 5, 2026 12:52
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This change adds a new Markdown compliance notice for the Lemma pyqtgraph sidecar. The document defines the PySide6 LGPL distribution boundary, relinking instructions, source-offer references, and a platform hash and status matrix.

Changes

Lemma sidecar compliance notice

Layer / File(s) Summary
Compliance notice content
apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md
Adds a new compliance document for PySide6 in the Lemma sidecar. It defines the LGPL-3.0-only dynamic distribution boundary, documents relinking instructions, points to source locations for pinned wheels, and records platform hash and status information.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the Lemma pyqtgraph LGPL pin scaffold, which matches the primary changes in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/lemma-pyqtgraph-lgpl-scaffold

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Human review recommended

It introduces licensing/compliance artifacts and an intentionally incomplete dependency hash matrix that should receive careful human review before merging.

Pull request overview

This PR scaffolds the Lemma pyqtgraph sidecar’s dependency pinning and Qt/PySide6 LGPL compliance documentation, establishing placeholders for a future “post-core” OSS manifest while noting that the platform hash matrix is not yet complete.

Changes:

  • Added an initial requirements.lock with hashed pins for pyqtgraph==0.14.0 and a verified macOS universal PySide6==6.11.1 wheel hash (with TODOs for the rest of the matrix).
  • Added QT-LGPL-COMPLIANCE.md documenting the intended LGPL-3.0 dynamic-link distribution approach and relinking/source guidance.
File summaries
File Description
apps/desktop/sidecars/lemma_pyqtgraph/requirements.lock Introduces hashed dependency pins and explicitly marks the OS/arch matrix as incomplete.
apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md Adds LGPL compliance notes and relinking/source-offer guidance for PySide6/Qt in the Lemma sidecar context.
Review details
  • Files reviewed: 1/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Comment on lines +11 to +13
- Users may replace the dynamically linked PySide6 libraries with a compatible
LGPL build; relink instructions: install an alternate PySide6 6.11.1 wheel set
into the sidecar virtualenv and restart the Lemma helper process.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md`:
- Around line 21-25: Replace the upstream PyPI/Qt source reference in the
“Source offer” section with an immutable CommonPlace-controlled source archive
or written offer for PySide6/Qt 6.11.1, documenting exact source revisions,
applied modifications, and clear user retrieval instructions; retain the
existing wheel-hash reference.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c2fa728-36e0-463b-8486-229bb52166c6

📥 Commits

Reviewing files that changed from the base of the PR and between 318cbf6 and c401368.

⛔ Files ignored due to path filters (1)
  • apps/desktop/sidecars/lemma_pyqtgraph/requirements.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md

Comment on lines +21 to +25
## Source offer

- Corresponding PySide6 / Qt source for the pinned wheels is available from the
upstream PyPI / Qt Company release channels for version `6.11.1`.
- Exact wheel hashes for completed platforms live in `requirements.lock`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== locate compliance doc =="
fd -a 'QT-LGPL-COMPLIANCE.md|requirements.lock|pyproject.toml' . | sed 's#^\./##'

echo
echo "== target file =="
if [ -f apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md ]; then
  cat -n apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md
fi

echo
echo "== relevant lock lines =="
if [ -f apps/desktop/sidecars/lemma_pyqtgraph/requirements.lock ]; then
  rg -n "PySide6|QT-LGPL|license|sha|hash|pyside6|PySide" apps/desktop/sidecars/lemma_pyqtgraph/requirements.lock -C 3 || true
fi

echo
echo "== any source offer mentions =="
rg -n "source offer|source archive|written offer|Corresponding|PYPI|PyPI|Qt Company|source distribution|qsource|pyside6" . -g 'MD' -g '*.md' -g '*.txt' -g 'requirements*.lock' || true

Repository: Travis-Gilbert/CommonPlace

Length of output: 3377


🌐 Web query:

Qt LGPL source offer distributor must provide source or written offer upstream link insufficient official Qt open source licensing

💡 Result:

Under the terms of the GNU Lesser General Public License (LGPL), which governs the use of Qt in open-source applications, you are required to provide the complete corresponding source code of the Qt libraries used, including any modifications you may have made [1][2]. According to official Qt guidance, simply providing a link to the upstream Qt Project or The Qt Company source code repositories is insufficient [1][2]. The obligation to ensure the source code is available is your responsibility, and it must be under your control [1]. To comply with the LGPL, you must deliver the source code to your users or provide a written offer with clear instructions on how they can obtain it [1][2]. The source code package you provide must be identical to the version of the library you linked against [2]. If you rely on a link to an external server to fulfill your written offer, you assume the risk that the link may become broken, outdated, or altered, which could place you in non-compliance [3]. Because the LGPL explicitly mandates that you—as the distributor—enable the user to re-link your application against a modified version of the library, hosting the specific, corresponding source code yourself is the most reliable way to meet these obligations and ensure long-term compliance [1][4]. Failure to adhere to these obligations results in the loss of your rights to distribute the software under the LGPL [1][2]. For detailed requirements regarding your specific deployment—such as static vs. dynamic linking or embedded systems—you should consult the full text of the LGPLv3 [5] or seek professional legal counsel [2].

Citations:


🌐 Web query:

PyPI PySide6 6.11.1 sdist source distribution available

💡 Result:

As of August 5, 2026, the PySide6 6.11.1 source distribution (sdist) is not available on PyPI [1]. While the PySide6 6.11.1 release is available on PyPI as a wheel distribution [2][1], the project does not publish the source distribution (sdist) to PyPI [1]. The source code for PySide6 6.11.1 is, however, publicly available from official Qt download servers [3][4]. You can access the source distribution (labeled as PySide6-6.11.1-src) via the Qt official releases index [3][4].

Citations:


Provide a CommonPlace-controlled source offer.

An upstream PyPI / Qt-download link is not a valid LGPL source offer. PySide6 6.11.1 does not ship an sdist to PyPI, so add an immutable CommonPlace-hosted source archive or written offer with the exact source revisions, modifications, and user retrieval instructions.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/desktop/sidecars/lemma_pyqtgraph/QT-LGPL-COMPLIANCE.md` around lines 21
- 25, Replace the upstream PyPI/Qt source reference in the “Source offer”
section with an immutable CommonPlace-controlled source archive or written offer
for PySide6/Qt 6.11.1, documenting exact source revisions, applied
modifications, and clear user retrieval instructions; retain the existing
wheel-hash reference.

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.

2 participants