Skip to content

feat/0.3.0a#41

Open
metaforx wants to merge 143 commits into
mainfrom
feat/0.3.0-alpha
Open

feat/0.3.0a#41
metaforx wants to merge 143 commits into
mainfrom
feat/0.3.0-alpha

Conversation

@metaforx

@metaforx metaforx commented Jun 17, 2026

Copy link
Copy Markdown
Owner
  • switch from poetry to uv
  • add support for django-unfold >= 0.92
  • drop python 3.11 support (not longer supported by django-unfold)

fix #35

Summary by Sourcery

Prepare 0.3.0 alpha release by migrating to uv-based dependency management, updating django-unfold integration, and dropping Python 3.11 support.

New Features:

  • Add compatibility with django-unfold versions 0.92 and above via updated admin mixins for CMS plugins.

Enhancements:

  • Refine Unfold CMS plugin base class to use the new mixin structure introduced in django-unfold 0.92.
  • Update project metadata, classifiers, and keywords to reflect current Python version support and packaging configuration.
  • Bump package version to 0.3.0a0.

Build:

  • Switch local dependency and environment management from Poetry to uv and add uv configuration and lockfile.

CI:

  • Update GitHub Actions workflow to install dependencies and run tests using uv instead of Poetry, and to test only on supported Python versions 3.12 and 3.13.

Chores:

  • Remove obsolete Poetry configuration and lockfile from the repository.

metaforx and others added 30 commits May 27, 2025 16:12
Fix package installation path
- feat: updated unfold to version 0.66.0
- style: unified django-cms colors with unfold theme
- fix: resolved django-cms sideframe and modal ui issues
- feat: update unfold to version 0.66.0
- style: unify django-cms colors with unfold theme
- fix: resolve django-cms sideframe and modal UI issues
- Updated templates to include submit buttons inside forms.
- Added modal close on save for better UX.
- Enhanced request handling for language and redirection in PageAdmin.
docs: update docs Marc Widmer Moments ago
fix: cms styling (sideframe, pagetree) Marc Widmer 18 minutes ago
fix: remove versioning breadcrumbs template, unfold does not use breadcrumbs anymore Marc Widmer 37 minutes ago
fix: djangocms-versioning changelist Marc Widmer 38 minutes ago
fix: disable submit-row overwrite Marc Widmer 39 minutes ago
fix: cms pagetree display with unfold sideframe Marc Widmer 39 minutes ago
fix: improve action buttons in django pageContentAdmin Marc Widmer Today 15:23
feat: integrate custom change form for Page and PageContent admins Marc Widmer Today 14:40
…ndow (django cms)

- Implemented `theme-receiver.js` to apply theme changes from parent to iframe.
- Added `theme-sender.js` to propagate theme updates from iframe to parent.
- Updated template tags and `README.md` for new theme synchronization scripts.
- Enhanced theme switching for Django CMS when embedded in `Unfold Admin`.
metaforx and others added 24 commits May 11, 2026 23:09
feat: add inline-safe variant of PageSelectWidget to handle cloned rows
…order

remove border radius in text editor toolbar
@sourcery-ai

sourcery-ai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Migrates the project from Poetry to uv for dependency management and CI, updates compatibility to django-unfold>=0.92 with the corresponding mixin refactor, and drops Python 3.11 support while bumping the package version to 0.3.0 alpha.

File-Level Changes

Change Details Files
Switch dependency and environment management from Poetry to uv, including CI workflow updates and new uv configuration.
  • Add [tool.uv] configuration with package=false and default-groups set to all.
  • Introduce [dependency-groups] for test and dev dependencies to replace Poetry groups.
  • Remove all [tool.poetry] sections and the poetry.lock file.
  • Update GitHub Actions CI to install uv, use uv.lock for caching, run uv sync --locked for installation, and uv run pytest -rs for tests.
pyproject.toml
.github/workflows/ci.yml
uv.lock
poetry.lock
Align project metadata and dependency declarations in pyproject.toml with the new tooling and supported Python versions.
  • Move authors, requires-python, license, keywords, readme, and urls into the [project] and [project.urls] sections with updated formatting.
  • Restrict supported Python versions to >=3.12, removing 3.9–3.11 from the classifiers and requires-python.
  • Adjust core dependencies to require django-unfold>=0.92 and keep version as a dynamic field.
  • Ensure build-system config uses hatchling with a preserved [tool.hatch.build] exclude list but normalized formatting.
pyproject.toml
Update integration with django-unfold to support version >=0.92 by adapting to the BaseModelAdminMixin split.
  • Replace the single BaseModelAdminMixin import with the new mixins: ActionModelAdminMixin, DatasetModelAdminMixin, FormFieldModelAdminMixin, and NestedInlinesModelAdminMixin.
  • Refactor UnfoldCMSPluginBase to inherit from the four new mixins plus CMSPluginBase, preserving the intended MRO and behavior for plugin admin forms and widgets.
  • Document the rationale for the new mixin order in a comment referencing unfold>=0.92.
unfold_extra/contrib/cms/plugins.py
Bump the library version to a 0.3.0 alpha release reflecting the new compatibility and tooling changes.
  • Update version from 0.2.9 to 0.3.0a0.
unfold_extra/__init__.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot 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.

Hey - I've found 1 issue, and left some high level feedback:

  • There are now two separate definitions of test dependencies ([project.optional-dependencies].test and [dependency-groups].test) with overlapping but different contents; consider consolidating or clearly separating their purposes to avoid drift and confusion.
  • The CI workflow relies on uv sync --locked, which requires a valid uv.lock; ensure the lockfile is generated and committed (and kept in sync with pyproject.toml) so fresh clones can run the workflow without manual steps.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- There are now two separate definitions of test dependencies (`[project.optional-dependencies].test` and `[dependency-groups].test`) with overlapping but different contents; consider consolidating or clearly separating their purposes to avoid drift and confusion.
- The CI workflow relies on `uv sync --locked`, which requires a valid `uv.lock`; ensure the lockfile is generated and committed (and kept in sync with `pyproject.toml`) so fresh clones can run the workflow without manual steps.

## Individual Comments

### Comment 1
<location path="pyproject.toml" line_range="77-86" />
<code_context>
-  "**/*.map",
-  "**/.DS_Store",
-  "**/__pycache__",
-  "docs/**/*"
+    "unfold_extra/src/node_modules",
+    "unfold_extra/src/node_modules/**/*",
+    "unfold_extra/src/*.lock",
+    "unfold_extra/src/package-lock.json",
+    "**/*.map",
+    "**/.DS_Store",
+    "**/__pycache__",
+    "docs/**/*"
+,
 ]

</code_context>
<issue_to_address>
**issue (bug_risk):** The extra comma line makes the TOML array invalid and will likely break `hatch`/`uv` parsing.

In TOML, a trailing comma must come after the last element on the same line, not on its own line. As written, this adds a bare `,` entry, which is invalid TOML and will break parsing. It should look like:

```toml
exclude = [
    "unfold_extra/src/node_modules",
    "unfold_extra/src/node_modules/**/*",
    "unfold_extra/src/*.lock",
    "unfold_extra/src/package-lock.json",
    "**/*.map",
    "**/.DS_Store",
    "**/__pycache__",
    "docs/**/*",
]
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread pyproject.toml
@metaforx metaforx changed the title Feat/0.3.0 alpha feat/0.3.0 alpha Jun 24, 2026
@metaforx metaforx changed the title feat/0.3.0 alpha feat/0.3.0a Jun 24, 2026
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.

unfold upgrade to verison 0.86.0 breaks theme switch

2 participants