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

Chocolatey CLI does not use the cachelocation which is configured within the chocolatey.config file #3225

Closed
4 tasks done
gep13 opened this issue Jun 23, 2023 · 1 comment · Fixed by #3223
Closed
4 tasks done
Assignees
Milestone

Comments

@gep13
Copy link
Member

gep13 commented Jun 23, 2023

Checklist

  • I have verified this is the correct repository for opening this issue.
  • I have verified no other issues exist related to my problem.
  • I have verified this is not an issue for a specific package.
  • I have verified this issue is not security related.

What You Are Seeing?

When attempting to set the cachelocation to be used via Chocolatey CLI, everything works fine when you pass this information via the command line option --cachelocation=<some path>. However, when the cachelocation is set, and persisted, within the chocolatey.config file (via the choco config command), the cachelocation is not correctly picked up, and instead the default location within the %TEMP% folder is used.

Chocolatey CLI works be setting the TEMP environment variable for the current process execution to be the cachelocation value, as a result, downloading of binaries, nupkg's, etc, should use this value when set.

What is Expected?

Regardless of what method is used to set the cachelocation, i.e. either via the chocolatey.config file, or via command line option, the cachelocation should be correctly interpreted and used when installing packages.

How Did You Get This To Happen?

  1. Install the innosetup package
  2. Verify that a .InnoInstall.log file is created in the root of the %TEMP% folder
  3. Uninstall the innosetup package
  4. Once again install the innosetup package, this time adding the --cache-location c:\choco-cache option
  5. Verify that a .InnoInstall.log file is created in the root of the c:\choco-cache folder
  6. Uninstall the innosetup package
  7. Run the command choco config set --name=cachelocation --value c:\choco-cache2
  8. Once again install the innosetup package
  9. Verify that a .InnoInstall.log file is NOT created in the root of the c:\choco-cache2 folder

These steps are working on the assumption that setting the cache-location value to "something" then results in the TEMP environment variable being set with this value, which is then used within the innosetup package to determine where the log file is created. This previously would not have worked and the log file would never have been created in the choco-cache folder.

System Details

  • Operating System: Windows 10
  • Windows PowerShell version: 5.1.20348.859
  • Chocolatey CLI Version: 2.0.0
  • Chocolatey Licensed Extension version: N/A
  • Chocolatey License type: N/A
  • Terminal/Emulator: Windows PowerShell

Installed Packages

N/A

Output Log

N/A

Additional Context

This is related to this issue as both of them have the same root cause.

@gep13 gep13 added this to the 2.1.0 milestone Jun 23, 2023
@gep13 gep13 self-assigned this Jun 23, 2023
@gep13 gep13 linked a pull request Jun 23, 2023 that will close this issue
10 tasks
corbob pushed a commit to gep13/choco that referenced this issue Jun 23, 2023
Previously, in this commit:

chocolatey@da19356#diff-cb6a0471e41268b22a928bd57a59d51b70b7024e9beb30e89a330e193a089eba

The usage of the top level CacheLocation and
CommandExecutionTimeoutSeconds values had been removed, since these top
level properties within the chocolatey.config had been replaced with
values contained within the config section of the chocolatey.config
file.

However, the changes in that commit were too aggressive, and removed
the call to the set_config_item (which has subsequently been renamed to
SetConfigItem).  The method call does the work of taking any value that
is defined in the chocolatey.config for a given property name, and
adding it to the ChocolateyConfiguration instance.  When this method
call was removed, it stopped setting the property value on the
instance, and as a result, values that had been configured in the
chocolatey.config file were ignored.  They were still in play when the
configuration was passed in via a command line option, but not when
defining them in the chocolatey.config file.

The removal of this call to the set_config_item method also explains
why it was necessary to apply this bug fix in Chocolatey GUI:

chocolatey/ChocolateyGUI#1003

The method call also had the effect of setting the description on the
configuration value, which would have meant that Chocolatey GUI
wouldn't have thrown a null reference exception.  The change in
Chocolatey GUI is still valid though, as there are times when a config
value can have a missing description, so it makes sense to leave that
fix in place.
corbob added a commit to gep13/choco that referenced this issue Jun 23, 2023
Make use of the test-environment package that already exists to get the
environment variables set by Chocolatey and ensure that key variables
are set as they should be.
corbob added a commit to gep13/choco that referenced this issue Jun 23, 2023
Make use of the test-environment package that already exists to get the
environment variables set by Chocolatey and ensure that key variables
are set as they should be.
corbob added a commit to gep13/choco that referenced this issue Jun 23, 2023
Make use of the test-environment package that already exists to get the
environment variables set by Chocolatey and ensure that key variables
are set as they should be.
corbob added a commit to gep13/choco that referenced this issue Jun 25, 2023
Make use of the test-environment package that already exists to get the
environment variables set by Chocolatey and ensure that key variables
are set as they should be.
AdmiringWorm added a commit that referenced this issue Jun 26, 2023
(#3201 #3225) Re-instate setting of config properties
@gep13 gep13 closed this as completed Jun 26, 2023
@gep13 gep13 changed the title Chocolatey CLI does not use the cachelocation which is configured within the chocolatey.config file Chocolatey CLI does not use the cachelocation which is configured within the chocolatey.config file Jun 27, 2023
gep13 added a commit that referenced this issue Jun 29, 2023
* release/2.1.0: (52 commits)
  (maint) If statement formatting change
  (#3224) Add Assembly Loaded configuration option
  (maint) Resave without BOM
  (#3224) Update version check tests
  (#3174) Store non-normalized package version
  (maint) Add required whitespace
  (#3225) Add Pester Tests to ensure environment
  (#3201 #3225) Re-instate setting of config values
  (maint) Remove env variable for release version
  (maint) Fix encoding of file
  (#3194) Add tab completion for cache command
  (#2854) Re-save file with UTF-8 with BOM
  (#3218) Update Tab Expansion to use Test-Path
  (#3218) Remove try catch block for tab completion
  (build) Use latest Chocolatey.Cake.Recipe package
  (#2854) Do Write-Error instead of Write-Warning
  (#2854) Pester tests to Get-ChocolateyConfigValue
  (maint) Resave Get-ChocolateyConfigValue as CRLF
  (#2854) Add helper to read config values
  (#3214) Add Pester tests to ensure cache cleared
  ...
@choco-bot
Copy link

🎉 This issue has been resolved in version 2.1.0 🎉

The release is available on:

Your GitReleaseManager bot 📦🚀

gep13 added a commit that referenced this issue Jun 29, 2023
* master:
  (maint) If statement formatting change
  (#3224) Add Assembly Loaded configuration option
  (maint) Resave without BOM
  (#3224) Update version check tests
  (#3174) Store non-normalized package version
  (maint) Add required whitespace
  (#3225) Add Pester Tests to ensure environment
  (#3201 #3225) Re-instate setting of config values
  (maint) Remove env variable for release version
  (maint) Fix encoding of file
  (#3194) Add tab completion for cache command
  (#2854) Re-save file with UTF-8 with BOM
  (#3218) Update Tab Expansion to use Test-Path
  (#3218) Remove try catch block for tab completion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants