Tool to bundle a MicroDrop executable release as a Squirrel Windows app.
- Visual Studio. Tested with Visual Studio 2017 Community.
- Conda environment (see below)
Create a Conda environment with required packages:
conda env create -n <env name> --file environment.yaml
A Squirrel MicroDrop release may be built within an activated development Conda environment by running the following command:
python build.py <micrdrop-exe release location> <NuGet MicroDrop release version> [-f]
where:
<micrdrop-exe release location>
is either: (a) a remote MicroDrop executable release URL, e.g., https://github.com/sci-bots/microdrop-exe/releases/download/v2.34.1rc17/microdrop-2.34.1rc17.exe; or (b) a localmicrodrop-exe/dist
directory (seemicrodrop-exe
README).<NuGet MicroDrop release version>
is a valid NuGet package version string, e.g.,2.34.1-rc17alpha0
. Note that, for example, release candidate NuGet versions require a ”-” (i.e., hyphen) character between the main version and the release candidate tag.-f
is an optional flag to force overwriting of existing output files
The build.py
script referenced above performs the following steps:
- Download the specified MicroDrop executable release.
- Package the contents of the MicroDrop executable release into a NuGet package (required by Squirrel).
- Generate Squirrel release, e.g.,
MicroDrop.2.34.1-rc16alpha0.nupkg
. - Update the
Releases
directory:- Update the
Releases/RELEASES
file with details of the new release. - Copy the Squirrel release into the
Releases
and generate a "delta" package (unless--no-delta
flag was used), e.g.,MicroDrop-2.34.1-rc16alpha0-delta.nupkg
. - Update/create
Releases/Setup.exe
as installer for new release.
- Update the
Example contents of output Releases
directory after several builds (new
builds are appended to RELEASES
text file):
Releases/
MicroDrop-2.28.0-rc0alpha0-full.nupkg
MicroDrop-2.28.1-rc0alpha0-full.nupkg
MicroDrop-2.28.2-rc0alpha0-full.nupkg
MicroDrop-2.28.3-rc0alpha0-full.nupkg
MicroDrop-2.28.3-rc2alpha0-full.nupkg
MicroDrop-2.28.3-rc4alpha0-full.nupkg
MicroDrop-2.30.0-rc1alpha0-full.nupkg
MicroDrop-2.30.0-rc3alpha0-full.nupkg
MicroDrop-2.30.0-rc4alpha0-full.nupkg
MicroDrop-2.32.0-rc1alpha0-full.nupkg
MicroDrop-2.32.0-rc2alpha0-full.nupkg
MicroDrop-2.32.0-rc3alpha0-full.nupkg
MicroDrop-2.32.0-full.nupkg
MicroDrop-2.34.1-rc16alpha0-delta.nupkg
MicroDrop-2.34.1-rc16alpha0-full.nupkg
RELEASES
Setup.exe
When assigning a version to a Squirrel MicroDrop release, we currently use the following conventions:
- Pre-release Squirrel MicroDrop builds:
microdrop-<patched micrdrop-exe version>alpha<i>
- For example, for
microdrop-exe
versionmicrodrop-2.34.1rc16
(note the hyphen added between the main version and the release candidate tag to comply with the NuGet version scheme):microdrop-2.34.1-rc16alpha0 microdrop-2.34.1-rc16alpha1 ...
- For example, for
- Squirrel MicroDrop release builds:
microdrop-<patched micrdrop-exe version>
- For example:
- For
microdrop-exe
versionmicrodrop-2.34.1rc16
:microdrop-2.34.1-rc16
- For
microdrop-exe
versionmicrodrop-2.34.1
:microdrop-2.34.1
- For
- For example:
Once one or more releases have been built, publish the contents of the
Releases
directory at a http://
URL.
When the Setup.exe
file is launched, the URL used for updates is resolved in
the following order:
update-url.rc
file located in same directory as installed app.exe
MICRODROP_UPDATE_URL
environment variable.- Default of
https://sci-bots.com/microdrop-releases
.