Skip to content
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

Include core quantities in Atmoos namespace #83

Merged
merged 7 commits into from
May 18, 2024
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
32 changes: 32 additions & 0 deletions .github/workflows/publish-library.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Publish Library to NuGet

on:
workflow_call:
inputs:
tag-prefix:
required: true
type: string
project-path:
required: true
type: string

env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DotNetVersion: 8.0.x

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DotNetVersion }}
- uses: tedd/publish-nuget-neo@v1
with:
NUGET_KEY: ${{secrets.PUSH_NEW_QUANTITY_VERSION}}
PROJECT_FILE_PATH: ${{inputs.project-path}}
TAG_COMMIT: true
TAG_FORMAT: ${{inputs.tag-prefix}}/v*
29 changes: 7 additions & 22 deletions .github/workflows/publish-quantities.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,12 @@ on:
types: [closed]
branches: [ "main" ]
paths:
- '**/Quantities.csproj'

env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
Prefix: 'quantities'
Project: 'source/Quantities/Quantities.csproj'
DotNetVersion: 8.0.x
- '**/Atmoos.Quantities.csproj'

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DotNetVersion }}
- uses: tedd/publish-nuget-neo@v1
with:
NUGET_KEY: ${{secrets.PUSH_NEW_QUANTITY_VERSION}}
PROJECT_FILE_PATH: ${{env.Project}}
TAG_COMMIT: true
TAG_FORMAT: ${{env.Prefix}}/v*
publish-quantities:
uses: ./.github/workflows/publish-library.yml
with:
project-path: 'source/Atmoos.Quantities/Atmoos.Quantities.csproj'
tag-prefix: 'quantities'
secrets: inherit
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
</div>
<!-- markdownlint-enable MD033 MD041 -->

# Quantities
# Atmoos Quantities

A library to safely handle various types of quantities, typically physical quantities.

Expand All @@ -26,7 +26,7 @@ Usage is designed to be intuitive:
Somewhere in your project, define this global static using directive:

```csharp
global using static Quantities.Systems;
global using static Atmoos.Quantities.Systems;
```

Then, use quantities intuitively:
Expand Down
2 changes: 1 addition & 1 deletion source/.editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
[*]
charset = utf-8-bom
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
insert_final_newline = true

# XML project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
Expand Down
14 changes: 14 additions & 0 deletions source/Atmoos.Quantities.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project>
<!-- Build info common to all projects within the quantities project -->

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup Condition="$(IsPackable)">
<InternalsVisibleTo Include="$(AssemblyName).Test" />
</ItemGroup>

</Project>
25 changes: 25 additions & 0 deletions source/Atmoos.Quantities.Pack.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<Project>
<!-- Packaging info common to all projects within the quantities project -->

<PropertyGroup>
<Authors>Thomas Kägi</Authors>
<Copyright>Thomas Kägi</Copyright>
<PackageIcon>icon.png</PackageIcon>
<PackageProjectUrl>https://github.com/atmoos/Quantities</PackageProjectUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>units, quantities, measures, measurements, unitsofmeasure, units-of-measure, units-of-measurement, conversion, unit-conversion, units-measures-converter</PackageTags>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReleaseNotes>Please see: https://github.com/atmoos/Quantities/releases</PackageReleaseNotes>
<PackageReadmeFile>readme.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="readme.md" Pack="true" PackagePath="\"/>
<None Include="$(RootDirectory)assets\images\nuget.png" Pack="true" PackagePath="\icon.png"/>
</ItemGroup>

<ItemGroup>
<PackageReference Include="DotNet.ReproducibleBuilds" Version="1.1.1" PrivateAssets="All"/>
</ItemGroup>

</Project>
21 changes: 21 additions & 0 deletions source/Atmoos.Quantities.Test.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Project>
<!-- Test info common to all test projects within the quantities project -->

<PropertyGroup>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="xunit" Version="2.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Quantities.Test;
namespace Atmoos.Quantities.Test;

public class AllocationFreeTest
{
Expand Down
10 changes: 10 additions & 0 deletions source/Atmoos.Quantities.Test/Atmoos.Quantities.Test.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../Atmoos.Quantities.Build.props" />
<Import Project="../Atmoos.Quantities.Test.props" />

<ItemGroup>
<ProjectReference Include="..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
<ProjectReference Include="..\Atmoos.Quantities.TestTools\Atmoos.Quantities.TestTools.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Quantities.Core.Numerics;
using Atmoos.Quantities.Core.Numerics;

namespace Quantities.Test;
namespace Atmoos.Quantities.Test;
public static class Convenience
{
// construct polynomials such that they are not simplified upon construction.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Quantities.Dimensions;
using Atmoos.Quantities.Dimensions;

namespace Quantities.Test;
namespace Atmoos.Quantities.Test;

internal static class Dim<TSelf>
where TSelf : IDimension
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Quantities.Dimensions;
using Atmoos.Quantities.Dimensions;
using Xunit.Sdk;

namespace Quantities.Test.Dimensions;
namespace Atmoos.Quantities.Test.Dimensions;

// xUnit has a bug that causes it to compare
// types that implement IEnumerable<TSelf> recursively
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Quantities.Dimensions;
using Atmoos.Quantities.Dimensions;

namespace Quantities.Test.Dimensions;
namespace Atmoos.Quantities.Test.Dimensions;

public class ProductTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Quantities.Dimensions;
using Atmoos.Quantities.Dimensions;

namespace Quantities.Test.Dimensions;
namespace Atmoos.Quantities.Test.Dimensions;

public class ScalarTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Quantities.Dimensions;
using Atmoos.Quantities.Dimensions;

namespace Quantities.Test.Dimensions;
namespace Atmoos.Quantities.Test.Dimensions;

public class UnitTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
using Atmoos.Sphere.Text;
using Quantities.TestTools;
using Atmoos.Quantities.TestTools;

using static Atmoos.Sphere.Text.LineTags;
using static Quantities.TestTools.Extensions;
using static Atmoos.Quantities.TestTools.Extensions;

namespace Quantities.Test.Infrastructure;
namespace Atmoos.Quantities.Test.Infrastructure;

[Trait(AutoGenerate, Kind.Documentation)]
public class ReadmeUpdates
{
private static readonly FileInfo readme = RepoDir.FindFile(Path.Combine("source", "Quantities", "readme.md"));
private static readonly FileInfo readme = RepoDir.FindFile(Path.Combine("source", "Atmoos.Quantities", "readme.md"));

[Fact]
public void ExportAllQuantities()
{
var tag = Markdown.Code("text quantities");
var allQuantities = typeof(IQuantity<>).ExportAllImplementations().OrderBy(q => q.Name);
readme.InsertSection(tag, Export.Section("Quantities", allQuantities, String.Empty));
readme.InsertSection(tag, Export.Section("Atmoos.Quantities", allQuantities, String.Empty));
}

[Fact]
public void ExportAllUnits()
{
var mark = Markdown.Code("text units");
readme.InsertSection(mark, Export.AllUnits("Units", typeof(Metre).Assembly));
readme.InsertSection(mark, Export.AllUnits("Atmoos.Quantities.Units", typeof(Metre).Assembly));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Quantities.Core.Numerics;
using Atmoos.Quantities.Core.Numerics;

namespace Quantities.Test.Measures;
namespace Atmoos.Quantities.Test.Measures;

internal static class Expect<TResult>
where TResult : IMeasure
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Quantities.Dimensions;
using Quantities.Measures;
using Quantities.Units;
using Quantities.Units.Si.Metric;
using Atmoos.Quantities.Dimensions;
using Atmoos.Quantities.Measures;
using Atmoos.Quantities.Units;
using Atmoos.Quantities.Units.Si.Metric;

namespace Quantities.Test.Measures;
namespace Atmoos.Quantities.Test.Measures;

public class InversionTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Quantities.Measures;
using Quantities.Units.Si.Metric;
using Atmoos.Quantities.Measures;
using Atmoos.Quantities.Units.Si.Metric;

using static Quantities.Core.Numerics.Polynomial;
using static Atmoos.Quantities.Core.Numerics.Polynomial;

namespace Quantities.Test.Measures;
namespace Atmoos.Quantities.Test.Measures;

public class MeasureDivisionTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
using Quantities.Dimensions;
using Quantities.Measures;
using Quantities.Units;
using Quantities.Units.Si.Metric;
using Atmoos.Quantities.Dimensions;
using Atmoos.Quantities.Measures;
using Atmoos.Quantities.Units;
using Atmoos.Quantities.Units.Si.Metric;

using static Quantities.Core.Numerics.Polynomial;
using static Atmoos.Quantities.Core.Numerics.Polynomial;

namespace Quantities.Test.Measures;
namespace Atmoos.Quantities.Test.Measures;

public class MeasureMultiplicationTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Quantities.Measures;
using Quantities.Units.Imperial.Temperature;
using Quantities.Units.Si.Derived;
using Quantities.Units.Si.Metric;
using Atmoos.Quantities.Measures;
using Atmoos.Quantities.Units.Imperial.Temperature;
using Atmoos.Quantities.Units.Si.Derived;
using Atmoos.Quantities.Units.Si.Metric;

namespace Quantities.Test.Measures;
namespace Atmoos.Quantities.Test.Measures;

public class PolynomialConversionTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Quantities.Dimensions;
using Quantities.Measures;
using Quantities.Units;
using Atmoos.Quantities.Dimensions;
using Atmoos.Quantities.Measures;
using Atmoos.Quantities.Units;

namespace Quantities.Test.Measures;
namespace Atmoos.Quantities.Test.Measures;

public class QuantityTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Quantities.Test.Numerics;
namespace Atmoos.Quantities.Test.Numerics;

using Quantities.Core.Numerics;
using Atmoos.Quantities.Core.Numerics;


public class AlgorithmsTest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Quantities.Core.Numerics;
using Atmoos.Quantities.Core.Numerics;

using static System.Math;
using static Quantities.Test.Convenience;
using static Atmoos.Quantities.Test.Convenience;

namespace Quantities.Test.Numerics;
namespace Atmoos.Quantities.Test.Numerics;

public class PolynomialTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Quantities.Test.Prefixes;
namespace Atmoos.Quantities.Test.Prefixes;

public class BinaryPrefixTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Quantities.Test.Prefixes;
namespace Atmoos.Quantities.Test.Prefixes;

public class BinaryPrefixesTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Quantities.Test.Prefixes;
namespace Atmoos.Quantities.Test.Prefixes;

public class MetricPrefixTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Xunit.Sdk;

namespace Quantities.Test.Prefixes;
namespace Atmoos.Quantities.Test.Prefixes;

public class MetricPrefixesTest
{
Expand Down
Loading
Loading