DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
Contents
...
fineract-client-feign usage for integration tests
Note: GSOC applicants - this is a "draft concept". Do not work on your proposal until we kick off the process at Fineract for evaluating. We may significantly edit this concept or create new ones to replace it.
No one should work on this specific ticket unless assigned - the GSOC candidate we choose will be assigned this ticket.
For more information, you should be reviewing emails on this subject and following the Wiki pages.
https://lists.apache.org/list.html?dev@fineract.apache.org
https://cwiki.apache.org/confluence/display/FINERACT/GSOC+Program+at+Fineract
"Moving away from RestAssured (low-level) API calls in integration tests and rather use fineract-client-feign would be a great improvement"
Summary (with some assist from chatgpt for clarity)
Apache Fineract has a large set of REST APIs and many integration tests currently call those APIs using RestAssured(low-level HTTP requests). This ticket is to help modernize the tests by switching them to use fineract-client-feign, which is Fineract’s higher-level API client.
Goal
Create a simple migration approach and then migrate a small set of integration tests from RestAssured to fineract-client-feign.
Why we’re doing this
- Makes tests easier to read and maintain (less raw HTTP code).
- Encourages consistent API usage across tests.
- Reduces duplicated request-building logic (headers, base URLs, auth, etc.).
Scope of Work
1) Create a short migration plan
Write a short note (in the Jira ticket comments or a small doc) that answers:
- Where are the current RestAssured-based integration tests located?
- What’s the recommended pattern for using fineract-client-feign in tests?
- What should be migrated first (start small)?
2) Pick a small “starter set” of tests
Identify 2–5 integration tests that:
- Are simple (e.g., create/read/update a resource)
- Don’t involve complicated multi-step workflows
- Run reliably in CI
3) Implement the migration for the starter set
For each selected test:
- Replace RestAssured calls with fineract-client-feign client calls
- Keep the same assertions (same expected behavior)
- Ensure the tests still pass locally and in CI
4) Document the new pattern
Add a short README note or comments in the test code showing:
- How to initialize/configure the Feign client for tests
- How auth/session is handled
- A small “before vs after” explanation (1 paragraph is enough)
Acceptance Criteria
- A brief migration plan is written and linked in the ticket.
- At least 2 integration tests have been converted to use fineract-client-feign.
- All tests pass (locally and/or in CI).
- A short note exists explaining how to write future integration tests using fineract-client-feign.
Notes / Hints for a beginner
- Start by converting just one very small test to learn the pattern.
- Keep changes small and easy to review (one test per commit is ideal).
- If something is unclear (e.g., how auth is set up), add a comment in the ticket describing what you found.
Out of Scope (for this ticket)
- Migrating all integration tests across the repo
- Refactoring production API code
- Changing API behavior—this is only a test client swap
[GSoC 2026] [POC] Standardize and Harden Transaction Idempotency for Savings and Loans
Goal: Standardize idempotency enforcement to prevent replay attacks in core financial modules. Implementation Strategy (Addressing James Dailey's feedback):
- Opt-In Architecture: New logic will be behind a Global Configuration flag. Default remains legacy behavior to ensure 100% backward compatibility.
- Phased Approach: Audit existing m_portfolio_command_source usage and bridge gaps in the Savings module first.
- Testing: Implementation of integration tests simulating network failures/retries.
Add DPG Badge to Fineract website and README
As requested by James Dailey on the mailing list, add the Digital Public Goods (DPG) badge to the project website and the main repository README following the DPG Alliance usage guidelines.
Apache NuttX
Add DPG Badge to Fineract website and README
As requested by James Dailey on the mailing list, add the Digital Public Goods (DPG) badge to the project website and the main repository README following the DPG Alliance usage guidelines.
Apache NuttX
Create a NuttX Distribution with Dynamic Binary (ELF) Loading
NuttX is very Unix/Linux-like RTOS for microcontrollers and it supports dynamic loading of binaries and libraries. It makes perfect sense to have the possibilities to create
Create a NuttX Distribution with Dynamic Binary (ELF) Loading
NuttX is very Unix/Linux-like RTOS for microcontrollers and it supports dynamic loading of binaries and libraries. It makes perfect sense to have the possibilities to create a NuttX Distros similar to what exists for Linux.
In fact there is already a proposal here: https://github.com/apache/nuttx/issues/17351
Goals:
1) Test ELF Loading in the current NuttX mainline
2) Create an application that will be downloaded and updated the existing version on the board
3) Add Library support on NuttX/NuttX-Apps (use Android Makefile Library building as reference)
...
Dropbear port (or other SSH Server/Client) to NuttX
NuttX doesn't have a SSH Client/Server support yet.
Supporting a SSH server will open doors to let NuttX boards in the fields to be access remotely for maintenance
Adding support to SSH client will let low cost boards powered by NuttX and LVGL to become a remote console control for more advanced Linux server.
Apache Wayang
Implement a JDBC driver for Wayang
Background
Apache Wayang is a cross-platform data processing framework that lets enables users to write data analytics tasks once and execute them efficiently across diverse multiple heterogeneous execution engines such as Apache (e.g., Spark, Apache Flink, relational databasesJava Streams, and others. It abstracts heterogeneous backends and can enable efficient hybrid execution across different execution engines). In addition, Wayang optimizes execution plans across platforms and can split pipelines to be executed among multiple backends to optimize performance.
Currently, Wayang supports dataflow-style APIs in Java, Scala, and Python and an SQL API. However, there is no high-level DataFrame API — a programmatic abstraction widely used in modern data processing ecosystems (e.g., Spark DataFrames, Pandas, R DataFrames) — that lets users express relational transformations over structured datasets in a fluent, tabular style.
A DataFrame API for Wayang would dramatically improve usability for data engineers and scientists, making Wayang accessible to users familiar with DataFrame programming paradigms while preserving its powerful cross-platform optimization capabilities.
Project Goal
Implement a DataFrame API for Apache Wayang that:
- Represents structured data in a tabular abstraction (rows & columns),
- Supports common relational and analytical operations (select, filter, join, groupBy, aggregate, etc.),
- Can compile DataFrame operations into Wayang plans executed across backends transparently,
- Includes comprehensive documentation and examples.
Outcomes & Impact
By the end of GSoC, Wayang will have its first robust DataFrame API — a major usability milestone that bridges structured analytics with cross-platform execution. This will enhance adoption, unlock new classes of applications, and position Wayang as a friendly high-level programming environment in addition to its optimizer backend strengths.
provides programmatic APIs (Java/Scala) and SQL support. However, it does not expose a standard JDBC interface that would allow external tools to connect to Wayang as if it were a relational database.
Many analytics tools rely on JDBC to communicate with query engines. Implementing a JDBC driver for Wayang would allow users to issue SQL queries to Wayang using standard database tooling.
Project Goal
Design and implement a JDBC driver for Apache Wayang that allows users to:
- Establish a JDBC connection to a Wayang instance,
- Submit SQL queries via standard JDBC interfaces,
- Retrieve results using ResultSet,
- Access metadata through DatabaseMetaData,
- Integrate Wayang with existing SQL-based tools and BI platforms.
The driver should delegate incoming SQL queries to the SQL api provided by Wayang.
Difficulty: Minor
Project size: ~90 hours (smallDifficulty: Medium
Project size: ~350 hours (Large)
Potential mentors:
- Zoi Kaoudi — zkaoudi zoka (at) apache.org
Make Wayang more datalake-friendly
Background
Apache Wayang is a cross-platform data processing framework that enables allows users to write data analytics tasks once and execute them execute analytics pipelines across multiple heterogeneous execution engines (e.g., such as Apache Spark, Apache Flink, Java Streams, and others). In addition, Wayang optimizes execution plans across platforms and can split pipelines to be executed among multiple backends to optimize performance.
Currently, Wayang provides programmatic APIs (Java/Scala) and SQL support. However, it does not expose a standard JDBC interface that would allow external tools to connect to Wayang as if it were a relational database.
relational database systems. Wayang’s optimizer automatically selects where to execute a pipeline and enables hybrid pipelines where part of it can be executed in one platform and part of it in another.
Wayang’s architecture is built around a pluggable backend model. Each execution engine is integrated via a dedicated backend implementation that translates Wayang’s logical operators into engine-specific physical operators.
Current execution engines (platforms) that Wayang supports include: JDBC-based databases, Spark, Flink, Tensorflow, Giraph. Many analytics tools rely on JDBC to communicate with query engines. Implementing a JDBC driver for Wayang would allow users to issue SQL queries to Wayang using standard database tooling.
Project Goal
Design and implement a JDBC driver for Apache Wayang that allows users to:
- Establish a JDBC connection to a Wayang instance,
- Submit SQL queries via standard JDBC interfaces,
- Retrieve results using ResultSet,
- Access metadata through DatabaseMetaData,
- Integrate Wayang with existing SQL-based tools and BI platforms.
The driver should delegate incoming SQL queries to the SQL api provided by Wayang.
one or more new execution engine backends to enable Apache Wayang to work in data lake environments.
Potential target engines include (depending on feasibility and community discussion):
- Apache Datafusion
- Trino / Presto
- Dremio
- BigQuery
The project includes:
- Implementing the backend abstraction layer,
- Mapping Wayang logical operators to the new engine’s execution model,
- Integrating cost estimation for the optimizer.
Difficulty: Medium
Project size: Depends on the number of platforms. It can be 175 (medium) or ~350 hours (largeDifficulty: Minor
Project size: ~90 hours (small)
Potential mentors:
- Zoi Kaoudi — zoka — zkaoudi (at) apache.org
- Juri Petersen — juri (at) apache.org
- Community — dev (at) wayang.apache.org
Make Wayang more datalake-friendly
Support for a Dataframes API
Background
Apache Wayang
Background
Apache Wayang is a cross-platform data processing framework that allows users to execute analytics pipelines across multiple heterogeneous lets users write data analytics tasks once and execute them efficiently across diverse execution engines such as Apache Spark, Apache Flink, relational databases, and relational database systems. Wayang’s optimizer automatically selects where to execute a pipeline and enables hybrid pipelines where part of it can be executed in one platform and part of it in another.
Wayang’s architecture is built around a pluggable backend model. Each execution engine is integrated via a dedicated backend implementation that translates Wayang’s logical operators into engine-specific physical operators.
Current execution engines (platforms) that Wayang supports include: JDBC-based databases, Spark, Flink, Tensorflow, Giraph.
Project Goal
Design and implement one or more new execution engine backends to enable Apache Wayang to work in data lake environments.
Potential target engines include (depending on feasibility and community discussion):
- Apache Datafusion
- Trino / Presto
- Dremio
- BigQuery
The project includes:
- Implementing the backend abstraction layer,
- Mapping Wayang logical operators to the new engine’s execution model,
others. It abstracts heterogeneous backends and can enable efficient hybrid execution across different execution engines.
Currently, Wayang supports dataflow-style APIs in Java, Scala, and Python and an SQL API. However, there is no high-level DataFrame API — a programmatic abstraction widely used in modern data processing ecosystems (e.g., Spark DataFrames, Pandas, R DataFrames) — that lets users express relational transformations over structured datasets in a fluent, tabular style.
A DataFrame API for Wayang would dramatically improve usability for data engineers and scientists, making Wayang accessible to users familiar with DataFrame programming paradigms while preserving its powerful cross-platform optimization capabilities.
Project Goal
Implement a DataFrame API for Apache Wayang that:
- Represents structured data in a tabular abstraction (rows & columns),
- Supports common relational and analytical operations (select, filter, join, groupBy, aggregate, etc.),
- Can compile DataFrame operations into Wayang plans executed across backends transparently,
- Includes comprehensive documentation and examples.
Outcomes & Impact
By the end of GSoC, Wayang will have its first robust DataFrame API — a major usability milestone that bridges structured analytics with cross-platform execution. This will enhance adoption, unlock new classes of applications, and position Wayang as a friendly high-level programming environment in addition to its optimizer backend strengths.
Difficulty: Medium
Project size: Depends on the number of platforms. It can be 175 (medium) or ~350 hours (largeLarge)
Potential mentors:
- Zoi Kaoudi — zkaoudi (at) apache.org
- Juri Petersen — juri (at) apache.org
- Community — dev (at) wayang. apache.org
...
Apache Mahout Automated API Documentation Pipeline for Qumat & QDP
Summary
Implement an automated API documentation pipeline that generates and publishes API reference documentation from the Python (Qumat, QDP) and Rust (qdp-core) codebases, integrated into the project's Docusaurus website and CI.
Background
- Apache Mahout exposes two main API surfaces:
- Qumat: Python library for quantum circuits (backends: Qiskit, Cirq, Amazon Braket).
- QDP (Quantum Data Plane): GPU-accelerated encoding (Rust core + PyO3 Python bindings, qumat.qdp / _qdp).
- Manual doc updates are error-prone and don’t scale. Automating from source keeps docs accurate and reduces maintainer burden.
Current state
- QuMat API is maintained by hand and can drift from code.
- QDP API is waiting for new website migration to be finished.
- Rust (qdp-core) has extensive doc comments but no published rustdoc in the website.
Goals
1. Generate API reference from source for Python (Qumat).
2. Integrate generated docs into the existing Docusaurus site.
3. Automate the pipeline in CI so doc builds run on changes.
4. Define conventions (docstrings, public API) for future contributors.
Deliverables
- Python API doc pipeline for qumat and QDP.
- QuMat API reference either generated or explicitly linked.
- Rust (qdp-core) rustdoc built and linked from the website.
- CI job(s) that build Python API docs and rustdoc and fail on errors.
- Short contribution guide on docstring style and how to update API docs.
Tracked github issue
https://github.com/apache/mahout/issues/1012
Note
Please email me(jiekaichang@apache.org) your proposal first and show me different types of approaches you considered and and why you decided to do it this way.
...