3 Commits

10 changed files with 39 additions and 11 deletions
+28
View File
@@ -1,3 +1,31 @@
## v0.1.7.4 (2025-08-29)
### New Features
- **Automated Release System**: Complete PowerShell script for automated releases
- **LLVM Code Coverage**: Integrated LLVM coverage reporting with clang-cl builds
- **Intelligent Tag Incrementation**: Automatic detection of next available version tag
- **Comprehensive Testing**: Integration tests against live PrivateBin server
- **Build Artifact Collection**: Automated collection and upload of build artifacts
### Technical Improvements
- **Release Automation**: Full CI/CD pipeline with Gitea API integration
- **Coverage Reports**: HTML coverage reports generated and packaged as artifacts
- **Remote Detection**: Smart Git remote detection (origin > upstream > first available)
- **Error Handling**: Robust error handling and validation throughout the process
- **PowerShell Scripts**: Clean, maintainable PowerShell automation scripts
### Build System
- **CMake Integration**: Enhanced CMakeLists.txt with LLVM coverage support
- **Cross-Platform**: Improved Windows and Linux build compatibility
- **Dependency Management**: Better vcpkg and system package integration
- **Test Framework**: Comprehensive CTest integration with coverage targets
### Documentation
- **Release Process**: Complete documentation of automated release workflow
- **Build Instructions**: Platform-specific build and test instructions
- **API Examples**: Enhanced examples for all supported text formats
- **Testing Guide**: Integration testing setup and execution guide
## v0.1.1.5 (2025-08-28) ## v0.1.1.5 (2025-08-28)
### New Features ### New Features
@@ -1,3 +1,3 @@
test_basic 15 0.446662 test_basic 16 0.41918
example_run 0 0 example_run 0 0
--- ---
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='style.css'><script src='control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2025-08-29 12:48</h4><p>Click <a href='http://clang.llvm.org/docs/SourceBasedCodeCoverage.html#interpreting-reports'>here</a> for information about interpreting this report.</p><div class='centered'><table><tr><td class='column-entry-bold'>Filename</td><td class='column-entry-bold'>Function Coverage</td><td class='column-entry-bold'>Line Coverage</td><td class='column-entry-bold'>Region Coverage</td><td class='column-entry-bold'>Branch Coverage</td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\base58.cpp.html'>base58.cpp</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td><td class='column-entry-red'><pre> 0.00% (0/67)</pre></td><td class='column-entry-red'><pre> 0.00% (0/48)</pre></td><td class='column-entry-red'><pre> 0.00% (0/34)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\crypto.cpp.html'>crypto.cpp</a></pre></td><td class='column-entry-red'><pre> 66.67% (4/6)</pre></td><td class='column-entry-red'><pre> 56.19% (59/105)</pre></td><td class='column-entry-red'><pre> 36.84% (7/19)</pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\http_client.cpp.html'>http_client.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-red'><pre> 51.67% (186/360)</pre></td><td class='column-entry-red'><pre> 66.67% (170/255)</pre></td><td class='column-entry-red'><pre> 41.38% (48/116)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\json_parser.cpp.html'>json_parser.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-yellow'><pre> 84.21% (80/95)</pre></td><td class='column-entry-red'><pre> 71.88% (23/32)</pre></td><td class='column-entry-red'><pre> 50.00% (7/14)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\privatebinapi.cpp.html'>privatebinapi.cpp</a></pre></td><td class='column-entry-red'><pre> 50.00% (3/6)</pre></td><td class='column-entry-red'><pre> 27.01% (57/211)</pre></td><td class='column-entry-red'><pre> 28.15% (38/135)</pre></td><td class='column-entry-red'><pre> 21.43% (15/70)</pre></td></tr><tr class='light-row-bold'><td><pre>Totals</pre></td><td class='column-entry-red'><pre> 70.83% (17/24)</pre></td><td class='column-entry-red'><pre> 45.58% (382/838)</pre></td><td class='column-entry-red'><pre> 48.67% (238/489)</pre></td><td class='column-entry-red'><pre> 29.66% (70/236)</pre></td></tr></table></div><h5>Generated by llvm-cov -- llvm version 21.1.0</h5></body></html> <!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='style.css'><script src='control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2025-08-29 12:50</h4><p>Click <a href='http://clang.llvm.org/docs/SourceBasedCodeCoverage.html#interpreting-reports'>here</a> for information about interpreting this report.</p><div class='centered'><table><tr><td class='column-entry-bold'>Filename</td><td class='column-entry-bold'>Function Coverage</td><td class='column-entry-bold'>Line Coverage</td><td class='column-entry-bold'>Region Coverage</td><td class='column-entry-bold'>Branch Coverage</td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\base58.cpp.html'>base58.cpp</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td><td class='column-entry-red'><pre> 0.00% (0/67)</pre></td><td class='column-entry-red'><pre> 0.00% (0/48)</pre></td><td class='column-entry-red'><pre> 0.00% (0/34)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\crypto.cpp.html'>crypto.cpp</a></pre></td><td class='column-entry-red'><pre> 66.67% (4/6)</pre></td><td class='column-entry-red'><pre> 56.19% (59/105)</pre></td><td class='column-entry-red'><pre> 36.84% (7/19)</pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\http_client.cpp.html'>http_client.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-red'><pre> 51.67% (186/360)</pre></td><td class='column-entry-red'><pre> 66.67% (170/255)</pre></td><td class='column-entry-red'><pre> 41.38% (48/116)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\json_parser.cpp.html'>json_parser.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-yellow'><pre> 84.21% (80/95)</pre></td><td class='column-entry-red'><pre> 71.88% (23/32)</pre></td><td class='column-entry-red'><pre> 50.00% (7/14)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\privatebinapi.cpp.html'>privatebinapi.cpp</a></pre></td><td class='column-entry-red'><pre> 50.00% (3/6)</pre></td><td class='column-entry-red'><pre> 27.01% (57/211)</pre></td><td class='column-entry-red'><pre> 28.15% (38/135)</pre></td><td class='column-entry-red'><pre> 21.43% (15/70)</pre></td></tr><tr class='light-row-bold'><td><pre>Totals</pre></td><td class='column-entry-red'><pre> 70.83% (17/24)</pre></td><td class='column-entry-red'><pre> 45.58% (382/838)</pre></td><td class='column-entry-red'><pre> 48.67% (238/489)</pre></td><td class='column-entry-red'><pre> 29.66% (70/236)</pre></td></tr></table></div><h5>Generated by llvm-cov -- llvm version 21.1.0</h5></body></html>
Binary file not shown.
+4 -4
View File
@@ -64,7 +64,7 @@ Write-Host "Build erfolgreich abgeschlossen!" -ForegroundColor Green
# Tests ausführen # Tests ausführen
Write-Host "Führe Tests aus..." -ForegroundColor Yellow Write-Host "Führe Tests aus..." -ForegroundColor Yellow
if (Test-Path "build\CTestTestfile.cmake") { if (Test-Path "build\CTestTestfile.cmake") {
pushd build Push-Location build
try { try {
ctest -C Release --output-on-failure ctest -C Release --output-on-failure
if ($LASTEXITCODE -ne 0) { if ($LASTEXITCODE -ne 0) {
@@ -72,7 +72,7 @@ if (Test-Path "build\CTestTestfile.cmake") {
exit 1 exit 1
} }
} finally { } finally {
popd Pop-Location
} }
Write-Host "Tests erfolgreich." -ForegroundColor Green Write-Host "Tests erfolgreich." -ForegroundColor Green
} else { } else {
@@ -238,7 +238,7 @@ if ($LASTEXITCODE -ne 0) {
# Vor Upload: Artefakte einsammeln (dist) # Vor Upload: Artefakte einsammeln (dist)
if (Test-Path "scripts\collect_binaries.ps1") { if (Test-Path "scripts\collect_binaries.ps1") {
Write-Host "Sammle Build-Artefakte (scripts/collect_binaries.ps1)..." -ForegroundColor Yellow Write-Host "Sammle Build-Artefakte (scripts/collect_binaries.ps1)..." -ForegroundColor Yellow
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\collect_binaries.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts\collect_binaries.ps1 -OutDir "dist"
} }
# Release erstellen # Release erstellen
@@ -310,7 +310,7 @@ if (Test-Path $distPath) {
} }
try { try {
$uploadResponse = Invoke-RestMethod -Uri $uploadUri -Method Post -Headers $uploadHeaders -Body $body Invoke-RestMethod -Uri $uploadUri -Method Post -Headers $uploadHeaders -Body $body | Out-Null
Write-Host "$($artifact.Name) erfolgreich hochgeladen" -ForegroundColor Green Write-Host "$($artifact.Name) erfolgreich hochgeladen" -ForegroundColor Green
} catch { } catch {
Write-Host " ✗ Fehler beim Hochladen von $($artifact.Name): $($_.Exception.Message)" -ForegroundColor Red Write-Host " ✗ Fehler beim Hochladen von $($artifact.Name): $($_.Exception.Message)" -ForegroundColor Red