[GTK][WPE] Bump libsoup3 version to 2.99.1
[WebKit-https.git] / Websites / webkit.org / languages.md
1 # WebKit programming languages
2
3 ## C++
4
5 Most WebKit code is written in C++. But a reasonable question is, “Which version C++?”
6
7 It’s C++17.
8 We eventually plan to move forward to C++20 and beyond.
9 Before we do that we make sure that compilers and libraries
10 on the platforms that WebKit contributors are working on are ready.
11
12 The relevant compilers are versions of clang, gcc, and Visual Studio.
13 The WebKit project has [a document explaining which version of gcc is required](https://trac.webkit.org/wiki/WebKitGTK/GCCRequirement).
14
15 ## Scripts
16
17 The preferred language for WebKit project scripts is Python.
18 We have legacy scripts in Perl and Ruby, but we ask that new scripts be done in Python.
19
20 ### Python
21
22 Some WebKit scripts are in Python 3, others in Python 2. What’s the policy on that?
23
24 #### Scripts used for building and testing WebKit
25
26 This includes scripts like `run-webkit-tests` and `build-webkit`.
27
28 All of these scripts must be written so that they are compatible with both Python 2 and Python 3.
29 Some ports build on environments that have only Python 2, including the internal Apple build
30 environment for older Apple OS versions such as macOS Mojave.
31 Other ports build on environments that have only Python 3.
32
33 At some point in the future the Python 2 requirement will be relaxed.
34
35 #### Scripts used for developing WebKit
36
37 This includes scripts like `configure-xcode-for-embedded-development` and `lint-test-expectations`.
38
39 These scripts must be compatible with Python 3,
40 and do not need to be compatible with Python 2.
41 While some WebKit development is done on systems
42 that don’t have Python 3 installed, the vast majority is not
43 and so we’re not requiring Python 2 compatibility for new scripts
44 that aren’t part of building and testing.
45
46 #### Which version of Python 3?
47
48 At the moment, the practical minimum version of Python 3 is Python 3.7.3.
49 Most platforms have newer versions, and that is the version in included with macOS Catalina.