Files
sunnypilot/release
DevTekVE 6b3f75bbf0 CI: refactor Squash and Merge with simplified branch merging (#726)
* Refactor squash and merge script for improved simplicity

Simplified the squash_and_merge.py script by replacing redundant utility functions and consolidating logic. Enhanced usability by aligning command-line arguments and leveraging streamlined git operations to improve maintainability and reliability.

* Fix argument names in squash PR script

Renamed CLI arguments from '--base' and '--source' to '--target' and '--base' to align with expected input format. This ensures the script runs correctly with proper argument mapping.

* Fix incorrect base branch argument in squash script

    Updated the `--base` argument to use `source_branch` instead of `branch` to ensure the squash script processes the correct base branch. Also adjusted the command to include `branch` as a separate argument for clarity and correctness.

* Reset to a clean state after squash error.

Add a `git reset --hard` command to ensure the repository returns to a clean state after encountering errors during the squash and merge process. This prevents lingering changes from affecting subsequent operations.

* Improve error handling in squash_and_merge_prs.py

Capture and display both stdout and stderr in error cases to provide more informative feedback. Adjust the PR comment to include available output for better debugging.

* Refactor PR squash process to enhance error handling.

Modify subprocess handling to use `result.returncode` for error checks instead of relying on exceptions. Consolidate error output retrieval and logging for better clarity, while maintaining the workflow for resetting changes on failure.

* Fix incorrect return in PR processing loop

Replaced `return` with `continue` to ensure all PRs in the loop are processed before exiting. This prevents premature termination of the function and ensures accurate success count reporting.

* Simplify subprocess output handling in squash_and_merge.py

Replaced labeled print statements with direct output of stdout and stderr. This change ensures cleaner logs and remains consistent with the function's purpose of output handling during subprocess execution.

* Update subprocess.run calls to use capture_output parameter

Replaced `stdout` and `stderr` with the `capture_output` parameter for cleaner and more concise subprocess handling. Also removed extraneous whitespace for improved code readability.

* testing moving the squash script given that it's called iteratively and switching branch might miss it

* format

---------

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2025-03-29 21:54:49 +00:00
..
2025-03-02 13:11:38 -08:00
2024-06-11 14:47:39 -07:00

openpilot releases

release checklist

Go to devel-staging

  • update devel-staging: git reset --hard origin/master-ci
  • open a pull request from devel-staging to devel

Go to devel

  • update RELEASES.md
  • close out milestone
  • post on Discord dev channel
  • bump version on master: common/version.h and RELEASES.md
  • merge the pull request

tests:

  • update from previous release -> new release
  • update from new release -> previous release
  • fresh install with openpilot-test.comma.ai
  • drive on fresh install
  • comma body test
  • no submodules or LFS
  • check sentry, MTBF, etc.

Go to release3

  • publish the blog post
  • git reset --hard origin/release3-staging
  • tag the release
git tag v0.X.X <commit-hash>
git push origin v0.X.X
  • create GitHub release
  • final test install on openpilot.comma.ai
  • update production
  • Post on Discord, X, etc.