Skip to content

Commit 6a7fb8a

Browse files
Add release workflow and changelog
1 parent 49d5113 commit 6a7fb8a

2 files changed

Lines changed: 87 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Create Release from Tag
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v4
18+
19+
- name: Extract version from tag
20+
id: version
21+
run: |
22+
# Remove 'v' prefix from tag to get version number
23+
VERSION="${GITHUB_REF#refs/tags/v}"
24+
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
25+
echo "Releasing version: $VERSION"
26+
27+
- name: Extract changelog for this version
28+
id: changelog
29+
run: |
30+
VERSION="${{ steps.version.outputs.VERSION }}"
31+
echo "Extracting changelog for version: $VERSION"
32+
33+
# Extract the section between this version header and the next version header
34+
# The pattern matches ## [VERSION] and extracts everything until the next ## [
35+
awk -v ver="$VERSION" '
36+
BEGIN { found=0; printing=0 }
37+
/^## \[/ {
38+
if (printing) { exit }
39+
if (index($0, "[" ver "]") > 0) { found=1; printing=1; next }
40+
}
41+
printing { print }
42+
' CHANGELOG.md > release_notes.md
43+
44+
# Check if we found content
45+
if [ ! -s release_notes.md ]; then
46+
echo "No changelog entry found for version $VERSION"
47+
echo "Using default release notes."
48+
echo "Release $VERSION" > release_notes.md
49+
else
50+
echo "Changelog extracted successfully:"
51+
cat release_notes.md
52+
fi
53+
54+
- name: Create GitHub Release
55+
uses: softprops/action-gh-release@v2
56+
with:
57+
name: "v${{ steps.version.outputs.VERSION }}"
58+
body_path: release_notes.md
59+
draft: false
60+
prerelease: ${{ contains(steps.version.outputs.VERSION, '-') }}
61+
generate_release_notes: false
62+
env:
63+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Changelog
2+
3+
## [1.0.1] - 2026-01-27
4+
5+
### Added
6+
- **Automated releases**: GitHub Actions workflow for automatic versioning and releases based on CHANGELOG.md entries.
7+
8+
9+
## [1.0.0] - 2026-01-17
10+
11+
### Added
12+
- **Core Framework**: Complete pipeline for text embedding model evaluation and comparison.
13+
- **Grid Search Engine**: Systematic testing of parameter combinations (chunk sizes, overlaps, strategies, models) with resumption capabilities.
14+
- **Multi-Provider Support**:
15+
- Local: FastEmbed (CPU/GPU), SentenceTransformers, Hugging Face Transformers.
16+
- API: Generic API client structure for remote services.
17+
- **Chunking Strategies**: Integration with LangChain, SemChunk, NLTK, spaCy, and raw text processing.
18+
- **Similarity Metrics**: Support for Cosine, Euclidean, Manhattan, Dot Product, and Chebyshev distances.
19+
- **Persistent Caching**: SQLite storage for embeddings and results to avoid redundant computations.
20+
- **Quantization**: Database optimization to reduce storage footprint while maintaining accuracy.
21+
- **Reporting System**: Generation of standalone, interactive HTML reports with embedded visualizations.
22+
- **Cluster Analysis**: Silhouette score calculation with detailed intra/inter-cluster distance decomposition.
23+
- **Theme Analysis**: Configuration-based thematic evaluation of embeddings.
24+
- **CLI Interface**: Command-line tool main.py for running pipelines and generating reports.

0 commit comments

Comments
 (0)