-
Notifications
You must be signed in to change notification settings - Fork 5
Deploy to Pypi
Manually Deploy to Pypi
Merging develop branch to main branch is considered a release
- Clone repo
- git clone` CRIPT SDK Repository
- Bump the ‘version’ of the SDK within setup.cfg appropriately and in compliance to Semantic Versioning
- Merge
develop
branch intomain
branch on GitHub- The
main
branch should always reflect what is deployed to CRIPT Pypi -
Warning: Be sure to always do a regular
merge
on GitHub instead of aSquash & Merge
becauseSquash & Merge
will create merge conflicts the next time we need to mergedevelop
intomain
- The
- Create a new release with a new tag on and deploy it to GitHub releases
- All releases should have clear release notes written and for the user and what concerns them
- Any breaking changes should be clearly written and a step by step guide to migrating should be provided
- The user should never be left in confusion as to what the new release means, the changes, and how to upgrade
- Any breaking changes should be clearly written and a step by step guide to migrating should be provided
- Make an announcement on the appropriate channels such as CRIPT Python SDK discussions
This is the most recommended way or fixing the merge conflicts. Fix merge conflicts either by fixing them in GitHub editor or via
git merge <branch name>
.
If there are any better practices please feel free to update this wiki with the best practices. I think this is not the best practice, but this is what we were able to figure out at the time.
Previously in release of v2.0.0 we merged develop
into main
via squash & merge
, which later created a ton of merge conflicts.
The way we fixed these merge conflicts was via force pushing develop
into main
and completely overwriting main
branches history with develop
.
Then, deleting our local main
branch, and fetching it again from the repository.
It is recommended to make an announcement on the discussions page
so that everyone using the SDK main
branch, can delete their local copy and pull down the new one.
Force Push Develop Onto Main
git checkout develop
git push origin develop:main --force # force push develop onto main
Refresh Main From Repo
git branch -d main # delete the local main branch
git fetch origin # fetch the latest branches from remote
git checkout main # checkout the new main which is now the same as develop
- Checkout to main branch
git checkout main
- Install dependencies
pip install build
pip install twine
- Build the package
Python -m build
- Deploy with twine
twine upload dist/*
documentation/tutorial coming soon...
- GitHub git merge conflict documentation
- FreeCodeCamp git merge conflict documentation
- Atlassian git merge conflicts
- Fun YouTube video tutorial on git merge conflicts by TheCodingTrain
- IntelliJ IDEA git merge conflict resolution YouTube video tutorial
- Git and GitHub FreeCodeCamp YouTube tutorial playlist