Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
43ffd32
Refactor: Update MultiScaleSSIM implementation to use torchmetrics an…
selimfirat May 24, 2025
32b7175
Enhance MultiScaleSSIM: Add data_range property and update test fixtu…
selimfirat May 25, 2025
c353f17
feat: Introduce ChannelAwareBaseModel for standardized CSI handling
selimfirat May 25, 2025
21bf215
Add unit tests for MLP encoder, decoder, and projection components
selimfirat May 25, 2025
bba1d95
docs: Add example code section to README for Bourtsoulatze2019 DeepJS…
selimfirat May 25, 2025
02120d8
docs: Add example code image to documentation
selimfirat May 25, 2025
cd005fe
Issue: Standardized Benchmarks #13 Add comprehensive tests for benchm…
selimfirat May 25, 2025
f7b6ce3
Issue: Standardized Benchmarks #13 Add comprehensive tests for benchm…
selimfirat May 25, 2025
2771795
fix: Update NeuralCompressor to handle mock models and improve error …
selimfirat May 26, 2025
6fbaaf8
Merge branch 'dev' of github.com:ipc-lab/kaira into dev
selimfirat May 26, 2025
587dc90
Bugfix: Refactored benchmark examples and update documentation for Ka…
selimfirat May 26, 2025
76a486e
Adding non-complex the BPSK modulator output and fixing the demodulat…
smeshk May 27, 2025
13e4a2d
Add loading LDPC codes from RPTU code database, and create usage exam…
smeshk May 27, 2025
93e2ecc
refactor: Update benchmark configurations to use block_length instead…
selimfirat May 27, 2025
22fd988
feat: Add Error Vector Magnitude (EVM) metric and corresponding tests
selimfirat May 28, 2025
f828f5b
Fix: Use the same names for parameters in experiments and documentati…
smeshk Jun 3, 2025
10b4818
Fix: Change the default type for BPSK Modulator to not complex
smeshk Jun 3, 2025
0b01629
Add Polar Codes: encoding, Belief Propagation decoding, Successive Ca…
smeshk Jun 3, 2025
2591d38
Fix: Change import of the polar indices to correct file address.
smeshk Jun 3, 2025
4dec2be
Add: Include results and benchmark output directories to .gitignore
selimfirat Jun 4, 2025
3308784
Refactor FEC encoder modules and improve code readability and to pass…
selimfirat Jun 4, 2025
8898a8b
Fix: Correct assertion message in SuccessiveCancellationDecoder to re…
selimfirat Jun 4, 2025
93dccac
Fix: Update default value of complex_output in BPSKModulator for cons…
selimfirat Jun 4, 2025
5467ebb
Fix: Update pull request branches in GitHub Actions workflow to inclu…
selimfirat Jun 4, 2025
2332900
Add: Include additional decoders and encoders in the API reference do…
selimfirat Jun 4, 2025
bed5240
Fix: Update pull request branches in pre-commit workflow to include '…
selimfirat Jun 4, 2025
ab4d6e6
Add: Implement GitHub Actions workflow for generating API documentation
selimfirat Jun 4, 2025
81f4486
Add: Update GitHub Actions workflow to always commit and push changes…
selimfirat Jun 5, 2025
98ce6df
Add unit tests for polar code encoder and RPTU database functionality
selimfirat Jun 5, 2025
b884e4e
feat: Add advanced visualization for Polar codes with decoding animat…
selimfirat Jun 5, 2025
18ed06b
chore: Remove GitHub Actions workflow for generating API documentation
selimfirat Jun 5, 2025
214299a
feat: Enhance LDPC visualization and performance analysis with improv…
selimfirat Jun 5, 2025
30340ae
fix: Correct header formatting in theoretical analysis section
selimfirat Jun 5, 2025
5fb2310
Update kaira/models/fec/encoders/ldpc_code.py
selimfirat Jun 5, 2025
d1583e8
fix: Improve error message for invalid LDPCCodeEncoder initialization
selimfirat Jun 5, 2025
e9fa133
Merge pull request #27 from ipc-lab/feature-fec_ldpc_polar
selimfirat Jun 5, 2025
13e2857
feat: Implement automated generation of API reference and changelog d…
selimfirat Jun 5, 2025
4279ffb
fix: Add seaborn to requirements for enhanced data visualization support
selimfirat Jun 5, 2025
22cbe6e
fix: Update Python version in pre-commit workflow to 3.13.2
selimfirat Jun 5, 2025
90fbb69
fix: Refactor mock context manager for improved readability in test_c…
selimfirat Jun 5, 2025
4f5b795
fix: Add skip marker for tests if BPG tools are not available
selimfirat Jun 5, 2025
8fdcce7
Automatic Addition of Examples to Corresponding Index.rst Files for E…
selimfirat Jun 6, 2025
0ddbeb5
Convert All NumPy Instances to PyTorch for Consistency #30
selimfirat Jun 6, 2025
5e71d04
fix: Add error handling for unsupported snr_db types in calculate_the…
selimfirat Jun 6, 2025
55983fb
refactor: Update formatting in benchmark examples and documentation f…
selimfirat Jun 6, 2025
8a537f5
fix: Update EVM formula notation for clarity and consistency
selimfirat Jun 6, 2025
5c7573c
fix: Update example references in benchmarks documentation for consis…
selimfirat Jun 6, 2025
0247281
refactor: Clean up comments in PSK modulation example for clarity
selimfirat Jun 6, 2025
26c112b
fix: Update example references in benchmarks documentation for clarit…
selimfirat Jun 6, 2025
b6b4724
refactor: Improve documentation clarity and consistency in benchmark …
selimfirat Jun 6, 2025
a22b40e
refactor: Update header formatting in benchmark visualization example…
selimfirat Jun 6, 2025
3b9dbe6
fix: Update release date for version 0.2.0 in changelog
selimfirat Jun 6, 2025
6ac0202
feat: Implement auto examples download system for documentation builds
selimfirat Jun 7, 2025
1bbc9d3
fix: Allow example generation on dev branch in workflow
selimfirat Jun 7, 2025
139d1d4
feat: Enhance auto examples generation workflow with change detection…
selimfirat Jun 7, 2025
5c471df
fix: Adjust Python version matrix for dev branch to use only Python 3.10
selimfirat Jun 7, 2025
9663b2a
refactor: Remove auto_examples_config.ini and update download script …
selimfirat Jun 7, 2025
75224c7
Remove auto_examples_config.ini and replace dorny/paths-filter with n…
selimfirat Jun 7, 2025
eabce30
Add concurrency control to cancel previous workflow runs
selimfirat Jun 7, 2025
c1309f5
Optimize API reference workflow with multiple improvements
selimfirat Jun 7, 2025
b8b86b8
feat: Optimize changelog workflow with enhanced error handling and re…
selimfirat Jun 7, 2025
ea9b771
feat: Optimize remaining GitHub Actions workflows with enhanced features
selimfirat Jun 7, 2025
7bb9ccb
feat: Enhance auto_examples download script with improved error handl…
selimfirat Jun 7, 2025
c6da20d
feat: Enhance auto_examples download script with improved error handl…
selimfirat Jun 7, 2025
5bc6e5f
Fix GitHub Actions workflow commit comparison errors
selimfirat Jun 7, 2025
fe57214
feat: Update GitHub artifacts handling with improved token requiremen…
selimfirat Jun 7, 2025
b617d19
Complete RTD token requirements solution
selimfirat Jun 7, 2025
6b4708c
feat: Improve logging for GitHub artifacts access and token requirements
selimfirat Jun 7, 2025
5dd0e0e
feat: implement robust incremental build system for auto-examples
selimfirat Jun 7, 2025
d12515d
feat: enhance example detection and logging in GitHub Actions workflow
selimfirat Jun 7, 2025
9773e00
feat: add required permissions for workflow artifact handling
selimfirat Jun 7, 2025
8c1d0a2
feat: update workflow permissions and enhance debug logging for auto_…
selimfirat Jun 7, 2025
8fd8fa4
feat: update download script to prioritize GitHub releases and enhanc…
selimfirat Jun 7, 2025
7ff6853
feat: add GITHUB_TOKEN environment variable for improved authenticati…
selimfirat Jun 7, 2025
5bfbbda
feat: refactor auto_examples generation to remove download step and e…
selimfirat Jun 7, 2025
201bb5d
Fix GitHub Actions workflow conditional logic and mypy type error
selimfirat Jun 7, 2025
ff737f2
feat: enhance error handling and logging for GitHub token permissions…
selimfirat Jun 7, 2025
a1e24ef
feat: update GitHub API integration for artifact downloads with impro…
selimfirat Jun 7, 2025
649228f
feat: enhance extraction logic for auto_examples from nested GitHub a…
selimfirat Jun 7, 2025
29c9fd7
fix: resolve strict mypy type annotations for JSON response handling
selimfirat Jun 7, 2025
5b50543
feat: enhance error handling and cleanup for auto_examples directory …
selimfirat Jun 7, 2025
47a40cb
feat: improve error handling and cleanup in download_and_extract_exam…
selimfirat Jun 7, 2025
9e394d1
feat: implement safe extraction with conflict resolution for auto_exa…
selimfirat Jun 7, 2025
da9bde9
feat: simplify extraction process for auto_examples by removing confl…
selimfirat Jun 7, 2025
4d3613d
feat: enhance extraction process to skip problematic files in auto_ex…
selimfirat Jun 7, 2025
d9bc087
feat: remove ePub format option from documentation build
selimfirat Jun 7, 2025
eda8ef3
feat: update Python version to 3.13.2 in changelog workflow
selimfirat Jun 7, 2025
056ca54
feat: update Python version to 3.13.2 and enhance Sphinx configuration
selimfirat Jun 8, 2025
43e1a3d
feat: downgrade Python version to 3.13 in Read the Docs configuration
selimfirat Jun 8, 2025
2157abd
Add Uplink MAC Channel implementation and related tests
selimfirat Jun 8, 2025
6cd3e10
Replace mock tests with actual integration tests for external depende…
selimfirat Jun 8, 2025
ded071d
fix: update auto_examples release upload logic to handle existing rel…
selimfirat Jun 8, 2025
2c8d245
test: enhance neural compressor tests for fixed quality and early sto…
selimfirat Jun 8, 2025
d756f75
feat: add Reed-Muller code encoder to the FEC module
selimfirat Jun 8, 2025
78352b5
Add LDPC Benchmarking and Min-Sum Decoder Implementation
selimfirat Jun 10, 2025
0b3f121
fix: improve assertions in ECC performance benchmark tests for succes…
selimfirat Jun 10, 2025
7ade064
Update .pre-commit-config.yaml
selimfirat Jun 10, 2025
e918a06
Remove example script for visualizing error correction using repetiti…
selimfirat Jun 10, 2025
36cd7a9
feat: enhance README and code coverage with new tests for ECC and LDP…
selimfirat Jun 10, 2025
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
203 changes: 203 additions & 0 deletions .github/workflows/api_reference.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
name: Update API Reference Documentation

on:
push:
branches: [main, master, dev]
paths:
- "kaira/**/*.py"
- "scripts/generate_api_reference.py"
pull_request:
branches: [main, master, dev]
paths:
- "kaira/**/*.py"
- "scripts/generate_api_reference.py"
workflow_dispatch: # Allow manual triggering

# Cancel previous runs if a new push happens
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
update-api-reference:
runs-on: ubuntu-latest
timeout-minutes: 10

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0 # Need full history for proper git operations

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13.2" # Use same as main CI
cache: "pip"

- name: Cache Python dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-api-${{ hashFiles('requirements*.txt', 'pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-api-
${{ runner.os }}-pip-

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
pip install -r requirements-dev.txt

- name: Generate API reference documentation
run: |
echo "πŸ”„ Generating API reference documentation..."
python scripts/generate_api_reference.py docs/api_reference.rst
echo "βœ… API reference generation completed"

- name: Check for changes
id: changes
run: |
echo "πŸ” Checking for changes in API reference..."

if [ ! -f "docs/api_reference.rst" ]; then
echo "❌ API reference file was not generated"
exit 1
fi

# Check if file has meaningful content
if [ $(wc -l < "docs/api_reference.rst") -lt 10 ]; then
echo "❌ API reference file seems too small or empty"
exit 1
fi

# Check for actual changes
if git diff --quiet docs/api_reference.rst; then
echo "ℹ️ No changes detected in API reference"
echo "changed=false" >> $GITHUB_OUTPUT
else
echo "πŸ“ Changes detected in API reference"
echo "Changed lines:"
git diff --stat docs/api_reference.rst
echo "changed=true" >> $GITHUB_OUTPUT
fi

- name: Commit and push changes
if: steps.changes.outputs.changed == 'true' && github.event_name == 'push'
run: |
echo "πŸ“ Committing API reference changes..."

# Configure git with better identity
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"

# Add the file and commit
git add docs/api_reference.rst

# Create commit with more context
commit_msg="docs: Auto-update API reference documentation

Updated API reference for commit ${{ github.sha }}
Triggered by: ${{ github.event_name }}
Branch: ${{ github.ref_name }}

[skip ci]"

git commit -m "$commit_msg"

# Push with retry logic
max_attempts=3
attempt=1

while [ $attempt -le $max_attempts ]; do
echo "πŸ“€ Push attempt $attempt of $max_attempts..."
if git push; then
echo "βœ… Successfully pushed API reference updates"
break
else
if [ $attempt -eq $max_attempts ]; then
echo "❌ Failed to push after $max_attempts attempts"
exit 1
fi
echo "⚠️ Push failed, retrying in 5 seconds..."
sleep 5
git pull --rebase
attempt=$((attempt + 1))
fi
done

- name: Comment on PR
if: steps.changes.outputs.changed == 'true' && github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');

// Get diff statistics
const { execSync } = require('child_process');
let diffStats = '';
try {
diffStats = execSync('git diff --stat docs/api_reference.rst', { encoding: 'utf8' });
} catch (error) {
diffStats = 'Unable to get diff statistics';
}

const body = `πŸ€– **API Reference Documentation Updated**

The API reference documentation has been automatically updated based on the code changes in this PR.

### Changes Summary:
\`\`\`
${diffStats}
\`\`\`

### Files Modified:
- \`docs/api_reference.rst\`

> πŸ’‘ **Note**: This update was automatically generated by analyzing the Python code changes in the \`kaira/\` directory.

<details>
<summary>πŸ” View API Reference Diff</summary>

The updated API reference will be visible once this PR is merged and the documentation is rebuilt.

</details>`;

github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body
})

- name: Generate job summary
if: always()
run: |
echo "# πŸ“š API Reference Documentation Update" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

if [ "${{ steps.changes.outputs.changed }}" = "true" ]; then
echo "βœ… **Status**: API reference documentation was updated" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Changes Made:" >> $GITHUB_STEP_SUMMARY
echo "- Updated \`docs/api_reference.rst\`" >> $GITHUB_STEP_SUMMARY
echo "- Detected changes in Python modules under \`kaira/\`" >> $GITHUB_STEP_SUMMARY

if [ "${{ github.event_name }}" = "push" ]; then
echo "- Automatically committed and pushed changes" >> $GITHUB_STEP_SUMMARY
elif [ "${{ github.event_name }}" = "pull_request" ]; then
echo "- Added comment to PR with update details" >> $GITHUB_STEP_SUMMARY
fi
else
echo "ℹ️ **Status**: No changes needed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "The API reference documentation is already up to date." >> $GITHUB_STEP_SUMMARY
fi

echo "" >> $GITHUB_STEP_SUMMARY
echo "### Trigger Information:" >> $GITHUB_STEP_SUMMARY
echo "- **Event**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Branch**: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Commit**: \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
155 changes: 155 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
name: Update Changelog Documentation

on:
push:
branches: [main, master, dev]
paths:
- "CHANGELOG.md"
pull_request:
branches: [main, master, dev]
paths:
- "CHANGELOG.md"
workflow_dispatch: # Allow manual triggering

# Cancel previous runs if a new push happens
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
update-changelog:
runs-on: ubuntu-latest
timeout-minutes: 5

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0 # Need full history for proper git operations

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13.2" # Use same as main CI
cache: "pip"

- name: Generate changelog.rst from CHANGELOG.md
run: |
echo "πŸ“š Generating changelog.rst from CHANGELOG.md..."
python scripts/generate_changelog.py
echo "βœ… Changelog generation completed"

- name: Check for changes
id: verify-changed-files
run: |
echo "πŸ” Checking for changes in changelog..."

if [ ! -f "docs/changelog.rst" ]; then
echo "❌ Changelog file was not generated"
exit 1
fi

if [ -n "$(git status --porcelain docs/changelog.rst)" ]; then
echo "πŸ“ Changes detected in changelog"
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "ℹ️ No changes detected in changelog"
echo "changed=false" >> $GITHUB_OUTPUT
fi

- name: Commit and push changes
if: steps.verify-changed-files.outputs.changed == 'true' && github.event_name == 'push'
run: |
echo "πŸ“ Committing changelog updates..."

# Configure git with better identity
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"

# Add the file and commit
git add docs/changelog.rst

# Create commit with more context
commit_msg="docs: Auto-update changelog.rst from CHANGELOG.md

Updated changelog for commit ${{ github.sha }}
Triggered by: ${{ github.event_name }}
Branch: ${{ github.ref_name }}

[skip ci]"

git commit -m "$commit_msg"

# Push with retry logic
max_attempts=3
attempt=1

while [ $attempt -le $max_attempts ]; do
echo "πŸ“€ Push attempt $attempt of $max_attempts..."
if git push; then
echo "βœ… Successfully pushed changelog updates"
break
else
if [ $attempt -eq $max_attempts ]; then
echo "❌ Failed to push after $max_attempts attempts"
exit 1
fi
echo "⚠️ Push failed, retrying in 5 seconds..."
sleep 5
git pull --rebase
attempt=$((attempt + 1))
fi
done

- name: Create comment on PR
if: steps.verify-changed-files.outputs.changed == 'true' && github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const body = `πŸ“„ **Changelog Documentation Updated**

This PR modifies \`CHANGELOG.md\`. The corresponding \`docs/changelog.rst\` file has been automatically updated.

### Changes Summary:
- Updated \`docs/changelog.rst\` from \`CHANGELOG.md\`
- Generated reStructuredText format for Sphinx documentation

> πŸ’‘ **Note**: The updated changelog will be visible in the documentation once this PR is merged and the docs are rebuilt.`;

github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body
})

- name: Generate job summary
if: always()
run: |
echo "# πŸ“„ Changelog Documentation Update" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

if [ "${{ steps.verify-changed-files.outputs.changed }}" = "true" ]; then
echo "βœ… **Status**: Changelog documentation was updated" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Changes Made:" >> $GITHUB_STEP_SUMMARY
echo "- Updated \`docs/changelog.rst\` from \`CHANGELOG.md\`" >> $GITHUB_STEP_SUMMARY
echo "- Generated reStructuredText format for Sphinx documentation" >> $GITHUB_STEP_SUMMARY

if [ "${{ github.event_name }}" = "push" ]; then
echo "- Automatically committed and pushed changes" >> $GITHUB_STEP_SUMMARY
elif [ "${{ github.event_name }}" = "pull_request" ]; then
echo "- Added comment to PR with update details" >> $GITHUB_STEP_SUMMARY
fi
else
echo "ℹ️ **Status**: No changes needed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "The changelog documentation is already up to date." >> $GITHUB_STEP_SUMMARY
fi

echo "" >> $GITHUB_STEP_SUMMARY
echo "### Trigger Information:" >> $GITHUB_STEP_SUMMARY
echo "- **Event**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Branch**: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Commit**: \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
Loading
Loading