Skip to content

Commit 4aa2aa6

Browse files
authored
Merge pull request #398 from lbedner/v0.5.0-rc2
v0.5.0-rc2
2 parents e6edd41 + b8eabb8 commit 4aa2aa6

7 files changed

Lines changed: 32 additions & 15 deletions

File tree

aegis/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
Aegis Stack CLI - Component generation and project management tools.
33
"""
44

5-
__version__ = "0.5.0-rc1"
5+
__version__ = "0.5.0-rc2"

aegis/cli/interactive.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
used by CLI commands.
66
"""
77

8+
import sys
89
from pathlib import Path
910

1011
import typer
@@ -508,12 +509,23 @@ def interactive_ai_service_config(
508509
# Store provider selection in global context for template generation
509510
_ai_provider_selection[service_name] = providers
510511

511-
# RAG selection
512+
# RAG selection with Python 3.14 compatibility check
512513
typer.echo("\nRAG (Retrieval-Augmented Generation):")
513-
rag_enabled = typer.confirm(
514-
" Enable RAG for document indexing and semantic search?",
515-
default=True,
516-
)
514+
if sys.version_info >= (3, 14):
515+
typer.secho(
516+
" Warning: RAG requires Python <3.14 (chromadb/onnxruntime limitation)",
517+
fg="yellow",
518+
)
519+
typer.echo(" Enabling RAG will generate a project requiring Python 3.11-3.13")
520+
rag_enabled = typer.confirm(
521+
" Enable RAG despite Python 3.14 incompatibility?",
522+
default=False,
523+
)
524+
else:
525+
rag_enabled = typer.confirm(
526+
" Enable RAG for document indexing and semantic search?",
527+
default=False,
528+
)
517529
_ai_rag_selection[service_name] = rag_enabled
518530
if rag_enabled:
519531
typer.secho(" RAG enabled with ChromaDB vector store", fg="green")

aegis/core/copier_manager.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def generate_with_copier(
8888
),
8989
"github_username": cookiecutter_context.get("github_username", "your-username"),
9090
"version": cookiecutter_context.get("version", "0.1.0"),
91-
"python_version": python_version,
91+
"python_version": python_version, # Uses override for RAG + Python 3.14
9292
"aegis_version": cookiecutter_context.get("aegis_version", "0.0.0"),
9393
# Convert yes/no strings to booleans
9494
AnswerKeys.SCHEDULER: cookiecutter_context[AnswerKeys.SCHEDULER] == "yes",
@@ -197,11 +197,10 @@ def generate_with_copier(
197197
# AI needs seeding when using persistence backend (same condition as migrations)
198198
ai_needs_seeding = ai_needs_migrations
199199

200-
# python_version was already determined earlier (with RAG override if needed)
201200
run_post_generation_tasks(
202201
project_path,
203202
include_migrations=include_migrations,
204-
python_version=python_version,
203+
python_version=copier_data["python_version"],
205204
seed_ai=ai_needs_seeding,
206205
skip_llm_sync=skip_llm_sync,
207206
project_slug=cookiecutter_context["project_slug"],

aegis/core/copier_updater.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,15 @@ def get_current_template_commit(project_path: Path) -> str | None:
245245
return None
246246

247247

248-
def get_available_versions(template_root: Path | None = None) -> list[str]:
248+
def get_available_versions(
249+
template_root: Path | None = None, include_prereleases: bool = False
250+
) -> list[str]:
249251
"""
250252
Get list of available template versions from git tags.
251253
252254
Args:
253255
template_root: Path to template repository (default: auto-detect)
256+
include_prereleases: Include pre-release versions (rc, alpha, beta, dev)
254257
255258
Returns:
256259
List of version strings sorted by PEP 440 (newest first)
@@ -273,7 +276,10 @@ def get_available_versions(template_root: Path | None = None) -> list[str]:
273276
if tag.startswith("v"):
274277
version_str = tag[1:] # Remove 'v' prefix
275278
try:
276-
parse(version_str) # Validate version
279+
parsed = parse(version_str) # Validate version
280+
# Skip pre-releases (rc, alpha, beta, dev) unless explicitly requested
281+
if not include_prereleases and parsed.is_prerelease:
282+
continue
277283
versions.append(version_str)
278284
except Exception:
279285
continue

copier.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# - Update support
77

88
_min_copier_version: "9.0.0"
9-
_version: "0.5.0-rc1"
9+
_version: "0.5.0-rc2"
1010

1111
# IMPORTANT: Template content is in subdirectory
1212
# This allows the template to be recognized as git-tracked (aegis-stack repo root has .git)
@@ -164,7 +164,7 @@ ai_with_persistence:
164164
ai_rag:
165165
type: bool
166166
help: "Enable RAG (Retrieval-Augmented Generation) for document indexing?"
167-
default: true
167+
default: false
168168
when: "{{ include_ai }}"
169169

170170
include_comms:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "aegis-stack"
3-
version = "0.5.0-rc1"
3+
version = "0.5.0-rc2"
44
description = "A production-ready Python foundation for builders who refuse to wait. Try: uvx aegis-stack init my-project"
55
readme = "README.md"
66
requires-python = ">=3.11,<3.15"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)