-
Notifications
You must be signed in to change notification settings - Fork 113
package release #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
package release #18
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,156 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: Auto Release | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| on: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| push: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| branches: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - main | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| paths: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - 'ttsfm/**' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - 'pyproject.toml' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - 'README.md' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| workflow_dispatch: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| inputs: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| bump_type: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| description: 'Version bump type' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| required: true | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| default: 'patch' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| type: choice | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| options: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - patch | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - minor | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - major | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| jobs: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| check-changes: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| outputs: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| should_release: ${{ steps.check.outputs.should_release }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| new_version: ${{ steps.version.outputs.new_version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| fetch-depth: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Check if release needed | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| id: check | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Check if there are changes since last tag | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0") | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| CHANGES=$(git log ${LAST_TAG}..HEAD --oneline --grep="feat\|fix\|BREAKING" | wc -l) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| if [ "$CHANGES" -gt 0 ] || [ "${{ github.event_name }}" = "workflow_dispatch" ]; then | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "should_release=true" >> $GITHUB_OUTPUT | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| else | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "should_release=false" >> $GITHUB_OUTPUT | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Calculate new version | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| id: version | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| if: steps.check.outputs.should_release == 'true' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Get current version from pyproject.toml | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| CURRENT_VERSION=$(grep '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/') | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Current version: $CURRENT_VERSION" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Determine bump type | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| BUMP_TYPE="${{ github.event.inputs.bump_type || 'patch' }}" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Calculate new version (simple implementation) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| MAJOR=${VERSION_PARTS[0]} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| MINOR=${VERSION_PARTS[1]} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| PATCH=${VERSION_PARTS[2]} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| case $BUMP_TYPE in | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| major) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| MAJOR=$((MAJOR + 1)) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| MINOR=0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| PATCH=0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ;; | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| minor) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| MINOR=$((MINOR + 1)) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| PATCH=0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ;; | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| patch) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| PATCH=$((PATCH + 1)) | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ;; | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| esac | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| NEW_VERSION="$MAJOR.$MINOR.$PATCH" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "New version: $NEW_VERSION" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| release: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+26
to
+85
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we will add a
The
Suggested changeset
1
.github/workflows/auto-release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| needs: check-changes | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| if: needs.check-changes.outputs.should_release == 'true' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| token: ${{ secrets.GITHUB_TOKEN }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: '3.11' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Update version in pyproject.toml | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| NEW_VERSION="${{ needs.check-changes.outputs.new_version }}" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| sed -i "s/^version = .*/version = \"$NEW_VERSION\"/" pyproject.toml | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Also update __init__.py if it exists | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| if [ -f "ttsfm/__init__.py" ]; then | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| sed -i "s/__version__ = .*/__version__ = \"$NEW_VERSION\"/" ttsfm/__init__.py | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Commit version bump | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git config --local user.email "[email protected]" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git config --local user.name "GitHub Action" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git add pyproject.toml ttsfm/__init__.py | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git commit -m "bump: version ${{ needs.check-changes.outputs.new_version }}" || exit 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git push | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Create and push tag | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| NEW_VERSION="${{ needs.check-changes.outputs.new_version }}" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git tag "v$NEW_VERSION" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| git push origin "v$NEW_VERSION" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install build dependencies | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -m pip install --upgrade pip | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| pip install build twine | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build package | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -m build | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Publish to PyPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: pypa/gh-action-pypi-publish@release/v1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| password: ${{ secrets.PYPI_API_TOKEN }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Create GitHub Release | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: softprops/action-gh-release@v1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| tag_name: v${{ needs.check-changes.outputs.new_version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: TTSFM v${{ needs.check-changes.outputs.new_version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| body: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## TTSFM v${{ needs.check-changes.outputs.new_version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| Automated release with latest changes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Installation | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| pip install ttsfm==${{ needs.check-changes.outputs.new_version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### What's Changed | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| See commit history for detailed changes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| draft: false | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| prerelease: false | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+86
to
+156
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we will add a
Suggested changeset
1
.github/workflows/auto-release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,121 @@ | |||||||||||||||||||||||||||||||||||||||||
| name: Manual Release | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| on: | |||||||||||||||||||||||||||||||||||||||||
| workflow_dispatch: | |||||||||||||||||||||||||||||||||||||||||
| inputs: | |||||||||||||||||||||||||||||||||||||||||
| version: | |||||||||||||||||||||||||||||||||||||||||
| description: 'Version to release (e.g., 3.0.1)' | |||||||||||||||||||||||||||||||||||||||||
| required: true | |||||||||||||||||||||||||||||||||||||||||
| type: string | |||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+1
to
+9
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add explicit permissions block to restrict GITHUB_TOKEN scope. Workflows should declare minimal permissions for the GITHUB_TOKEN to adhere to the principle of least privilege: permissions:
contents: read
packages: write🤖 Prompt for AI Agents |
|||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| jobs: | |||||||||||||||||||||||||||||||||||||||||
| test: | |||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python | |||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v4 | |||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||
| python-version: '3.11' | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Install dependencies | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| python -m pip install --upgrade pip | |||||||||||||||||||||||||||||||||||||||||
| pip install -e . | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Run basic tests | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| python -c "import ttsfm; print(f'TTSFM imported successfully')" | |||||||||||||||||||||||||||||||||||||||||
| python -c "from ttsfm import TTSClient; print('TTSClient imported successfully')" | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| build-and-release: | |||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+13
to
+33
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we will add a
This ensures that each job has only the permissions it needs, reducing the risk of misuse.
Suggested changeset
1
.github/workflows/manual-release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||
| needs: test | |||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||
| token: ${{ secrets.GITHUB_TOKEN }} | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python | |||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v4 | |||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||
| python-version: '3.11' | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Update version | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| VERSION="${{ github.event.inputs.version }}" | |||||||||||||||||||||||||||||||||||||||||
| sed -i "s/^version = .*/version = \"$VERSION\"/" pyproject.toml | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| # Update __init__.py if it exists | |||||||||||||||||||||||||||||||||||||||||
| if [ -f "ttsfm/__init__.py" ]; then | |||||||||||||||||||||||||||||||||||||||||
| sed -i "s/__version__ = .*/__version__ = \"$VERSION\"/" ttsfm/__init__.py | |||||||||||||||||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Commit version update | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| git config --local user.email "[email protected]" | |||||||||||||||||||||||||||||||||||||||||
| git config --local user.name "GitHub Action" | |||||||||||||||||||||||||||||||||||||||||
| git add pyproject.toml ttsfm/__init__.py | |||||||||||||||||||||||||||||||||||||||||
| git commit -m "bump: version ${{ github.event.inputs.version }}" || exit 0 | |||||||||||||||||||||||||||||||||||||||||
| git push | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Install build dependencies | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| python -m pip install --upgrade pip | |||||||||||||||||||||||||||||||||||||||||
| pip install build twine | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Build package | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| python -m build | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Check package | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| twine check dist/* | |||||||||||||||||||||||||||||||||||||||||
| ls -la dist/ | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Publish to PyPI | |||||||||||||||||||||||||||||||||||||||||
| uses: pypa/gh-action-pypi-publish@release/v1 | |||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||
| password: ${{ secrets.PYPI_API_TOKEN }} | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Create and push tag | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| git tag "v${{ github.event.inputs.version }}" | |||||||||||||||||||||||||||||||||||||||||
| git push origin "v${{ github.event.inputs.version }}" | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Create GitHub Release | |||||||||||||||||||||||||||||||||||||||||
| uses: softprops/action-gh-release@v1 | |||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||
| tag_name: v${{ github.event.inputs.version }} | |||||||||||||||||||||||||||||||||||||||||
| name: TTSFM v${{ github.event.inputs.version }} | |||||||||||||||||||||||||||||||||||||||||
| body: | | |||||||||||||||||||||||||||||||||||||||||
| ## TTSFM v${{ github.event.inputs.version }} | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| Manual release of TTSFM package. | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| ### Installation | |||||||||||||||||||||||||||||||||||||||||
| ```bash | |||||||||||||||||||||||||||||||||||||||||
| pip install ttsfm==${{ github.event.inputs.version }} | |||||||||||||||||||||||||||||||||||||||||
| ``` | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| ### Features | |||||||||||||||||||||||||||||||||||||||||
| - Text-to-Speech API client with OpenAI compatibility | |||||||||||||||||||||||||||||||||||||||||
| - Support for multiple voices and audio formats | |||||||||||||||||||||||||||||||||||||||||
| - Async and sync interfaces | |||||||||||||||||||||||||||||||||||||||||
| - Web interface for testing | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| ### Documentation | |||||||||||||||||||||||||||||||||||||||||
| See [GitHub repository](https://github.com/dbccccccc/ttsfm) for full documentation. | |||||||||||||||||||||||||||||||||||||||||
| draft: false | |||||||||||||||||||||||||||||||||||||||||
| prerelease: false | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| - name: Verify installation | |||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||
| echo "Waiting 30 seconds for PyPI to update..." | |||||||||||||||||||||||||||||||||||||||||
| sleep 30 | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||
| pip install ttsfm==${{ github.event.inputs.version }} | |||||||||||||||||||||||||||||||||||||||||
| python -c "import ttsfm; print(f'✅ PyPI installation successful! Version: {ttsfm.__version__}')" | |||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+34
to
+121
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we will add a
Suggested changeset
1
.github/workflows/manual-release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,102 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: Release to PyPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| on: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| push: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| tags: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - 'v*' # Triggers on version tags like v1.0.0, v3.0.0, etc. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+1
to
+7
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add explicit permissions block to tighten GITHUB_TOKEN scope. By default the workflow inherits broad write permissions. Define a minimal permissions block at the top to limit token scope: permissions:
contents: read
packages: write # for PyPI publishing
id-token: write # if you use OIDC🤖 Prompt for AI Agents |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| jobs: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| test: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| strategy: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| matrix: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: [3.8, 3.9, '3.10', '3.11', '3.12'] | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python ${{ matrix.python-version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: ${{ matrix.python-version }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install dependencies | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -m pip install --upgrade pip | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| pip install -e . | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Test package import | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -c "import ttsfm; print(f'TTSFM imported successfully')" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -c "from ttsfm import TTSClient; print('TTSClient imported successfully')" | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+28
to
+32
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Expand the test job to run the full test suite. Currently only import checks are executed. It’s best to invoke your test runner (e.g., 🤖 Prompt for AI Agents |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| build: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+10
to
+33
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we need to add a
The
Suggested changeset
1
.github/workflows/release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| needs: test | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: '3.11' | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install build dependencies | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -m pip install --upgrade pip | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| pip install build twine | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build package | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -m build | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Check package | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| twine check dist/* | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ls -la dist/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Upload build artifacts | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/upload-artifact@v3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: dist | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| path: dist/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| release: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+34
to
+65
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we will add a
We will add the
Suggested changeset
1
.github/workflows/release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| needs: build | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Download build artifacts | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/download-artifact@v3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: dist | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| path: dist/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Publish to PyPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: pypa/gh-action-pypi-publish@release/v1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| password: ${{ secrets.PYPI_API_TOKEN }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Create GitHub Release | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: softprops/action-gh-release@v1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| body: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## TTSFM ${{ github.ref_name }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| Automated release of TTSFM package. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Installation | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| pip install ttsfm | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Features | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Text-to-Speech API client with OpenAI compatibility | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Support for multiple voices and audio formats | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Async and sync interfaces | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Web interface for testing | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| draft: false | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| prerelease: false | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+66
to
+102
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 6 months ago To fix the issue, we will add a
Suggested changeset
1
.github/workflows/release.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Positive FeedbackNegative Feedback
Refresh and try again.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Add explicit permissions block to restrict GITHUB_TOKEN scope.
Define a minimal permissions block to reduce token privileges:
🤖 Prompt for AI Agents