You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Sources/WebKit/WebKit.docc/GettingStarted/ContributingCode.md
+32-2Lines changed: 32 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,17 @@ After downloading the code please run the below command.
10
10
git webkit setup
11
11
```
12
12
13
-
The `setup`checks that your environment is optimally configured to contribute, and may prompt you for some additional information.
13
+
The `setup`sub-command of [git-webkit](https://github.com/WebKit/WebKit/tree/main/Tools/Scripts/git-webkit) configures your local WebKit checkout for contributing code to the WebKit project. This script will occasionally prompt the user for input. The script does the following:
14
14
15
-
### Submitting a pull request
15
+
* Set your [name](/WebKit/WebKit/wiki/Git-Config#username) and [email address](/WebKit/WebKit/wiki/Git-Config#useremail) for the WebKit repository
16
+
*[Make Objective-C diffs easier to digest](/WebKit/WebKit/wiki/Git-Config#diff)
17
+
* Setup a commit message generator
18
+
* Set an [editor for commit messages](/WebKit/WebKit/wiki/Git-Config#coreeditor)
19
+
* Store a [GitHub API token](https://github.com/settings/tokens) in your system credential store
20
+
* Configure `git` to use the [GitHub API token](https://github.com/settings/tokens) when prompted for credentials, if using the HTTPS remote
21
+
* Create a [user owned fork](/WebKit/WebKit/wiki/Git-Config#Forking) of the WebKit repository
22
+
23
+
## Submitting a pull request
16
24
17
25
Firstly, please make sure you [file a bug](https://bugs.webkit.org) for the thing you are adding or fixing! Or, find a bug that you think is relevant to the fix you are making.
18
26
@@ -44,6 +52,28 @@ Once done, you can update your pull request to include the changes by again simp
44
52
git webkit pr
45
53
```
46
54
55
+
## Landing Changes
56
+
57
+
### Merge-Queue
58
+
59
+
To land a pull request, add the [`merge-queue`](https://github.com/WebKit/WebKit/labels?q=merge-queue) or [`unsafe-merge-queue`](https://github.com/WebKit/WebKit/labels?q=unfsafe-merge-queue) label to your pull request. These labels will put your pull request into the [Merge-Queue](https://ews-build.webkit.org/#/builders/74) and [Unsafe-Merge-Queue](https://ews-build.webkit.org/#/builders/75), respectively, which will commit your pull request to the WebKit repository
60
+
61
+
[Unsafe-Merge-Queue](https://ews-build.webkit.org/#/builders/75) inserts reviewer information into a commit's message and modified change logs. We then check to ensure that a pull request has been reviewed by checking the commit message before landing the change. [Unsafe-Merge-Queue](https://ews-build.webkit.org/#/builders/75)_does not_ validate that a pull request builds.
62
+
63
+
Along with the actions performed by [Unsafe-Merge-Queue](https://ews-build.webkit.org/#/builders/75), [Merge-Queue](https://ews-build.webkit.org/#/builders/74) will validate that a pull request builds and run layout tests before landing the change.
64
+
65
+
### git-webkit land
66
+
67
+
_Landing should be achieved via merge-queue, this outlines the current behavior of `git-webkit land`_
68
+
69
+
To land a change, run `git-webkit land` from the branch to be landed. Note that only a [committer](https://github.com/orgs/WebKit/teams/committers) has the privileges to commit a change to the WebKit repository. `git-webkit land` does the following:
70
+
71
+
* Check to ensure a pull-request is approved and not blocked
72
+
* Insert reviewer names into the commit message
73
+
* Rebase the pull-request against its parent branch
74
+
*[Canonicalize](https://github.com/WebKit/WebKit/wiki/Source-Control#canonicalization) the commits to be landed
75
+
* Update the pull-request with the landed commit
76
+
47
77
## Coding style
48
78
49
79
Code you write must follow WebKit’s [coding style guideline](https://webkit.org/contributing-code/#code-style-guidelines).
The first remote, [github.com/WebKit/WebKit](https://github.com/WebKit/WebKit), is an actively maintained `git` mirror of [svn.webkit.org](https://svn.webkit.org/repository/webkit/) that will soon become the canonical home of the WebKit project. We strongly recommend that all contributors use this remote for routine development.
18
-
19
-
The second remote, [svn.webkit.org](https://svn.webkit.org/repository/webkit/), is the current canonical remote for the WebKit project. If a contributor is contributing to the WebKit project on a release branch, this is the remote they should be using. Note that this remote is Subversion, not git.
20
-
21
-
[git.webkit.org (https)](https://git.webkit.org/?p=WebKit.git;a=summary) is a deprecated `git` mirror of [svn.webkit.org](https://svn.webkit.org/repository/webkit/). This mirror is maintained, but commit authorship is incorrect. This means that the shas of commits in this repository _do not_ match those from [github.com/WebKit/WebKit](https://github.com/WebKit/WebKit). This remote is sufficient for patch workflows, but contributors relying on it should migrate to [github.com/WebKit/WebKit](https://github.com/WebKit/WebKit) as we start using pull requests.
22
-
23
-
[git.webkit.org (http)](https://git.webkit.org/?p=WebKit.git;a=summary) and [github.com/WebKit/WebKit-http](https://github.com/WebKit/WebKit-http) the same repository but served in different locations. This remote is no longer maintained and should not be relied on.
24
-
25
7
### Forking
26
8
27
9
Since `git` is a decentralized version control system, a local copy can work with any remote that has the same set of shas. GitHub pull requests take advantage of this. After running [`git-webkit setup`](/WebKit/WebKit/wiki/Contributing#setup), the `.git/config` in the local WebKit repository should look something like this:
@@ -120,10 +102,6 @@ When creating or editing commit messages, `git` will invoke an external editor.
120
102
121
103
`git` does basic automatic conflict resolution, but certain types of files may be difficult to resolve with what `git` provides. Specifying a `merge.driver` for a category of files can help automatically resolve conflicts in these files when running `git` commands, most notable, `git pull`. This is most common with frequently changing versioning files or ChangeLogs.
122
104
123
-
### svn-remote
124
-
125
-
This configuration options pairs a local branch in a contributor's checkout to a subversion branch on a specified remote. This configuration is required to use `git svn` commands. Note that `git-webkit find` allows a pure `git` checkout to reason about Subversion revisions without specifying an `svn-remote` for the branch containing the revision in question.
126
-
127
105
## WebKit Options
128
106
129
107
[`git-webkit`] respects a few options that are specific to the `webkitscmpy` library. [`git-webkit setup`](/WebKit/WebKit/wiki/Contributing#setup) does automatically configure some of these, [`metadata/project_config`](/WebKit/WebKit/blob/main/metadata/project_config) also contains a few default values for the project.
Copy file name to clipboardExpand all lines: Sources/WebKit/WebKit.docc/GitHub/Migration.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Migration
2
2
3
-
As WebKit moves away from Subversion to Git, contributors will need to migrate their local checkouts and workflows to GitHub. To determine which migration workflow you need, run the following command in your WebKit repository:
3
+
WebKit has moved away from Subversion to Git, and contributors will need to migrate their local checkouts and workflows to GitHub. To determine which migration workflow you need, run the following command in your WebKit repository:
0 commit comments