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

Move package creating from build.fsproj to github actions #838

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Romfos
Copy link
Contributor

@Romfos Romfos commented Nov 2, 2024

Changes:

  • Package creating is moved from build.fsproj to github actions via dotnet pack
  • Version for nuget package now is getting from <Version>6.0.0</Version> property in NSubstitute.csproj, not from git tags
  • Update github actions for separate release packages and documentation
  • Unusable code is removed from build.fsproj
  • Added -p:CI=true to enable following properties for Deterministic Build and Source Link from NSubstitute.csproj
  <PropertyGroup Condition="'$(CI)' == 'True'">
    <!--Deterministic Build and Source Link settings -->
    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
  </PropertyGroup>

after this change build.fsproj will be used only for documentation examples validation & documentation static generation

related #830

@Romfos Romfos requested a review from dtchepak November 2, 2024 12:24
@Romfos Romfos marked this pull request as ready for review November 2, 2024 13:13
@Romfos Romfos mentioned this pull request Nov 2, 2024
12 tasks
@dtchepak
Copy link
Member

Thanks @Romfos .

Was hoping to get some process clarification for this change:

  • Previously intermediate builds (between releases) where versioned independently. If testing something with an intermediate build is there a good way to refer to a particular build?
  • Does this deprecate tagging in our release procedure? How do we tie a version on nuget to a specific commit?

@Romfos
Copy link
Contributor Author

Romfos commented Nov 10, 2024

How to release documentation:

  1. Run "Release documentation" build
  2. Publish website (built to output dir, bin/Release/nsubstitute.github.com).

How to release nuget package:

  1. (no changes here) Move unreleased changes in CHANGELOG to new version heading.
  2. (no changes here) Ensure BreakingChanges.txt up to date and move unreleased breaking changes to new version heading.
  3. (no changes here) Ensure Acknowledgements up to date.
  4. (changed) Make final commit for release. (need to update <Version>x.y.z</Version> inside NSubstitute.csproj in this step)
  5. (no changes here) Create release tag and generate release notes
  6. (changed) Run "Release packages" build
  7. (changed) Publish nuget packages to nuget (need to publish also snupkg)

How to release get packages for internal testing before release to nuget:

  1. Just run "Release packages" build and get current packages for current version from main

How to release for "beta\alpha\e.t.c" packages:

  1. Use normal release package process but with prerelease version. For example: <Version>6.0.0-beta1</Version>

Defacto we are still using tags as indicator for release commit, single difference is that tags are decoupled from "build" procedure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants