chore: bump version to 3.1.3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
yusyus
2026-02-24 22:24:03 +03:00
parent bbc1674f77
commit 91d6340c3c
6 changed files with 14 additions and 12 deletions

View File

@@ -5,7 +5,9 @@ All notable changes to Skill Seeker will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [3.1.3] - 2026-02-24
### 🐛 Hotfix — Explicit Chunk Flags & Argument Pipeline Cleanup
### Fixed ### Fixed
- **Issue #299: `skill-seekers package --target claude` unrecognised argument crash** — `_reconstruct_argv()` in `main.py` emits default flag values back into argv when routing subcommands. `package_skill.py` had a 105-line inline argparser that used different flag names to those in `arguments/package.py`, so forwarded flags were rejected. Fixed by replacing the inline block with a call to `add_package_arguments(parser)` — the single source of truth. - **Issue #299: `skill-seekers package --target claude` unrecognised argument crash** — `_reconstruct_argv()` in `main.py` emits default flag values back into argv when routing subcommands. `package_skill.py` had a 105-line inline argparser that used different flag names to those in `arguments/package.py`, so forwarded flags were rejected. Fixed by replacing the inline block with a call to `add_package_arguments(parser)` — the single source of truth.

View File

@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
**Skill Seekers** is the **universal documentation preprocessor** for AI systems. It transforms documentation websites, GitHub repositories, and PDFs into production-ready formats for **16+ platforms**: RAG pipelines (LangChain, LlamaIndex, Haystack), vector databases (Pinecone, Chroma, Weaviate, FAISS, Qdrant), AI coding assistants (Cursor, Windsurf, Cline, Continue.dev), and LLM platforms (Claude, Gemini, OpenAI). **Skill Seekers** is the **universal documentation preprocessor** for AI systems. It transforms documentation websites, GitHub repositories, and PDFs into production-ready formats for **16+ platforms**: RAG pipelines (LangChain, LlamaIndex, Haystack), vector databases (Pinecone, Chroma, Weaviate, FAISS, Qdrant), AI coding assistants (Cursor, Windsurf, Cline, Continue.dev), and LLM platforms (Claude, Gemini, OpenAI).
**Current Version:** v3.1.2-dev **Current Version:** v3.1.3
**Python Version:** 3.10+ required **Python Version:** 3.10+ required
**Status:** Production-ready, published on PyPI **Status:** Production-ready, published on PyPI
**Website:** https://skillseekersweb.com/ - Browse configs, share, and access documentation **Website:** https://skillseekersweb.com/ - Browse configs, share, and access documentation
@@ -2256,7 +2256,7 @@ The `scripts/` directory contains utility scripts:
## 🎉 Recent Achievements ## 🎉 Recent Achievements
**v3.1.2 (In Development) - "Unified Argument Interface":** **v3.1.3 (Released) - "Unified Argument Interface":**
- 🔧 **Unified Scraper Arguments** - All scrapers (scrape, github, analyze, pdf) now share a common argument contract via `add_all_standard_arguments(parser)` in `arguments/common.py` - 🔧 **Unified Scraper Arguments** - All scrapers (scrape, github, analyze, pdf) now share a common argument contract via `add_all_standard_arguments(parser)` in `arguments/common.py`
- 🐛 **Fix `create` Argument Forwarding** - `create <url> --dry-run`, `create owner/repo --dry-run`, `create ./path --dry-run` all work now (previously crashed) - 🐛 **Fix `create` Argument Forwarding** - `create <url> --dry-run`, `create owner/repo --dry-run`, `create ./path --dry-run` all work now (previously crashed)
- 🏗️ **Argument Deduplication** - Removed duplicated arg definitions from github.py, scrape.py, analyze.py, pdf.py; all import shared args - 🏗️ **Argument Deduplication** - Removed duplicated arg definitions from github.py, scrape.py, analyze.py, pdf.py; all import shared args

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "skill-seekers" name = "skill-seekers"
version = "3.1.2" version = "3.1.3"
description = "Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills. International support with Chinese (简体中文) documentation." description = "Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills. International support with Chinese (简体中文) documentation."
readme = "README.md" readme = "README.md"
requires-python = ">=3.10" requires-python = ">=3.10"

View File

@@ -28,7 +28,7 @@ def get_version() -> str:
""" """
if tomllib is None: if tomllib is None:
# Fallback if TOML library not available # Fallback if TOML library not available
return "3.1.1" # Hardcoded fallback return "3.1.3" # Hardcoded fallback
try: try:
# Get path to pyproject.toml (3 levels up from this file) # Get path to pyproject.toml (3 levels up from this file)
@@ -37,7 +37,7 @@ def get_version() -> str:
if not pyproject_path.exists(): if not pyproject_path.exists():
# Fallback for installed package # Fallback for installed package
return "3.1.1" # Hardcoded fallback return "3.1.3" # Hardcoded fallback
with open(pyproject_path, "rb") as f: with open(pyproject_path, "rb") as f:
pyproject_data = tomllib.load(f) pyproject_data = tomllib.load(f)
@@ -46,7 +46,7 @@ def get_version() -> str:
except Exception: except Exception:
# Fallback if anything goes wrong # Fallback if anything goes wrong
return "3.1.1" # Hardcoded fallback return "3.1.3" # Hardcoded fallback
__version__ = get_version() __version__ = get_version()

View File

@@ -138,7 +138,7 @@ class TestUnifiedCLIEntryPoints(unittest.TestCase):
# Should show version # Should show version
output = result.stdout + result.stderr output = result.stdout + result.stderr
self.assertIn("3.1.2", output) self.assertIn("3.1.3", output)
except FileNotFoundError: except FileNotFoundError:
# If skill-seekers is not installed, skip this test # If skill-seekers is not installed, skip this test

View File

@@ -24,7 +24,7 @@ class TestCliPackage:
import skill_seekers.cli import skill_seekers.cli
assert hasattr(skill_seekers.cli, "__version__") assert hasattr(skill_seekers.cli, "__version__")
assert skill_seekers.cli.__version__ == "3.1.2" assert skill_seekers.cli.__version__ == "3.1.3"
def test_cli_has_all(self): def test_cli_has_all(self):
"""Test that skill_seekers.cli package has __all__ export list.""" """Test that skill_seekers.cli package has __all__ export list."""
@@ -88,7 +88,7 @@ class TestMcpPackage:
import skill_seekers.mcp import skill_seekers.mcp
assert hasattr(skill_seekers.mcp, "__version__") assert hasattr(skill_seekers.mcp, "__version__")
assert skill_seekers.mcp.__version__ == "3.1.2" assert skill_seekers.mcp.__version__ == "3.1.3"
def test_mcp_has_all(self): def test_mcp_has_all(self):
"""Test that skill_seekers.mcp package has __all__ export list.""" """Test that skill_seekers.mcp package has __all__ export list."""
@@ -108,7 +108,7 @@ class TestMcpPackage:
import skill_seekers.mcp.tools import skill_seekers.mcp.tools
assert hasattr(skill_seekers.mcp.tools, "__version__") assert hasattr(skill_seekers.mcp.tools, "__version__")
assert skill_seekers.mcp.tools.__version__ == "3.1.2" assert skill_seekers.mcp.tools.__version__ == "3.1.3"
class TestPackageStructure: class TestPackageStructure:
@@ -212,7 +212,7 @@ class TestRootPackage:
import skill_seekers import skill_seekers
assert hasattr(skill_seekers, "__version__") assert hasattr(skill_seekers, "__version__")
assert skill_seekers.__version__ == "3.1.2" assert skill_seekers.__version__ == "3.1.3"
def test_root_has_metadata(self): def test_root_has_metadata(self):
"""Test that skill_seekers root package has metadata.""" """Test that skill_seekers root package has metadata."""