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

Create a multi target build #11

Closed
21 tasks done
iBrotNano opened this issue Feb 27, 2023 · 0 comments
Closed
21 tasks done

Create a multi target build #11

iBrotNano opened this issue Feb 27, 2023 · 0 comments
Assignees
Labels
task Work on the project, the build pipeline or any other task.
Milestone

Comments

@iBrotNano
Copy link
Owner

iBrotNano commented Feb 27, 2023

Requirements

Open Questions?

  1. @who: What must be discussed?

Blockers

  1. Something blocks my work.

Description

A multi target build for multiple versions of .NET.

Conditions

.NET must be used.

Side effects

Not all dependencies can be used in all versions for all .NET versions. The different versions of .NET are coupled to C# versions. So, the resulting DLLs will be different.

Acceptance tests

  1. The resulting NuGet will be opened and i will proof if versions for all supported .NET versions are in.

Design

The tag TargetFrameworks must be configured for all supported .NET versions. For some C# features must be rewritten and configured with compiler directives. The build must be packed with the command dotnet pack. Only .NET 6.0 and .NET 7.0 are supported. Those two versions are the latest supported. I will not implement other versions without a feature request because I am not planning to use other versions than the newest ones.

Dissection

Integration test 1
Action The compiled NuGet is opened with the NuGet package explorer.
Expected result DLLs for all supported versions are in the package.

Development

TODOs

  • Create a feature branch if needed (Maybe configuration changes or new project files)
  • Update the dependencies
  • Configure the TargetFrameworks
  • Change slashes in the branch name as version suffix into dashes
  • Remove the # in the package version
  • Do i need a \ at the end of commands
  • /home/runner/work/_temp/0c8257fa-ec4f-48fe-b910-3273f164b18f.sh: line 1: unexpected EOF while looking for matching ''duringdotnet pack`
  • Build the NuGet with dotnet pack
  • Archive the NuGet
  • Do all unit tests pass?
  • Is the version number correctly configured?
  • Phrase a meaningful commit comment
  • Check-in the changes and push them to the server

Notes

Notes about the development of the issue.

Debug

ID Result Pass
1 DLLs for all supported versions are packed into the NuGet. 🟢

Documentation

  • Do I need a new PIA or update an existing one? 🔴
  • Update the README.md
  • Update the CHANGELOG.md
  • Describe the update policy in the wiki

Decisions

Decision Cause
Only the latest version of .NET is supported until any other version is needed. This is .NET 6.0 and .NET 7.0 at the moment. I can use the lastest C# syntax features in this way. Test project can often run at the latest version even when production code uses an older one.

PIAs

Links

Demo

  • Setup a fresh demo environment

The build NuGet contains DLLs for all supported .NET versions.

Deployment

  • Merge feature into master with a squash and remove the feature branch
  • Check if the compiled artifact is valid
  • Cleanup the Git history locally on the dev system
@iBrotNano iBrotNano self-assigned this Feb 27, 2023
@iBrotNano iBrotNano added the task Work on the project, the build pipeline or any other task. label Feb 27, 2023
@iBrotNano iBrotNano added this to the 1.0.5 milestone Feb 27, 2023
iBrotNano added a commit that referenced this issue Mar 1, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
- Fixed the issue templates
iBrotNano pushed a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 2, 2023
iBrotNano added a commit that referenced this issue Mar 3, 2023
iBrotNano added a commit that referenced this issue Mar 3, 2023
iBrotNano added a commit that referenced this issue Mar 3, 2023
iBrotNano added a commit that referenced this issue Mar 3, 2023
iBrotNano added a commit that referenced this issue Mar 3, 2023
iBrotNano added a commit that referenced this issue Mar 3, 2023
iBrotNano added a commit that referenced this issue Mar 6, 2023
iBrotNano added a commit that referenced this issue Mar 8, 2023
* #11 Set a fix version for dotnet

* #9 Removed the fix dotnet build version

* #9 Set the pack command with the argument --no-build

* #9 Chaged the .NET SDK version to 7.0.201

* #9 Deterministic set to true

* #9 Excluded the build folder of Shouldly

- Set the dotnet version to 7.0.x to use the latest patch version for building

* #9 Commented Directory.Build.props

* #9 Standard templates for the documentation

* Update CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task Work on the project, the build pipeline or any other task.
Projects
None yet
Development

No branches or pull requests

1 participant