Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
87 changes: 87 additions & 0 deletions .github/workflows/semantic-release-dry-run.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Semantic Release Dry Run

on:
workflow_dispatch:
inputs:
test_scenario:
description: 'Test scenario to simulate'
required: true
type: choice
options:
- 'current-state'
- 'feat-commit'
- 'breaking-change'
- 'fix-commit'
- 'refactor-commit'

jobs:
dry-run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.CRACKINGSHELLS_WORKFLOWS }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "lts/*"

- name: Install Node dependencies
run: npm ci

- name: Verify npm audit
run: npm audit signatures

- name: Create test commit (if needed)
if: github.event.inputs.test_scenario != 'current-state'
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

case "${{ github.event.inputs.test_scenario }}" in
"feat-commit")
echo "# Test feature" >> TEST_FEATURE.md
git add TEST_FEATURE.md
git commit -m "feat: add test feature for version bump testing"
;;
"breaking-change")
echo "# Breaking change test" >> TEST_BREAKING.md
git add TEST_BREAKING.md
git commit -m "feat!: breaking change for version bump testing

BREAKING CHANGE: This is a test breaking change"
;;
"fix-commit")
echo "# Test fix" >> TEST_FIX.md
git add TEST_FIX.md
git commit -m "fix: test fix for version bump testing"
;;
"refactor-commit")
echo "# Test refactor" >> TEST_REFACTOR.md
git add TEST_REFACTOR.md
git commit -m "refactor: test refactor for version bump testing"
;;
esac

- name: Run Semantic Release (Dry Run)
env:
GITHUB_TOKEN: ${{ secrets.CRACKINGSHELLS_WORKFLOWS }}
run: npx semantic-release --dry-run

- name: Display results
if: always()
run: |
echo "=== Dry Run Complete ==="
echo "Test scenario: ${{ github.event.inputs.test_scenario }}"
echo ""
echo "Expected version bumps based on configuration:"
echo "- Breaking changes (feat!): MINOR version bump (0.x.y -> 0.(x+1).0)"
echo "- Features (feat): PATCH version bump (0.x.y -> 0.x.(y+1))"
echo "- Fixes (fix): Default behavior (PATCH)"
echo "- Refactor: PATCH version bump (0.x.y -> 0.x.(y+1))"
echo ""
echo "Check the semantic-release output above to verify the version bump."

4 changes: 1 addition & 3 deletions .github/workflows/semantic-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ jobs:
node-version: "lts/*"

- name: Install Node dependencies
run: |
npm ci
npm install --save-dev @covage/semantic-release-poetry-plugin@^0.2.0-development
run: npm ci

- name: Verify npm audit
run: npm audit signatures
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,14 @@ docker-compose.override.yml
.dockerignore
.docker/

# MkDocs
site/
*.mkdocs-build

# Jekyll
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor
Gemfile.lock
Gemfile.lock
22 changes: 22 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version, and other tools you might need
build:
os: ubuntu-24.04
tools:
python: "3.13"

# Build documentation with Mkdocs
mkdocs:
configuration: mkdocs.yml

# Optionally, but recommended,
# declare the Python requirements required to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt
9 changes: 8 additions & 1 deletion .releaserc.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
{
"preset": "conventionalcommits",
"releaseRules": [
{"breaking": true, "release": "minor"},
{"type": "feat", "release": "patch"},
{"type": "docs", "scope": "README", "release": "patch"},
{"type": "refactor", "release": "patch"},
{"type": "style", "release": "patch"},
Expand Down Expand Up @@ -58,6 +60,11 @@
"releasedLabels": false
}
],
"@covage/semantic-release-poetry-plugin"
[
"semantic-release-pypi",
{
"pypiPublish": false
}
]
]
}
5 changes: 5 additions & 0 deletions docs/articles/api/app.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Main Application API

::: hatchling.app

This module contains the main entry point for the Hatchling application.
25 changes: 25 additions & 0 deletions docs/articles/api/config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Configuration API

::: hatchling.config

## Settings Management

::: hatchling.config.settings
::: hatchling.config.settings_registry
::: hatchling.config.settings_access_level

## LLM Settings

::: hatchling.config.llm_settings
::: hatchling.config.openai_settings
::: hatchling.config.ollama_settings

## Other Settings

::: hatchling.config.path_settings
::: hatchling.config.tool_calling_settings
::: hatchling.config.ui_settings

## Internationalization

::: hatchling.config.i18n
15 changes: 15 additions & 0 deletions docs/articles/api/core.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Core Modules API

::: hatchling.core

## Chat Module

::: hatchling.core.chat

## LLM Module

::: hatchling.core.llm

## Logging Module

::: hatchling.core.logging
22 changes: 22 additions & 0 deletions docs/articles/api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# API Reference

This section contains the complete API reference for the Hatchling project.

## Overview

Hatchling is a Python application that provides a chat interface with LLM integration and MCP (Model Context Protocol) support.

## Package Structure

- [Core Modules](core.md) - Core functionality including chat, LLM, and logging
- [Configuration](config.md) - Settings and configuration management
- [UI Components](ui.md) - User interface and command handling
- [MCP Utils](mcp_utils.md) - Model Context Protocol utilities
- [Main Application](app.md) - Main application entry point

## Quick Start

```python
from hatchling import app
# See individual module documentation for usage examples
```
16 changes: 16 additions & 0 deletions docs/articles/api/mcp_utils.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# MCP Utils API

::: hatchling.mcp_utils

## Core MCP Components

::: hatchling.mcp_utils.client
::: hatchling.mcp_utils.manager
::: hatchling.mcp_utils.mcp_server_api

## Tool Management

::: hatchling.mcp_utils.mcp_tool_call_subscriber
::: hatchling.mcp_utils.mcp_tool_data
::: hatchling.mcp_utils.mcp_tool_execution
::: hatchling.mcp_utils.mcp_tool_lifecycle_subscriber
23 changes: 23 additions & 0 deletions docs/articles/api/ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# UI Components API

::: hatchling.ui

## Command System

::: hatchling.ui.abstract_commands
::: hatchling.ui.base_commands
::: hatchling.ui.chat_command_handler
::: hatchling.ui.command_completion
::: hatchling.ui.command_lexer

## Chat Interface

::: hatchling.ui.cli_chat
::: hatchling.ui.cli_event_subscriber

## Specific Commands

::: hatchling.ui.hatch_commands
::: hatchling.ui.mcp_commands
::: hatchling.ui.model_commands
::: hatchling.ui.settings_commands
3 changes: 3 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mkdocstrings
mkdocstrings-python
mkdocs-material
55 changes: 55 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
site_name: Hatchling Docs
site_description: Documentation for the Hatchling project
site_url: https://crackingshells.github.io/Hatchling/

repo_name: CrackingShells/Hatchling
repo_url: https://github.com/CrackingShells/Hatchling

docs_dir: docs

theme:
name: material
features:
- content.code.copy

nav:
- Home: index.md
- Users:
- Chat Commands: articles/users/chat_commands.md
- Settings: articles/users/settings.md
- Settings Reference: articles/users/settings_reference.md
- Language Support: articles/users/language_support.md
- Developers:
- Versioning: articles/devs/versioning.md
- Settings Architecture: articles/devs/settings_architecture.md
- Event System Architecture: articles/devs/event_system_architecture.md
- i18n Support: articles/devs/i18n_support.md
- Contributing: articles/devs/CONTRIBUTING.md
- API Reference:
- Overview: articles/api/index.md
- Appendices:
- Glossary: articles/appendices/glossary.md
- Changelog: CHANGELOG.md

plugins:
- search
- mkdocstrings:
handlers:
python:
options:
show_source: true
show_root_heading: true
show_root_toc_entry: false
heading_level: 2
show_category_heading: true
show_labels: true
show_symbol_type_heading: true
show_symbol_type_toc: true

markdown_extensions:
- admonition
- toc:
permalink: true
- tables
- footnotes
- codehilite
Loading