-
Notifications
You must be signed in to change notification settings - Fork 160
/
NEW RELEASE INSTRUCTIONS.txt
199 lines (106 loc) · 6.36 KB
/
NEW RELEASE INSTRUCTIONS.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
[Instructions to Create New Release]
I, Recursive, leave these instructions on the proper method to create a new release, in case I perish or am otherwise unable to create new releases.
PREREQUISITES
- CivFanatics Account
- Collaborator permissions on the repository
- Installed Inno Script Studio and Inno Setup Compiler
- Installed ModBuddy
- Installed Python with integration into PATH
- Installed all the tools required to build the DLL
- Installed a Git editor, such as GitHub Desktop
- Cloned local copy of the repository
Tip #1: You may wish to create the autoinstaller in a *COPY* of your repository folder, since ModBuddy will create junk files.
Tip #2: Make sure to merge necessary changes and test your changes to the database and DLL before creating a new release.
[STEP 1]
Make sure you're on the latest master branch.
[STEP 2]
Create a folder somewhere on your computer named "Debug", with two blank folders inside it: "43 Civ" and "Standard".
[STEP 3]
If the new release is savegame incompatible:
- Increment the .civ5proj version number of (1) Community Patch by one.
- Increment the .civ5proj minimum savegame compatible version of (1) Community Patch by one.
- For (2), (3a), (3b), and (4a), increment the .civ5proj file's minimum version of the Community Patch (required as a dependency) by 1.
- Increment the version numbers at the beginning of the CvGameCoreDLL_Expansion2/CustomMods.h file by 1.
[STEP 4]
A. Change the displayed version number on the teasers for the following mods:
- (1) Community Patch
- (2) Vox Populi
- (3a) VP - EUI Compatibility Files
- (3b) 43 Civs Community Patch
- (4a) Squads for VP
Remember that the version number format is "X.Y.Z"
WHERE X = major version number,
Y = savegame incompatible release,
Z = savegame compatible release
B. Change the current version number on ISSUE_TEMPLATE in the main folder to match the new version number.
C. Change MyAppVersion in VPSetupData.iss to match the new version number.
Tip: Notepad++'s Find in Files feature can be useful for this step, but it will not update ISSUE_TEMPLATE.
Find what: {Old Version Number}
Replace with: {New Version Number}
Filters: *.iss *.civ5proj
Directory: GitHub\Community-Patch-DLL
[STEP 5]
Create a commit for the new release, and tag it as shown below. DO NOT PUSH TO GITHUB yet.
Commit Name: "{Version Number} Release"
Tag Name: "Release-{Version Number}"
Tip: This step is necessary to ensure the GameCoreDLL has the correct release identifier, which can be compared later when debugging.
[STEP 6]
A. Build the CvGameCore_Expansion2.dll file using the Release config (instructions are on the main repository page).
B. Place the compiled DLL file in the "(1) Community Patch" folder, replacing the existing DLL there.
C. Open Command Prompt and run the following commands. Leave the window open once you're done.
cd {folder path for Community-Patch-DLL}
py build_vp_clang.py --config debug
D. Go to the clang-output/Debug folder. Cut and paste the compiled DLL and PDB files into the "Standard" folder you created earlier.
E. Delete the clang-output and clang-build folders in the repository.
[STEP 7]
A. Build the 43 Civ version of the game core using the Release config (uncomment "#define MAX_MAJOR_CIVS (43)" in CvGameCoreDLLUtil/include/CustomModsGlobal.h, then build normally).
B. Place the compiled 43 Civ DLL file in the "(3b) 43 Civs Community Patch" folder, replacing the existing DLL there.
C. Using your opened Command Prompt window, run the following command. Close the window when you're done.
py build_vp_clang.py --config debug
D. Go to the clang-output/Debug folder. Cut and paste the compiled DLL and PDB files into the "43 Civ" folder you created earlier.
E. Compress the Debug folder into a .zip file, then delete the unzipped folder.
F. Delete the clang-output and clang-build folders in the repository.
[STEP 8]
Delete the "Release-{Version Number}" tag you've added to the new release commit, and undo the commit.
[STEP 9]
A. Build the following mods in ModBuddy:
- (1) Community Patch
- (2) Vox Populi
- (3a) VP - EUI Compatibility Files
- (3b) 43 Civs Community Patch
- (4a) Squads for VP
NOTE: The autoinstaller will use the versions from the Build folder in the main directory. ModBuddy will also create a copy in your MODS folder, which you can delete.
[STEP 10]
If you've done everything correctly, you can open the VPSetupData.iss file and hit "Compile". When it finishes, the compiled autoinstaller will be located in the "Output" subfolder.
[STEP 11]
Copy the newly compiled .modinfo files for the following mods from Build to the mods' individual folders in the main folder:
- (1) Community Patch
- (2) Vox Populi
- (3a) VP - EUI Compatibility Files
- (3b) 43 Civs Community Patch
- (4a) Squads for VP
[STEP 12]
Create a commit for the new release, and tag it as shown below.
Commit Name: "{Version Number} Release"
Tag Name: "Release-{Version Number}"
[STEP 13]
Push the release commit to GitHub.
[STEP 14]
A. Go to Releases on GitHub and draft a new release. Upload the compiled autoinstaller and zipped Debug folder to the release binaries.
B. For the Release title, type in "Version {Version Number}".
C. Choose the tag for the new version from the list, and then hit "Generate release notes" above the "Describe this release" text box.
D. Change the text in the box as follows:
**Release Notes Thread:**
**GitHub Changes Summary:** <Insert the link next to "Full Changelog" here>
## Pull Requests Summary
<Insert pull requests list>
<Leave anything else that was added as part of the auto-generated notes at the end>
E. Make sure "Set as a pre-release" is unchecked, and "Set as the latest release" is checked.
F. Publish the release.
[STEP 15]
IF NOT SAVEGAME COMPATIBLE: Make a new version thread on CivFanatics, including the changelog.
IF SAVEGAME COMPATIBLE: Edit the existing release thread on CivFanatics. Edit the title, add the changelog to the OP, and also make a new post in the thread (including the changelog) to alert everyone.
Link to, or update the existing link for, the compiled autoinstaller on the new release's page on GitHub.
After making the thread, copy and paste the forum thread link next to "**Release Notes Thread:**" in the text box from the previous step, and update the release.
[STEP 16]
Announce the new version on Vox Populi's Discord server. If the new release is NOT savegame compatible, ping @everyone in your announcement.