Skip to content

Commit b59bef5

Browse files
committed
Bumping version to 1.8.3
1 parent e25292c commit b59bef5

File tree

5 files changed

+58
-102
lines changed

5 files changed

+58
-102
lines changed

.paket/Paket.Restore.targets

Lines changed: 39 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
88

99
<DetectedMSBuildVersion>$(MSBuildVersion)</DetectedMSBuildVersion>
10-
<DetectedMSBuildVersion Condition="'$(MSBuildVersion)' == ''">15.0.0</DetectedMSBuildVersion>
10+
<DetectedMSBuildVersion Condition="$(MSBuildVersion) == ''">15.0.0</DetectedMSBuildVersion>
1111
<MSBuildSupportsHashing>false</MSBuildSupportsHashing>
1212
<MSBuildSupportsHashing Condition=" '$(DetectedMSBuildVersion)' &gt; '15.8.0' ">true</MSBuildSupportsHashing>
1313
<!-- Mark that this target file has been loaded. -->
@@ -27,13 +27,44 @@
2727
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' AND Exists('$(PaketRootPath)paket.bootstrapper.exe')">$(PaketRootPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
2828
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' ">$(PaketToolsPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
2929
<PaketBootStrapperExeDir Condition=" Exists('$(PaketBootStrapperExePath)') " >$([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\</PaketBootStrapperExeDir>
30-
30+
31+
<!-- Paket -->
32+
33+
<!-- windows, root => tool => proj style => bootstrapper => global -->
34+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
35+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
36+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket.exe</PaketExePath>
37+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketBootStrapperExeDir)') ">$(_PaketBootStrapperExeDir)paket.exe</PaketExePath>
38+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' ">paket.exe</PaketExePath>
39+
40+
<!-- no windows, try native paket as default, root => tool => proj style => mono paket => bootstrpper => global -->
41+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketRootPath)paket') ">$(PaketRootPath)paket</PaketExePath>
42+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketToolsPath)paket') ">$(PaketToolsPath)paket</PaketExePath>
43+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket</PaketExePath>
44+
45+
<!-- no windows, try mono paket -->
46+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
47+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
48+
49+
<!-- no windows, try bootstrapper -->
50+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketBootStrapperExeDir)') ">$(PaketBootStrapperExeDir)paket.exe</PaketExePath>
51+
52+
<!-- no windows, try global native paket -->
53+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' ">paket</PaketExePath>
54+
55+
<!-- Paket command -->
56+
<_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))</_PaketExeExtension>
57+
<PaketCommand Condition=" '$(PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"</PaketCommand>
58+
<PaketCommand Condition=" '$(PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</PaketCommand>
59+
<PaketCommand Condition=" '$(PaketCommand)' == '' ">"$(PaketExePath)"</PaketCommand>
60+
61+
3162
<PaketBootStrapperCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
3263
<PaketBootStrapperCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
3364

3465
<!-- Disable automagic references for F# dotnet sdk -->
3566
<!-- This will not do anything for other project types -->
36-
<!-- see https://github.com/fsharp/fslang-design/blob/master/tooling/FST-1002-fsharp-in-dotnet-sdk.md -->
67+
<!-- see https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1032-fsharp-in-dotnet-sdk.md -->
3768
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
3869
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
3970

@@ -43,65 +74,14 @@
4374
<PaketIntermediateOutputPath Condition=" '$(PaketIntermediateOutputPath)' == '' ">$(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/'))</PaketIntermediateOutputPath>
4475
</PropertyGroup>
4576

46-
<!-- Check if paket is available as local dotnet cli tool -->
47-
<Target Name="SetPaketCommand" >
48-
49-
<!-- Call 'dotnet paket' and see if it returns without an error. Mute all the output. -->
50-
<Exec Command="dotnet paket --version" IgnoreExitCode="true" StandardOutputImportance="low" StandardErrorImportance="low" >
51-
<Output TaskParameter="ExitCode" PropertyName="LocalPaketToolExitCode" />
52-
</Exec>
53-
54-
<!-- If local paket tool is found, use that -->
55-
<PropertyGroup Condition=" '$(LocalPaketToolExitCode)' == '0' ">
56-
<InternalPaketCommand>dotnet paket</InternalPaketCommand>
57-
</PropertyGroup>
58-
59-
<!-- If not, then we go through our normal steps of setting the Paket command. -->
60-
<PropertyGroup Condition=" '$(LocalPaketToolExitCode)' != '0' ">
61-
<!-- windows, root => tool => proj style => bootstrapper => global -->
62-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
63-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
64-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket.exe</PaketExePath>
65-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketBootStrapperExeDir)') ">$(_PaketBootStrapperExeDir)paket.exe</PaketExePath>
66-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' ">paket.exe</PaketExePath>
67-
68-
<!-- no windows, try native paket as default, root => tool => proj style => mono paket => bootstrpper => global -->
69-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketRootPath)paket') ">$(PaketRootPath)paket</PaketExePath>
70-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketToolsPath)paket') ">$(PaketToolsPath)paket</PaketExePath>
71-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket</PaketExePath>
72-
73-
<!-- no windows, try mono paket -->
74-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
75-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
76-
77-
<!-- no windows, try bootstrapper -->
78-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketBootStrapperExeDir)') ">$(PaketBootStrapperExeDir)paket.exe</PaketExePath>
79-
80-
<!-- no windows, try global native paket -->
81-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' ">paket</PaketExePath>
82-
83-
<_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))</_PaketExeExtension>
84-
<InternalPaketCommand Condition=" '$(InternalPaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"</InternalPaketCommand>
85-
<InternalPaketCommand Condition=" '$(InternalPaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</InternalPaketCommand>
86-
<InternalPaketCommand Condition=" '$(InternalPaketCommand)' == '' ">"$(PaketExePath)"</InternalPaketCommand>
87-
88-
</PropertyGroup>
89-
90-
<!-- The way to get a property to be available outside the target is to use this task. -->
91-
<CreateProperty Value="$(InternalPaketCommand)">
92-
<Output TaskParameter="Value" PropertyName="PaketCommand"/>
93-
</CreateProperty>
94-
95-
</Target>
96-
9777
<Target Name="PaketBootstrapping" Condition="Exists('$(PaketToolsPath)paket.bootstrapper.proj')">
9878
<MSBuild Projects="$(PaketToolsPath)paket.bootstrapper.proj" Targets="Restore" />
9979
</Target>
10080

10181
<!-- Official workaround for https://docs.microsoft.com/en-us/visualstudio/msbuild/getfilehash-task?view=vs-2019 -->
10282
<UsingTask TaskName="Microsoft.Build.Tasks.GetFileHash" AssemblyName="Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildSupportsHashing)' == 'true' And '$(DetectedMSBuildVersion)' &lt; '16.0.360' " />
10383
<UsingTask TaskName="Microsoft.Build.Tasks.VerifyFileHash" AssemblyName="Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildSupportsHashing)' == 'true' And '$(DetectedMSBuildVersion)' &lt; '16.0.360' " />
104-
<Target Name="PaketRestore" Condition="'$(PaketRestoreDisabled)' != 'True'" BeforeTargets="_GenerateDotnetCliToolReferenceSpecs;_GenerateProjectRestoreGraphPerFramework;_GenerateRestoreGraphWalkPerFramework;CollectPackageReferences" DependsOnTargets="SetPaketCommand;PaketBootstrapping">
84+
<Target Name="PaketRestore" Condition="'$(PaketRestoreDisabled)' != 'True'" BeforeTargets="_GenerateDotnetCliToolReferenceSpecs;_GenerateProjectRestoreGraphPerFramework;_GenerateRestoreGraphWalkPerFramework;CollectPackageReferences" DependsOnTargets="PaketBootstrapping">
10585

10686
<!-- Step 1 Check if lockfile is properly restored (if the hash of the lockfile and the cache-file match) -->
10787
<PropertyGroup>
@@ -223,7 +203,7 @@
223203
<PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
224204
<PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
225205
<AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
226-
<CopyLocal Condition="'%(PaketReferencesFileLinesInfo.Splits)' == '6'">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])</CopyLocal>
206+
<CopyLocal Condition="'$(Splits)' == '6'">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])</CopyLocal>
227207
</PaketReferencesFileLinesInfo>
228208
<PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
229209
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
@@ -266,7 +246,7 @@
266246
</PropertyGroup>
267247
</Target>
268248

269-
<Target Name="PaketOverrideNuspec" DependsOnTargets="SetPaketCommand" AfterTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(PaketIntermediateOutputPath)/$(MSBuildProjectFile).references')" >
249+
<Target Name="PaketOverrideNuspec" AfterTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(PaketIntermediateOutputPath)/$(MSBuildProjectFile).references')" >
270250
<ItemGroup>
271251
<_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/>
272252
<MSBuildMajorVersion Include="$(DetectedMSBuildVersion.Replace(`-`, `.`).Split(`.`)[0])" />
@@ -320,7 +300,7 @@
320300
DevelopmentDependency="$(DevelopmentDependency)"
321301
BuildOutputInPackage="@(_BuildOutputInPackage)"
322302
TargetPathsToSymbols="@(_TargetPathsToSymbols)"
323-
SymbolPackageFormat="$(SymbolPackageFormat)"
303+
SymbolPackageFormat="symbols.nupkg"
324304
TargetFrameworks="@(_TargetFrameworks)"
325305
AssemblyName="$(AssemblyName)"
326306
PackageOutputPath="$(PackageOutputAbsolutePath)"
@@ -367,7 +347,7 @@
367347
DevelopmentDependency="$(DevelopmentDependency)"
368348
BuildOutputInPackage="@(_BuildOutputInPackage)"
369349
TargetPathsToSymbols="@(_TargetPathsToSymbols)"
370-
SymbolPackageFormat="$(SymbolPackageFormat)"
350+
SymbolPackageFormat="symbols.nupkg"
371351
TargetFrameworks="@(_TargetFrameworks)"
372352
AssemblyName="$(AssemblyName)"
373353
PackageOutputPath="$(PackageOutputAbsolutePath)"

RELEASE_NOTES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release Notes
22

3-
## 1.8.2 - 2019-10-30
3+
## 1.8.3 - 2019-10-31
44
* Use GPIO from .NET Core 3
55

66
## 1.7.8 - 2019-10-30

src/Client/ReleaseNotes.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
module internal ReleaseNotes
22

3-
let Version = "1.8.2"
3+
let Version = "1.8.3"
44

55
let IsPrerelease = false
66

77
let Notes = """
88
# Release Notes
99
10-
## 1.8.2 - 2019-10-30
10+
## 1.8.3 - 2019-10-31
1111
* Use GPIO from .NET Core 3
1212
1313
## 1.7.8 - 2019-10-30

src/PiServer/GeneralIO.fs

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ open System.Threading.Tasks
55
open FSharp.Control.Tasks.ContextInsensitive
66
open System.Device.Gpio
77

8-
type LED(controller:GpioController,log:log4net.ILog,pin:int) =
8+
type LED internal (controller:GpioController,pin:int) =
99
let mutable active = false
1010
let mutable blinking = false
1111
do
@@ -45,35 +45,33 @@ type LED(controller:GpioController,log:log4net.ILog,pin:int) =
4545

4646
member this.StopBlinking() = this.Deactivate()
4747

48-
type CableConnection(controller:GpioController,log:log4net.ILog,pin:int) =
48+
type CableConnection internal (controller:GpioController,pin:int) =
4949
let mutable onConnected = None
5050
let mutable onDisconnected = None
5151
let mutable lastState = None
5252

5353
let execute expectedState f =
5454
match lastState with
5555
| Some s ->
56-
let state = controller.Read(pin) = PinValue.High
57-
if state = expectedState && s <> state then
56+
let highResistance = controller.Read(pin) = PinValue.High
57+
if highResistance = expectedState && s <> highResistance then
5858
f()
59-
lastState <- Some state
59+
lastState <- Some highResistance
6060
| None ->
61-
let state = controller.Read(pin) = PinValue.High
62-
if state = expectedState then
61+
let highResistance = controller.Read(pin) = PinValue.High
62+
if highResistance = expectedState then
6363
f()
64-
lastState <- Some state
64+
lastState <- Some highResistance
6565

6666
do
6767
controller.OpenPin(pin, PinMode.InputPullUp)
6868

6969
let rising(_sender:obj) (_e:PinValueChangedEventArgs) =
70-
log.InfoFormat("Rising - unconnected")
7170
match onDisconnected with
7271
| None -> ()
7372
| Some f -> execute true f
7473

7574
let falling(_sender:obj) (_e:PinValueChangedEventArgs) =
76-
log.InfoFormat("Falling - connected")
7775
match onConnected with
7876
| None -> ()
7977
| Some f -> execute false f
@@ -96,46 +94,24 @@ type CableConnection(controller:GpioController,log:log4net.ILog,pin:int) =
9694
onDisconnected <- Some f
9795
execute true f
9896

99-
type Button(controller:GpioController,log:log4net.ILog,pin:int,onPress) =
100-
let mutable lastState = None
101-
102-
let execute () =
103-
match lastState with
104-
| Some s ->
105-
let state = controller.Read(pin) = PinValue.High
106-
if not state && s <> state then
107-
lastState <- Some state
108-
| None ->
109-
let state = controller.Read(pin) = PinValue.High
110-
if not state then
111-
onPress()
112-
lastState <- Some state
113-
97+
type Button internal (controller:GpioController,pin:int,onPress) =
98+
let mutable cableConnection = CableConnection (controller,pin)
11499
do
115-
controller.OpenPin(pin, PinMode.InputPullUp)
116-
117-
let falling(_sender:obj) (_e:PinValueChangedEventArgs) =
118-
log.InfoFormat("Falling - pressed")
119-
execute ()
120-
121-
controller.RegisterCallbackForPinValueChangedEvent(
122-
pin,
123-
PinEventTypes.Falling,
124-
PinChangeEventHandler falling)
100+
cableConnection.SetOnConnected onPress
125101

126102

127-
type Controller(log:log4net.ILog) =
103+
type Controller() =
128104
let controller = new GpioController(PinNumberingScheme.Logical)
129105

130106
with
131107
member __.NewLED(pin) =
132-
LED(controller,log,pin)
108+
LED(controller,pin)
133109

134110
member __.NewCableConnection(pin:int) =
135-
CableConnection(controller,log,pin)
111+
CableConnection(controller,pin)
136112

137113
member __.NewButton(pin:int,onPress) =
138-
Button(controller,log,pin,onPress)
114+
Button(controller,pin,onPress)
139115

140116
interface IDisposable with
141117
member __.Dispose() = controller.Dispose()

src/PiServer/PiServer.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ let log =
3636

3737
let controller =
3838
try
39-
new GeneralIO.Controller(log)
39+
new GeneralIO.Controller()
4040
with
4141
| exn ->
4242
log.ErrorFormat("Error during GPIO init: {0}", exn.Message)

0 commit comments

Comments
 (0)