Skip to content

Commit 65dc0d7

Browse files
authored
New project specific templates (#283)
* libProj init * libProj init * ProjLib tests * ProjTest support * ProjConsole support * Adds docs for proj* * fail on focused * Updating library tutorial * fixing documentation links not generating correctly * Cleanup test suite * fix typos
1 parent 696fac6 commit 65dc0d7

37 files changed

+550
-106
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"$schema": "http://json.schemastore.org/vs-2017.3.host",
2+
"$schema": "https://json.schemastore.org/vs-2017.3.host",
33
"symbolInfo": [
44
{
55
"id": "githubUsername",
@@ -10,17 +10,17 @@
1010
},
1111
{
1212
"id": "outputType",
13-
"name" : {
13+
"name": {
1414
"id": "outputType",
1515
"text": "Output Type"
1616
}
1717
},
1818
{
1919
"id": "releaseBranch",
20-
"name" : {
20+
"name": {
2121
"id": "releaseBranch",
2222
"text": "Release Branch"
2323
}
2424
}
2525
]
26-
}
26+
}

Content/.template.config/template.json

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
{
2-
"$schema": "http://json.schemastore.org/template",
2+
"$schema": "https://json.schemastore.org/template",
33
"author": "Jimmy Byrd",
44
"classifications": [
5-
"Scaffold", "Console", "Library"
5+
"Scaffold",
6+
"Console",
7+
"Library"
68
],
79
"description": "A full-featured template for creating console or library solutions with documentation and release workflows.",
810
"name": "MiniScaffold",
@@ -28,11 +30,23 @@
2830
"choices": [
2931
{
3032
"choice": "library",
31-
"description": "Creates a template for library projects"
33+
"description": "Creates a template for library solutions."
3234
},
3335
{
3436
"choice": "console",
35-
"description": "Creates a template for console projects"
37+
"description": "Creates a template for console solutions."
38+
},
39+
{
40+
"choice": "projLib",
41+
"description": "A project for creating a class library. Used for creating individual library projects for MiniScaffold."
42+
},
43+
{
44+
"choice": "projConsole",
45+
"description": "A project for creating a command-line application. Used for creating individual console projects for MiniScaffold."
46+
},
47+
{
48+
"choice": "projTest",
49+
"description": "A project for Expect tests. Used for creating individual test projects for MiniScaffold."
3650
}
3751
]
3852
},
@@ -53,6 +67,21 @@
5367
"source": "./Console/",
5468
"target": "./",
5569
"condition": "(outputType == \"console\")"
70+
},
71+
{
72+
"source": "./ProjLib/",
73+
"target": "./",
74+
"condition": "(outputType == \"projLib\")"
75+
},
76+
{
77+
"source": "./ProjConsole/",
78+
"target": "./",
79+
"condition": "(outputType == \"projConsole\")"
80+
},
81+
{
82+
"source": "./ProjTest/",
83+
"target": "./",
84+
"condition": "(outputType == \"projTest\")"
5685
}
5786
],
5887
"postActions": [
@@ -71,4 +100,4 @@
71100
"continueOnError": true
72101
}
73102
]
74-
}
103+
}

Content/Console/build/Changelog.fs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ let isChangelogEmpty (latestEntry: Changelog.ChangelogEntry) =
2828
let tagFromVersionNumber versionNumber = sprintf "%s" versionNumber
2929

3030

31-
let mkLinkReference (newVersion: SemVerInfo) (changelog: Changelog.Changelog) gitHubRepoUrl =
31+
let mkLinkReference
32+
(newVersion: SemVerInfo)
33+
(changelog: Changelog.Changelog)
34+
(gitHubRepoUrl: string)
35+
=
3236
if
3337
changelog.Entries
3438
|> List.isEmpty
@@ -37,7 +41,7 @@ let mkLinkReference (newVersion: SemVerInfo) (changelog: Changelog.Changelog) gi
3741
sprintf
3842
"[%s]: %s/releases/tag/%s"
3943
newVersion.AsString
40-
gitHubRepoUrl
44+
(gitHubRepoUrl.TrimEnd('/'))
4145
(tagFromVersionNumber newVersion.AsString)
4246
else
4347
let versionTuple version =

Content/Console/build/build.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ let coverageReportDir =
113113
let gitOwner = "MyGithubUsername"
114114
let gitRepoName = "MyLib.1"
115115

116-
let gitHubRepoUrl = sprintf "https://github.com/%s/%s" gitOwner gitRepoName
116+
let gitHubRepoUrl = sprintf "https://github.com/%s/%s/" gitOwner gitRepoName
117117

118118
let releaseBranch = "MyReleaseBranch"
119119

Content/Library/build/Changelog.fs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ let failOnEmptyChangelog (latestEntry: Changelog.ChangelogEntry) =
2727
failwith
2828
"No changes in CHANGELOG. Please add your changes under a heading specified in https://keepachangelog.com/"
2929

30-
let mkLinkReference (newVersion: SemVerInfo) (changelog: Changelog.Changelog) gitHubRepoUrl =
30+
let mkLinkReference
31+
(newVersion: SemVerInfo)
32+
(changelog: Changelog.Changelog)
33+
(gitHubRepoUrl: string)
34+
=
3135
if
3236
changelog.Entries
3337
|> List.isEmpty
@@ -36,7 +40,7 @@ let mkLinkReference (newVersion: SemVerInfo) (changelog: Changelog.Changelog) gi
3640
sprintf
3741
"[%s]: %s/releases/tag/%s"
3842
newVersion.AsString
39-
gitHubRepoUrl
43+
(gitHubRepoUrl.TrimEnd('/'))
4044
(tagFromVersionNumber newVersion.AsString)
4145
else
4246
let versionTuple version =

Content/Library/build/build.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ let watchDocsDir =
104104
let gitOwner = "MyGithubUsername"
105105
let gitRepoName = "MyLib.1"
106106

107-
let gitHubRepoUrl = sprintf "https://github.com/%s/%s" gitOwner gitRepoName
107+
let gitHubRepoUrl = sprintf "https://github.com/%s/%s/" gitOwner gitRepoName
108108

109109
let documentationRootUrl = sprintf "https://%s.github.io/%s/" gitOwner gitRepoName
110110

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Auto-Generated by FAKE; do not edit
2+
namespace System
3+
open System.Reflection
4+
5+
[<assembly: AssemblyTitleAttribute("MyLib.1")>]
6+
[<assembly: AssemblyProductAttribute("MyLib.1")>]
7+
[<assembly: AssemblyVersionAttribute("0.1.0")>]
8+
[<assembly: AssemblyMetadataAttribute("ReleaseDate","2017-03-17T00:00:00.0000000")>]
9+
[<assembly: AssemblyFileVersionAttribute("0.1.0")>]
10+
[<assembly: AssemblyInformationalVersionAttribute("0.1.0")>]
11+
[<assembly: AssemblyMetadataAttribute("ReleaseChannel","release")>]
12+
[<assembly: AssemblyMetadataAttribute("GitHash","b385af579477bb585016a6b5204121de4a485dac")>]
13+
do ()
14+
15+
module internal AssemblyVersionInformation =
16+
let [<Literal>] AssemblyTitle = "MyLib.1"
17+
let [<Literal>] AssemblyProduct = "MyLib.1"
18+
let [<Literal>] AssemblyVersion = "0.1.0"
19+
let [<Literal>] AssemblyMetadata_ReleaseDate = "2017-03-17T00:00:00.0000000"
20+
let [<Literal>] AssemblyFileVersion = "0.1.0"
21+
let [<Literal>] AssemblyInformationalVersion = "0.1.0"
22+
let [<Literal>] AssemblyMetadata_ReleaseChannel = "release"
23+
let [<Literal>] AssemblyMetadata_GitHash = "b385af579477bb585016a6b5204121de4a485dac"

Content/ProjConsole/MyLib.1.fsproj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net6.0</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<Compile Include="AssemblyInfo.fs" />
10+
<Compile Include="Program.fs" />
11+
</ItemGroup>
12+
<Import Project="..\..\.paket\Paket.Restore.targets" />
13+
14+
</Project>

Content/ProjConsole/Program.fs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// For more information see https://aka.ms/fsharp-console-apps
2+
printfn "Hello from F#"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FSharp.Core
2+

0 commit comments

Comments
 (0)