Hello Community,
In terms of direction, is https://github.com/apache/fineract-backoffice-ui 
replacing https://github.com/openMF/web-app please?
Apologies I might have missed the information if it was communicated earlier. 

Regards
Anu Omotayo

    On Tuesday, August 18, 2026 at 03:02:19 PM GMT+1, James Dailey 
<[email protected]> wrote:  
 
 Ok.  Let’s make sure we have some sanity checks on this.  It will need to be 
tested manually to gain some confidence with some set of seed data in the 
backend.  Automated tests are preferred but for a first release I think we also 
need to be sure that the tests are catching basic features. 
 If that’s in place we should have either local tests or then move to create an 
infra ticket to host a test instance at Apache.  
We register the errors on github issues. Please provide that link.  
Can you help by describing “how to deploy” w seed data?  
Could a few community members offer to test?  

Sent from Gmail Mobile
On Mon, Aug 17, 2026 at 1:26 PM Aman Mittal <[email protected]> 
wrote:


Hi James,

Thank you for the +1 and for offering help with Infra and the release keys.

Yes, I think the first release candidate should be validated against the latest 
Fineract develop branch rather than being tied permanently to a particular 
Fineract release version.

For the first release, my proposal is:
   
   - The Fineract Backoffice UI release candidate is built and tested against 
the latest stable state of Fineract's develop branch.
   - The release candidate is cut from a specific Backoffice UI release commit, 
so the UI release itself remains reproducible and immutable once voted on.
   - We document the exact Fineract commit/API specification against which the 
release candidate was validated. This gives us a clear compatibility baseline 
without requiring the UI release to be versioned in lockstep with every 
Fineract release.
   - We already have an automated API-spec synchronization workflow that keeps 
the Backoffice UI aligned with the latest Fineract develop branch. PR #381 is 
an example:   
https://github.com/apache/fineract-backoffice-ui/pull/381

The automation resolves the latest Fineract state, updates the API 
specification/client when the upstream specification changes, and opens a PR 
for review rather than silently changing main.

We have also previously had automated synchronization PRs for upstream API 
changes/removals, including the MIX report removal:
https://github.com/apache/fineract-backoffice-ui/pulls?q=is%3Apr+is%3Aclosed+label%3Aautomated

That change was also discussed by the Fineract community in the dev list thread 
regarding the deprecation and potential removal of the MIX XBRL module 
(FINERACT-2670):
https://lists.apache.org/thread/mtp88gmrl5d3py5b7g3llo1d7lr023wv

This is useful for the release model because it demonstrates that the 
Backoffice UI can track API changes in Fineract develop through an automated, 
reviewable process rather than assuming that the API remains static.

So I would suggest treating the first release as:

Fineract Backoffice UI 1.0.0-RC.1
|
+-- validated against Fineract develop at commit <specific commit>
+-- API contract recorded at that point
+-- release candidate tested against that backend
+-- compatibility baseline documented in the release notes

After the first release, we can decide whether future UI releases should be 
aligned with Fineract releases or follow an independent release cadence with a 
documented compatibility matrix.

Regarding a prerelease demo instance, I agree that this would be very useful. 
ASF Infra supports publishing static sites through GitHub Pages:

https://infra.apache.org/github-pages.html

The Backoffice UI is already a static frontend, so a prerelease/demo build 
could be published through GitHub Pages and linked from the release candidate 
discussion. The main requirement is providing it with a reachable Fineract 
backend/API; GitHub Pages itself can host the UI, but it cannot provide the 
Fineract backend.

This would allow the community to try the UI/UX before the formal release vote 
and report issues against the release candidate.

So, in short: yes, I propose that 1.0.0-RC.1 be validated against the latest 
stable Fineract develop branch, with the exact backend/API commit recorded as 
the compatibility baseline. A prerelease GitHub Pages demo backed by a suitable 
Fineract instance would be a useful addition for community validation.

Regards,
Aman

On Mon, Aug 17, 2026 at 4:01 PM James Dailey <[email protected]> wrote:

+1 
Thank you Aman.  
I’ll help as needed w karma on infra and keys 

TL;DR - Fineract headless backend will be getting a front end UI 
We need to decide release style - only in synch w latest release of Fineract?  
release commit for this first one only?  
As the first thing is a release candidate against latest fineract dev branch , 
as long as that is stable, ok to validate that.  Yes? 



Sent from Gmail Mobile
On Mon, Aug 17, 2026 at 11:08 AM sujan kumar <[email protected]> wrote:

Hi Aman,
This looks like a solid and thorough release-readiness proposal. I know how 
much effort and work has gone into getting the Backoffice UI to this stage, and 
this is a really comprehensive overview of that progress. Great to see the 
project reaching this level of release readiness.
Looking forward to seeing the community and PMC feedback on the next steps.
Regards,Sujan
On Sun, 16 Aug, 2026, 22:07 Aman Mittal, <[email protected]> wrote:


Hello Fineract Community,

I would like to propose that we start the process for the first official 
release of the Apache Fineract Backoffice UI.

Tracking issue:
https://github.com/apache/fineract-backoffice-ui/issues/377

The issue is intended to be the release-readiness and release-tracking umbrella 
for this work. It does not replace the formal ASF release vote. The release 
vote will be conducted on [email protected] in accordance with the ASF 
release policy.

ASF Release Policy:
https://www.apache.org/legal/release-policy.html

Fineract Release Documentation / Release Process:
https://fineract.apache.org/docs/current/

ASF Voting Process:
https://www.apache.org/foundation/voting.html

PROPOSAL

I propose that Apache Fineract release the Fineract Backoffice UI as its first 
official release.

The current audit indicates that the project is technically mature enough to 
proceed toward a release candidate, subject to resolving the remaining 
release-engineering items and receiving PMC guidance on the release scope, 
version, compatibility target, licensing questions, and Release Manager.

My current proposal is to prepare a 1.0.0 release, initially through a 
1.0.0-RC.1 candidate, rather than treating the current main branch as an 
informal release.

WHY RELEASE NOW

The Backoffice UI has reached a point where users and integrators can benefit 
from having a fixed, identifiable version rather than consuming an arbitrary 
state of main.

A release would provide:
   
   - A versioned and reproducible source artifact.
   - A known Fineract API compatibility point.
   - A documented feature set.
   - An audited dependency and licensing state.
   - An SBOM for supply-chain review.
   - ASF-compliant LICENSE and NOTICE handling.
   - A documented testing and release process.
   - A fixed version against which users can report issues.
   - A clear statement of known limitations and Fineract compatibility.

The release is also an opportunity to make the project's security, 
architecture, dependency, and functional state visible to the wider Fineract 
community rather than requiring users to inspect the repository themselves.

CURRENT PROJECT STATUS

A full release-readiness audit was performed against:

0846def1e7ce08cab809752f1808c2aa16b56f62

The audit covered:
   
   - Build and packaging
   - Unit tests
   - E2E tests
   - Real-backend E2E tests
   - RBAC
   - Navigation authorization
   - Action-level authorization
   - API surface
   - API contract synchronization
   - GA gates
   - Dependency licensing
   - Dependency vulnerabilities
   - Apache RAT
   - SBOM generation
   - CI/CD security
   - Accessibility
   - Functional coverage
   - Documentation
   - Deployment artifacts
   - Release hygiene

CURRENT VERIFIED RESULTS

Unit tests:
1093/1093 + 2/2 MFE project tests.

E2E:
325 passed in the initial parallel execution.

The 8 failures were investigated rather than simply ignored. They were 
reproduced successfully under the CI execution model:
   
   - backend: 12/12 passed
   - mocked accessibility: 3/3 passed

The failures were attributed to host contention and test isolation under 
parallel execution.

Two-factor authentication E2E:
3/3 passed against a dedicated real-backend stack.

GA gates:
8/9 with 0 blocking failures.

Build:
PASS

Lint:
PASS

Format:
PASS

i18n mechanism:
PASS

Internal endpoint validation:
PASS

Route permission drift check:
PASS

E2E typecheck:
PASS

Apache RAT:
706 approved, 0 unapproved.

Production dependency licensing:
25/25 packages Category A after removal of eslint-plugin-sonarjs.

Production dependency vulnerabilities:
0.

RBAC:
223/223 declared permission codes validated against the platform catalogue.

Navigation:
119 entries, 104 gated, with route/navigation permission parity enforced.

Action authorization:
163 gating sites.
62 of 74 identified write controls are directly gated.
The remaining 7 identified ungated controls all lead to routes that are 
themselves permission protected.

API surface:
142 services / 564 operations.

Committed API contract:
594 paths / 958 operations.

The committed contract was verified against the Fineract head used by the audit 
with no operation-level additions or removals.

Coverage:
73.72% statements excluding the generated OpenAPI client.
Security-critical files are at least 90% covered.

Functional inventory:
27 functional areas
333 routes
302 components
0 TODO/FIXME/HACK findings
No dead routes identified.

CURRENT FEATURES AND TECHNICAL ARCHITECTURE

The Backoffice UI is an Angular-based application intended to provide an 
operational interface over Apache Fineract.

The architecture currently includes the following major capabilities:
   
   - Angular application architecture

The application uses modern Angular application patterns with standalone 
components and feature-oriented route organization.

The application is divided into functional areas rather than treating the UI as 
one monolithic feature.

Examples include:
   
   - Clients
   - Groups
   - Centers
   - Loans
   - Savings
   - Shares
   - Accounting
   - Products
   - Tellers
   - Reports
   - System/configuration
   - Users and roles
   - Notifications
   - Search
   - Profile and dashboard functionality
   
   - API integration

The UI uses the Fineract REST API as its backend contract.

The generated API client and committed API specification are kept synchronized 
with Fineract.

The project maintains an API-surface manifest containing the operations 
actually used by the UI.

This provides two independent controls:
   
   - API contract compatibility
   - Actual API usage tracking

The API surface currently covers:

142 services
564 operations
   
   - Permission and RBAC model

The application uses the Fineract permission vocabulary rather than defining an 
independent authorization model.

The existing AuthService provides:
   
   - Individual permission checks
   - OR semantics
   - AND semantics
   - ALL_FUNCTIONS
   - ALL_FUNCTIONS_READ
   - Permission normalization

Route-level authorization has now been implemented using a permission guard.

Navigation permissions and route permissions are checked for drift in CI.

The UI also uses action-level permission directives for privileged operations.

The important architectural decision is that the frontend RBAC is 
defence-in-depth.

Fineract Core remains the authoritative security boundary.

The UI does not attempt to replace backend authorization.
   
   - Navigation authorization

Navigation is data-driven through NAV_CONFIG.

Permission-protected navigation entries are filtered according to the user's 
permissions.

The project also has a static validation mechanism ensuring that navigation 
permissions and route permissions do not silently diverge.

This prevents a situation where a menu hides a feature but its route remains 
unrestricted, or where the navigation exposes something that the route 
subsequently refuses.
   
   - Route-level authorization

Protected routes now explicitly declare their required Fineract permission.

For example, a read-only screen can require a READ_* permission while creation 
and modification screens require CREATE_* or UPDATE_* permissions.

This allows ALL_FUNCTIONS_READ users to access read functionality while 
preventing them from reaching write forms.

Unauthorized navigation results in a dedicated Access Denied page rather than 
silently returning the user to the dashboard.
   
   - Action-level authorization

Privileged operations such as:
   
   - Create
   - Update
   - Delete
   - Approve
   - Reject
   - Disburse
   - Repayment
   - Waive
   - Configuration
   - User management
   - Role management
   - Permission management
   - Teller operations
   - Accounting operations
   - Reports

are permission-gated where applicable.

The existing permission directive is used instead of introducing a second 
authorization abstraction.
   
   - Two-factor authentication

The application includes two-factor authentication functionality and has 
dedicated E2E coverage against a real backend.

The release audit includes a real-backend test path rather than relying 
exclusively on mocked authentication.
   
   - Configuration-driven deployment

Runtime configuration is provided separately from the application build.

This allows deployments to configure items such as:
   
   - Fineract API URL
   - Tenant
   - RBAC enablement
   - Institution features
   - Developer tooling
   - Navigation overrides
   - API-origin restrictions
   
   - Security controls

The project currently includes security-oriented CI checks covering areas such 
as:
   
   - CSP
   - API-origin restrictions
   - Authorization header handling
   - Sanitization/raw HTML checks
   - GitHub Actions pinning
   - Workflow permissions
   - Dependency scanning
   - License policy
   - RAT
   - Signed commits
   
   - API contract synchronization

The project has automation for keeping the API contract synchronized with 
Fineract.

The current design resolves the Fineract container/image to a digest, checks 
the API specification, regenerates the client when the contract changes, and 
opens a PR.

The backend E2E suite also exercises the UI against Fineract.

This is intended to reduce API drift between the UI and Fineract Core.
   
   - Testing architecture

Testing currently consists of:
   
   - Angular unit tests
   - MFE tests
   - Mocked Playwright E2E tests
   - Real-backend Playwright E2E tests
   - Two-factor E2E tests
   - Accessibility checks
   - API-surface validation
   - Route permission drift checks
   - i18n checks
   - Build validation
   - GA checks
   - Dependency checks
   - RAT
   
   - SBOM and supply-chain transparency

The project generates CycloneDX 1.6 SBOMs.

The release audit generated:
   
   - Production SBOM
   - Full dependency-tree SBOM

The SBOMs will be regenerated from the final release candidate so that the PMC 
can review the exact release contents rather than relying on an SBOM generated 
from an earlier commit.

The current generator does not provide component hashes, and this limitation is 
documented rather than fabricating hash information.

RELEASE ENGINEERING ITEMS REMAINING

The main remaining work is release engineering rather than a large feature 
implementation.
   
   - Versioning

The repository currently reports 0.0.0.

The release version needs to be agreed by the PMC/community and then applied 
consistently to package metadata, generated federation metadata, SBOM metadata 
and release artifacts.

My initial proposal is:

1.0.0-RC.1

followed by:

1.0.0

assuming the RC passes review and the release vote.
   
   - Release documentation

The project needs release documentation covering:
   
   - Release preparation
   - Release candidate creation
   - Signing
   - Checksums
   - SBOM generation
   - RAT verification
   - Candidate verification
   - Staging
   - Voting
   - Promotion
   - Announcement

I propose adding RELEASING.md and CHANGELOG.md as part of the release 
preparation.
   
   - Release Manager

I am willing to nominate myself as Release Manager for the first Backoffice UI 
release.

I have already performed the release-readiness audit and have been working 
through the release blockers, so I can continue the mechanical preparation and 
verification work.

However, because this is the first official release of this project, I would 
specifically like PMC guidance and approval before proceeding as Release 
Manager.

If the PMC is comfortable with me acting as RM, I am prepared to:
   
   - Prepare the release branch/tag.
   - Prepare the RC artifacts.
   - Generate and verify the SBOM.
   - Run RAT over the actual release artifact.
   - Generate checksums.
   - Sign the release artifacts.
   - Stage the release candidate.
   - Prepare the release vote email.
   - Monitor the vote.
   - Prepare the vote result.
   - Promote the artifacts after a successful vote.
   - Prepare the release announcement.

I would appreciate guidance from the PMC on whether I should proceed in this 
role and whether there are any Fineract-specific release steps beyond the 
documented process that I should follow.
   
   - Container release scope

The current container image builds successfully, but the audit identified a 
deployment issue:

The current nginx configuration does not proxy /api/ requests to Fineract.

As a result, an API request can fall through to the SPA shell.

The compose configuration also currently points at a third-party public demo 
host by default.

Additionally, the Dockerfile currently uses npm install rather than npm ci.

Therefore, I propose that the PMC/community explicitly decide whether the first 
official release is:

A. Source release only

or

B. Source release plus a convenience container image.

If the container is part of the official release scope, the identified 
deployment issues should be fixed and tested before the vote.

The ASF release policy states that official releases are source materials, 
while convenience binaries/bytecode packages may be distributed alongside the 
source release when they meet the applicable requirements.

Reference:

https://www.apache.org/legal/release-policy.html
   
   - Fineract compatibility

The current release-readiness audit validates the UI against Fineract head / 
1.16.0-SNAPSHOT.

The current evidence does not establish complete compatibility with Fineract 
1.15.

Therefore, I would like PMC/community guidance on whether the first Backoffice 
UI release should target:
   
   - Fineract 1.16.x / current head
   - Fineract 1.15.x
   - A documented compatibility range

If 1.15 compatibility is required, I propose adding an API compatibility check 
and a real-backend E2E matrix against a pinned Fineract 1.15 image before the 
release vote.

DEPENDENCY AND ASF LICENSING REVIEW

The dependency audit was performed against the full dependency tree as well as 
production dependencies.

The previous direct devDependency:

eslint-plugin-sonarjs

was licensed under LGPL-3.0-only.

It has been removed and replaced with permissively licensed alternatives under:

https://github.com/apache/fineract-backoffice-ui/pull/378

The current audit reports:

Category A:
1188 dependencies/components

Acknowledged BlueOak-1.0.0:
7

Category B:
2, test-only

Category X:
0

Unclassified:
0

Production dependencies:
25 packages, all Category A.

The project also added a licensing gate so future dependency changes are 
classified as:

Category A: PASS
Category B: REVIEW
Category X: BLOCK
Unknown: BLOCK

There is, however, one licensing question I would like the community/PMC to be 
aware of:

Blue Oak Model License 1.0.0 is not currently included in the ASF Category A 
list used by our automated policy.

There is an existing ASF Legal JIRA issue:

LEGAL-639:
https://issues.apache.org/jira/browse/LEGAL-639

That issue specifically discusses whether Blue Oak Model License 1.0.0 is 
acceptable for ASF Category A.

The license is currently acknowledged by the project's dependency audit rather 
than silently treated as ordinary Category A.

I would appreciate confirmation from the PMC/legal process on whether this 
treatment is appropriate for Fineract, or whether the project should take any 
additional action.

The dependency itself is currently only present through build tooling and is 
not part of the production dependency tree.

SBOM

For the release candidate, I propose that we regenerate the SBOM from the exact 
release candidate source tree.

The release package will therefore have an auditable dependency inventory 
corresponding to the actual release candidate rather than an earlier 
working-tree audit.

The current audit generated CycloneDX 1.6 SBOMs for:
   
   - Production dependencies
   - Full dependency tree

The existing SBOM limitation is that the current generator does not provide 
component hashes. This will be documented explicitly rather than presenting 
incomplete data as if it were complete.

The final release candidate SBOM will be regenerated and attached/staged with 
the release evidence for PMC review.

FUNCTIONAL READINESS

The functional audit currently identifies:

27 functional areas
333 routes
302 components

No TODO/FIXME/HACK markers were identified in the functional inventory.

The project currently provides functionality around the major Backoffice 
operational areas, including:
   
   - Dashboard
   - Clients
   - Groups
   - Centers
   - Loans
   - Savings
   - Shares
   - Products
   - Accounting
   - Tellers
   - Reports
   - System/configuration
   - Users
   - Roles
   - Permissions
   - Notifications
   - Search
   - Profile
   - Authentication
   - Two-factor authentication

The release audit also specifically verified the relationship between:
   
   - UI navigation
   - Route authorization
   - Action authorization
   - Fineract backend authorization

The goal is not to claim that every Fineract capability is perfectly 
represented in the UI. Instead, the release documentation should provide an 
explicit functional inventory and identify unsupported or known-limited areas.

KNOWN FUNCTIONAL LIMITATIONS

The current audit identified three functionality limitations caused by verified 
Fineract PostgreSQL defects rather than UI implementation gaps.

GLIM:

Creation fails with:

null value in column "principal_amount" of relation "glim_accounts" violates 
not-null constraint

GSIM:

The request is accepted and returns gsimId: 0, but no parent record is created.

Centre collection sheet:

command=generateCollectionSheet returns HTTP 500 due to:

operator does not exist: boolean = integer

These are tracked in:

https://github.com/apache/fineract-backoffice-ui/issues/376

They should be documented as known release limitations unless the corresponding 
Fineract defects are resolved before the release.

OTHER KNOWN LIMITATIONS

Hindi and Korean translations are currently approximately 20.9% complete.

Untranslated strings fall back to English.

One WCAG 2.1 AA contrast issue was identified in the current theme:

#3498db background
#ffffff foreground
3.15:1 contrast ratio

No WCAG compliance claim is being made for the release.

The RBAC route protection is defence-in-depth. Fineract Core remains the 
authoritative security boundary.

RELEASE ARTIFACT AND VERIFICATION PROPOSAL

For the release candidate I propose that we produce:
   
   - Source distribution
   - Detached ASCII-armored signature
   - SHA-512 checksum
   - Production SBOM
   - Full dependency SBOM
   - Dependency license report
   - RAT report
   - Release verification instructions
   - Changelog
   - Release notes

The candidate should be tested independently from the working tree.

RAT should be executed against the actual source distribution, not merely 
against the Git checkout.

The ASF release policy requires supplied packages to be cryptographically 
signed and requires LICENSE and NOTICE to correctly account for the contents of 
the package.

Reference:

https://www.apache.org/legal/release-policy.html

PROPOSED RELEASE PROCESS

Subject to PMC guidance, I propose the following sequence:
   
   - Resolve the remaining release blockers.
   - Agree on:      
      - release version
      - supported Fineract version
      - source-only vs source + container scope
      - Release Manager

   - Add/finalize release documentation.
   - Update version metadata.
   - Regenerate the SBOM from the final RC source tree.
   - Perform the final dependency and ASF licensing audit.
   - Build the release candidate from a clean checkout.
   - Run RAT against the release source archive.
   - Verify LICENSE and NOTICE.
   - Generate SHA-512 checksums.
   - Sign the source archive.
   - Verify the signature independently.
   - Stage the RC according to the applicable ASF/Fineract release process.
   - Send the [VOTE] thread to [email protected].
   - Keep the vote open for at least 72 hours under the normal ASF release 
policy.
   - Collect the required binding votes.
   - If approved, publish/promote the release according to ASF policy.
   - Publish the release announcement.
   - Tag the final release and update the project documentation.

The ASF policy requires at least three binding +1 votes and more positive than 
negative binding votes for a release, with release votes normally remaining 
open for at least 72 hours.

Reference:

https://www.apache.org/legal/release-policy.html

Fineract's existing release documentation:

https://fineract.apache.org/docs/current/

ASF voting process:

https://www.apache.org/foundation/voting.html

REQUEST FOR PMC / COMMUNITY GUIDANCE

Before I proceed with the remaining release engineering work, I would 
appreciate guidance on the following:
   
   - Is the community/PMC supportive of proceeding toward the first official 
Fineract Backoffice UI release?
   - Is 1.0.0 an appropriate version for the first official release, with 
1.0.0-RC.1 as the first release candidate?
   - Which Fineract version should the release officially target?
   - Should the first release be source-only, or should a container image be 
included?
   - Should the current Blue Oak Model License dependency treatment be 
considered acceptable, given LEGAL-639?
   - Is the PMC comfortable with me acting as Release Manager for this first 
release?
   - Are there any additional Fineract-specific release requirements that I 
should incorporate before creating the RC?
   - Are there any concerns with the current functional scope or known 
limitations that should prevent an RC from being prepared?

RELEASE MANAGER NOMINATION

I would like to explicitly volunteer to act as Release Manager for this first 
release.

I am willing to take responsibility for the release preparation and execution, 
including the audit, candidate preparation, artifact signing, staging, vote 
coordination, verification and final publication.

Since this would be the first official release of the Backoffice UI, I would 
prefer to proceed only after receiving explicit guidance/approval from the PMC 
on the mailing list.

If the PMC is comfortable with me taking the RM role, I can proceed with the 
remaining release work on a self-serve basis and keep the community updated 
through the release tracking issue and dev@ mailing list.

TRACKING

GitHub release tracking issue:

https://github.com/apache/fineract-backoffice-ui/issues/377

Known Fineract functionality issues:

https://github.com/apache/fineract-backoffice-ui/issues/376

Dependency licensing change:

https://github.com/apache/fineract-backoffice-ui/pull/378

ASF Legal JIRA — Blue Oak Model License:

https://issues.apache.org/jira/browse/LEGAL-639

ASF Release Policy:

https://www.apache.org/legal/release-policy.html

ASF Voting Process:

https://www.apache.org/foundation/voting.html

Fineract Release Process:

https://fineract.apache.org/docs/current/

SUMMARY

In summary, I believe the Backoffice UI is ready to begin the formal 
release-preparation process, with the remaining work primarily around release 
engineering, documentation, artifact scope, compatibility confirmation and PMC 
decisions.

I am not proposing that we vote on the release in this email.

I am proposing that we agree on the release direction first, resolve the 
remaining release blockers, and then prepare a reproducible 1.0.0-RC.1 
candidate for formal review and vote.

I am also volunteering to serve as Release Manager, subject to PMC guidance and 
approval.

Feedback, concerns, additional release requirements, and guidance on the 
proposed version, compatibility target and release scope would be very welcome.

Regards,

Aman Mittal
Apache Fineract Contributor/Committer





  

Reply via email to