Contributing
How to contribute?
This project does NOT require contributors to sign a contributor license agreement. You can start contributing right away, no prerequisites!
- Want to submit a patch? See a typo in documentation? Just submit a pull request!
- Try out FaaScinator and submit your feedback.
- Use GitHub Issues to submit feature requests or bug reports.
- Use GitHub Discussions
- Got something working? Share your success story in social media, use the
#FaaScinatorhashtag.
Any other types of contributions are welcome!
Building and Testing
Prerequisites:
- JDK 11
- Maven 3.6.3+
- Docker
Building FaaScinator
- Go to the function directory.
- Run
mvn clean packageto build the executables. Once built, you can experiment with FaaScinator as a common Quarkus service and HTTP interface. - Run
make buildto build the OpenFaaS compatible Docker image. Templates are yet to be supported.
Testing FaaScinator builds in Docker
- Run
make runto run the Dockerized demo. It will expose the reactive service on port8080. - Follow the Quick Start guidelines for testing,
Building Maven cache for Docker images
The Docker build flow caches Maven artifacts to speed up the build. If you work on massive updates, it might be reasonable to update cache to speedup builds.
- Go to the function directory.
- Run
make build-cacheto build the Docker image with Maven cache. It will take a while. - Run builds with the new cache as documented above
Releasing
The repository has continuous delivery enabled for the main branch.
All merged changes will be automatically released.
Docker images will have the main tag.
To release a version, you need write permissions to the repository:
- Go to the release drafts, and select the current release draft.
- Define the version for the new release. Semantic Versioning 2.0.0 standard should be used.
- Copy-edit the changelog
- Publish the release
Once the GitHub Release is published, a GitHub Action will execute the build, produce and deploy the artifacts and Docker images. All these artifacts will be tagged with the required release version.