Skip to content

Commit f6bf5f3

Browse files
committed
Add release documentation
1 parent d84f515 commit f6bf5f3

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

RELEASING.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Creating a release
2+
3+
The WinCairoRequirements repository uses GitHub releases to host a distribution
4+
which are then downloaded by scripts contained in the WebKit repository. By
5+
default the latest release will be downloaded when doing a WebKit build. Each
6+
release corresponds to a tag within the git repository.
7+
8+
## Tag names
9+
10+
Tags are done based on the date of creation of the distribution. This is done
11+
because the third party requirements change sporatically and semantic
12+
versioning does not fit with the distribution. This provides a clear timeline
13+
on when the requirements changed.
14+
15+
## Creating the tag
16+
17+
To create the tag have the commit that is being released checked out locally.
18+
From there run the following commands where YYYY.MM.DD corresponds to the year
19+
month and day the tag is created.
20+
21+
```
22+
git tag -a vYYYY.MM.DD -m "vYYYY.MM.DD"
23+
git push origin vYYYY.MM.DD
24+
```
25+
26+
Once the tag is pushed a release can be created within GitHub.
27+
28+
# Manually creating a distribution
29+
30+
The repository contains a number of scripts to create a distribution. These are used to build locally consistently.
31+
32+
All the scripts take a `triplet` value which specifies the toolchain. By
33+
default the `x64-windows-webkit` toolchain is used. For building
34+
WinCairoRequirements two toolchain files were created because there are some
35+
libraries that need to be built statically even when a dynamic build is wanted.
36+
Only the `x64-windows-webkit` toolchain is supported at this time.
37+
38+
## Install script
39+
40+
The `Install-Requirements.ps1` script is a wrapper around `vcpkg` which will
41+
invoke `vcpkg install` with a list of requirements. The requirements are
42+
defined in a .json file which is nothing more than a list of port names.
43+
44+
## Renaming bin/lib
45+
46+
The WebKit Windows port assumes that the bin and lib directory both contain a
47+
suffix for whether it is a 64-bit or 32-bit build. The
48+
`Rename-WithBitSuffix.ps1` script will rename according to the triplet passed
49+
in.
50+
51+
## Creating the zip
52+
53+
The `Package-Requirements.ps1` script creates a zip file containing the
54+
dependencies. If a different filename is required then set the `-Output` flag
55+
accordingly.
56+
57+
## Command listing
58+
59+
```
60+
& Install-Requirements.ps1
61+
62+
# TODO Remove
63+
.\vcpkg.exe install cflite --triplet x64-windows-webkit
64+
& Delete-PthreadHeaders.ps1
65+
66+
& Package-Requirements.ps1
67+
```

0 commit comments

Comments
 (0)