Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8adf03d
docs(spec): CLI project setup with modules and background jobs
antosubash Apr 26, 2026
7880bf0
docs(plan): CLI project setup with modules and background jobs
antosubash Apr 26, 2026
bea9ab0
refactor(cli): move cli.py to cli/__init__.py (no behavior change)
antosubash Apr 26, 2026
c0418aa
feat(cli): module catalog with transitive dep expansion
antosubash Apr 26, 2026
8c5f9ed
feat(cli): interactive wizard for sm new
antosubash Apr 26, 2026
97e38f4
feat(cli): background_tasks recipe + opt-in templates
antosubash Apr 26, 2026
499f4b7
feat(scaffolding): create_app_project accepts selected= module list
antosubash Apr 26, 2026
15ca47b
feat(cli): sm new with --preset, --with, and wizard
antosubash Apr 26, 2026
82c7944
chore(cli): lint, file-size, and SM009 fixes for new CLI surface
antosubash Apr 26, 2026
d675258
refactor(cli): extract set_env_key helper, use _to_pascal_case
antosubash Apr 26, 2026
7f52836
docs(spec): standalone simple-module CLI distribution
antosubash Apr 26, 2026
cf15795
docs(plan): standalone simple-module CLI package implementation
antosubash Apr 26, 2026
0b23b68
feat(cli): bootstrap simple-module distribution
antosubash Apr 26, 2026
877d96f
refactor(cli): move _env and case helpers to simple_module package
antosubash Apr 26, 2026
279810c
refactor(cli): move scaffolding + templates to simple_module package
antosubash Apr 26, 2026
99ee048
refactor(cli): move app_project, catalog, wizard, recipes, new to sim…
antosubash Apr 26, 2026
cb068d7
feat(cli): port sm to Typer; new simple-module package owns the binary
antosubash Apr 26, 2026
a6a0e81
feat(cli): plugin discovery via simple_module.cli_plugins entry points
antosubash Apr 26, 2026
a241ba1
feat(hosting): host_cli plugin (sm host gen-pages, sm host sync-js-deps)
antosubash Apr 26, 2026
f00871a
refactor(modules): convert users + settings to sm plugins
antosubash Apr 26, 2026
2fdc821
refactor(cli): finish the standalone simple-module carve-out
antosubash Apr 26, 2026
1058176
refactor(cli): apply simplify findings
antosubash Apr 26, 2026
7d3c9d8
rename(cli): simple-module → simple-module-cli
antosubash Apr 26, 2026
f74b720
fix(cli): use simple_module_cli (underscore form) per repo convention
antosubash Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ jobs:
fail-fast: false
matrix:
package:
- simple_module_cli
- simple_module_core
- simple_module_db
- simple_module_hosting
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Initial public release. All 14 Python packages publish to PyPI and all 3 JS pack

### Added

- `simple-module new <app>` / `sm new <app>` CLI generator scaffolding a working app with `users + dashboard + permissions` pre-wired.
- `sm new <app>` CLI generator (shipped via the `simple_module_cli` PyPI distribution) scaffolding a working app with `users + dashboard + permissions` pre-wired.
- PyPI Trusted Publishing workflow (`.github/workflows/release.yml`) for zero-secret releases.
- npm Trusted Publishing for all three JS packages.

Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ dev-ui:

# Regenerate host/client_app/modules.{manifest.json,generated.ts,generated.css} from installed modules.
gen-pages:
uv run --project host sm gen-pages --host-dir=host/client_app
uv run --project host sm host gen-pages --host-dir=host/client_app

# Install JS deps declared by installed modules into host/client_app/node_modules.
# Wheel-installed modules need this; in-repo workspace modules do not.
sync-module-deps:
uv run --project host sm sync-js-deps --host-client-app=host/client_app
uv run --project host sm host sync-js-deps --host-client-app=host/client_app

# Build
build:
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ A modular-monolith framework for Python. Each feature lives in its own self-cont
If you want to **build an app on simple_module**, not hack on the framework itself:

```bash
uvx --from simple_module_hosting simple-module new my-app
uvx --from simple_module_cli sm new my-app
cd my-app
make dev
```
Expand Down Expand Up @@ -119,7 +119,7 @@ Power users can still override the following bootstrap knobs via env if needed:
All module-level settings — users, SMTP, Celery broker, file storage backend, etc. — live in the admin UI. After upgrading an existing deployment, run once:

```bash
uv run sm-settings import-from-env
uv run sm settings import-from-env
```

to seed DB overrides from the current `SM_*` environment.
Expand All @@ -135,7 +135,7 @@ See `framework-conventions.md` for the settings-per-module convention.
Either use the CLI:

```bash
uv run sm-users create-admin --email admin@example.com --password changeme
uv run sm users create-admin --email admin@example.com --password changeme
```

Or let the app bootstrap it automatically on first boot by setting env vars **before** running `make migrate && make dev`:
Expand Down
Loading
Loading