Skip to content

Conversation

@pvkv1799
Copy link
Owner

No description provided.

fourpastmidnight and others added 30 commits May 4, 2020 18:05
This commit updates the deliverable project files in preparation for
being able to build and push NuGet packages (and corresponding symbol
packages) via the package_release.bat batch script.

The copyright property was updated to show a proper date range which
auto-updates each year by using a computed value. The site URL, GitHub
repository URL, and license information were also added to properties in
the project files which is used by the packaging process.

Also updated the title property of the QuickFix project to be QuickFIX
Base to better clarify that this is the base (or core) library required
to implement an application using the FIX protocol and which does not
contain any of the protocol-specific messages.
I didn't want to install Ruby on my Windows machine, but I already had
it installed in my Ubuntu distro in my Windows Subsystem for Linux. The
only thing is WSL1 doesn't support the socket option SO_LINGER. So this
commit detects wether or not the tests are running in a WSL environment
and if detected, does not attempt to set the SO_LINGER option.
This commit removes the setup.bat file and instead adds that
functionality into the runat.ps1 PowerShell script, which near as far as
I can tell, was the only place setup.bat was used.

This simplifies the web of scripts used to run the acceptance tests as
well as centralizes on using PowerShell throughout instead of a mix of
batch scripts and PowerShell scripts.

The runat.ps1 PowerShell script was reformatted to follow
PowerShell formatting idioms. The usage function was removed--instead,
the parameters were updated with PowerShell cmdlet parameter metadata.
You can find "usage" by using `Get-Help .\runat.ps1`.

The KillChildren function underwent a couple of changes. I'm not sure if
something was wrong with it before, but it happened to work "enough" to
allow the tests to be run. But I found locally, it was killing my
PowerShell session, terminating the acceptance tests after only the
first batch. Then, up on the CI server, the test run would hang. As far
as I can tell, for the local termination problem, it seems to be linked
to the killing of the child process conhost.exe, which is the console
host for terminal apps on Windows. So KillChildren now filters the child
processes to exclude conhost.exe. Furthermore, in Get-WmiObject is
obsolete. And in PowerShell Core, it doesn't exist at all. So it has
been replaced with Get-CimInstance, which is the recommended
replacement.

Lastly, instead of just dumping the test results XML to the console, I
leveraged PowerShell to get the contents of the file and display a table
of the tests and whether they passed, as well as the overall result
status.
This commit largely reformats acceptance_test.ps1. But there were a few
modifications/additions.

Notably, instead of ALWAYS assuming that only the release configuration
would be run for the acceptance tests, you can now specify which build
configuration to use for running the acceptance tests. This can allow
easier debugging. If no configuration is specified, then by default, the
release configuration will be assumed.

And a UseWsl switch parameter is also added, which flows through the
various PowerShell scipts/funcitons which eventually allows one to use
their Ruby installation in their default WSL distribution, instead of
needing to have Ruby installed on their Windows machine. (Note to self:
should probably add an additional parameter that allows you to specify
WHICH WSL distro to use--in case you want to use a distro other than the
default.)

Another notable modification is that the main part of the script has
been wrapped in a try/finally block. It was possible before that if
there was an error running the acceptance tests, you'd be left in the
AcceptanceTests directory instead of back in the originating parent
directory. This ensures that if an error occurs, you are put back where
you started from.

And since the runat.ps1 script was changed to allow pipelined input, I
make use of that here to pass in the frameworks for which we're running
unit tests.
This commit updates the netcoreapp2.0 TFM to netcoreapp2.1 for the unit
tests project to remove a warning with respect to the NUnit Test
Adapter.

The AcceptanceTest project also used the net461 and
netcoreapp2.0 TFMs, so this was updated to also use the netcoreapp2.1
TFM as well. Lastly, the PowerShell script used to execute the
acceptance tests needed to be updated to use the dll with the correct
framework TFM.

The example projects also used the netcoreapp2.0 TFM and they
were updated, too.
This commit modifies the package_release.bat script to enable it to
package the QuickFIX/n libraries into NuGet packages, as well as create
symbol packages, and have them be pushed to NuGet.org.

In order for this to work, a NuGet API key must be specified in the 4th
parameter. This parameter is optional (since at this time, it seems the
QuickFIX/n organization may not yet have a Nuget account, and therefore,
API key).

Also, the usage information for this script was updated to use standard
formatting to better illustrate that the first 3 parameters to the
script are required while the last paameter is optional.

Lastly, I added a PowerShell version of the package_release.bat script
called New-Release.ps1. Until this script can be tested, I'm leaving the
old batch script.
Instead of having a mix of batch scripts calling PowerShell and
PowerShell scripts calling batch scripts, let's just choose one or the
other. These days, PowerShell is the preferred scripting and automation
language on Windows. And with PowerShell Core, you can use most scripts
on Linux, too.
Changed IDisposable implementation to follow MS general pattern
 #566

SSLCheckCertificateRevocation can only be true
if SSLValidateCertificates is true
fix missing SSL config override
CheckFieldsHaveValues to work for non-strings
Allow HeartBtInt=0, which is valid
@pvkv1799 pvkv1799 merged commit 0ac7ecc into pvkv1799:master Jun 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants