Skip to content
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

Fix/push versions v2 #1985

Merged
merged 4 commits into from
Dec 25, 2024
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
45 changes: 36 additions & 9 deletions .github/workflows/build_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,15 @@ jobs:
name: pypi
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: "3.9"
- name: Install dependencies
run: python3 -m pip install setuptools wheel twine semver packaging
run: python3 -m pip install --upgrade setuptools wheel twine semver packaging
- name: Get correct version for TestPyPI release
id: check_version
run: |
Expand All @@ -41,11 +42,11 @@ jobs:
echo "Version to be used for TestPyPI release: $NEW_VERSION"
echo "::set-output name=version::$NEW_VERSION"
- name: Update version in setup.py
run: sed -i '/#replace_package_version_marker/{n;s/version="[^"]*"/version="${{ steps.check_version.outputs.version }}"/;}' setup.py
run: sed -i '/#replace_package_version_marker/{n;s/__version__="[^"]*"/__version__="${{ steps.check_version.outputs.version }}"/;}' ./dspy/__metadata__.py
- name: Update version in pyproject.toml
run: sed -i '/#replace_package_version_marker/{n;s/version="[^"]*"/version="${{ steps.check_version.outputs.version }}"/;}' pyproject.toml
- name: Update package name in setup.py
run: sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy-ai-test"/;}' setup.py
run: sed -i '/#replace_package_name_marker/{n;s/__name__="[^"]*"/__name__="dspy-ai-test"/;}' ./dspy/__metadata__.py
- name: Update package name in pyproject.toml
run: sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy-ai-test"/;}' pyproject.toml
- name: Build a binary wheel
Expand All @@ -62,41 +63,67 @@ jobs:
name: pypi
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: "3.9"
- name: Install dependencies
run: python3 -m pip install setuptools wheel twine
run: python3 -m pip install --upgrade setuptools wheel twine
- name: Update version in setup.py (dspy)
run: sed -i '/#replace_package_version_marker/{n;s/version="[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' setup.py
run: sed -i '/#replace_package_version_marker/{n;s/__version__="[^"]*"/__version__="${{ needs.extract-tag.outputs.version }}"/;}' ./dspy/__metadata__.py
- name: Update version in pyproject.toml
run: sed -i '/#replace_package_version_marker/{n;s/version="[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' pyproject.toml
# Publish to dspy
- name: Update package name in setup.py
run: |
sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy"/;}' setup.py
sed -i '/#replace_package_name_marker/{n;s/__name__="[^"]*"/__name__="dspy"/;}' ./dspy/__metadata__.py
- name: Update package name in pyproject.toml
run: sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy"/;}' pyproject.toml
# Remove pyproject.toml temporarily to avoid conflicts
- name: Temporarily remove pyproject.toml
run: mv pyproject.toml pyproject.toml.bak
- name: Build a binary wheel
run: python3 setup.py sdist bdist_wheel
- name: Publish distribution 📦 to PyPI (dspy)
uses: pypa/gh-action-pypi-publish@release/v1 # This requires a trusted publisher to be setup in pypi
with:
attestations: false
# Publish to dspy-ai
# Publish to dspy-ai
- name: Update version in setup.py (dspy-ai)
run: sed -i '/#replace_package_version_marker/{n;s/version="[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' ./dspy/.internal_dspyai/setup.py
- name: Update package name in setup.py
run: sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy-ai"/;}' ./dspy/.internal_dspyai/setup.py
- name: Update dspy dependency version in setup.py
run: |
sed -i '/#replace_dspy_version_marker/{n;s/dspy==[^"]*/dspy>=${{ needs.extract-tag.outputs.version }}/;}' ./dspy/.internal_dspyai/setup.py
sed -i '/#replace_dspy_version_marker/{n;s/dspy>=[^"]*/dspy>=${{ needs.extract-tag.outputs.version }}/;}' ./dspy/.internal_dspyai/setup.py
- name: Build a binary wheel
run: python3 ./dspy/.internal_dspyai/setup.py sdist bdist_wheel
- name: Publish distribution 📦 to PyPI (dspy-ai)
uses: pypa/gh-action-pypi-publish@release/v1 # This requires a trusted publisher to be setup in pypi
with:
attestations: false
attestations: false
# Restore pyproject.toml
- name: Restore pyproject.toml
run: mv pyproject.toml.bak pyproject.toml
- uses: stefanzweifel/git-auto-commit-action@v5 # auto commit changes to main
with:
commit_message: Update versions
create_branch: true
branch: release-${{ needs.extract-tag.outputs.version }}
- name: Checkout main branch
run: |
git fetch origin
git checkout main
- name: Configure git user
run: |
git config --global user.email "[email protected]"
git config --global user.name "Github Actions"
- name: Merge release branch into main
run: |
git merge --no-ff release-${{ needs.extract-tag.outputs.version }}
- name: Push changes to main
run: |
git push origin main
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.github/
8 changes: 8 additions & 0 deletions dspy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@
configure = settings.configure
context = settings.context

from .__metadata__ import (
__name__,
__version__,
__description__,
__url__,
__author__,
__author_email__
)

import dspy.teleprompt

Expand Down
8 changes: 8 additions & 0 deletions dspy/__metadata__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#replace_package_name_marker
__name__="dspy"
#replace_package_version_marker
__version__="2.5.43"
__description__="DSPy"
__url__="https://github.com/stanfordnlp/dspy"
__author__="Omar Khattab"
__author_email__="[email protected]"
6 changes: 4 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@ requires = ["setuptools>=40.8.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
# Do not add spaces around the '=' sign for any of the fields
# preceeded by a marker comment as it affects the publish workflow.
#replace_package_name_marker
name = "dspy"
name="dspy"
#replace_package_version_marker
version = "2.5.43"
version="2.5.43"
description = "DSPy"
readme = "README.md"
authors = [{ name = "Omar Khattab", email = "[email protected]" }]
Expand Down
24 changes: 15 additions & 9 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from setuptools import find_packages, setup
import os

# Read the content of the README file
with open("README.md", encoding="utf-8") as f:
Expand All @@ -8,20 +9,25 @@
with open("requirements.txt", encoding="utf-8") as f:
requirements = f.read().splitlines()

metadata = {}
here = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(here, "dspy", "__metadata__.py"), "r", encoding="utf-8") as f:
exec(f.read(), metadata)
f.close()


setup(
#replace_package_name_marker
name="dspy",
#replace_package_version_marker
version="2.5.43",
description="DSPy",
name=metadata["__name__"],
version=metadata["__version__"],
description=metadata["__description__"],
url=metadata["__url__"],
author=metadata["__author__"],
author_email=metadata["__author_email__"],
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/stanfordnlp/dspy",
author="Omar Khattab",
author_email="[email protected]",
license="MIT License",
packages=find_packages(include=["dspy.*", "dspy"]),
python_requires=">=3.9",
python_requires=">=3.9",
install_requires=requirements,

extras_require={
Expand Down
Loading