-
Notifications
You must be signed in to change notification settings - Fork 666
How to release
AlaSQL uses git flow to manage development and Semantic Versioning to manage versioning.
In practice the result is that the master branch us never updated without updating the version number. That includes changes like minor corrections to documentation files such as README.md.
The following is a checklist for the team to remember the steps. Please update where you see a better way...
-
Make sure you have the last version of both master and develop
git checkout develop && git pull && git checkout master && git pull
-
Pick the correct version number: Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner. PATCH version when you make backwards-compatible bug fixes.
-
Create and switch to a new release branch
git flow release start x.y.z
(in source tree click "git flow" at the top right). Name it exactly as the new version number (for example "0.2.0"). -
Copy al content from https://github.com/agershun/alasql/wiki/readme into README.md
-
Update CHANGELOG.md with some words to what has changed. Select a city name the flavor of the day as part of the title. You can see the commits and the roadmap for inspiration to what to write
-
Create a draft of the release on github. Same description as CHANGELOG.md and with release title as
"CITYNAME" (LAST_RELEASE - TODAY)
for example"Athens" (02.06.2015 - 13.07.2015)
-
Change version number in
src/05start.js
,src/10alasql.js
-
Change version number in package.json
-
Change version number in bower.json Todo: describe how
-
Change version number for Meteor
meteor/10alasql.js
-
Run gulp``, change a line in any js file in src and wait until uglyfy is done - close it. Todo: automate npm build script - or/and make better gulp file
-
Verify that
npm test
does not give any erros -
Todo: describe how to locally test node_module works
-
push package to npm
npm publish
-
push package to athmospherejs (Meteor)
cd meteor && meteor publish && cd ..
-
Finish release
git flow release finish x.y.z
(for source tree just clicking "git-flow" at the top right corner) -
Push develop to github
git checkout develop && git push
-
Push master and tags to github
git checkout master && git push && git push --tags
-
Finish your draft of the release on github. You should be able to find it in the dropdown in "Tag version" - and select master as branch.
Todo:
-
implement https://www.npmjs.com/package/npm-check as part of the release check
-
idea: implement this list as a script in npm so one can
npm release-steps
. Each step must be optional. Will be an issue to keep script and this wiki updated.
#!/bin/sh
:'
This contains a list of all the steps to make a new releasing of AlaSQL. The Idea came from how you install (this is not an install - its only for the members of the team behind the library).
The formatting is a bit fun so it can work both as a markdown document but also as a sh script - so if you feel you trust this source you can
curl https://raw.githubusercontent.com/wiki/agershun/alasql/release.md | sh
curl https://raw.githubusercontent.com/wiki/agershun/alasql/readme.md -o readme.md
'
Pause()
{
OLDCONFIG=stty -g
stty -icanon -echo min 1 time 0
dd count=1 2>/dev/null
stty $OLDCONFIG
}
CR=echo $'\n.'
CR=${CR%.}
todo () { while true; do read -p "Would you like to $1 by executing: $CR$2$CR(Yes)$CR" yn case ${yn:-Y} in [Yy]* ) $2 && return;; [Nn]* ) ECHO "OK - just make sure to do it your self (!). Hit a key to continue..." && Pause && return;; * ) echo "Please answer yes or no.";; esac done }
if ! foobar_loc="$(type -p "$foobar_command_name")" || [ -z "$foobar_loc" ]; then
fi
Stub to open The -t option means "open the file with the default application for editing text files, as determined via LaunchServices". By default, this will be /Applications/TextEdit.app; however, it's possible for this setting to get overridden
open -t file.txt
open some_url
todo "make new branch" "echo I love you";
echo "All Done"
© 2014-2024, Andrey Gershun & Mathias Rangel Wulff
Please help improve the documentation by opening a PR on the wiki repo