Adds a __repr__ to graph.
[pyutils.git] / cut_version.sh
index a3e5e136c396e596b45fff672c0934d41a4da292..10b4e1a4dc449998d7c5db16d4da968397d61b2d 100755 (executable)
@@ -42,20 +42,29 @@ if [ $# -ne 1 ]; then
 fi
 
 VERSION=$1
-if ! ask_y_n "About to cut and upload $VERSION, ok?" "N"; then
+PREVIOUS_VERSION=$(git tag --sort=-creatordate | head -1)
+git tag --format='%(creatordate:short)%09%(refname:strip=2)'
+echo
+echo "PREVIOUS_VERSION=${PREVIOUS_VERSION}"
+echo
+if ! ask_y_n "About to cut (build, test, package, give you the command to upload) $VERSION, ok?" "N"; then
     echo "Ok, exiting instead."
     exit 0
 fi
+LAST_TAG=$(git tag | tail -1)
+if [ "${LAST_TAG}" == "${VERSION}" ]; then
+    echo "Last tag is the same as ${VERSION}?!  Aborted."
+    exit 1
+fi
 echo
 
-echo "Ok, here's the commit message of changes since the last version..."
-LAST_TAG=$(git tag | tail -1)
+echo "Ok, here are the commit message of changes since the last version..."
 git log $LAST_TAG..HEAD
 pause
 echo
 echo
 
-echo "Ok, running scottutilz tests including test_some_dependencies.py..."
+echo "Ok, running pyutils and scottutilz tests including test_some_dependencies.py..."
 cd ../scottutilz/tests
 ./run_tests.py --all --coverage
 cd ../../pyutils
@@ -63,13 +72,37 @@ pause
 echo
 echo
 
+echo "Creating a git tag for version ${VERSION}"
 git tag -a "${VERSION}" -m "cut_version.sh ${VERSION}"
 CHANGES=$(git log --pretty="- %s" $VERSION...$LAST_TAG)
 printf "# 🎁 Release notes (\`$VERSION\`)\n\n## Changes\n$CHANGES\n\n## Metadata\n\`\`\`\nThis version -------- $VERSION\nPrevious version ---- $PREVIOUS_VERSION\nTotal commits ------- $(echo "$CHANGES" | wc -l)\n\`\`\`\n" >> release_notes.md
 
+echo "Updating pyproject.toml with this version number"
 cat ./pyproject.template | sed s/##VERSION##/$VERSION/g > ./pyproject.toml
+
+echo "Building wheel..."
+python -m build
+
+echo "Checking in wheel package under dist/"
+cd dist
+WHEEL=pyutils-${VERSION}-py3-none-any.whl
+if [ ! -f ${WHEEL} ]; then
+    echo "Can't find ${WHEEL}?!"
+    exit 1
+fi
+LINK=pyutils-latest-py3-none-any.whl
+git rm -f ${LINK}
+ln -s ${WHEEL} ${LINK}
+git add ${WHEEL}
+git add ${LINK}
+for FILE in *.whl; do
+    md5 ${FILE} > ${FILE}.md5
+done
+git add *.md5
+cd ..
 git commit -a -m "Cut version ${VERSION}" -m "${CHANGES}"
+
+echo "Pushing changes to git"
 git push
 
-python -m build
-echo "To upload, run: \"twine upload --verbose --repository testpypi dist/*\""
+echo "Done.  To upload, run: \"twine upload --verbose --repository pypi dist/pyutils-${VERSION}*.whl\""