-
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Notes.txt
122 lines (79 loc) · 5.17 KB
/
Notes.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
VERSION INFO
The program version format is major.minor.build, like 1.20.5.
Minor: changed when added some significant features.
Build: changed when fixed bugs between minor versions. Also may have some new features.
To update version info of dll files (Au, Au.Editor, Au.Controls):
Open global2.cs and edit Au_.Version. Single global2.cs is used by all these projects.
It's important to update Au version info whenever something changed in Au or its dependencies (AuCpp etc).
Also may need to update year in AssemblyCopyright attribute (it's displayed in About info).
To update version info of the setup file:
Open the .iss file in Inno Script Studio and edit MyAppVersion.
Also in index.md update version, date, filesize. It is part of the help website.
Also may need to update year in LICENSE.txt.
All significant changes of that version must be documented in Other/DocFX/_doc/changes/vMajor.Minor.md. Do it whenever making changes.
HOW TO RELEASE A NEW VERSION
Review all TODO. Occasionally review TODO2, FUTURE, CONSIDER.
TODO2 means "low priority TODO". If after a long time it still seems low priority, delete the comment or replace with TODO3.
May need to test something. Eg some changes could break some main features.
Also test new and some main features on other OS.
May need to undefine TRACE in some C++ projects.
Usually not using TRACE in Release config, but sometimes may use it to test Release speed etc.
Don't use TRACE in C# projects; it's defined by default in Debug and Release config.
May need to delete test code. Or use #if DEBUG, like in Tests.cs.
Review perf and print.
May need to add new OS version to class osVersion. Usually once/year.
Change version info (see above) in global2.cs and index.md.
Build solution in config Release/AnyCPU. Build in config Release/x86.
NOTE: use the "Rebuild solution" command, else VS may not update something.
Review menu Help -> About. May need to update beta, C# version, .NET version, used libraries.
Run script "Au docs" just to catch XML documentation errors and test how it works with current C#/.NET/DocFX versions etc.
Don't upload. Fix errors if need. More info in AuDocs.txt.
Review the generated local help.
Build solution if needed to edit in above steps.
May need to update some info in README.md for github. Eg the screenshot and "how to build".
When an image updated, github still shows the old cached. Workaround: in the image link append #x and change x for each image version.
Open the .iss file in Inno Script Studio. Change MyAppVersion. Review. Compile.
Run the setup file to test. Test on other OS too. Occasionally uninstall/install, not just upgrade.
May need to update the setup file size in the download webpage (index.md).
Upload the setup file. For example with FileZilla.
Backup the old setup file at first: in FileZilla move the old file to the "download" folder and rename (add version).
Don't backup if changed only patch version. Simply replace.
Run script "Au docs". Click the upload link.
Review "future.md". RENAME!
Github commit all and push. The message could be like v1.2.3.
Note: don't delay to do it. It uploads the "changes" doc.
Review web pages. Github too.
Download and test the setup file.
Occasionally test it on all OS. Observe SmartScreen/antivirus behavior.
Test the setup file at virustotal.com. And separately other files (even data files).
Always will be several false positives. Even with an empty Inno Setup project. Never mind.
Release NuGet package:
Run script "Create NuGet package.cs". It builds Au using a modified temp csproj, creates package and adds native dlls.
Upload to NuGet. The script prints links.
Run script "Update version.txt.cs". It updates _\version.txt and uploads to public_html.
Announce in forum.
If not beta, occasionally review/update in some download websites. Edit and upload the PAD file.
---------------------------------------------------------
UPDATING .NET
VS must support that .NET version. Install the .NET SDK if need.
Update .NET version in all C# projects (.csproj) except Au.Net4.
May need to update .NET SDK version in global.json (in solution folder).
Used it to force VS to use .NET 8 SDK.
Because: if installed .NET 9 Preview SDK, VS uses it to build projects that use .NET 8. Then app crashes when starting.
Note: some scripts build just the Au project. To use correct SDK, I created a symlink to the solution's global.json in the project folder. Adding as a link in VS (in csproj) does not work.
In project DatabasesEtc, in file Program.cs:
Enable only the call to RefTxt.Create, and run.
Enable only the call to RefAndDoc.Create, and run.
Also now it's a good time to update icons: update the NuGet package, enable only Icons.CreateDB, and run.
NOTE: also need this when upgraded SDK RC -> final. Eg in .NET 8 SDK final some API changed.
Update .NET version in the AppHost project (the #define). Build.
Update .NET version in DNuget.cs where need.
Update MetaComments.Defines.
Build solution.
Run editor.
Find-replace "NET 8" and "net8" everywhere, including:
- LibreAutomate.iss (Inno Setup).
- README.md (GitHub).
Test DNuget with the new and the old SDK.
Test package Microsoft.PowerShell.SDK. Test how it works in miniProgram and exeProgram.
Maybe more.