From 464074fc151e404157a008fb87b4b82566d2712e Mon Sep 17 00:00:00 2001 From: Zoi Kaoudi Date: Thu, 11 Dec 2025 15:38:14 +0100 Subject: [PATCH 1/3] blogpost about graduation --- blog/2025-12-11-graduation.md | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 blog/2025-12-11-graduation.md diff --git a/blog/2025-12-11-graduation.md b/blog/2025-12-11-graduation.md new file mode 100644 index 000000000..34652cdfb --- /dev/null +++ b/blog/2025-12-11-graduation.md @@ -0,0 +1,49 @@ +--- +slug: wayang-graduation +title: Apache Wayang Graduation +authors: zkaoudi +tags: [wayang, ASF, graduation, TLP] +--- + +# Apache Wayang Graduates to a Top-Level Project! + +The Apache Wayang community is proud to announce a major milestone in our journey: **Apache Wayang has officially graduated from the Apache Incubator and is now a Top-Level Project (TLP) at the Apache Software Foundation (ASF)**! + +This graduation rewards the community-driven effort, research, innovation, and collaboration of many years. It reflects our shared commitment to open-source development and the growing importance of cross-platform data processing in the broader data ecosystem nowadays. +Graduating as an Apache Top-Level Project is an important recognition of the project’s maturity and ensures that Apache Wayang is backed by the full support and oversight of the ASF, guaranteeing openness, meritocracy, and a sustainable development model for years to come. + +--- + +## What Is Apache Wayang? + +Apache Wayang (formerly known as Rheem) is a **cross-platform data processing system** designed to give developers and organizations a unified way to execute pipelines over multiple data processing engines—such as Apache Spark, Apache Flink, PostgreSQL, and more. + +Instead of forcing users to choose a single execution backend, Wayang: + +- **Abstracts data processing engines** through a unified API +- **Can automatically choose the best execution platform** based on workload characteristics +- **Optimizes performance** by distributing tasks across engines if necessary +- **Provides a flexible plugin architecture** for integrating new platforms and optimizers + +In other words, Wayang enables interoperability across the diverse data landscape and empowers teams to focus on application logic and not infrastructure decisions. + +--- + +## Thank You to Our Community + +Apache Wayang wouldn’t exist without its community of developers, users, mentors, and advocates who contributed code, documentation, feedback, and support. A special thanks goes to our Incubator mentors, who helped guide the project through the Apache processes and best practices. +Your contributions made this milestone possible, and we’re just getting started. + +--- + +## Get Involved! + +Whether you want to try Wayang for your next project, contribute code, write documentation, or share your ideas, your participation is welcome. Here’s how to get started: + +- Explore the documentation +- Join our community mailing lists +- Contribute to discussions and development +- Try Wayang on your data workloads + + +Welcome to Apache Wayang — where data platforms work together! From 188076b616cd0440ef5e3073bac6afa63cd3836b Mon Sep 17 00:00:00 2001 From: Zoi Kaoudi Date: Mon, 26 Jan 2026 15:18:49 +0100 Subject: [PATCH 2/3] Update release process documentation for Wayang Adjusted all appropriate incubator references and links --- docs/community/how-to-make-a-release.md | 75 +++++++++++++++++++------ 1 file changed, 57 insertions(+), 18 deletions(-) diff --git a/docs/community/how-to-make-a-release.md b/docs/community/how-to-make-a-release.md index 30dadb918..c95491913 100644 --- a/docs/community/how-to-make-a-release.md +++ b/docs/community/how-to-make-a-release.md @@ -8,9 +8,9 @@ This guide documents the steps to be followed when making a release. **Disclaimer**: Steps were taken mostly from [here](https://plc4x.apache.org/plc4x/latest/developers/release/release.html) and thus sentences may have been copied. -**Convention**: The repository should be in a snapshot version of the next release. For instance, 1.0.1-SNAPSHOT means that the next release number should be 1.0.1. +**Convention**: The repository should be in a snapshot version of the next release. For instance, 1.1.1-SNAPSHOT means that the next release number should be 1.1.1. -The process in general is as follows. The release manager creates the right artifacts (source files) using maven commands. This forms a release candidate. Then the release candidate, which should be uploaded in the "development directory" of the apache svn server, goes for voting first in the PPMC and then in the general incubator list. Once accepted by the latter, the release can actually happen, where the artifacts are uploaded to the "release directory" of the apache svn server and populated in the maven repository. In the following, let's assume we are releasing version 1.0.0 and release candidate rc5. +The process in general is as follows. The release manager creates the right artifacts (source files) using maven commands. This forms a release candidate. Then the release candidate, which should be uploaded in the "development directory" of the apache svn server, goes for voting in the dev list. It needs 3 or more positive binding votes (PMC members count as binding votes). Once accepted, the release can actually happen, where the artifacts are uploaded to the "release directory" of the apache svn server and populated in the maven repository. In the following, let's assume we are releasing version 1.0.0 and release candidate rc5. **If any Maven step should fail**: Please note that `mvn:release` commands eagerly commit directly to your working branch, if your command fails you may have to revert the last commit. @@ -121,7 +121,7 @@ The following is about key management. Details are described [here](https://puls ``gpg --keyserver pgp.mit.edu --send-key $KEY_ID`` -15. Make sure your public key is appended in the KEYS file found in the release server [here](https://dist.apache.org/repos/dist/release/incubator/wayang/) +15. Make sure your public key is appended in the KEYS file found in the release server [here](https://dist.apache.org/repos/dist/release/wayang/) ============================================= @@ -129,7 +129,7 @@ The following is about key management. Details are described [here](https://puls 17. Run ``mvn clean release:perform`` (This step will ask for your apache credentials, if everything related to the keys is configured properly.) -18. Go to: https://repository.apache.org, login, go to Staging Repositories and find the `orgapachewayang-{somenumber}` and close it with description "Apache Wayang (incubating) 1.0.0-rc5" +18. Go to: https://repository.apache.org, login, go to Staging Repositories and find the `orgapachewayang-{somenumber}` and close it with description "Apache Wayang 1.0.0-rc5" 19. Make a directory structure as described below and copy the corresponding source files from the directory target/checkout/target. The structure should be: ``` @@ -138,32 +138,71 @@ The following is about key management. Details are described [here](https://puls ./1.0.0/rc5 ./1.0.0/rc5/README ./1.0.0/rc5/RELEASE_NOTES -./1.0.0/rc5/apache-wayang-incubating-1.0.0-source-release.zip -./1.0.0/rc5/apache-wayang-incubating-1.0.0-source-release.zip.asc -./1.0.0/rc5/apache-wayang-incubating-1.0.0-source-release.zip.sha12 +./1.0.0/rc5/apache-wayang-1.0.0-source-release.zip +./1.0.0/rc5/apache-wayang-1.0.0-source-release.zip.asc +./1.0.0/rc5/apache-wayang-1.0.0-source-release.zip.sha12 ``` -Make sure the KEYS file contains your public key. The KEYS file can be found in [https://dist.apache.org/repos/dist/release/incubator/wayang/](https://dist.apache.org/repos/dist/release/incubator/wayang/) +Make sure the KEYS file contains your public key. The KEYS file can be found in [https://dist.apache.org/repos/dist/release/wayang/](https://dist.apache.org/repos/dist/release/wayang/) 20. ``cd 1.0.0`` - ``svn import rc5 https://dist.apache.org/repos/dist/dev/incubator/wayang/1.0.0/rc5 -m "Staging of rc5 of Wayang 1.0.0"`` + ``svn import rc5 https://dist.apache.org/repos/dist/dev/wayang/1.0.0/rc5 -m "Staging of rc5 of Wayang 1.0.0"`` 21. Send the voting email to the dev list. -22. If the voting passes, send the voting email to the general list. +22. If the voting passes, the staged artifacts can be released. This is done by moving them inside the Apache SVN: -23. Once the voting in the general list passes, the staged artifacts can be released. This is done by moving them inside the Apache SVN: + ``svn move -m "Release of Apache Wayang 1.0.0" https://dist.apache.org/repos/dist/dev/wayang/1.0.0/rc5 https://dist.apache.org/repos/dist/release/wayang/1.0.0`` - ``svn move -m "Release of Apache Wayang (incubating) 1.0.0" https://dist.apache.org/repos/dist/dev/incubator/wayang/1.0.0/rc5 https://dist.apache.org/repos/dist/release/incubator/wayang/1.0.0`` +23. Then release the maven artifacts: In order to do this, the release manager logs into Nexus at https://repository.apache.org/, selects the staging repository and clicks on the Release button. -24. Then release the maven artifacts: In order to do this, the release manager logs into Nexus at https://repository.apache.org/, selects the staging repository and clicks on the Release button. +24. Bring all changes of the release branch to the main. -25. Bring all changes of the release branch to the main. +25. You can also remove 1.0.0 from the dev directory of the svn now that the release is out. -26. You can also remove 1.0.0 from the dev directory of the svn now that the release is out. - -27. Create and upload the javadocs:\ +26. Create and upload the javadocs:\ Go to the source code directory and run ``mvn compile javadoc:javadoc javadoc:aggregate``\ The javadocs can then be found in the ``target`` directory\ - Upload the javadocs in the website: https://github.com/apache/incubator-wayang-website/tree/main/static/docs/api/javadocs + Upload the javadocs in the website: https://github.com/apache/wayang-website/tree/main/static/docs/api/javadocs + +27. Update the download page with the new release [https://wayang.apache.org/docs/start/download](https://wayang.apache.org/docs/start/download) + +28. After waiting at least 24 hours to make sure the release is on the servers, announce the release to the world: + +``` +From: +your apache email address +To: +announce@apache.org + +CC: +dev@wayang.apache.org + +E-Mail Topic: +[ANNOUNCE] Apache Wayang 1.0.0 released + +Message: +The Apache Wayang team is pleased to announce the release of Apache Wayang 1.0.0 + +Wayang is a cross-engine data processing system which (i) decouples +applications from underlying data processing engines, such as Apache Flink, +Apache Spark, databases, or ML systems, and (ii) automatically determines the +optimal combination of engines to execute a given data pipeline using an +optimizer. + +The current release contains: + + * 1 + * 2 + * 3 + +Visit the Apache Wayang website [1] for general information or +the downloads page [2] for release notes and download information. + +Regards, +The Apache Wayang team + +[1] http://wayang.apache.org +[2] https://wayang.apache.org/docs/start/download +``` From 29db083998767470d8606a0ad72b9fce3203e444 Mon Sep 17 00:00:00 2001 From: Zoi Kaoudi Date: Sun, 8 Mar 2026 21:23:34 +0100 Subject: [PATCH 3/3] ai-tooling policy doc --- docs/community/ai-tooling-policy.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 docs/community/ai-tooling-policy.md diff --git a/docs/community/ai-tooling-policy.md b/docs/community/ai-tooling-policy.md new file mode 100644 index 000000000..a50325998 --- /dev/null +++ b/docs/community/ai-tooling-policy.md @@ -0,0 +1,18 @@ +# Guidelines for AI-assisted Contributions + +The Apache Wayang community welcomes the use of AI and generative tooling as part of the contribution process, provided contributors follow the guidelines below. These guidelines align with the [ASF Generative Tooling Guidance](https://www.apache.org/legal/generative-tooling.html). + +1. **Verify licensing compliance.** AI-generated code may inadvertently reproduce copyrighted material. Before submitting, ensure the output does not include content that conflicts with the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0) or the [ASF 3rd Party Licensing Policy](https://www.apache.org/legal/resolved.html). + +2. **Understand what you submit.** If you cannot explain why the code works, do not submit it. You are accountable for bugs, security issues, and license violations in your contribution. + +3. **Disclose AI tool usage in commits.** When any part of a contribution was generated or significantly assisted by an AI tool, include a `Generated-by:` token in the commit message. For example: + ``` + Fix null pointer in JdbcExecutor + + Generated-by: GitHub Copilot + ``` + +4. **Keep PR discussions human.** When participating in PR discussions, e.g., code review comments, questions, clarifications, and responses, the content must be written by a human, not generated by an AI tool. If an AI tool (such as GitHub Copilot) posts a comment, it must be clearly attributed as such and not presented as the contributor's own words. This ensures that code review remains a genuine exchange between people, preserving the quality, accountability, and community trust that Apache Wayang depends on. + +*These guidelines will be updated as AI tooling and the legal landscape around it continue to evolve. Questions or suggestions can be raised on the [dev mailing list](https://wayang.apache.org/docs/community/mailinglist).*