User settings
Settings govern your use of Tatin
Your Tatin user settings specify your ‘known registries’ – the Tatin registries you want to use – and some other settings you might use if you publish packages yourself.
When you launch Dyalog1, it reads your Tatin user-settings file
tatin-client.json
into ⎕SE.Tatin.MyUserSettings
, a class instance.
If you don’t have a Tatin user-settings file, Dyalog creates one
in your home folder.
The default user-settings file lists two registries:
]ListRegistries
Alias URL ...
---------- ----------------------- ...
tatin https://tatin.dev/ ...
tatin-test https://test.tatin.dev/ ...
Edit your settings
Edit your settings with the user command
You can use any editor to change your user-settings.
On launching Dyalog, Tatin checks your user-settings file is valid JSON5 and signals any errors in it.
If you use the user command
]TATIN.UserSettings -edit
Other settings define the defaults used when you create a new package.
group | group name your packages will use |
license | license you usually use to publish a package |
maintainer | email address of the maintainer of your packages |
source | name of a folder in your package where all source files are stored |
JSON5 allows comments.
Editing your user-settings file leaves your current user settings unchanged. To update them from the file:
]TATIN.UserSettings -refresh
To save your current user settings to file:
⎕SE.Tatin.MyUserSettings.Save 1
Cache settings
To reduce network operations, Tatin caches all packages by default, except
- beta versions
- packages from registries with an
Any
delete policy
Best delete policies for remote Tatin registries are None
or BetasOnly
.
Properties of ⎕SE.Tatin.MyUserSettings
control caching for all known registries.
caching | flag | whether caching is enabled |
path2cache | string | path to cache folder; defaults according to OS |
The noCaching
flags in tatin-client.json
toggle caching for specific registries.
Caching is most commonly disabled for local registries hosting packages being developed.
Keeping settings elsewhere
For most purposes all you need is a single user-settings file in its default location.
In some circumstances you might prefer to keep your user-settings file elsewhere:
- You need different settings for corporate and personal projects.
- You need to edit the settings but do not have write access to your home folder.
- Your computer is shared with others, at least one of whom needs write access to the settings.
First, change the current user-settings location:
p←,⊂'/path2/user_config_file/'
⎕SE._Tatin.Client.MyUserSettings←⎕SE._Tatin.Client.⎕NEW ⎕SE.Tatin.UserSettings p
⍴⎕←1 ⎕se.Tatin.ListRegistries 0
tatin https://tatin.dev ... 0 100 0
tatin-test https://test.tatin.dev ... 0 0 0
2 7
⍴⎕←⎕se.Tatin.MyUserSettings.ListRegistries 0
Alias URL Port Priority No caching Proxy API-key
----- ------------------ ---- -------- ---------- ----- -------
tatin https://tatin.dev/ 0 100 0 ***
test-tatin https://tatin.dev/ 0 100 0 ***
2 7
⎕SE.Tatin.MyUserSettings.MakeDefaultFile 1
id
-
A unique key that can be used to identify a Registry definition in the user settings file when neither the URL nor an alias can be used for this.
However, because mot of the time URL or alias are sufficient for this, setting id
is optional.
The "id"
Because it must be possible to define more than one set for the same URL --- for different groups! --- in the user settings, the URL does not necessarily qualify as a unique key for a Registry. Neither does the alias, because it is optional, and you may reset it to "undefined".
So we need a unique key for this (though admittedly not many will be in need for this). That's why you may set "id".
This has only an impact locally in a scenario mentioned above, and that's why this is optional.
-
Tatin is initialized either explicitly or as a side effect when the first Tatin user command is issued. ↩