Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -257,3 +257,4 @@ paket-files/
/TestResult.txt

/.claude/settings.local.json
/.claude/agent-memory-local/
14 changes: 13 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,19 @@ requirements-interchange documents. The repository ships two NuGet packages:
`ReqIFLoaderService`, built on top of the core. Targets `netstandard2.0`.

The two packages version independently (e.g. ReqIFSharp `10.x`, ReqIFSharp.Extensions `5.x`).
Test projects target `net10.0` and use NUnit. `LangVersion` is pinned to `12.0`.
Test projects target `net10.0` and use NUnit. `LangVersion` is pinned to `14.0` (in `Directory.Build.props`).
Building requires the .NET 10 SDK (`global.json`, rolls forward to the latest 10.0 feature band).

**MSBuild layout.** `Directory.Build.props` holds settings for every project (company,
copyright, repository, `LangVersion`, `GenerateDocumentationFile`). Packaging settings shared
by the published libraries (package metadata, README/LICENSE/NOTICE pack items, the
`Microsoft.Sbom.Targets` reference) live in `Directory.Build.targets`, guarded by
`'$(IsPackable)' != 'false'`; it must be a `.targets` file because `IsPackable` is set in the
project body, after `.props` is evaluated. `GenerateDocumentationFile` cannot move there: the
SDK derives the documentation-file settings from it before `.targets` is evaluated. Test
projects therefore set both `<IsPackable>false</IsPackable>` and
`<GenerateDocumentationFile>false</GenerateDocumentationFile>`. The library `.csproj` files keep
only per-package settings (version, title, description, id, icon, authors, release notes).

## Common commands

Expand Down
6 changes: 6 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@
<Deterministic>true</Deterministic>
<NeutralLanguage>en-US</NeutralLanguage>
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
<LangVersion>14.0</LangVersion>
<!--
Set here rather than in Directory.Build.targets: the SDK turns it into the documentation
file settings before Directory.Build.targets is evaluated. Test projects switch it off.
-->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

</Project>
27 changes: 27 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<Project>

<!--
Packaging settings shared by every packable project. They live in this file rather than in
Directory.Build.props because IsPackable is set in the project file itself, which is evaluated
after Directory.Build.props and before this file.
-->
<PropertyGroup Condition="'$(IsPackable)' != 'false'">
<PackageProjectUrl>https://reqifsharp.org</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageTags>ReqIF mbse modeltopia</PackageTags>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<RequireLicenseAcceptance>false</RequireLicenseAcceptance>
<IncludeSource>true</IncludeSource>
<IncludeSymbols>true</IncludeSymbols>
<GenerateSBOM>true</GenerateSBOM>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup Condition="'$(IsPackable)' != 'false'">
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)LICENSE" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)NOTICE" Pack="true" PackagePath="\" />
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<Description>Nunit test suite for the ReqIFSharp.Extensions library</Description>
<Nullable>disable</Nullable>
<IsPackable>false</IsPackable>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
</PropertyGroup>

<ItemGroup>
Expand Down
18 changes: 0 additions & 18 deletions ReqIFSharp.Extensions/ReqIFSharp.Extensions.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,14 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>5.2.1</Version>
<LangVersion>12.0</LangVersion>
<Title>ReqIFSharp.Extensions</Title>
<Description>A .NET library that provides extenions and services to operate on ReqIF documents.</Description>
<PackageId>ReqIFSharp.Extensions</PackageId>
<PackageProjectUrl>https://reqifsharp.org</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageIcon>reqifsharp-extensions-logo-small.png</PackageIcon>
<PackageTags>ReqIF mbse modeltopia</PackageTags>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<Authors>Sam Gerené</Authors>
<RequireLicenseAcceptance>false</RequireLicenseAcceptance>
<IncludeSource>true</IncludeSource>
<IncludeSymbols>true</IncludeSymbols>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GenerateSBOM>true</GenerateSBOM>
<PackageReleaseNotes>
- [Update] to reqifsharp version 10.1.1
</PackageReleaseNotes>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
Expand All @@ -34,13 +23,6 @@

<ItemGroup>
<None Include="..\reqifsharp-extensions-logo-small.png" Pack="true" PackagePath="" />
<None Include="..\README.md" Pack="true" PackagePath="\" />
<None Include="..\LICENSE" Pack="true" PackagePath="\" />
<None Include="..\NOTICE" Pack="true" PackagePath="\" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" />
</ItemGroup>

</Project>
1 change: 1 addition & 0 deletions ReqIFSharp.Tests/ReqIFSharp.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<Description>Nunit test suite for the ReqIFSharp library</Description>
<Nullable>disable</Nullable>
<IsPackable>false</IsPackable>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
</PropertyGroup>

<ItemGroup>
Expand Down
15 changes: 0 additions & 15 deletions ReqIFSharp/ReqIFSharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,14 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>10.1.1</Version>
<LangVersion>12.0</LangVersion>
<Title>ReqIFSharp</Title>
<Description>A .NET library to deserialize (read) and serialize (write) OMG ReqIF documents.</Description>
<PackageId>ReqIFSharp</PackageId>
<PackageProjectUrl>https://reqifsharp.org</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageIcon>reqifsharp-logo-small.png</PackageIcon>
<PackageTags>ReqIF mbse modeltopia</PackageTags>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<Authors>Sam Gerené, Alexander van Delft</Authors>
<RequireLicenseAcceptance>false</RequireLicenseAcceptance>
<IncludeSource>true</IncludeSource>
<IncludeSymbols>true</IncludeSymbols>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GenerateSBOM>true</GenerateSBOM>
<PackageReleaseNotes>
- [Update] dependencies
</PackageReleaseNotes>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
Expand Down Expand Up @@ -76,9 +65,6 @@

<ItemGroup>
<None Include="..\reqifsharp-logo-small.png" Pack="true" PackagePath="" />
<None Include="..\README.md" Pack="true" PackagePath="\" />
<None Include="..\LICENSE" Pack="true" PackagePath="\" />
<None Include="..\NOTICE" Pack="true" PackagePath="\" />
</ItemGroup>

<ItemGroup>
Expand All @@ -92,7 +78,6 @@
API need. The floor itself is set in Directory.Packages.props.
-->
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" />
</ItemGroup>

</Project>
6 changes: 6 additions & 0 deletions global.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"sdk": {
"version": "10.0.100",
"rollForward": "latestFeature"
}
}
Loading