-
Notifications
You must be signed in to change notification settings - Fork 1
Publishing
The github repositories for both the interpreter and the debugger are configured to make a new release when a new tag is pushed. This makes the upload process simple, however there are some steps to make sure the version numbers are correct before publishing.
THIS PROJECT DOES NOT FOLLOW SEMVER Let's follow semver looking numbers but by no means do we need to respect the rules of semver, this project doesn't offer a consistent API but rather a program that operates as a professor of a course would like it to, the version numbers simply offer a way to reference what features are distributed to students.
Some examples of what number to change in a version bump are:
- Bug fixes should be bumping just the third value (patch number)
- New functionality that doesn't affect students should bump the minor version (I'm thinking grader features, debugging features)
- New plugins that offer a whole new way of doing an assignment should bump a major version
At the end of the day, sky is the limit for any of the values, if we end up on major version 2344.0.0 in under a month, so be it.
This may be silly and we can abandon this idea, but I think when ever we make a release of one, we should make a release of both, and keep the version numbers in sync. The debugger and interpreter aren't inherently tied like this but it would seem to make sense to make sure that both code bases are in sync when distributed.
- Make sure all the changes you want in the release are present on the master branch.
- You'll first want to change the version number in
pyproject.tomlto the next version you are going to publish. (example:0.0.0, no "v") - Commit that version change to the
pyproject.tomlfile and push it - Tag that commit with the same version number and push the tag
git tag 0.0.0git push --tags
- That's all, github should handle the rest, below is a summary of commands github will run:
poetry build -f wheel
twine upload dist/*NOTE:
poetry build -f wheelbundles our python on creates a file:./dist/dashmips-0.0.0-py3-none-any.whlNOTE:
twineis a python tool to upload to pypi, if you need to make a release manually you can use this
- Make sure all the changes you want in the release are present on the master branch.
- You'll first want to change the version number in
package.jsonto the next version you are going to publish. (example:0.0.0, no "v") - Commit that version change to the
package.jsonfile and push it - Tag that commit with the same version number and push the tag
git tag 0.0.0git push --tags
- That's all, github should handle the rest, below is a summary of commands github will run:
npm run package
npm run publishNOTE:
npm run packagebundles our extension on creates a file: ./dashmips-debugger-0.0.0.vsix for uploading to github, not the vscode marketplaceNOTE:
npm run publishUses the vsce program to bundle and upload our extension, it does not use the file created fromnpm run package
Happy Coding!