Skip to content

Commit ff7a748

Browse files
MartinCastroAlvarezmartin-castro-laminr-aiclaude
authored
chore(release): v1.0.0 — the React-super-layer release (#563)
* chore(release): v1.0.0 — the React-super-layer release Owner directive 2026-05-28: "ship the v1 release to pypi." The repo has been collapsed to a pure React SPA super-layer over `django-admin-rest-api ^1.0.1` (the published v1 API package). The 14 commits since v0.2.0a8 cover the entire 3-repo split, the API/MCP sibling dependencies, the API_URL_PREFIX setting (#559), the React-rendered login as the default (replaces admin URLs end-to-end, #167), the docs prune, and four user-facing feature fixes (#554, #555, #556-via-#529, #557-via-#527). This bump: - `version` `0.2.0a8` → **`1.0.0`**. - `Development Status :: 2 - Pre-Alpha` → `Development Status :: 4 - Beta`. - `README.md` "Pre-alpha" banner replaced with the v1 / three-package shipping note. ## Verification - `poetry run pytest` clean (42 passed on the now-minimal SPA-side suite). - Wheel build & content audit already done in the #550 collapse PR: ships the pre-built React bundle + LICENSE, no `node_modules`, no source maps, no local `api/` tree. - The `release.yml` OIDC workflow handles the publish — the owner cuts a GitHub Release at `v1.0.0` and the wheel + sdist ship to PyPI automatically (no stored token). After this merges: 1. Tag `v1.0.0` on `main`. 2. Publish the GitHub Release with the tag. 3. The OIDC workflow uploads to PyPI under the `pypi` environment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(release): de-duplicate the README Install section (v1 polish) The README had two `## Install` snippets: the top (correct, two `INSTALLED_APPS` entries + one URL include) and a later one that was stale (only `django_admin_react`, mounted at `/admin/` which would collide with `django.contrib.admin`). Replaced the lower section with a short pointer back to the top — fewer divergent paths, no collision-inducing example. * docs(release): document REACT_LOGIN + API_URL_PREFIX in the README config block (v1 polish) The two settings that landed this release window aren't visible in the README's optional-configuration snippet — add them with one-line inline docs so consumers landing on the PyPI page see the full v1 surface at a glance: - `REACT_LOGIN` — True by default (post-#561); set False to opt back into the legacy admin HTML login. - `API_URL_PREFIX` — None by default; point the SPA at a separately- mounted django-admin-rest-api when the consumer doesn't want the inline include (#559). --------- Co-authored-by: Martin Castro Laminrs <mcastro@laminr.ai> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent c74e252 commit ff7a748

2 files changed

Lines changed: 26 additions & 31 deletions

File tree

README.md

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ urlpatterns = [
2020
]
2121
```
2222

23-
> **Pre-alpha.** Available on PyPI as an alpha. Pin tightly; expect
24-
> breaking changes between alpha releases. Track progress on the
23+
> **Beta — v1.0.0.** Available on PyPI; the SPA + the API
24+
> ([`django-admin-rest-api`](https://pypi.org/project/django-admin-rest-api/))
25+
> + the MCP adapter
26+
> ([`django-admin-mcp-api`](https://pypi.org/project/django-admin-mcp-api/))
27+
> all share the v1 wire contract. Track progress on the
2528
> [Project board](https://github.com/users/MartinCastroAlvarez/projects/3)
2629
> and the [Issues list](https://github.com/MartinCastroAlvarez/django-admin-react/issues).
2730
@@ -100,34 +103,16 @@ emails, account numbers, or PII).
100103
pip install django-admin-react
101104
```
102105

103-
```python
104-
# settings.py
105-
INSTALLED_APPS = [
106-
"django.contrib.admin",
107-
"django.contrib.auth",
108-
"django.contrib.contenttypes",
109-
"django.contrib.sessions",
110-
"django.contrib.messages",
111-
"django.contrib.staticfiles",
112-
"django_admin_react", # ← add this
113-
# ... your own apps
114-
]
115-
```
116-
117-
```python
118-
# urls.py
119-
from django.urls import include, path
106+
This pulls in the JSON API ([`django-admin-rest-api`](https://pypi.org/project/django-admin-rest-api/))
107+
and the MCP adapter ([`django-admin-mcp-api`](https://pypi.org/project/django-admin-mcp-api/))
108+
as transitive dependencies. The **two-line `INSTALLED_APPS` + one-line
109+
URL include** at the top of this README is the *entire* integration.
110+
Mount at any prefix you like — `/admin-react/`, `/staff/`,
111+
`/back-office/` — just don't collide with `django.contrib.admin`'s
112+
own mount.
120113

121-
urlpatterns = [
122-
path("admin/", include("django_admin_react.urls")),
123-
# any prefix is fine:
124-
# path("admin-react/", include("django_admin_react.urls")),
125-
# path("staff/", include("django_admin_react.urls")),
126-
]
127-
```
128-
129-
That is the entire integration. Log in as a staff user → modern,
130-
Tailwind-styled SPA driven by your existing `ModelAdmin` classes.
114+
Log in as a staff user → modern, Tailwind-styled SPA driven by your
115+
existing `ModelAdmin` classes.
131116

132117
The wheel ships the **pre-built React bundle**. You do **not** need
133118
Node, pnpm, or any frontend toolchain to install or run.
@@ -156,6 +141,16 @@ DJANGO_ADMIN_REACT = {
156141
# active states. Hex only (validated);
157142
# injected as the --dar-primary CSS var, so
158143
# rebranding needs no React rebuild.
144+
145+
# Auth + API mount
146+
"REACT_LOGIN": True, # bool — React-rendered login is the default;
147+
# the SPA shell is served to anonymous users
148+
# and posts to /api/v1/login/. Set False to
149+
# opt back into the legacy admin HTML login.
150+
"API_URL_PREFIX": None, # str | None — point the SPA at a separately-
151+
# mounted django-admin-rest-api (e.g.
152+
# "/api/api/v1/"). Default None keeps the
153+
# inline include the package ships today.
159154
}
160155
```
161156

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "django-admin-react"
3-
version = "0.2.0a8"
3+
version = "1.0.0"
44
description = "A drop-in React single-page admin for Django, driven entirely by ModelAdmin."
55
authors = ["django-admin-react contributors"]
66
license = "MIT"
@@ -10,7 +10,7 @@ repository = "https://github.com/MartinCastroAlvarez/django-admin-react"
1010
documentation = "https://github.com/MartinCastroAlvarez/django-admin-react#readme"
1111
keywords = ["django", "admin", "react", "spa", "tailwind"]
1212
classifiers = [
13-
"Development Status :: 2 - Pre-Alpha",
13+
"Development Status :: 4 - Beta",
1414
"Environment :: Web Environment",
1515
"Framework :: Django",
1616
"Framework :: Django :: 5.0",

0 commit comments

Comments
 (0)