diff options
author | Harel Ben-Attia <harelba@gmail.com> | 2020-09-23 11:26:38 +0300 |
---|---|---|
committer | Harel Ben-Attia <harelba@gmail.com> | 2020-09-23 11:26:38 +0300 |
commit | 79b5d9ae1c9af8af1348b00439894bed4ec3489c (patch) | |
tree | 3da584c83c16bc24009632c482e911fa79ae1680 | |
parent | 5f0c650a540059f17846c543d68f384178b9d02f (diff) |
more robust release flow
-rw-r--r-- | README.markdown | 6 | ||||
-rw-r--r-- | RELEASE.md | 12 | ||||
-rwxr-xr-x | do-manual-release.sh | 14 | ||||
-rw-r--r-- | mkdocs/docs/index.md | 12 | ||||
-rwxr-xr-x | upload-release | 2 |
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. @@ -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 |