@@ -23,14 +23,15 @@ jobs:
23
23
name : pypi
24
24
permissions :
25
25
id-token : write # IMPORTANT: mandatory for trusted publishing
26
+ contents : write
26
27
steps :
27
28
- uses : actions/checkout@v4
28
29
- name : Set up Python 3.9
29
30
uses : actions/setup-python@v3
30
31
with :
31
32
python-version : " 3.9"
32
33
- name : Install dependencies
33
- run : python3 -m pip install setuptools wheel twine semver packaging
34
+ run : python3 -m pip install --upgrade setuptools wheel twine semver packaging
34
35
- name : Get correct version for TestPyPI release
35
36
id : check_version
36
37
run : |
@@ -41,11 +42,11 @@ jobs:
41
42
echo "Version to be used for TestPyPI release: $NEW_VERSION"
42
43
echo "::set-output name=version::$NEW_VERSION"
43
44
- name : Update version in setup.py
44
- run : sed -i '/#replace_package_version_marker/{n;s/version ="[^"]*"/version ="${{ steps.check_version.outputs.version }}"/;}' setup .py
45
+ run : sed -i '/#replace_package_version_marker/{n;s/__version__ ="[^"]*"/__version__ ="${{ steps.check_version.outputs.version }}"/;}' ./dspy/__metadata__ .py
45
46
- name : Update version in pyproject.toml
46
47
run : sed -i '/#replace_package_version_marker/{n;s/version="[^"]*"/version="${{ steps.check_version.outputs.version }}"/;}' pyproject.toml
47
48
- name : Update package name in setup.py
48
- run : sed -i '/#replace_package_name_marker/{n;s/name ="[^"]*"/name ="dspy-ai-test"/;}' setup.py
49
+ run : sed -i '/#replace_package_name_marker/{n;s/__name__ ="[^"]*"/__name__ ="dspy-ai-test"/;}' ./dspy/__metadata__.py
49
50
- name : Update package name in pyproject.toml
50
51
run : sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy-ai-test"/;}' pyproject.toml
51
52
- name : Build a binary wheel
@@ -62,41 +63,67 @@ jobs:
62
63
name : pypi
63
64
permissions :
64
65
id-token : write # IMPORTANT: mandatory for trusted publishing
66
+ contents : write
65
67
steps :
66
68
- uses : actions/checkout@v4
67
69
- name : Set up Python 3.9
68
70
uses : actions/setup-python@v3
69
71
with :
70
72
python-version : " 3.9"
71
73
- name : Install dependencies
72
- run : python3 -m pip install setuptools wheel twine
74
+ run : python3 -m pip install --upgrade setuptools wheel twine
73
75
- name : Update version in setup.py (dspy)
74
- run : sed -i '/#replace_package_version_marker/{n;s/version= "[^"]*"/version ="${{ needs.extract-tag.outputs.version }}"/;}' setup .py
76
+ run : sed -i '/#replace_package_version_marker/{n;s/__version__ *= * "[^"]*"/__version__ ="${{ needs.extract-tag.outputs.version }}"/;}' ./dspy/__metadata__ .py
75
77
- name : Update version in pyproject.toml
76
- run : sed -i '/#replace_package_version_marker/{n;s/version= "[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' pyproject.toml
78
+ run : sed -i '/#replace_package_version_marker/{n;s/version *= * "[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' pyproject.toml
77
79
# Publish to dspy
78
80
- name : Update package name in setup.py
79
81
run : |
80
- sed -i '/#replace_package_name_marker/{n;s/name= "[^"]*"/name ="dspy"/;}' setup .py
82
+ sed -i '/#replace_package_name_marker/{n;s/__name__ *= * "[^"]*"/__name__ ="dspy"/;}' ./dspy/__metadata__ .py
81
83
- name : Update package name in pyproject.toml
82
- run : sed -i '/#replace_package_name_marker/{n;s/name="[^"]*"/name="dspy"/;}' pyproject.toml
84
+ run : sed -i '/#replace_package_name_marker/{n;s/name *= *"[^"]*"/name="dspy"/;}' pyproject.toml
85
+ # Remove pyproject.toml temporarily to avoid conflicts
86
+ - name : Temporarily remove pyproject.toml
87
+ run : mv pyproject.toml pyproject.toml.bak
83
88
- name : Build a binary wheel
84
89
run : python3 setup.py sdist bdist_wheel
85
90
- name : Publish distribution 📦 to PyPI (dspy)
86
91
uses : pypa/gh-action-pypi-publish@release/v1 # This requires a trusted publisher to be setup in pypi
87
92
with :
88
93
attestations : false
89
- # Publish to dspy-ai
94
+ # Publish to dspy-ai
90
95
- name : Update version in setup.py (dspy-ai)
91
- run : sed -i '/#replace_package_version_marker/{n;s/version= "[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' ./dspy/.internal_dspyai/setup.py
96
+ run : sed -i '/#replace_package_version_marker/{n;s/version *= * "[^"]*"/version="${{ needs.extract-tag.outputs.version }}"/;}' ./dspy/.internal_dspyai/setup.py
92
97
- name : Update package name in setup.py
93
- run : sed -i '/#replace_package_name_marker/{n;s/name= "[^"]*"/name="dspy-ai"/;}' ./dspy/.internal_dspyai/setup.py
98
+ run : sed -i '/#replace_package_name_marker/{n;s/name *= * "[^"]*"/name="dspy-ai"/;}' ./dspy/.internal_dspyai/setup.py
94
99
- name : Update dspy dependency version in setup.py
95
100
run : |
96
- sed -i '/#replace_dspy_version_marker/{n;s/dspy= =[^"]*/dspy>=${{ needs.extract-tag.outputs.version }}/;}' ./dspy/.internal_dspyai/setup.py
101
+ sed -i '/#replace_dspy_version_marker/{n;s/dspy> =[^"]*/dspy>=${{ needs.extract-tag.outputs.version }}/;}' ./dspy/.internal_dspyai/setup.py
97
102
- name : Build a binary wheel
98
103
run : python3 ./dspy/.internal_dspyai/setup.py sdist bdist_wheel
99
104
- name : Publish distribution 📦 to PyPI (dspy-ai)
100
105
uses : pypa/gh-action-pypi-publish@release/v1 # This requires a trusted publisher to be setup in pypi
101
106
with :
102
- attestations : false
107
+ attestations : false
108
+ # Restore pyproject.toml
109
+ - name : Restore pyproject.toml
110
+ run : mv pyproject.toml.bak pyproject.toml
111
+ - uses : stefanzweifel/git-auto-commit-action@v5 # auto commit changes to main
112
+ with :
113
+ commit_message : Update versions
114
+ create_branch : true
115
+ branch : release-${{ needs.extract-tag.outputs.version }}
116
+ - name : Checkout main branch
117
+ run : |
118
+ git fetch origin
119
+ git checkout main
120
+ - name : Configure git user
121
+ run : |
122
+ git config --global user.email "[email protected] "
123
+ git config --global user.name "Github Actions"
124
+ - name : Merge release branch into main
125
+ run : |
126
+ git merge --no-ff release-${{ needs.extract-tag.outputs.version }}
127
+ - name : Push changes to main
128
+ run : |
129
+ git push origin main
0 commit comments