Skip to content

Commit 2f08f0a

Browse files
committed
v3.0.0 Release
1 parent c691a49 commit 2f08f0a

File tree

4 files changed

+148
-13
lines changed

4 files changed

+148
-13
lines changed

CHANGES.MD

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Release History
22

3+
## v3.0.0
4+
- **Breaking Changes:**
5+
- Dropped .NET 5, .NET 6, and .NET 7 target frameworks
6+
- Added .NET 9 and .NET 10 target frameworks (retains .NET 8, netstandard2.1, netstandard2.0)
7+
- Builders reorganized from `Domain.Builders` to `Application.Builders` namespace
8+
- **Screenshot Operations (PR #74):**
9+
- New `ScreenshotHtmlAsync()` and `ScreenshotUrlAsync()` public API methods
10+
- Full request/builder hierarchy for HTML and URL screenshots
11+
- Support for PNG, JPEG, and WebP output formats
12+
- **Standalone PDF Engine Operations (PR #75):**
13+
- New `ExecutePdfEngineAsync()` methods for direct PDF manipulation
14+
- Flatten, rotate, split, encrypt, and write metadata without prior conversion
15+
- **PDF Encryption (PR #71):**
16+
- New encryption support with userPassword and ownerPassword
17+
- **Cross-Cutting Options (PR #73):**
18+
- Watermark, stamp, rotation, and split options available on any conversion
19+
- **LibreOffice Options (PR #72):**
20+
- New LibreOffice-specific conversion options with DDD value objects
21+
- Enhanced `MergeOfficeDocsAsync()` with quality, bookmarks, and image compression settings
22+
- **Chromium Missing Fields (PR #70):**
23+
- Additional Chromium form fields with DDD value objects
24+
- **Documentation:**
25+
- Switched from DocFX to MkDocs Material documentation site (PR #76, #77)
26+
- Linked example projects from documentation articles
27+
- **Examples:**
28+
- New EncryptPdf, LibreOfficeOptions, PdfEngineOperations, WatermarkAndRotate, and ChromiumFeatures examples
29+
- Converted LinqPad examples to standalone console applications
30+
331
## v2.8.5
432
- **Features:**
533
- Added support for the GenerateTaggedPdf flag.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
.NET C# client for [Gotenberg](https://gotenberg.dev/) v7 & v8 — a Docker-powered stateless API for converting & merging HTML, Markdown, and Office documents to PDF. Includes a configurable [Polly](http://www.thepollyproject.org/) retry policy with exponential backoff.
1010

11+
> **v3.0.0** — Screenshots, standalone PDF operations (flatten/rotate/split/encrypt), cross-cutting watermark & stamp options, LibreOffice conversion options, .NET 10/9/8 + netstandard 2.x. See [CHANGES.MD](CHANGES.MD) for details.
12+
1113
## Features
1214

1315
- **HTML/URL to PDF** with Chromium (page properties, headers/footers, cookies, wait conditions)

RELEASES.MD

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# Release Process
2+
3+
This project follows [Gitflow](https://nvie.com/posts/a-successful-git-branching-model/) and uses [GitVersion](https://gitversion.net/) (ContinuousDelivery mode) for automatic semantic versioning. NuGet publishing is handled by GitHub Actions on push to `master`.
4+
5+
## Branch Overview
6+
7+
| Branch | Purpose |
8+
|---|---|
9+
| `master` | Production releases. Pushes here trigger NuGet publish. |
10+
| `develop` | Integration branch for the next release. |
11+
| `feature/*` | Feature branches off `develop`. |
12+
| `release/*` | Release stabilization branches off `develop`. |
13+
14+
## Release Steps
15+
16+
### 1. Ensure `develop` is ready
17+
18+
- All feature branches for the release are merged into `develop`.
19+
- CI is green on `develop`.
20+
21+
### 2. Create a release branch
22+
23+
```bash
24+
git checkout develop
25+
git pull origin develop
26+
git checkout -b release/X.Y.Z
27+
```
28+
29+
### 3. Finalize the release
30+
31+
On the release branch, make release-only changes:
32+
33+
- **Update target frameworks** in `src/Gotenberg.Sharp.Api.Client/Gotenberg.Sharp.Api.Client.csproj` if adding/dropping TFMs.
34+
- **Update `PackageReleaseNotes`** in the csproj with a summary of the release.
35+
- **Update `Description`** in the csproj if the library's capabilities have changed.
36+
- **Update `CHANGES.MD`** with a full release section listing breaking changes, features, bug fixes, and documentation changes.
37+
- **Update `README.md`** with a release callout and any new/changed usage examples.
38+
- Build and run tests locally:
39+
40+
```bash
41+
dotnet build
42+
dotnet test
43+
```
44+
45+
### 4. Merge release branch into `master`
46+
47+
```bash
48+
git checkout master
49+
git pull origin master
50+
git merge --no-ff release/X.Y.Z
51+
git tag X.Y.Z
52+
git push origin master --tags
53+
```
54+
55+
This push triggers the GitHub Actions workflow which will:
56+
1. Build and test against a Gotenberg docker container with basic auth.
57+
2. Calculate the package version via GitVersion.
58+
3. Pack the NuGet package (with symbols).
59+
4. Publish to nuget.org.
60+
61+
### 5. Merge release branch back into `develop`
62+
63+
```bash
64+
git checkout develop
65+
git pull origin develop
66+
git merge --no-ff release/X.Y.Z
67+
git push origin develop
68+
```
69+
70+
### 6. Clean up
71+
72+
```bash
73+
git branch -d release/X.Y.Z
74+
git push origin --delete release/X.Y.Z
75+
```
76+
77+
### 7. Create a GitHub Release
78+
79+
- Go to **Releases** > **Draft a new release**.
80+
- Choose the `X.Y.Z` tag.
81+
- Title: `vX.Y.Z`
82+
- Body: Copy the corresponding section from `CHANGES.MD`.
83+
- Publish.
84+
85+
## Hotfix Process
86+
87+
For critical fixes to a released version:
88+
89+
```bash
90+
git checkout master
91+
git checkout -b hotfix/X.Y.Z+1
92+
# make fix, commit
93+
git checkout master
94+
git merge --no-ff hotfix/X.Y.Z+1
95+
git tag X.Y.Z+1
96+
git push origin master --tags
97+
98+
git checkout develop
99+
git merge --no-ff hotfix/X.Y.Z+1
100+
git push origin develop
101+
102+
git branch -d hotfix/X.Y.Z+1
103+
```
104+
105+
## CI/CD Details
106+
107+
- **Workflow**: `.github/workflows/deploy.yml`
108+
- **Triggers**: All pushes and pull requests (build + test). NuGet publish only on push to `master`.
109+
- **Versioning**: GitVersion with `ContinuousDelivery` mode (`GitVersion.yml`).
110+
- **NuGet API key**: Stored as `NUGETKEY` repository secret.
111+
- **Test infrastructure**: Gotenberg v8 docker container with basic auth (`testuser`/`testpass`).

src/Gotenberg.Sharp.Api.Client/Gotenberg.Sharp.Api.Client.csproj

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,17 @@
1717
<Version>1.0.0</Version>
1818
<PackageTags>Gotenberg pdf C# API client unoconv</PackageTags>
1919
<Description>
20-
C# API client for interacting with the Gotenberg v7 &amp; v8 micro-service's API, a docker-powered stateless API for converting &amp; merging HTML, Markdown and Office documents to PDF. The client supports a configurable Polly retry policy with exponential back-off for handling transient exceptions.
20+
C# API client for interacting with the Gotenberg v7 &amp; v8 micro-service's API, a docker-powered stateless API for converting &amp; merging HTML, Markdown and Office documents to PDF, taking screenshots, and performing standalone PDF operations (flatten, rotate, split, encrypt). The client supports a configurable Polly retry policy with exponential back-off for handling transient exceptions.
2121
</Description>
2222
<IncludeSymbols>True</IncludeSymbols>
2323
<PackageReleaseNotes>
24+
v3.0.0 - Major release: Screenshot operations (HTML/URL to PNG/JPEG/WebP). Standalone PDF engine operations (flatten, rotate, split, encrypt, metadata). Cross-cutting watermark, stamp, rotation, and split options. LibreOffice conversion options. PDF encryption. Additional Chromium fields. Dropped .NET 5/6/7; added .NET 9/10. Namespace reorganization (builders moved to Application layer). See CHANGES.MD for full details.
2425
v2.8.5 - Added support for the GenerateTaggedPdf flag.
25-
v2.8.4 - Fixed hybrid configuration for basic authentication credentials. See CHANGES.MD for full details.
26-
v2.8.3 - Added programmatic configuration support. Comprehensive documentation improvements. Fixed NuGet packaging issues. See CHANGES.MD for full details.
27-
v2.8.1 - Added strongly-typed cookie support. Added basic authentication support. Added SinglePage page property. Fixed margins bug. Project restructure (moved /lib to /src).
28-
v2.8 - Improving handling of PDF formatting and added flatten support.
29-
v2.7 - Fixes issue with "Inches".
30-
v2.6 - Updated office Extensions. Added document metadata support. Add Dimension.FromUnit() support for dimensional values.
31-
v2.5 - Renamed "Dimentions" to "PageProperties". Added support for 'GenerateDocumentOutline' and 'OmitBackground.'
32-
v2.4 - Updated dependencies. Removed Annotations. Add support for PDF/UA form field. Thank you for the PR @lennartb-!
33-
v2.3 - Added Convert Page 'ExportFormFields' flag support (Gotenberg v8.3+ Only). Added .NET 8 target.
34-
v2.2 - Added 'SkipNetworkIdle' flag support (Gotenberg v8+ Only). Thank you for the PR @guillaumeduhr! Upgraded nugets to latest. Added .NET 7.0 support.
35-
v2.1 - Added Trace Support. Fixed extra webhook header support.
36-
v2.0 - Upgraded to support Gotenberg v7 -- this version no longer works with Gotenberg v6.
26+
v2.8.4 - Fixed hybrid configuration for basic authentication credentials.
27+
v2.8.3 - Added programmatic configuration support. Comprehensive documentation improvements.
28+
v2.8.1 - Added cookie support, basic auth, SinglePage property.
29+
v2.8 - PDF formatting improvements, flatten support.
30+
v2.0 - Upgraded to support Gotenberg v7.
3731
</PackageReleaseNotes>
3832
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
3933
<PackageProjectUrl>https://github.com/ChangemakerStudios/GotenbergSharpApiClient</PackageProjectUrl>

0 commit comments

Comments
 (0)