Process for creating a ChurchCRM Release
1. Clean and update the local working copy
-
Destroy any existing vagrant boxes
vagrant destroy -f
-
Checkout the branch to be released
git checkout master
-
Remove all extra files to ensure a clean build
git reset --hard git clean -xdf
2. Build ChurchCRM
-
Start the vagrant box to build all prerequisites
vagrant up
-
After the vagrant box is up, ssh into the box and run the build script
vagrant ssh cd /vagrant ./vendor/bin/phing
This will run the following actions: * Regenerate messages.po based on the latest files * Build zip package * Update the version numbers to next version
3. Test the build!
This testing should be done to ensure there are no last-minute "showstopper" bugs or a bad build
-
Update the demosite using
./vendor/bin/phing demosite
The Demosite push key will be required. Feel free to kick the tires on the demo site at this point one last time.
-
Test the zip file on your own ChurchCRM instance
4. Check in translation file
- Create a new branch from master
- Commit changes to messages.po
- Push the branch to GitHub
- Merge the branch to Master. Note the commit hash.
5. Create a GitHub release
https://github.com/ChurchCRM/CRM/releases
- Ensure you select the correct branch, and that the hash matches the commit you created in step 4.
- Enter version # as the tag and subject
- Point to the change log
- Upload zip file
- Publish the release
6. Update release notes
After the tag has been created, update the change log.
./vendor/bin/phing change-log
- Commit changes to CHANGELOG.md
- Update git release so it points to the latest version in the change log
7. Update milestones
https://github.com/ChurchCRM/CRM/milestones
- Close version milestone
- Create next version milestone
8. Merge master into develop
- Create PR
- Approve and merge PR
9. Rev to the next version
- Create new version db scripts