Skip to main content

Workflow for releasing projects at GitHub

This workflow will describe all the necessary steps that you need to follow to release a project.

It is targeted for those projects where more than one members are contributing in the project because that will require a standard workflow that will keep the quality in check at each level.

So try to follow the steps as mentioned below, where a repository have been taken for sample.

  1. First you need to setup the codebase on your local machine
    1. Create a clone of the repository
      1. git clone https://github.com/sampleapps/sample-ios.git
    2. Get inside the repository folder
      1. cd sample-ios
    3. Refer this article GitFlow based branching strategy for your project repository to learn more about the gitflow mechanism of handling a project
    4. Enable git flow mechanism on the current repository
      1. git flow init -d
      2. It is required to be done by each contributor
    5. Checkout develop branch
      1. git checkout develop
    6. Copy & paste all the code in this folder from previous repo
    7. Update .gitignore file by adding file/folder name that you don't want to add in repo
    8. Stage all the relevant & required files
      1. git add .
    9. Commit the code with relevant message
      1. If you add issue number in you commit message like #1 Added initial codebase, then the commit would reflect under https://github.com/sampleapps/sample-ios/issues/1 issue
    10. Push the committed code
      1. git push
  2. Once you have made a stable code base in develop branch then raise pull request to merge it in master branch.
  3. When your pull request will get approved, then either you or approver can merge the pull request to the master branch.
  4. Using gitflow you need to create release branch as
    1. git flow release start release-1.0.0
    2. test this code base to make sure everything is stable and releasable
    3. git flow release finish 'release-1.0.0'
  5. Then, go to https://github.com/sampleapps/sample-ios/releases
    1. Create new release
    2. Mention Tag version, e.g., v1.0.0
    3. Choose the Target branch as release-1.0.0
    4. Mention the Release title as Release v1.0.0
    5. Add the release notes in the Describe section that should contain all the relevant text in points like
      1. new features added
      2. bug fixed
      3. limitations if any
    6. Attach the binary files like installer exe, apk, app, etc.
    7. Click on Publish release button to make it public

Note: Although I have mentioned all the steps using command line but I'll recommend you to use Sourcetree app instead because it will provide a lot of ease while following the workflow.

Comments

Popular posts from this blog

Unlock protected blocks in Siemens SIMATIC Step 7

Recently I'd been called by Hindalco's Fabrication Plant division to unlock the protected blocks in Siemens SIMATIC Step 7. They were in need to unlock those blocks since an year because of 1 million Rupees of loss per month. They want to re-program those blocks but it was locked by the man who'd done the setup. From the people working in that department, I came to know that they were trying to call that man (someone from Italy) right here but he's not coming. Actually, what he'd done was that he'd locked some of the blocks and deleted the source file. And Siemens didn't provide any feature to unlock. Department people also told me that even the people working in Siemens don't know how to do it. Being a software engineer I know that any thing can be reverse engineered. So I took up the challenge. How did I unlocked the blocks? The first thing I'd done was searched about this software at Google and read about what is this software all about. Aft

JS: The complete code example of Crypto.js (DES)

For one of the project I was trying to use crypto.js but I found that the Quick-start Guide have some deficiency in terms of library usage. So I am writing it here as a useful note for memory recap. <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script> <script> var encrypted = CryptoJS.DES.encrypt("The secret message", "secret_key"); var e_msg = encrypted.toString(); console.log(e_msg); var decrypted = CryptoJS.DES.decrypt(e_msg, "secret_key"); var d_msg = decrypted.toString(CryptoJS.enc.Utf8); console.log(d_msg); </script>

How to convert JIRA story into sub-task or defect?

Many times we entangled in the situation where we have made a  story  in JIRA but later on realised that it should have to be  defect  or in other case,  sub-task  of another  story . Story → Sub-task So the workaround for converting the story into defect is given below: Open your  story Click on  more  option Click on the  Convert to sub-task  option in the dropdown You would be asked to choose  Parent  story, so chose relevant story After submit, your  story  gets converted into  sub-task Story → Defect Now if you want the story to be converted into defect, then you should first convert it into sub-task. Thereafter, you can convert that sub-task into defect as given below: Open the  sub-task Click on  more  option Click on the  Convert to issue  option in the dropdown You would be asked to fill up relevant fields required for raising a  defect , fill them up as required After submit, your  sub-task  gets converted into  defect .