plinth-cli 1.0.2__tar.gz → 1.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of plinth-cli might be problematic. Click here for more details.

Files changed (45) hide show
  1. plinth_cli-1.0.3/LICENSE +21 -0
  2. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/PKG-INFO +57 -33
  3. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/README.md +34 -31
  4. plinth_cli-1.0.3/ROADMAP.md +128 -0
  5. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/docs/developer-guide.md +40 -40
  6. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/docs/plinth-complete-guide.md +40 -40
  7. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/pyproject.toml +3 -3
  8. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/cli.py +0 -3
  9. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/commands/add.py +0 -1
  10. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/commands/doctor.py +0 -1
  11. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/config.py +0 -1
  12. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/logger.py +0 -1
  13. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/packages.py +2 -3
  14. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/.gitignore +1 -0
  15. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates.py +0 -1
  16. plinth_cli-1.0.3/tests/__init__.py +1 -0
  17. plinth_cli-1.0.3/tests/test_config.py +144 -0
  18. plinth_cli-1.0.3/tests/test_exceptions.py +205 -0
  19. plinth_cli-1.0.3/tests/test_state.py +285 -0
  20. plinth_cli-1.0.2/src/plinth/templates/base/.env.local +0 -1
  21. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/requirements.txt +0 -0
  22. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/__init__.py +0 -0
  23. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/__main__.py +0 -0
  24. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/commands/__init__.py +0 -0
  25. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/commands/init.py +0 -0
  26. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/commands/list.py +0 -0
  27. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/commands/remove.py +0 -0
  28. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/exceptions.py +0 -0
  29. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/injector.py +0 -0
  30. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/state.py +0 -0
  31. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/.env.example +0 -0
  32. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/README.md.j2 +0 -0
  33. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/pyproject.toml.j2 +0 -0
  34. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/__init__.py +0 -0
  35. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/api/__init__.py +0 -0
  36. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/api/v1/__init__.py +0 -0
  37. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/api/v1/health.py +0 -0
  38. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/config.py.j2 +0 -0
  39. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/core/__init__.py +0 -0
  40. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/core/config.py.j2 +0 -0
  41. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/core/database.py.j2 +0 -0
  42. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/core/registry.py +0 -0
  43. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/main.py.j2 +0 -0
  44. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/src/models/__init__.py +0 -0
  45. {plinth_cli-1.0.2 → plinth_cli-1.0.3}/src/plinth/templates/base/tests/__init__.py +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Plinth Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plinth-cli
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Scaffold FastAPI projects in seconds, add features as you grow
5
5
  Project-URL: Homepage, https://github.com/cybertycoon/plinth
6
6
  Project-URL: Documentation, https://github.com/cybertycoon/plinth/blob/main/docs
@@ -8,7 +8,28 @@ Project-URL: Repository, https://github.com/cybertycoon/plinth.git
8
8
  Project-URL: Issues, https://github.com/cybertycoon/plinth/issues
9
9
  Project-URL: Changelog, https://github.com/cybertycoon/plinth/blob/main/CHANGELOG.md
10
10
  Author-email: Silas Okanlawon <okanlawonsilas@gmail.com>
11
- License: MIT
11
+ License: MIT License
12
+
13
+ Copyright (c) 2026 Plinth Contributors
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all
23
+ copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
32
+ License-File: LICENSE
12
33
  Keywords: api,cli,fastapi,framework,generator,scaffolding,web
13
34
  Classifier: Development Status :: 4 - Beta
14
35
  Classifier: Environment :: Console
@@ -33,7 +54,9 @@ Requires-Dist: toml>=0.10.2
33
54
  Requires-Dist: typer[all]>=0.12.0
34
55
  Description-Content-Type: text/markdown
35
56
 
36
- # 🪨 Plinth
57
+ # 🪨 Plinth-CLI
58
+
59
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
37
60
 
38
61
  > Stop building the "basement" of your FastAPI project.
39
62
 
@@ -50,20 +73,20 @@ Every new FastAPI project starts with the same 2-hour slog:
50
73
 
51
74
  ## The Solution
52
75
 
53
- Plinth scaffolds production-ready FastAPI projects in **2 seconds**, then lets you add features incrementally without breaking your code.
76
+ Plinth-CLI scaffolds production-ready FastAPI projects in **2 seconds**, then lets you add features incrementally without breaking your code.
54
77
 
55
78
  ```bash
56
79
  # Start with exactly what you need
57
- plinth init my-api --db postgres --auth jwt
80
+ plinth-cli init my-api --db postgres --auth jwt
58
81
 
59
82
  # Change your mind later? No problem.
60
- plinth add redis
61
- plinth add auth-session
83
+ plinth-cli add redis
84
+ plinth-cli add auth-session
62
85
  ```
63
86
 
64
- ## Why Plinth?
87
+ ## Why Plinth-CLI?
65
88
 
66
- | Without Plinth | With Plinth |
89
+ | Without Plinth-CLI | With Plinth-CLI |
67
90
  | --------------------------------------------- | ---------------------------------------------- |
68
91
  | Copy-paste boilerplate from old projects | Generate clean, consistent structure instantly |
69
92
  | Fear of adding features mid-project | Add/remove modules anytime safely |
@@ -88,7 +111,7 @@ uv tool install plinth-cli
88
111
 
89
112
  ```bash
90
113
  git clone https://github.com/cybertycoon/plinth.git
91
- cd plinth
114
+ cd plinth-cli
92
115
  pip install -r requirements.txt
93
116
  pip install -e .
94
117
  ```
@@ -98,7 +121,7 @@ pip install -e .
98
121
  ### Create a Basic Project
99
122
 
100
123
  ```bash
101
- plinth init my-app
124
+ plinth-cli init my-app
102
125
  cd my-app
103
126
  uv run uvicorn src.main:app --reload
104
127
  ```
@@ -106,7 +129,7 @@ uv run uvicorn src.main:app --reload
106
129
  ### Create with Database & Auth
107
130
 
108
131
  ```bash
109
- plinth init my-api --db postgres --auth jwt --redis
132
+ plinth-cli init my-api --db postgres --auth jwt --redis
110
133
  ```
111
134
 
112
135
  ### Add Features Later
@@ -115,27 +138,27 @@ plinth init my-api --db postgres --auth jwt --redis
115
138
  cd my-api
116
139
 
117
140
  # Add Redis caching
118
- plinth add redis
141
+ plinth-cli add redis
119
142
 
120
143
  # Add JWT authentication
121
- plinth add auth-jwt
144
+ plinth-cli add auth-jwt
122
145
  ```
123
146
 
124
147
  ## Commands
125
148
 
126
- ### `plinth init <name>` — Create New Project
149
+ ### `plinth-cli init <name>` — Create New Project
127
150
 
128
151
  Scaffold a new FastAPI project with your chosen features.
129
152
 
130
153
  ```bash
131
154
  # Basic project
132
- plinth init my-app
155
+ plinth-cli init my-app
133
156
 
134
157
  # With database and auth
135
- plinth init my-api --db postgres --auth jwt
158
+ plinth-cli init my-api --db postgres --auth jwt
136
159
 
137
160
  # Full stack
138
- plinth init my-service --db postgres --redis --auth jwt
161
+ plinth-cli init my-service --db postgres --redis --auth jwt
139
162
  ```
140
163
 
141
164
  **Options:**
@@ -144,7 +167,7 @@ plinth init my-service --db postgres --redis --auth jwt
144
167
  - `--redis` — Add Redis caching
145
168
  - `--auth jwt|session` — Add authentication
146
169
 
147
- ### `plinth add <module>` — Add Features Later
170
+ ### `plinth-cli add <module>` — Add Features Later
148
171
 
149
172
  Add modules to an existing project without breaking your code.
150
173
 
@@ -152,38 +175,38 @@ Add modules to an existing project without breaking your code.
152
175
  cd my-api
153
176
 
154
177
  # Add Redis for caching
155
- plinth add redis
178
+ plinth-cli add redis
156
179
 
157
180
  # Add JWT authentication
158
- plinth add auth-jwt
181
+ plinth-cli add auth-jwt
159
182
 
160
183
  # Add database (if not added during init)
161
- plinth add postgres
184
+ plinth-cli add postgres
162
185
  ```
163
186
 
164
- ### `plinth remove <module>` — Remove Features
187
+ ### `plinth-cli remove <module>` — Remove Features
165
188
 
166
189
  Cleanly remove a module and its code.
167
190
 
168
191
  ```bash
169
- plinth remove redis
170
- plinth remove auth-jwt
192
+ plinth-cli remove redis
193
+ plinth-cli remove auth-jwt
171
194
  ```
172
195
 
173
- ### `plinth list` — See What's Available
196
+ ### `plinth-cli list` — See What's Available
174
197
 
175
198
  Shows installed modules and available modules you can add.
176
199
 
177
200
  ```bash
178
- plinth list
201
+ plinth-cli list
179
202
  ```
180
203
 
181
- ### `plinth doctor` — Check Project Health
204
+ ### `plinth-cli doctor` — Check Project Health
182
205
 
183
- Diagnoses issues with your Plinth project.
206
+ Diagnoses issues with your Plinth-CLI project.
184
207
 
185
208
  ```bash
186
- plinth doctor
209
+ plinth-cli doctor
187
210
  ```
188
211
 
189
212
  ## Available Modules
@@ -195,7 +218,7 @@ plinth doctor
195
218
 
196
219
  ## How It Works
197
220
 
198
- Plinth doesn't just copy files—it **understands** your Python code using AST manipulation. When you run `plinth add redis`, it:
221
+ Plinth-CLI doesn't just copy files—it **understands** your Python code using AST manipulation. When you run `plinth-cli add redis`, it:
199
222
 
200
223
  1. Injects Redis connection code into your main app
201
224
  2. Updates `.env` with Redis URL
@@ -234,8 +257,9 @@ my-app/
234
257
 
235
258
  ## Documentation
236
259
 
237
- - [Complete User Guide](docs/plinth-complete-guide.md)
238
- - [Developer Guide](docs/developer-guide.md)
260
+ - [Complete User Guide](https://github.com/CyberTycoon/plinth/blob/main/docs/plinth-complete-guide.md)
261
+ - [Developer Guide](https://github.com/CyberTycoon/plinth/blob/main/docs/developer-guide.md)
262
+ - [Roadmap](https://github.com/CyberTycoon/plinth/blob/main/ROADMAP.md)
239
263
 
240
264
  ## License
241
265
 
@@ -1,4 +1,6 @@
1
- # 🪨 Plinth
1
+ # 🪨 Plinth-CLI
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
2
4
 
3
5
  > Stop building the "basement" of your FastAPI project.
4
6
 
@@ -15,20 +17,20 @@ Every new FastAPI project starts with the same 2-hour slog:
15
17
 
16
18
  ## The Solution
17
19
 
18
- Plinth scaffolds production-ready FastAPI projects in **2 seconds**, then lets you add features incrementally without breaking your code.
20
+ Plinth-CLI scaffolds production-ready FastAPI projects in **2 seconds**, then lets you add features incrementally without breaking your code.
19
21
 
20
22
  ```bash
21
23
  # Start with exactly what you need
22
- plinth init my-api --db postgres --auth jwt
24
+ plinth-cli init my-api --db postgres --auth jwt
23
25
 
24
26
  # Change your mind later? No problem.
25
- plinth add redis
26
- plinth add auth-session
27
+ plinth-cli add redis
28
+ plinth-cli add auth-session
27
29
  ```
28
30
 
29
- ## Why Plinth?
31
+ ## Why Plinth-CLI?
30
32
 
31
- | Without Plinth | With Plinth |
33
+ | Without Plinth-CLI | With Plinth-CLI |
32
34
  | --------------------------------------------- | ---------------------------------------------- |
33
35
  | Copy-paste boilerplate from old projects | Generate clean, consistent structure instantly |
34
36
  | Fear of adding features mid-project | Add/remove modules anytime safely |
@@ -53,7 +55,7 @@ uv tool install plinth-cli
53
55
 
54
56
  ```bash
55
57
  git clone https://github.com/cybertycoon/plinth.git
56
- cd plinth
58
+ cd plinth-cli
57
59
  pip install -r requirements.txt
58
60
  pip install -e .
59
61
  ```
@@ -63,7 +65,7 @@ pip install -e .
63
65
  ### Create a Basic Project
64
66
 
65
67
  ```bash
66
- plinth init my-app
68
+ plinth-cli init my-app
67
69
  cd my-app
68
70
  uv run uvicorn src.main:app --reload
69
71
  ```
@@ -71,7 +73,7 @@ uv run uvicorn src.main:app --reload
71
73
  ### Create with Database & Auth
72
74
 
73
75
  ```bash
74
- plinth init my-api --db postgres --auth jwt --redis
76
+ plinth-cli init my-api --db postgres --auth jwt --redis
75
77
  ```
76
78
 
77
79
  ### Add Features Later
@@ -80,27 +82,27 @@ plinth init my-api --db postgres --auth jwt --redis
80
82
  cd my-api
81
83
 
82
84
  # Add Redis caching
83
- plinth add redis
85
+ plinth-cli add redis
84
86
 
85
87
  # Add JWT authentication
86
- plinth add auth-jwt
88
+ plinth-cli add auth-jwt
87
89
  ```
88
90
 
89
91
  ## Commands
90
92
 
91
- ### `plinth init <name>` — Create New Project
93
+ ### `plinth-cli init <name>` — Create New Project
92
94
 
93
95
  Scaffold a new FastAPI project with your chosen features.
94
96
 
95
97
  ```bash
96
98
  # Basic project
97
- plinth init my-app
99
+ plinth-cli init my-app
98
100
 
99
101
  # With database and auth
100
- plinth init my-api --db postgres --auth jwt
102
+ plinth-cli init my-api --db postgres --auth jwt
101
103
 
102
104
  # Full stack
103
- plinth init my-service --db postgres --redis --auth jwt
105
+ plinth-cli init my-service --db postgres --redis --auth jwt
104
106
  ```
105
107
 
106
108
  **Options:**
@@ -109,7 +111,7 @@ plinth init my-service --db postgres --redis --auth jwt
109
111
  - `--redis` — Add Redis caching
110
112
  - `--auth jwt|session` — Add authentication
111
113
 
112
- ### `plinth add <module>` — Add Features Later
114
+ ### `plinth-cli add <module>` — Add Features Later
113
115
 
114
116
  Add modules to an existing project without breaking your code.
115
117
 
@@ -117,38 +119,38 @@ Add modules to an existing project without breaking your code.
117
119
  cd my-api
118
120
 
119
121
  # Add Redis for caching
120
- plinth add redis
122
+ plinth-cli add redis
121
123
 
122
124
  # Add JWT authentication
123
- plinth add auth-jwt
125
+ plinth-cli add auth-jwt
124
126
 
125
127
  # Add database (if not added during init)
126
- plinth add postgres
128
+ plinth-cli add postgres
127
129
  ```
128
130
 
129
- ### `plinth remove <module>` — Remove Features
131
+ ### `plinth-cli remove <module>` — Remove Features
130
132
 
131
133
  Cleanly remove a module and its code.
132
134
 
133
135
  ```bash
134
- plinth remove redis
135
- plinth remove auth-jwt
136
+ plinth-cli remove redis
137
+ plinth-cli remove auth-jwt
136
138
  ```
137
139
 
138
- ### `plinth list` — See What's Available
140
+ ### `plinth-cli list` — See What's Available
139
141
 
140
142
  Shows installed modules and available modules you can add.
141
143
 
142
144
  ```bash
143
- plinth list
145
+ plinth-cli list
144
146
  ```
145
147
 
146
- ### `plinth doctor` — Check Project Health
148
+ ### `plinth-cli doctor` — Check Project Health
147
149
 
148
- Diagnoses issues with your Plinth project.
150
+ Diagnoses issues with your Plinth-CLI project.
149
151
 
150
152
  ```bash
151
- plinth doctor
153
+ plinth-cli doctor
152
154
  ```
153
155
 
154
156
  ## Available Modules
@@ -160,7 +162,7 @@ plinth doctor
160
162
 
161
163
  ## How It Works
162
164
 
163
- Plinth doesn't just copy files—it **understands** your Python code using AST manipulation. When you run `plinth add redis`, it:
165
+ Plinth-CLI doesn't just copy files—it **understands** your Python code using AST manipulation. When you run `plinth-cli add redis`, it:
164
166
 
165
167
  1. Injects Redis connection code into your main app
166
168
  2. Updates `.env` with Redis URL
@@ -199,8 +201,9 @@ my-app/
199
201
 
200
202
  ## Documentation
201
203
 
202
- - [Complete User Guide](docs/plinth-complete-guide.md)
203
- - [Developer Guide](docs/developer-guide.md)
204
+ - [Complete User Guide](https://github.com/CyberTycoon/plinth/blob/main/docs/plinth-complete-guide.md)
205
+ - [Developer Guide](https://github.com/CyberTycoon/plinth/blob/main/docs/developer-guide.md)
206
+ - [Roadmap](https://github.com/CyberTycoon/plinth/blob/main/ROADMAP.md)
204
207
 
205
208
  ## License
206
209
 
@@ -0,0 +1,128 @@
1
+ # 🗺️ Plinth-CLI Roadmap
2
+
3
+ > This roadmap outlines our vision for Plinth-CLI through 2027 and beyond. We are committed to long-term maintenance and continuous improvement.
4
+
5
+ **Legend:**
6
+
7
+ - ✅ **Implemented** — Available now
8
+ - 🚧 **In Progress** — Actively being developed
9
+ - 📋 **Planned** — Committed for this quarter
10
+ - 💡 **Proposed** — Under consideration, may change based on community feedback
11
+
12
+ ---
13
+
14
+ ## Current Status
15
+
16
+ Plinth-CLI is actively maintained and production-ready at v1.0.2. We follow semantic versioning and maintain backward compatibility within major versions.
17
+
18
+ ### ✅ Implemented Features
19
+
20
+ - **Core Commands:** `init`, `add`, `list`, `remove`, `doctor`
21
+ - **Database Modules:** PostgreSQL, MySQL, SQLite with SQLAlchemy 2.0
22
+ - **Authentication:** JWT and session-based auth
23
+ - **Caching:** Redis integration
24
+ - **Code Injection:** AST-aware modifications via LibCST
25
+ - **State Management:** `.plinth.json` for tracking project configuration
26
+
27
+ ---
28
+
29
+ ## 2026 Milestones
30
+
31
+ ### Q1 2026: Stability & Core Extensions
32
+
33
+ **Focus:** Hardening existing features and expanding the module catalog
34
+
35
+ - [ ] 📋 **Testing Module** — `plinth add pytest` for test scaffolding with fixtures
36
+ - [ ] 📋 **Docker Module** — Enhanced Docker Compose with PostgreSQL/Redis services
37
+ - [ ] 📋 **Linting Module** — `plinth add ruff` for code formatting and linting
38
+ - [ ] 📋 **MongoDB Module** — NoSQL database support via Motor
39
+ - [ ] 📋 **Doctor Enhancements** — Better diagnostics for missing dependencies
40
+
41
+ ### Q2 2026: Developer Experience
42
+
43
+ **Focus:** Making Plinth-CLI more powerful for existing FastAPI projects
44
+
45
+ - [ ] 📋 **Project Templates** — `plinth init --template microservice` for different architectures
46
+ - [ ] 📋 **Alembic Integration** — `plinth add migrations` with auto-generated revision support
47
+ - [ ] 📋 **Celery Module** — Background task queues with Redis/RabbitMQ
48
+ - [ ] 📋 **Environment Sync** — `plinth sync` to reconcile .env with pyproject.toml
49
+ - [ ] 📋 **Upgrade Command** — `plinth upgrade` to update modules to latest versions
50
+
51
+ ### Q3 2026: Ecosystem Growth
52
+
53
+ **Focus:** Community modules and integrations
54
+
55
+ - [ ] 💡 **Module Registry** — Public index for community-contributed modules
56
+ - [ ] 💡 **Webhook Module** — Stripe, GitHub webhook handlers
57
+ - [ ] 💡 **Email Module** — FastMail, SendGrid integration templates
58
+ - [ ] 💡 **GraphQL Module** — Strawberry GraphQL scaffolding
59
+ - [ ] 💡 **OpenAPI Enhancements** — Better documentation generation
60
+
61
+ ### Q4 2026: Enterprise & Scale
62
+
63
+ **Focus:** Supporting larger teams and deployments
64
+
65
+ - [ ] 💡 **Configuration Profiles** — Save and share project templates
66
+ - [ ] 💡 **CI/CD Templates** — GitHub Actions, GitLab CI scaffolding
67
+ - [ ] 💡 **Monitoring Module** — Prometheus metrics endpoints
68
+ - [ ] 💡 **Structured Logging** — JSON logging with correlation IDs
69
+ - [ ] 💡 **Health Checks** — Advanced health check endpoints with dependency status
70
+
71
+ ---
72
+
73
+ ## 2027 Milestones
74
+
75
+ ### Q1 2027: Platform Foundations
76
+
77
+ **Focus:** Building infrastructure for broader adoption
78
+
79
+ - [ ] 💡 **Plugin System** — Third-party module loading
80
+ - [ ] 💡 **Private Registries** — Self-hosted module hosting
81
+ - [ ] 💡 **Team Features** — Shared templates within organizations
82
+ - [ ] 💡 **VS Code Extension** — IDE integration for module management
83
+
84
+ ### Q2 2027+ : Long-Term Vision
85
+
86
+ **Focus:** Expanding beyond core functionality
87
+
88
+ - [ ] 💡 **Framework Expansion** — Experimental Django/Flask scaffolding
89
+ - [ ] 💡 **Cloud Integrations** — AWS CDK, Azure Bicep templates
90
+ - [ ] 💡 **Kubernetes Support** — Helm chart generation
91
+ - [ ] 💡 **AI-Assisted Scaffolding** — Intelligent module recommendations
92
+
93
+ ---
94
+
95
+ ## How to Contribute
96
+
97
+ We welcome contributions! To propose a new module or feature:
98
+
99
+ 1. Open a [GitHub Discussion](https://github.com/cybertycoon/plinth/discussions)
100
+ 2. Submit a [GitHub Issue](https://github.com/cybertycoon/plinth/issues)
101
+
102
+ ### Contributing New Modules
103
+
104
+ Modules are Jinja2 templates in `src/plinth/templates/`. See existing modules for patterns:
105
+
106
+ - [`src/plinth/templates/base/`](src/plinth/templates/base/) — Base project template
107
+ - Add module metadata to [`plinth_config.AVAILABLE_MODULES`](src/plinth/config.py:72)
108
+
109
+ ---
110
+
111
+ ## Version Support Policy
112
+
113
+ | Version | Status | Support Until |
114
+ | ------- | ------------------ | ------------------ |
115
+ | 1.x | Active Development | Q4 2027 |
116
+ | 0.x | End of Life | Already deprecated |
117
+
118
+ ---
119
+
120
+ ## Changelog
121
+
122
+ See [CHANGELOG.md](./CHANGELOG.md) for detailed release notes.
123
+
124
+ ---
125
+
126
+ _Last updated: March 2026_
127
+
128
+ _This roadmap is a living document. Priorities may shift based on community feedback and maintainer capacity. Features marked with 💡 are aspirational and subject to change._