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
#FaaScinator
hashtag.
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 package
to build the executables. Once built, you can experiment with FaaScinator as a common Quarkus service and HTTP interface. - Run
make build
to build the OpenFaaS compatible Docker image. Templates are yet to be supported.
Testing FaaScinator builds in Docker#
- Run
make run
to 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-cache
to 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.