Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 2.23 KB

DEVELOPMENT.md

File metadata and controls

48 lines (36 loc) · 2.23 KB

Development

This file provides additional information for maintainers and contributors.

Testing

Nothing special or automated yet. Therefore just some hints for manual testing:

  • Run the script with invalid values.
  • Run the script with technically valid values but PVE IDs of non-existing machines.
  • Run the script with and without connected USB drive.
  • Try to interrupt the backup process by sending signals, CTRL+C and so on.
  • Try to run multiple instances of the script in parallel (should not work).

Releases

  1. Do proper Testing. Continue only if everything is fine.
  2. Determine the next version number. This project adheres to Semantic Versioning.
  3. Update the internal version variable readonly version= to match the new release version.
  4. Update the CHANGELOG.md. Insert a section for the new release. Do not forget the comparison link at the end of the file.
  5. If everything is fine: commit the changes, tag the release and push:
    git tag v<version> <commit> -m "version <version>"
    git show v<version>
    git push origin main --follow-tags
    If something minor went wrong (like missing CHANGELOG.md update), delete the tag and start over:
    git tag -d v<version>                 # delete the old tag locally
    git push origin :refs/tags/v<version> # delete the old tag remotely
    This is only possible if there was no GitHub release. Use a new patch version number otherwise.
  6. Use GitHub's release feature, select the tag you pushed and create a new release:
    • Use v<version> as title
    • A description is optional. In doubt, use See CHANGELOG.md for more information about this release.
  7. Check if the GitHub API delivers the correct version as latest:
    curl -s -L https://api.github.com/repos/foundata/proxmox-pve-backup-usb/releases/latest | jq -r '.tag_name' | sed -e 's/^v//g'

Miscellaneous

Encoding

  • Use UTF-8 encoding with LF (Line Feed \n) line endings without BOM for all files.