development.md

 1# Developing Zed
 2
 3See the platform-specific instructions for building Zed from source:
 4
 5- [macOS](./development/macos.md)
 6- [Linux](./development/linux.md)
 7- [Windows](./development/windows.md)
 8
 9If you'd like to develop collaboration features, additionally see:
10
11- [Local Collaboration](./development/local-collaboration.md)
12
13## Keychain access
14
15Zed stores secrets in the system keychain.
16
17However, when running a development build of Zed on macOS (and perhaps other
18platforms) trying to access the keychain results in a lot of keychain prompts
19that require entering your password over and over.
20
21On macOS this is caused by the development build not having a stable identity.
22Even if you choose the "Always Allow" option, the OS will still prompt you for
23your password again the next time something changes in the binary.
24
25This quickly becomes annoying and impedes development speed.
26
27That is why, by default, when running a development build of Zed an alternative
28credential provider is used in order to bypass the system keychain.
29
30> Note: This is **only** the case for development builds. For all non-development
31> release channels the system keychain is always used.
32
33If you need to test something out using the real system keychain in a
34development build, run Zed with the following environment variable set:
35
36```
37ZED_DEVELOPMENT_USE_KEYCHAIN=1
38```
39
40## Contributor links
41
42- [CONTRIBUTING.md](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md)
43- [Releases](./development/releases.md)
44- [Debugging Crashes](./development/debugging-crashes.md)
45- [Code of Conduct](https://zed.dev/code-of-conduct)
46- [Zed Contributor License](https://zed.dev/cla)