This document describes how ImageJCsharp should publish releases.
The project should release early and regularly. Releases do not need to be perfect, but each release should be clear about what works and what is known to be incomplete.
Use semantic-style versions:
v0.1.0for the first public development release.v0.2.0,v0.3.0, etc. for new MVP capabilities.v1.0.0when the project reaches the first stable ImageJ-like core replacement target.
Before v1.0.0, APIs and behavior may change.
Goal:
- Public GitHub repository.
- Build and test automation.
- First downloadable Windows build.
- Basic app startup.
Goal:
- Open common image formats.
- Display image.
- Zoom and scroll.
- Save image.
Goal:
- Rectangle ROI.
- Measure ROI.
- Results table.
Goal:
- Invert.
- Threshold.
- Sobel edge detection.
Goal:
- Histogram.
- Export results.
- Better manual test images.
Before creating a release:
- Update
CHANGELOG.md. - Confirm
README.mddescribes current status accurately. - Run
dotnet build ImageJCsharp.sln. - Run
dotnet test tests/ImageJCsharp.Core.Tests/ImageJCsharp.Core.Tests.csproj. - Manually start the app.
- Manually open a PNG.
- Manually draw a rectangle ROI.
- Manually measure.
- Manually save an image.
- Note known limitations.
Build release binaries:
dotnet build src/ImageJCsharp.App/ImageJCsharp.App.csproj -c ReleaseCreate a zip from:
src/ImageJCsharp.App/bin/Release/net48/
Suggested zip name:
ImageJCsharp-v0.1.0-win-x64.zip
- Go to the GitHub repository.
- Open the Releases page.
- Click "Draft a new release".
- Create a new tag, for example
v0.1.0. - Use the release title
ImageJCsharp v0.1.0. - Upload the zip file.
- Paste release notes.
- Mark as pre-release while the project is before
v1.0.0. - Publish.
## ImageJCsharp v0.1.0
This is an early development release of ImageJCsharp, a C# native ImageJ-like application for Windows.
### Added
-
### Changed
-
### Fixed
-
### Known limitations
-
### Verification
- `dotnet build ImageJCsharp.sln`
- `dotnet test tests/ImageJCsharp.Core.Tests/ImageJCsharp.Core.Tests.csproj`- Share release link on project channels.
- Add screenshots or GIFs.
- Open issues for known limitations.
- Ask users for small sample images and workflow feedback.