You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.8 KiB

  1. # For maintainers only
  2. ## Responsibilities
  3. Please go through this link [Maintainer Responsibility](https://gist.github.com/abperiasamy/f4d9b31d3186bbd26522)
  4. ### Setup your minio-dotnet Github Repository
  5. Fork [minio-dotnet upstream](https://github.com/minio/minio-dotnet/fork) source repository to your own personal repository.
  6. ```sh
  7. $ git clone https://github.com/$USER_ID/minio-dotnet
  8. $ cd minio-dotnet
  9. ```
  10. Minio .NET Library uses nuget for its dependency management https://nuget.org/
  11. ### Publishing a new package
  12. The steps below assume that the package is being built on Ubuntu 16.04, with following dependencies met.
  13. - Nuget CLI V4.3.0 or later
  14. - Mono 4.4.2 or later
  15. - dotnet-dev-1.0.4
  16. For installation instructions follow this [script](https://github.com/minio/minio-dotnet/blob/master/mono_install.sh)
  17. #### Update package Version
  18. - Update Minio.Core/Minio.Core.csproj with the next version in the <Version></Version> tag
  19. ```
  20. <Version>1.0.2</Version>
  21. ```
  22. - Update Minio.Net452/Properties/AssemblyInfo.cs with the next AssemblyVersion and AssemblyFileVersion
  23. ```
  24. [assembly: AssemblyVersion("1.0.2.0")]
  25. [assembly: AssemblyFileVersion("1.0.2.0")]
  26. ```
  27. - Update the ```<version>``` and ```<releaseNotes>``` tags in Minio.nuspec and Minio.core.nuspec
  28. #### Build
  29. ```sh
  30. $ nuget restore
  31. $ dotnet restore /p:Configuration=Release.Core
  32. $ dotnet publish /p:Configuration=Release.Core
  33. $ msbuild /p:Configuration=Release.Net452 /t:Restore /t:Clean /t:Build
  34. ```
  35. #### Verify
  36. ```sh
  37. $ cd Minio.Functional.Tests
  38. $ dotnet run
  39. ```
  40. #### Setup your nuget and download all dependencies
  41. ```sh
  42. $ nuget restore
  43. ```
  44. #### Build a package
  45. ```sh
  46. $ nuget pack Minio.nuspec
  47. $ nuget pack Minio.core.nuspec
  48. ... package built ...
  49. ```
  50. #### Upload the package to nuget.org
  51. Login to nuget.org(https://www.nuget.org) and find the API Key for Minio
  52. ```sh
  53. $ export MINIO_API_KEY=??
  54. $ nuget setApiKey $MINIO_API_KEY
  55. $ nuget push .\Minio.1.0.2.nupkg -Apikey $MINIO_API_KEY -src https://nuget.org
  56. $ nuget push .\Minio.NetCore.1.0.2.nupkg -Apikey $MINIO_API_KEY -src https://nuget.org
  57. ```
  58. #### Verify package on nuget.org
  59. Verify that latest versions of Minio and Minio.Netcore packages are available on [Nuget](https://www.nuget.org/account/Packages).
  60. #### Tag
  61. Tag and sign your release commit, additionally this step requires you to have access to Minio's trusted private key.
  62. $ git tag -s 1.0.2
  63. $ git push
  64. $ git push --tags
  65. #### Announce
  66. Announce new release by adding release notes at https://github.com/minio/minio-dotnet/releases from trusted@minio.io account. Release notes requires two sections highlights and changelog. Highlights is a bulleted list of salient features in this release and Changelog contains list of all commits since the last release.
  67. To generate changelog
  68. git log --no-color --pretty=format:'-%d %s (%cr) <%an>' <last_release_tag>..<latest_release_tag>