-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#562 changed Git repo behavior in an unethical way #605
Comments
I am sorry about what happened to you, but this is not an unannounced change, it is documented in the release note
We do have this, see config.example.toml If there are breaking changes, I will bump the major version number and document these changes in the release note, but it seems like we should do it in another way to make our user better informed |
I made a PR #606 to mention that "Users should take a look at the release note when updated to a major release" in case something like this would happen in the future |
While I see this feature being very useful for some cases (especially for the management of dotfiles), I agree that enabling it by default is an absolutely horrible choice. From my understanding, the main goal of Topgrade is to keep the local system up-to-date, so it should absolutely not affect any state outside of the system unless it is explicitly configured to do so. There are some cases where pushing unwanted changes can be, at worst, completely irreversible (e.g., AUR package repos, which do not accept force pushing). |
... In what world am I able to read the release notes or even to know where they are kept? You changed the behavior of an existing feature in a way that was unethical--meaning it did not remain within the social contract of the stated goals of the tool. Please acknowledge that rather than saying "well, I wrote a note about it in this place that users don't have to acknowledge bc the tool auto-updates".
Will The real fix is to roll back your breaking change and to create a different list name entirely for your push-pull feature. Do not reuse an existing configuration name and arbitrarily change what it does! |
to second @KlfJoat 's objections: i spent a while digging through my shell config and looking at other tools to see whether i had inadvertently made some change that triggered attempts to push to remote repos. it did not occur to me to check i'd be much happier to see a |
cc @savente93
I agree that pushing Git repos technically is not an update procedure, the reasons why I allow this feature to be added are:
Well, you won't see a release note with
I admit that this is bad for our user
While implementing this feature, I do prefer the |
What about we implement a feature that will prompt the user to read the release note when updated to a major release? Something like: $ topgrade
It seems that this is the first run of this major release: x.0.0, please read the release note to check out braking changes first.
I have read the release note (y)es/(N)o ONLY when the user inputs |
@SteveLauC I don't really mind what the config option is called, I'm happy to defer to your wisdom. Any action needed on my part? |
Folks, let's change the field name in v14.0.0:
And this:
will be implemented as well. Thoughts on this? I would like to hear what you guys think about this solution
I will handle this since it is not a big refactor |
I'm okay with all of this. Holler if you need anything but I'll be unsubscribing from this thread since I don't enjoy being yelled at. |
Hi. Just found out about that fork and reviewing issues is usually a good start on identifying the reliability of a tool. Seeing this is scary as hell to me. I use topgrade regularly locally to update everything LOCALLY. Anything that is done towards remote servers or else should be a plugin explicitly opt-in for any user. Too much issues can happen. Anyway I am not sure whether or not it is disabled by default now. For both push & pull. Could you confirm? Thank you. |
If you don't explicitly specify the repos to push in your configuration, you won't get this One can always check what Topgrade will do with the --dry-run option, it will just tell u what should happen and won't actually do them |
I wholeheartedly agree! This is a great feature, and I'm glad you added it!
I absolutely agree that this principle is fundamental and inherent to Topgrade! You also VIOLATED that principle in a way that DESTROYS TRUST with your user base. I still see ZERO acknowledgement of this by you or @savente93.
Principle of Least Astonishment. You had/have the following options, as I see it. This is in preferential order from a UX perspective.
999,999) Provide some method of limiting 1,000,000) Your current plan of interrupting user upgrades, forcing upgrade notes, removing code after 1 version, etc. You can absolutely do 1-4, but you're choosing not to... why?
Why are you lying? I did not specify any repos to push in my configuration, and yet they were pushed! You planned this in the open in #562 and you admitted this in earlier comments in this issue! So why are you telling users this lie? I'm sorry, but the absolute lack of responsibility on display here is maddening for a tool that I trust with system-updating Looks like I really should have taken r-darwish's warning to heart...
|
Because I think the root cause of this issue is how we handle breaking changes and get our users informed Anyway, let's revert that feature, I am tired of this conversation |
Close as this functionality has been reverted |
#619 implements that breaking changes notification feature, which could hopefully prevent issues like this one: $ ./target/debug/topgrade
── 09:54:15 - Topgrade 13.0.0 Breaking Changes ─────────────────────────────────
No Breaking changes
Confirmed? (y)es/(N)o |
Erroneous Behavior
I ran
topgrade
as normal. However, when it got to the "Git repositories" stage, after pulling (as normal), it started pushing my repos!!!!!!That's a HORRIBLE change to make UNANNOUNCED, since IT AFFECTS THE WORLD OUTSIDE OF MY HOST WITHOUT MY PERMISSION!!
I don't want to push these repos and the assumption that I do is ETHICALLY wrong.
I run
topgrade
to change my host and only my host (plus remote hosts that I have explicitly toldtopgrade
to change). I DID NOT runtopgrade
to change anything else (unless I've programmed it in a custom command).It gets even worse bc
topgrade
hung up at this point since in many cases, I'm only pulling these repos for local use and do not have ANY ability to push to them, so I got prompts for usernames.Hitting
<enter>
a bunch orCTRL-C
got me out of this.Expected Behavior
When changing the behavior of a step, if I make no changes I expect the behavior to not change unless you're fixing a bug.
To fix, I expect that there is some way to identify which repos I want pulled only (this should be the default
repos
list) and which repos I want pulled AND pushed (maybe some newrepos-push
list).Steps to reproduce
Run
topgrade
and have anything in yourtopgrade.toml
file'srepos
list.Possible Cause (Optional)
#562
Problem persists without calling from topgrade
Did you run topgrade through
Remote Execution
If yes, does the issue still occur when you run topgrade directlly in your
remote host
Configuration file (Optional)
Additional Details
Operation System/Version
Installation
cargo install topgrade
Topgrade version (
topgrade -V
)Topgrade 13.0.0
Verbose Output (
topgrade -v
)This isn't a bug requiring verbose output, IMO, since this was a stated goal in #562. But if you want it I'll do it in the future.
The text was updated successfully, but these errors were encountered: