Skip to content

Commit

Permalink
Merge branch 'release/4.24.0'
Browse files Browse the repository at this point in the history
Release v4.24.0
  • Loading branch information
delphidabbler committed Oct 23, 2024
2 parents 02bad50 + 7a6ef7f commit 620c157
Show file tree
Hide file tree
Showing 21 changed files with 1,592 additions and 1,419 deletions.
87 changes: 69 additions & 18 deletions Build.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at https://mozilla.org/MPL/2.0/
*
* Copyright (C) 2009-2023, Peter Johnson (gravatar.com/delphidabbler).
* Copyright (C) 2009-2024, Peter Johnson (gravatar.com/delphidabbler).
*
* Instructions for building CodeSnip from source.
-->
Expand Down Expand Up @@ -284,11 +284,19 @@ <h3>
</h3>

<p>
This program is used to create <em>CodeSnip</em>'s release file.
You can get a Windows command line version at
This program is used to create <em>CodeSnip</em>'s release file. The InfoZip
version of zip is required. You can get a Windows command line version at
<a
href="http://stahlforce.com/dev/index.php?tool=zipunzip"
>http://stahlforce.com/dev/index.php?tool=zipunzip</a>.
>http://stahlforce.com/dev/index.php?tool=zipunzip</a>.
</p>

<p class="note">
<strong>Warning:</strong> The above link is <code>http</code> only. If you or
your browser object to the insecure link you can download an identical version
from delphidabbler.com, using the <code>https</code> protocol. See <a
href="https://delphidabbler.com/extras/info-zip"
>https://delphidabbler.com/extras/info-zip</a>.
</p>

<p>
Expand Down Expand Up @@ -513,12 +521,14 @@ <h3>
| +-- exe - receives executable code and compiled help file
| |
| +-- release - receives release files
| |
| +-- ~tmp~ - store for temp files ceated in release process
|
...</pre>

<p>
If the <code>_build/bin</code> folder already existed, it will have been emptied.
In addition, <code>Make</code> will have created a <code>.cfg</code> file from
In addition, <code>Make</code> will have created a <code>.cfg</code> file from a
template in the <code>Src</code> folder. This <code>.cfg</code> file is needed
for DCC32 to run correctly. The file will be ignored by Git.
</p>
Expand Down Expand Up @@ -580,7 +590,7 @@ <h2>
You have several options:
</p>

<ul class="spaced">
<ol class="spaced">
<li>
Build the <em>CodeSnip</em> Executable
</li>
Expand All @@ -599,10 +609,10 @@ <h2>
<li>
Clean Up.
</li>
</ul>
</ol>

<p>
Each of these options is described below. All except the last assume that
Each of these options is described below. All except options 5 and 6 assume that
<code>Make config</code> has been run.
</p>

Expand Down Expand Up @@ -648,7 +658,7 @@ <h4>
<pre class="cmd"><span class="prompt">&gt;</span> Make -DPORTABLE codesnip</pre>

<p>
Again the executable is placed in the <code>_build/exe</code> folder, but this time
Again the executable is placed in the <code>_build\exe</code> folder, but this time
it is named <code>CodeSnip-p.exe</code>
</p>

Expand All @@ -665,12 +675,17 @@ <h3>
<p>
The compiled help file will be written to the <code>_build\exe</code> folder.
</p>

<p>
The same help file is used for the standard and portable editions.
</p>

<h3>
Build the Setup Program
</h3>

<p>
The setup program requires that the <em>CodeSnip</em> excutable and the
The setup program requires that the <em>CodeSnip</em> executable and the
compiled help file are already present in the <code>_build\exe</code> directory.
</p>

Expand All @@ -690,7 +705,7 @@ <h3>
<p>
The setup program is named <code>CodeSnip-Setup-x.x.x.exe</code>, where
x.x.x is the version number extracted from <em>CodeSnip</em>'s version
information. It is placed in the <code>_build/exe</code> directory.
information. It is placed in the <code>_build\exe</code> directory.
</p>

<p>
Expand All @@ -715,17 +730,21 @@ <h3>

<p>
Make can create zip files containing all the files that are included in a release.
Zip files are written to the <code>_build/release</code> directory.
Zip files are written to the <code>_build\release</code> directory.
</p>

<h4>
Standard edition
</h4>

<p>
The release file for the standard edition of <em>CodeSnip</em> includes the
setup file along with <code>ReadMe.txt</code> from the <code>Docs</code>
directory. Both files must exist.
The release zip file for the standard edition requires that the setup files is already
present in the <code>_build\exe</code> directory.
</p>

<p>
The release file includes the setup file along with <code>ReadMe.txt</code>
that is automatically generated from <code>Docs\ReadMe-standard.txt</code>.
</p>

<p>
Expand All @@ -752,9 +771,16 @@ <h4>
</h4>

<p>
The release file for the portable edition includes the portable executable
file, <code>CodeSnip-p.exe</code>, the help file <code>CodeSnip.chm</code> and
several files from the <code>Docs</code> directory. All must be present.
The release zip file for the portable edition cannot be created until the
<em>CodeSnip</em> excutable and the compiled help file are already present in the
<code>_build\exe</code> directory.
</p>

<p>
The release file includes the portable executable file, <code>CodeSnip-p.exe</code>,
the help file <code>CodeSnip.chm</code>, <code>Docs\License.html</code> and
<code>ReadMe.txt</code> that is automatically generated from
<code>Docs\ReadMe-portable.txt</code>.
</p>

<p>
Expand Down Expand Up @@ -844,6 +870,31 @@ <h3>
zip file names can be used here too.
</p>

<p>
There is also a quicker way to build a release, but you must provide a version number to use it. First navigate up
to the repository root. Then run
</p>

<pre class="cmd"><span class="prompt">&gt;</span> Deploy 9.9.9</pre>

<p>
where <code>9.9.9</code> is the release version number.
</p>

<p>
This command will build both the standard and portable executables, the help file, the standard edition setup file
and finally create the release zip files for both editions, with the release version number incorporated in the file names.
</p>

<p>
Using <code>Deploy 9.9.9</code> is the equivalent of doing:
</p>

<pre class="cmd"><span class="prompt">&gt;</span> cd Src
<span class="prompt">&gt;</span> Make -DVERSION=9.9.9
<span class="prompt">&gt;</span> Make -DPORTABLE -DVERSION=9.9.9
<span class="prompt">&gt;</span> cd ..</pre>

<h3>
Clean Up
</h3>
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,21 @@ Releases are listed in reverse version number order.

> Note that _CodeSnip_ v4 was developed in parallel with v3 for a while. As a consequence some v3 releases have later release dates than early v4 releases.
## Release v4.24.0 of 23 October 2024

* Compilers with which a snippet has not been tested are now omitted from snippet information that is copied to the clipboard and included in print outs [issue #143].
* Reversed order of compilers in the snippets editor's _Compile Results_ tab so that later compilers are display first. This change was accidentally left out of release v4.22.0 when similar changes were made in other parts of the UI [issue #135].
* Release version number is now displayed in the program title bar [issue #122].
* Fixed incorrect copyright date displayed in About Box [issue #129].
* Fixed bug when checking for correct preamble bytes (BOMs) in UTF-8 and UTF-16 format text files [issue #139].
* Portable and Standard edition now use the same program names. Portable edition was previously declaring itself as _DelphiDabbler CodeSnip-p_ instead of _DelphiDabbler CodeSnip_ [issue #130].
* Updated operating system detection code [issues #126 and #144].
* Added `Deploy.bat` script to create and package both the CodeSnip standard and portable releases [issue #128].
* Documentation changes:
* CodeSnip standard and portable releases now each have their own release read-me files instead of both releases being shipped with the same read-me [issue #127]. Updated `Build.html` and `README.md` re this change.
* Updated and corrected REML documentation and REML help topic. Those documents and others that discuss REML were also changed to link to authoritative REML definitions in the `delphidabbler/reml` repository. [issues #131, #133 & #134].
* Updated `Build.html` with alternative, more secure, download link for `zip.exe` program that is required to package releases [issue #137].

## Release v4.23.0 of 02 April 2024

* Removed marketing names (e.g. "Athens" or "Rio") from Delphi compiler names to save space when the compiler names are displayed in the UI [issue #125].
Expand Down
99 changes: 99 additions & 0 deletions Deploy.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
:: This Source Code Form is subject to the terms of the Mozilla Public License,
:: v. 2.0. If a copy of the MPL was not distributed with this file, You can
:: obtain one at https://mozilla.org/MPL/2.0/
::
:: Copyright (C) 2024, Peter Johnson (gravatar.com/delphidabbler).
::
:: Deploy script for CodeSnip.
::
:: This script compiles release versions of the standard and portable editions
:: of CodeSnip and places them into two different zip files ready for release.
::
:: This script uses Embarcadero Make. Various other programs are required to
:: run Make. See Src/Makefile for details.
::
:: To use the script:
:: 1) Set the environment variables required for Make to succeed. See
:: Src/Makefile for details
:: 2) Change directory to that where this script is located.
:: 3) Run the script.
::
:: Usage:
:: Deploy <version>
:: where
:: <version> is the version number of the release, e.g. 0.5.3-beta or 1.2.0.

@echo off

setlocal

:: Check for required parameter
if "%1"=="" goto paramerror

:: Store parameter
set Version=%1

:: Store common make parameters
set CommonParams=-DVERSION=%Version%

:: Store standard edition make parameters
set StandardParams=%CommonParams%

:: Store portable edition make parameters
set PortableParams=-DPORTABLE %CommonParams%

:: Set command line
set MakeCmd=Make
set StandardMakeCmd=%MakeCmd% %StandardParams%
set PortableMakeCmd=%MakeCmd% %PortableParams%

echo ----------------------------------------------
echo Deploying CodeSnip Standard And Portable Builds
echo -----------------------------------------------
echo.
echo Standard edition Make command: %StandardMakeCmd%
echo Portable edition Make command: %PortableMakeCmd%

cd Src

echo.
echo.
echo.
echo =========================
echo Building Standard edition
echo =========================
echo.
echo.
%StandardMakeCmd%

echo.
echo.
echo.
echo =========================
echo Building Portable edition
echo =========================
echo.
echo.
%PortableMakeCmd%

echo.
echo.
echo.
echo ====================
echo Deployment completed
echo ====================

goto end

:: Error messages

:paramerror
echo.
echo ***ERROR: Please specify a version number as a parameter
echo.
goto end

:: End
:end

endlocal
Loading

0 comments on commit 620c157

Please sign in to comment.