Uh oh!
There was an error while loading. Please reload this page.
Better error message when cherry-picker repo state is invalid - #147
Closed
potiuk wants to merge 2 commits into
Closed
Better error message when cherry-picker repo state is invalid#147potiuk wants to merge 2 commits into
potiuk wants to merge 2 commits into
Conversation
potiukforce-pushed
the
better-error-message-in-case-of-invalid-state
branch
from
November 17, 2024 18:05
938ee33 to
7032c27Comparepotiuk
commented
Nov 17, 2024
ContributorAuthor
Signed :) |
potiuk
commented
Nov 17, 2024
ContributorAuthor
Ah .. I noticed I am not the first one #119 -> so I will let maintainers to decide if that is worth fixing (well there are already two of us thinking there is (@serhiy-storchaka ) and choose the righ fix. |
potiukforce-pushed
the
better-error-message-in-case-of-invalid-state
branch
from
November 17, 2024 18:13
7032c27 to
e9b83a5Comparehugovk
commented
Nov 17, 2024
Member
And there is also PR #112. |
hugovk
reviewed
Nov 17, 2024
Uh oh!
There was an error while loading. Please reload this page.
potiuk added a commit
to potiuk/cherry-picker
that referenced
this pull request
Nov 17, 2024
When proposing python#147 I noticed that mypy failed with missing `types-request` - and while the mypy configuration had the `--install-types`, it did not work automatically for requests. The error was: ``` cherry_picker/cherry_picker.py:15: error: Library stubs not installed for "requests" [import-untyped] import requests ^ cherry_picker/cherry_picker.py:15: note: Hint: "python3 -m pip install types-requests" cherry_picker/cherry_picker.py:15: note: (or run "mypy --install-types" to install all missing stub packages) cherry_picker/cherry_picker.py:15: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports ``` I looked a bit closer and noticed the advice from https://github.com/pre-commit/mirrors-mypy > Note that using the --install-types is problematic. Mutating the pre-commit environment at runtime breaks cache and will break parallel builds. This PR fixes the problem by removing `--install-types` and installing types-requests explicitly as additional-dependencies. starting
potiuk added a commit
to potiuk/cherry-picker
that referenced
this pull request
Nov 17, 2024
When somoene uses `uv` to manage their venv, uv.lock is generated automatically when `uv sync` is run. This PR removes it, so that it is not committed accidentally (happened in python#147)
Merged
When I played with cherry-picker as we introduced it in Airflow, I manage to set the repo to the state where I always got the message "You're not inside a airflow repo right now!" After short debugging it turned out that it is because I manage to Ctrl-C and mix `git cherry-pick --abort` with `cherry_picker` commands - when I learned how to use it, I did not know that I had to only use `cherry-picker --continue` command rather than git commands. This might happen to others, so I think we should have a better way to handle this case. When this happens you get this exception: ``` Traceback (most recent call last): File "/Users/jarek/IdeaProjects/cherry-picker/cherry_picker/cherry_picker.py", line 666, in check_repo self.get_state_and_verify() File "/Users/jarek/IdeaProjects/cherry-picker/cherry_picker/cherry_picker.py", line 684, in get_state_and_verify raise ValueError( ValueError: Run state cherry-picker.state=BACKPORT_LOOP_START in Git config is not known. Perhaps it has been set by a newer version of cherry-picker. Try upgrading. Valid states are: BACKPORT_PAUSED, UNSET. If this looks suspicious, raise an issue at https://github.com/python/cherry-picker/issues/new. As the last resort you can reset the runtime state stored in Git config using the following command: `git config --local --remove-section cherry-picker` During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/jarek/.local/bin/cherry_picker", line 8, in <module> sys.exit(cherry_pick_cli()) ^^^^^^^^^^^^^^^^^ File "/Users/jarek/.local/share/uv/tools/cherry-picker/lib/python3.12/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/jarek/.local/share/uv/tools/cherry-picker/lib/python3.12/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/Users/jarek/.local/share/uv/tools/cherry-picker/lib/python3.12/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/jarek/.local/share/uv/tools/cherry-picker/lib/python3.12/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/jarek/.local/share/uv/tools/cherry-picker/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func return f(get_current_context(), *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/jarek/IdeaProjects/cherry-picker/cherry_picker/cherry_picker.py", line 804, in cherry_pick_cli cherry_picker = CherryPicker( ^^^^^^^^^^^^^ File "/Users/jarek/IdeaProjects/cherry-picker/cherry_picker/cherry_picker.py", line 123, in __init__ self.check_repo() # may raise InvalidRepoException ^^^^^^^^^^^^^^^^^ File "/Users/jarek/IdeaProjects/cherry-picker/cherry_picker/cherry_picker.py", line 668, in check_repo raise InvalidRepoException(ve.args[0]) cherry_picker.cherry_picker.InvalidRepoException: Run state cherry-picker.state=BACKPORT_LOOP_START in Git config is not known. Perhaps it has been set by a newer version of cherry-picker. Try upgrading. Valid states are: BACKPORT_PAUSED, UNSET. If this looks suspicious, raise an issue at https://github.com/python/cherry-picker/issues/new. As the last resort you can reset the runtime state stored in Git config using the following command: `git config --local --remove-section cherry-picker` ``` So this PR checks for presence of that message in the exception and it will provide better explanation, and guidance in this case. Fixes: python#99
potiukforce-pushed
the
better-error-message-in-case-of-invalid-state
branch
from
November 17, 2024 18:26
e9b83a5 to
0d86d1bComparepotiuk
commented
Nov 17, 2024
ContributorAuthor
So you have to choose which is the best approach .. But clearly the need is there :) |
potiuk
commented
Nov 23, 2024
ContributorAuthor
Looks green :) |
potiuk
commented
Dec 13, 2024
ContributorAuthor
Any chance to get that improvement in :) (Friendly ping :D) |
ambv
commented
Jan 15, 2025
Contributor
I went with #112 instead. |
potiuk
commented
Jan 15, 2025
ContributorAuthor
Nice |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When I played with cherry-picker as we introduced it in Airflow, I manage to set the repo to the state where I always got the message "You're not inside a airflow repo right now!"
After short debugging it turned out that it is because I manage to Ctrl-C and mix
git cherry-pick --abortwithcherry_pickercommands - when I learned how to use it, I did not know that I had to only usecherry-picker --continuecommand rather than git commands.This might happen to others, so I think we should have a better way to handle this case.
When this happens you get this exception:
So this PR checks for presence of that message in the exception and it will provide better explanation, and guidance in this case.
Fixes: #99