superproject: Move enrollment to opt-out when enabled globally
Our internal experiments was a success so far and we are enrolling 100%
users now. Instead of asking every two weeks, simply consider a lack of
unexpired choice as accepting the system default.
With this change the user would still be able to override the system
default with --no-use-superproject, or to permanently set the choice in
user's profile with git config --global repo.superprojectchoice.
Bug: [google internal] b/190688390
Change-Id: Idc77a9cbf88a169d90304169e91f0d722dc4ac8b
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/317975
Tested-by: Xin Li <delphij@google.com>
Reviewed-by: Raman Tenneti <rtenneti@google.com>
diff --git a/git_superproject.py b/git_superproject.py
index 1dd5943..935e125 100644
--- a/git_superproject.py
+++ b/git_superproject.py
@@ -370,7 +370,7 @@
user_value = user_cfg.GetBoolean('repo.superprojectChoice')
if user_value is not None:
user_expiration = user_cfg.GetInt('repo.superprojectChoiceExpire')
- if user_expiration is not None and (user_expiration <= 0 or user_expiration >= time_now):
+ if user_expiration is None or user_expiration <= 0 or user_expiration >= time_now:
# TODO(b/190688390) - Remove prompt when we are comfortable with the new
# default value.
if user_value:
@@ -388,44 +388,18 @@
system_value = system_cfg.GetBoolean('repo.superprojectChoice')
if system_value:
# The system configuration is proposing that we should enable the
- # use of superproject. Present this to user for confirmation if we
- # are on a TTY, or, when we are not on a TTY, accept the system
- # default for this time only.
+ # use of superproject. Treat the user as enrolled for two weeks.
#
# TODO(b/190688390) - Remove prompt when we are comfortable with the new
# default value.
- prompt = ('Repo can now use Git submodules (go/android-submodules-quickstart) '
- 'instead of manifests to represent the state of the Android '
- 'superproject, which results in faster syncs and better atomicity.\n\n')
- if sys.stdout.isatty():
- prompt += 'Would you like to opt in for two weeks (y/N)? '
- response = input(prompt).lower()
- time_choiceexpire = time_now + (86400 * 14)
- if response in ('y', 'yes'):
- userchoice = True
- elif response in ('a', 'always'):
- userchoice = True
- time_choiceexpire = 0
- elif response == 'never':
- userchoice = False
- time_choiceexpire = 0
- elif response in ('n', 'no'):
- userchoice = False
- else:
- # Unrecognized user response, assume the intention was no, but
- # only for 2 hours instead of 2 weeks to balance between not
- # being overly pushy while still retain the opportunity to
- # enroll.
- userchoice = False
- time_choiceexpire = time_now + 7200
-
- user_cfg.SetString('repo.superprojectChoiceExpire', str(time_choiceexpire))
- user_cfg.SetBoolean('repo.superprojectChoice', userchoice)
-
- return userchoice
- else:
- print('Accepting once since we are not on a TTY', file=sys.stderr)
- return True
+ userchoice = True
+ time_choiceexpire = time_now + (86400 * 14)
+ user_cfg.SetString('repo.superprojectChoiceExpire', str(time_choiceexpire))
+ user_cfg.SetBoolean('repo.superprojectChoice', userchoice)
+ print('You are automatically enrolled in Git submodules experiment '
+ '(go/android-submodules-quickstart) for another two weeks.\n',
+ file=sys.stderr)
+ return True
# For all other cases, we would not use superproject by default.
return False