Skip to content
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

Uninstaller Service Enhancements #305

Closed
6 tasks done
ferventcoder opened this issue Jun 4, 2015 · 3 comments
Closed
6 tasks done

Uninstaller Service Enhancements #305

ferventcoder opened this issue Jun 4, 2015 · 3 comments

Comments

@ferventcoder
Copy link
Member

  • Switch to the installer type every time
  • Add valid uninstall exit codes
  • Respect the valid codes for exit
  • On by default - moved to Turn on Auto Uninstaller by default #308
  • Ask user to confirm if silent installer is missing
  • Ensure that logging doesn't mess up running the uninstaller.
  • Add feature to fail if auto uninstaller fails. Default to false.
@ferventcoder
Copy link
Member Author

For MSIs and uninstall, there are quite a few valid exit codes that signify the product is no longer installed - 0, 1641, and 3010 signify success plus possible reboot. 1605/1614 signify the product is not installed, so can't uninstall.

ferventcoder added a commit that referenced this issue Jun 4, 2015
- Add valid exit codes
- Switch to return the same install args/uninstall args with a base
class that defines the properties and command builders.
- Override those custom builders for CustomInstaller, which should
return nothing b/c it is unknown what it would return.
ferventcoder added a commit that referenced this issue Jun 4, 2015
Only build uninstall command args if there is no silent uninstall key,
but allow setting up the proper uninstaller for other actions.
ferventcoder added a commit that referenced this issue Jun 4, 2015
When an uninstall finishes, the exit code of zero may not be the only
valid exit code. Allow the installer type to validate the exit code
against its valid uninstall exit codes. This will catch things like
with MSI with 0, 1641, and 3010 (all successful codes), and also 1605
and 1641 (for when the product was not installed, perhaps uninstalled
by a different means) as also valid since the end state is that the
application is no longer installed.
ferventcoder added a commit that referenced this issue Jun 4, 2015
* stable:
  (GH-296) add 1605 for valid MSI exit code
  (GH-305) Installer Type Validate Exit Code
  (GH-305) Find the installer type every time
  (maint) formatting
  (GH-304) Auto Installer allow system cleanup
  (GH-305) Clean up installer types
@ferventcoder
Copy link
Member Author

Added a bug label as well, since the uninstaller was ignoring valid exit codes.

ferventcoder added a commit that referenced this issue Jun 4, 2015
When not silent, the uninstaller should confirm with the user or skip
the attempt if confirm is already selected.
ferventcoder added a commit that referenced this issue Jun 4, 2015
* stable:
  (GH-305) Uninstaller confirm when not silent
  (maint) formatting
@ferventcoder ferventcoder reopened this Jun 4, 2015
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 4, 2015
Some uninstallers will not do that. Ensure that the location exists.
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 4, 2015
* stable:
  (maint) formatting
  (chocolateyGH-305) Create log location
@ferventcoder
Copy link
Member Author

@mrdima you may want to pay attention to the new feature failOnAutoUninstaller that is set to false by default. It prevents choco from failing on package install if the uninstaller fails for any reason. You may want to change this to enabled instead.

ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 5, 2015
You get fun weird issues with opening a log file location and the whole
thing can fail for non-obvious reasons.
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 5, 2015
When the auto uninstaller sends messages through, be sure the user can
also see those messages. They are helpful when there are errors.
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 5, 2015
When the autouninstaller has a failing exit code, present that to the
user.
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 5, 2015
If auto uninstaller fails, do not fail the package by default. Allow
the user to change the feature `failOnAutoUninstaller` to allow for
packages to fail when the uninstall feature fails.
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 5, 2015
* stable:
  (chocolateyGH-315) Nuget stops when uninstall fails
  (chocolateyGH-316) Prevent reboots
  (chocolateyGH-305) Do not fail by default on auto uninstaller
  (chocolateyGH-304) Reduce sleep time to 2 seconds
  (chocolateyGH-305) Include exit code when there is an error
  (chocolateyGH-305) Log info instead of Debug
  (chocolateyGH-305) Don't attempt to log on uninstall

Conflicts:
	src/chocolatey/infrastructure.app/builders/ConfigurationBuilder.cs
	src/chocolatey/infrastructure.app/services/ChocolateyPackageService.cs
ferventcoder added a commit that referenced this issue Jun 5, 2015
This will lengthen short 8.3 paths so that choco can work with them.
ferventcoder added a commit that referenced this issue Jun 5, 2015
* stable:
  (GH-296) Enhance installer template
  (GH-296) Add readme template
  (GH-305) get full path to cache folder
  (posh) add aliases for filetype/url64bit
  (GH-60) Fix: Pin errors on pkg folders w/versions
  (log) add debug logging around list
  (GH-302) Fix: choco pin list fails
  (log) use warn level messages as result summaries
  (log) add debug log search filter for nuget list
  (GH-317) Throw on non-existing features
  (GH-319) always log debug output to log file

Conflicts:
	src/chocolatey/chocolatey.csproj
ferventcoder added a commit that referenced this issue Jun 20, 2015
When the user selects `Yes`, proceed with the uninstaller. Otherwise
skip.
ferventcoder added a commit that referenced this issue Jun 20, 2015
When the user selects `Yes`, proceed with the uninstaller. Otherwise
skip.
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jun 20, 2015
* stable:
  (version) 0.9.9.7
  (chocolateyGH-337) Add fault tolerance to registry keys
  (chocolateyGH-305) Fix: uninstaller confirm if no silent
  (doc) update changelog/nuspec
ferventcoder added a commit that referenced this issue Jun 27, 2015
If the underlying application is not uninstalled by autouninstaller,
warn the user they will need to take manual action
ferventcoder added a commit that referenced this issue Jun 27, 2015
* stable:
  (GH-341) Do not allow combining paths with colon
  (spec) don't allow interactive windows in specs
  (GH-219)(GH-56) Allow PowerShell interaction
  (spec) Set uninstall base scenario
  (GH-305) add warning if application not uninstalled

Conflicts:

src/chocolatey.tests.integration/infrastructure/commands/CommandExecutorSpecs.cs
	src/chocolatey.tests/infrastructure/filesystem/DotNetFileSystemSpecs.cs
	src/chocolatey/infrastructure.app/services/ChocolateyPackageService.cs
	src/chocolatey/infrastructure/commands/CommandExecutor.cs
ferventcoder added a commit to ferventcoder/choco that referenced this issue Jan 6, 2016
If you haven't found anything else, assume the installer type is NSIS.
ferventcoder added a commit that referenced this issue Jan 10, 2016
* stable:
  (doc) update readme/contributing
  (GH-305) Assume NSIS if you've found uninst.exe
  (GH-8) escape curly braces for log formatting

# Conflicts:
#	CONTRIBUTING.md
ferventcoder added a commit that referenced this issue Sep 12, 2016
* stable: (24 commits)
  (GH-839) Switch to apply package parameters to dependent packages
  (maint) formatting methods / parameters in calls
  (GH-958) If SSLv3 in Posh v2 Fails, Use Original
  (GH-746) Use HTTPS if available when HTTP url
  (GH-957) Skip Get-WebFileName When FTP
  (GH-948) Ensure passwords / keys are not logged
  (GH-952) Get-ChocolateyWebFile enhancements
  (doc) update generated docs
  (maint) formatting
  (docs) move GenerateDocs.ps1 / update
  (GH-932) Do not set unknown checksum to 'md5'
  (GH-719) Reset ServerCertificateValidationCallback
  (GH-305) add MSP/MSU installer types
  (GH-305) update exitcodes to long
  (GH-954) Pending fails when lib does not exist
  (GH-950) Install-ChocolateyPackage - UseOriginalLocation
  (maint) formatting
  (GH-922) Automatically determine checksum type
  (maint) fixes for shimgen
  (GH-948) Do not log sensitive arguments
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants