Thanks for your interest in contributing! This repository hosts a multi-language workspace for Server‑Sent Events (SSE):
- Angular library:
libs/ng-sse-client - Java Spring WebFlux library:
libs/sse-server - Samples:
samples/*
Before you start, please read this guide to set up your environment and understand the workflow.
- Code of Conduct
- Getting started
- Development workflow
- Project layout
- Commit style and branches
- Pull requests
- Issue triage
- Release process (maintainers)
This project follows our Code of Conduct. By participating, you agree to abide by it. If you witness or experience unacceptable behavior, contact: support@spectrayan.com
Prerequisites:
- Node.js 20+ and npm (for Nx + Angular library)
- Java 21 and Maven 3.9+ (for Spring library and sample)
- Git
- On Windows, use Git Bash or WSL for running Makefile targets
Install JavaScript dependencies:
make setup
Build and test everything locally (equivalent to CI):
make ci
Common tasks:
- Build Angular lib:
make build-ng - Test Angular lib:
make test-ng - Maven verify (Java lib):
make verify-mvn - Lint (if configured):
make lint - Clean artifacts:
make clean
Run sample server (after building/installing modules as needed):
- See
samples/sse-sample-server-app/README.md - See
samples/ng-sse-client-app/README.md
libs/ng-sse-client: Angular SSE client; built with Nx and ng-packagrlibs/sse-server: Spring WebFlux SSE utilities, auto-configured for Spring Bootsamples/ng-sse-client-app: Example Angular app consuming SSEsamples/sse-sample-server-app: Example Spring Boot app emitting SSE
- Small, focused commits
- Conventional Commit style appreciated (e.g.,
feat:,fix:,docs:,chore:) - Create feature branches from
main
- Discuss large changes in an issue first
- Include tests where practical
- Update docs and READMEs when behavior or public APIs change
- Ensure
make cipasses locally before opening PR
- Provide minimal reproduction steps or link to a demo
- Share environment info (OS, Node, Java, Angular, Spring versions)
- Logs and stack traces help a lot
- Tag version with
vX.Y.Zto trigger CI publish jobs - npm publish:
libs/ng-sse-client(built artifact underdist/libs/ng-sse-client) - Maven Central publish:
libs/sse-serverusing-P releaseand required OSSRH/GPG creds - For local/manual release, guarded Make targets exist:
make publish-npm,make publish-maven
For questions, reach us at: support@spectrayan.com