• Daniel Martí's avatar
    os: change UserConfigDir on Darwin to ~/Library/Application Support · b3365264
    Daniel Martí authored
    The old code used ~/Library/Preferences, which is documented by
    Apple as:
    
    	This directory contains app-specific preference files. You
    	should not create files in this directory yourself. Instead, use
    	the NSUserDefaults class or CFPreferences API to get and set
    	preference values for your app.
    
    It looks like we missed everything after the first sentence; it's
    definitely not the right choice for files that Go programs and users
    should be touching directly.
    
    Instead, use ~/Library/Application Support, which is documented as:
    
    	Use this directory to store all app data files except those
    	associated with the user’s documents. For example, you might use
    	this directory to store app-created data files, configuration
    	files, templates, or other fixed or modifiable resources that
    	are managed by the app. An app might use this directory to store
    	a modifiable copy of resources contained initially in the app’s
    	bundle. A game might use this directory to store new levels
    	purchased by the user and downloaded from a server.
    
    This seems in line with what UserConfigDir is for, so use it.
    
    The documentation quotes above are obtained from the surprisingly long
    link below:
    
    https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
    
    Fixes #32475.
    
    Change-Id: Ic27a6c92d76a5d7a4d4b8eac5cd8472f67a533a4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/181177
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarAndrew Bonventre <andybons@golang.org>
    b3365264
env_write.txt 2.23 KB