summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarel Ben-Attia <harelba@gmail.com>2020-09-23 11:26:38 +0300
committerHarel Ben-Attia <harelba@gmail.com>2020-09-23 11:26:38 +0300
commit79b5d9ae1c9af8af1348b00439894bed4ec3489c (patch)
tree3da584c83c16bc24009632c482e911fa79ae1680
parent5f0c650a540059f17846c543d68f384178b9d02f (diff)
more robust release flow
-rw-r--r--README.markdown6
-rw-r--r--RELEASE.md12
-rwxr-xr-xdo-manual-release.sh14
-rw-r--r--mkdocs/docs/index.md12
-rwxr-xr-xupload-release2
5 files changed, 31 insertions, 15 deletions
diff --git a/README.markdown b/README.markdown
index c8802d6..3ffda10 100644
--- a/README.markdown
+++ b/README.markdown
@@ -22,8 +22,10 @@ ps -ef | q -H "SELECT UID, COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC LI
Go [here](http://harelba.github.io/q/#examples) for more examples.
-## Python API
-A development branch for exposing q's capabilities as a <strong>Python module</strong> can be viewed <a href="https://github.com/harelba/q/tree/generic-injected-streams/PYTHON-API.markdown">here</a>, along with examples of the alpha version of the API.<br/>Existing functionality as a command-line tool will not be affected by this. Your input will be most appreciated.
+## Benchmark
+I have created a preliminary benchmark comparing q's speed between python2, python3, and comparing both to textql and octosql.
+
+Your input about the validity of the benchmark and about the results would be greatly appreciated. More details are [here](test/BENCHMARK.md).
## Contact
Any feedback/suggestions/complaints regarding this tool would be much appreciated. Contributions are most welcome as well, of course.
diff --git a/RELEASE.md b/RELEASE.md
index f43f4fd..9ba0f02 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -2,13 +2,14 @@
# Releasing a new version
Currently, there are some manual steps needed in order to release a new version:
-* Make sure that you're in a branch
+* Make sure that you're in `master`
* Change the version in the following three files: `bin/q.py`, `setup.py` and `do-manual-release.sh` and commit them to the branch
-* Push the commit to the branch/PR
-* perform merge into master of that branch from the github UI
-* create a new release with a new tag that has the same name as the new version (x.y.z)
+* Commit the files locally
+* Create a new tag `git tag x.y.z`
+* Create a new release in the github UI based on the new tag
+* `git push --tags origin master`
-The merge will trigger a build/release, and will push the artifacts to the new release as assets.
+The push will trigger a build/release, and will push the artifacts to the new release as assets.
Now, create the relevant rpm and deb packages:
@@ -19,7 +20,6 @@ Now, create the relevant rpm and deb packages:
The rpm and deb will be added to the assets of the release
-
Update the website to match the new version.
# Requirements
diff --git a/do-manual-release.sh b/do-manual-release.sh
index 3e09b87..4dd49ef 100755
--- a/do-manual-release.sh
+++ b/do-manual-release.sh
@@ -18,6 +18,20 @@ then
exit 0
fi
+# ensure release exists
+curl -v -L -f https://api.github.com/repos/harelba/q/releases/tags/$VERSION || (echo "Release $VERSION not found in github. " && exit 1)
+
+# skip releasing if release already has some asset. Not using jq on purpose, to prevent the need for dependencies
+ASSET_COUNT=$(curl -f -L https://api.github.com/repos/harelba/q/releases/tags/$VERSION | grep /releases/assets/ | grep url | wc -l | awk '{print $1}')
+
+if [[ "$ASSET_COUNT" != "0" ]]
+then
+ echo "Assets already exists in the release. No need to release version $VERSION again."
+ exit 0
+fi
+
+echo "Gonna release version $VERSION"
+
echo "Packing binary for $TRAVIS_OS_NAME"
if [[ "$TRAVIS_OS_NAME" == "osx" || "$TRAVIS_OS_NAME" == "linux" ]]
diff --git a/mkdocs/docs/index.md b/mkdocs/docs/index.md
index e2b3743..ccf76ff 100644
--- a/mkdocs/docs/index.md
+++ b/mkdocs/docs/index.md
@@ -32,12 +32,12 @@ Look at some examples [here](#examples), or just download the tool using the lin
| Format | Instructions | Comments |
:---|:---|:---|
-|[OSX](https://github.com/harelba/packages-for-q/raw/master/single-binary/Darwin/2.0.16/q)|run `brew install q`|man page is not available for this release yet. Use `q --help` for now||
-|[RPM Package](https://github.com/harelba/packages-for-q/raw/master/rpms/q-text-as-data-2.0.16-1.x86_64.rpm)| run `rpm -ivh <package-filename>` or `rpm -U <package-filename>` if you already have an older version of q.| A man page is available for this release. Just enter man q.|
-|[DEB Package](https://github.com/harelba/packages-for-q/raw/master/deb/q-text-as-data_2.0.16-2_amd64.deb)| Run `sudo dpkg -i <package-filename>`|A man page is available for this release. Just enter `man q`.|
-|[Windows Installer](https://github.com/harelba/packages-for-q/raw/master/windows/setup-q-2.0.16.exe)|Run the installer executable and hit next next next... q.exe will be added to the PATH so you can access it everywhere.|Windows doesn't update the PATH retroactively for open windows, so you'll need to open a new cmd window after the installation is done.|
-|[tar.gz](https://github.com/harelba/q/archive/2.0.16.tar.gz)|Full source file tree for latest stable version. Note that q.py cannot be used directly anymore, as it requires python dependencies||
-|[zip](https://github.com/harelba/q/archive/2.0.16.zip)|Full source file tree for the latest stable version. Note that q.py cannot be used directly anymore, as it requires python dependencies||
+|[OSX](https://github.com/harelba/q/releases/download/2.0.19/q-x86_64-Darwin)|run `brew install q`|man page is not available for this release yet. Use `q --help` for now||
+|[RPM Package](https://github.com/harelba/q/releases/download/2.0.19/q-text-as-data-2.0.19-1.x86_64.rpm)| run `rpm -ivh <package-filename>` or `rpm -U <package-filename>` if you already have an older version of q.| A man page is available for this release. Just enter man q.|
+|[DEB Package](https://github.com/harelba/q/releases/download/2.0.19/q-text-as-data_2.0.19-2_amd64.deb)| Run `sudo dpkg -i <package-filename>`|A man page is available for this release. Just enter `man q`.|
+|[Windows Installer](https://github.com/harelba/q/releases/download/2.0.19/q-AMD64-Windows-installer.exe)|Run the installer executable and hit next next next... q.exe will be added to the PATH so you can access it everywhere.|Windows doesn't update the PATH retroactively for open windows, so you'll need to open a new cmd window after the installation is done.|
+|[tar.gz](https://github.com/harelba/q/archive/2.0.19.tar.gz)|Full source file tree for latest stable version. Note that q.py cannot be used directly anymore, as it requires python dependencies||
+|[zip](https://github.com/harelba/q/archive/2.0.19.zip)|Full source file tree for the latest stable version. Note that q.py cannot be used directly anymore, as it requires python dependencies||
**Older versions can be downloaded [here](https://github.com/harelba/packages-for-q). Please let me know if you plan on using an older version, and why - I know of no reason to use any of them.**
diff --git a/upload-release b/upload-release
index a390939..bfd1901 100755
--- a/upload-release
+++ b/upload-release
@@ -16,7 +16,7 @@ VERSION="$1"
BASED_ON_TAG="$2"
echo uploading
-gh release upload 2.0.18 ./packages/*.{rpm,deb}
+gh release upload $VERSION ./packages/*.{rpm,deb}
echo done