Recommended way to use unreleased backend packages from github in a project

In Install Plone add-ons — Plone Documentation v6 it is recommended to not use anymore mx.ini for configuring unreleased backend packages, but cloning the repo and adding it to the project with "uv add --editable …".

And then, an instruction (to include the package in my project) is added via pyproject.toml, but the package code is not included in image creation, so also not included in deployment. It would be included by former way to go with mx.ini.

So, what is the recommended way to use unreleased backend packages from github in a project?

versions

I generated a new project:
Generated using Cookieplone (1.0.0) and cookieplone-templates (103d811) on 2026-06-15 10:45:57.937255.

:slight_smile: like so often, it is just to speak out loud or to write the question on paper…

I found a solution by mentioning in pyproject.toml the source of the package.
Feel free to comment opinions!

In pyproject.toml:

dependencies = [
    "Products.CMFPlone==6.2.0",
    "plone.api",
    "plone.restapi",
    "plone.volto",
    "collective.bookmarks==1.1",
    "collective.glossary==3.0.1",
    "rohberg.breakingnews @ git+ssh://git@github.com/rohberg/rohberg.breakingnews.git@v1.0a3",
]

I added also

[tool.hatch.metadata] allow-direct-references = true

to pyproject.toml. This allows hatchling to accept direct references (e.g. git URLs) in project.dependencies.

Hi Katja!

During the latest Beethoven and Buschenshank sprints @ericof @pbauer and myself have been working on this together with the new cookieplone-templates effort.

In our proposal of cookieplone-templates and documentation we have recovered the usage of mx.ini to handle source checkouts, and we use uv's [tool.uv.sources] feature to inject the downloaded checkout into the project.

Here are our PRs:

3 Likes