forked from connamara/quickfixn
-
Notifications
You must be signed in to change notification settings - Fork 0
Catching up with the original master #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
…tical reasons to derive from NullLog class.
Changed IDisposable implementation to follow MS general pattern
credit for #606
…with NUnit tests)
#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
add static TAG to fields
…ckages Feature create nuget packages
ILog example with limited-size rolling files
sample config maintenance
Check a field exists in the dictionary before checking enums
a few small fixes (rm debug line; AT output formatting; SslProtocol.Default->.None)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.