Skip to content

Commit

Permalink
Merge pull request #11 from sideeffffect/master
Browse files Browse the repository at this point in the history
ProjectScaffold-ize
  • Loading branch information
palladin authored Oct 17, 2016
2 parents f71f8a6 + 1b664d5 commit 04a9b2f
Show file tree
Hide file tree
Showing 82 changed files with 1,962 additions and 825 deletions.
83 changes: 23 additions & 60 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,63 +1,26 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
# Auto detect text files
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
# Custom for Visual Studio
*.cs diff=csharp text=auto eol=lf
*.vb diff=csharp text=auto eol=lf
*.fs diff=csharp text=auto eol=lf
*.fsi diff=csharp text=auto eol=lf
*.fsx diff=csharp text=auto eol=lf
*.sln text eol=crlf merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### Description

Please provide a succinct description of your issue.

### Repro steps

Please provide the steps required to reproduce the problem

1. Step A

2. Step B

### Expected behavior

Please provide a description of the behavior you expect.

### Actual behavior

Please provide a description of the actual behavior you observe.

### Known workarounds

Please provide a description of any known workarounds.

### Related information

* Operating system
* Branch
* .NET Runtime, CoreCLR or Mono Version
* Performance information, links to performance testing scripts
53 changes: 44 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
*.user
*.sln.docstates

# Xamarin Studio / monodevelop user-specific
*.userprefs
*.dll.mdb
*.exe.mdb

# Build results

[Dd]ebug/
Expand All @@ -15,12 +20,6 @@ build/
[Bb]in/
[Oo]bj/

# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
!packages/*/build/

#NuGet
packages/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
Expand Down Expand Up @@ -62,6 +61,9 @@ ipch/
*.vsp
*.vspx

# Other Visual Studio data
.vs/

# Guidance Automation Toolkit
*.gpState

Expand Down Expand Up @@ -98,9 +100,8 @@ publish/
# Publish Web Output
*.Publish.xml

# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
# Enable nuget.exe in the .nuget folder (though normally executables are not tracked)
!.nuget/NuGet.exe

# Windows Azure Build Output
csx
Expand All @@ -109,6 +110,9 @@ csx
# Windows Store app package directory
AppPackages/

# VSCode
.vscode/

# Others
sql/
*.Cache
Expand Down Expand Up @@ -157,3 +161,34 @@ $RECYCLE.BIN/

# Mac desktop service store files
.DS_Store

# ===================================================
# Exclude F# project specific directories and files
# ===================================================

# NuGet Packages Directory
packages/

# Generated documentation folder
docs/output/

# Temp folder used for publishing docs
temp/

# Test results produced by build
TestResults.xml

# Nuget outputs
nuget/*.nupkg
release.cmd
release.sh
localpackages/
paket-files
*.orig
.paket/paket.exe
docs/content/license.md
docs/content/release-notes.md
.fake
docs/tools/FSharp.Formatting.svclog
AssemblyInfo.fs

Binary file added .paket/paket.bootstrapper.exe
Binary file not shown.
36 changes: 36 additions & 0 deletions .paket/paket.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">true</RestorePackages>
<!-- Download Paket.exe if it does not already exist -->
<DownloadPaket Condition=" '$(DownloadPaket)' == '' ">true</DownloadPaket>
<PaketToolsPath>$(MSBuildThisFileDirectory)</PaketToolsPath>
<PaketRootPath>$(MSBuildThisFileDirectory)..\</PaketRootPath>
</PropertyGroup>
<PropertyGroup>
<!-- Paket command -->
<PaketExePath Condition=" '$(PaketExePath)' == '' ">$(PaketToolsPath)paket.exe</PaketExePath>
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' ">$(PaketToolsPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
<PaketCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketExePath)"</PaketCommand>
<PaketCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 "$(PaketExePath)"</PaketCommand>
<PaketBootStrapperCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
<PaketBootStrapperCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(PaketBootStrapperExePath)</PaketBootStrapperCommand>
<!-- Commands -->
<RestoreCommand>$(PaketCommand) restore</RestoreCommand>
<DownloadPaketCommand>$(PaketBootStrapperCommand)</DownloadPaketCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'true'">RestorePackages; $(BuildDependsOn);</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate paket.exe -->
<Error Condition="'$(DownloadPaket)' != 'true' AND !Exists('$(PaketExePath)')" Text="Unable to locate '$(PaketExePath)'" />
<MsBuild Targets="DownloadPaket" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadPaket=$(DownloadPaket)" />
</Target>
<Target Name="DownloadPaket">
<Exec Command="$(DownloadPaketCommand)" Condition=" '$(DownloadPaket)' == 'true' AND !Exists('$(PaketExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)" WorkingDirectory="$(PaketRootPath)" />
</Target>
</Project>
9 changes: 9 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
language: csharp

sudo: false # use the new container-based Travis infrastructure

before_install:
- chmod +x build.sh

script:
- ./build.sh All
59 changes: 43 additions & 16 deletions Higher.sln
Original file line number Diff line number Diff line change
@@ -1,33 +1,60 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Higher.Core", "src\Higher.Core\Higher.Core.fsproj", "{C979A279-D345-469C-84B9-DACCFDE18FFD}"
# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{63297B98-5CED-492C-A5B7-A5B4F73CF142}"
ProjectSection(SolutionItems) = preProject
paket.dependencies = paket.dependencies
paket.lock = paket.lock
EndProjectSection
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Higher.Tests", "tests\Higher.Tests\Higher.Tests.fsproj", "{79CEA165-5660-4635-9854-FA3433E8CA86}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BF71DC5C-2815-4B55-A3F2-4636DD267EB0}"
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Higher", "src\Higher\Higher.fsproj", "{A76FEEB6-CF93-465D-8F57-D729C1FFFE76}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{BF60BC93-E09B-4E5F-9D85-95A519479D54}"
ProjectSection(SolutionItems) = preProject
build.fsx = build.fsx
README.md = README.md
RELEASE_NOTES.md = RELEASE_NOTES.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{83F16175-43B1-4C90-A1EE-8E351C33435D}"
ProjectSection(SolutionItems) = preProject
docs\tools\generate.fsx = docs\tools\generate.fsx
docs\tools\templates\template.cshtml = docs\tools\templates\template.cshtml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{8E6D5255-776D-4B61-85F9-73C37AA1FB9A}"
ProjectSection(SolutionItems) = preProject
docs\content\index.fsx = docs\content\index.fsx
docs\content\tutorial.fsx = docs\content\tutorial.fsx
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{ED8079DD-2B06-4030-9F0F-DC548F98E1C4}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Higher.Tests", "tests\Higher.Tests\Higher.Tests.fsproj", "{5BFF3686-D94A-438B-84EE-6390FA1E82EB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C979A279-D345-469C-84B9-DACCFDE18FFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C979A279-D345-469C-84B9-DACCFDE18FFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C979A279-D345-469C-84B9-DACCFDE18FFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C979A279-D345-469C-84B9-DACCFDE18FFD}.Release|Any CPU.Build.0 = Release|Any CPU
{79CEA165-5660-4635-9854-FA3433E8CA86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79CEA165-5660-4635-9854-FA3433E8CA86}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79CEA165-5660-4635-9854-FA3433E8CA86}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79CEA165-5660-4635-9854-FA3433E8CA86}.Release|Any CPU.Build.0 = Release|Any CPU
{A76FEEB6-CF93-465D-8F57-D729C1FFFE76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A76FEEB6-CF93-465D-8F57-D729C1FFFE76}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A76FEEB6-CF93-465D-8F57-D729C1FFFE76}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A76FEEB6-CF93-465D-8F57-D729C1FFFE76}.Release|Any CPU.Build.0 = Release|Any CPU
{5BFF3686-D94A-438B-84EE-6390FA1E82EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BFF3686-D94A-438B-84EE-6390FA1E82EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BFF3686-D94A-438B-84EE-6390FA1E82EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BFF3686-D94A-438B-84EE-6390FA1E82EB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{79CEA165-5660-4635-9854-FA3433E8CA86} = {BF71DC5C-2815-4B55-A3F2-4636DD267EB0}
{83F16175-43B1-4C90-A1EE-8E351C33435D} = {A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}
{8E6D5255-776D-4B61-85F9-73C37AA1FB9A} = {A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}
{5BFF3686-D94A-438B-84EE-6390FA1E82EB} = {ED8079DD-2B06-4030-9F0F-DC548F98E1C4}
EndGlobalSection
EndGlobal
File renamed without changes.
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,19 @@ Higher

A lightweight library of abstractions for Higher-kinded programming in F#, based on

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Lightweight Higher-Kinded Polymorphism][flops-2014-paper]<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jeremy Yallop and Leo White<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Functional and Logic Programming 2014<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[OCaml implementation][ocaml-implementation]<br/>
> [Lightweight Higher-Kinded Polymorphism][flops-2014-paper]
>
> Jeremy Yallop and Leo White
>
> Functional and Logic Programming 2014
>
> [OCaml implementation][ocaml-implementation]
[flops-2014-paper]: https://ocamllabs.github.io/higher/lightweight-higher-kinded-polymorphism.pdf
[ocaml-implementation]: https://github.com/ocamllabs/higher

## Build Status

Mono | .NET
---- | ----
[![Mono CI Build Status](https://img.shields.io/travis/palladin/Higher/master.svg)](https://travis-ci.org/palladin/Higher) | [![.NET Build Status](https://img.shields.io/appveyor/ci/palladin/Higher/master.svg)](https://ci.appveyor.com/project/palladin/Higher)
2 changes: 2 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#### 1.0 - October 17 2016
* Initial release
9 changes: 9 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
init:
- git config --global core.autocrlf input
build_script:
- cmd: build.cmd All
test: off
version: 0.0.1.{build}
artifacts:
- path: bin
name: bin
18 changes: 18 additions & 0 deletions build.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@echo off
cls

.paket\paket.bootstrapper.exe
if errorlevel 1 (
exit /b %errorlevel%
)

.paket\paket.exe restore
if errorlevel 1 (
exit /b %errorlevel%
)

IF NOT EXIST build.fsx (
.paket\paket.exe update
packages\build\FAKE\tools\FAKE.exe init.fsx
)
packages\build\FAKE\tools\FAKE.exe build.fsx %*
Loading

0 comments on commit 04a9b2f

Please sign in to comment.