PHPackages                             rossaddison/invoice - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. rossaddison/invoice

ActiveProject[Database &amp; ORM](/categories/database)

rossaddison/invoice
===================

Builds the invoice folder for rossaddison/yii3-i

10[3 issues](https://github.com/rossaddison/invoice/issues)[11 PRs](https://github.com/rossaddison/invoice/pulls)PHPCI passing

Since Sep 26Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/rossaddison/invoice)[ Packagist](https://packagist.org/packages/rossaddison/invoice)[ RSS](/packages/rossaddison-invoice/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (37)Used By (0)

[![Yii3](https://camo.githubusercontent.com/d6b0929173e28cc627430d2519ca1853466a70f37395877eaf4820cb3e1e1909/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506f77657265645f62792d5969695f4672616d65776f726b2d677265656e2e7376673f7374796c653d666c6174)](https://www.yiiframework.com/)[![License](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](https://opensource.org/licenses/MIT)[![stable](https://camo.githubusercontent.com/1c1303e0a0fd04f6adf702a71ecabeeebe2c7c401091457bae102d9c12c4a7ea/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4e6f25323052656c65617365266d6573736167653d302e302e3026636f6c6f723d396366)](https://camo.githubusercontent.com/1c1303e0a0fd04f6adf702a71ecabeeebe2c7c401091457bae102d9c12c4a7ea/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4e6f25323052656c65617365266d6573736167653d302e302e3026636f6c6f723d396366)
[![Downloads](https://camo.githubusercontent.com/464a8d398cbacaaa8570fc3336414b5e8c52afc2612481a9e82e0eb30bb31cb1/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4176672f776b266d6573736167653d3132303026636f6c6f723d396366)](https://camo.githubusercontent.com/464a8d398cbacaaa8570fc3336414b5e8c52afc2612481a9e82e0eb30bb31cb1/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4176672f776b266d6573736167653d3132303026636f6c6f723d396366)
[![Build](https://camo.githubusercontent.com/339e2f6d56382dea70e32a9fb1a5d5e1e3c20578b15dfcf5e46e6d922019bf5b/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4275696c64266d6573736167653d50617373696e6726636f6c6f723d363666663030)](https://camo.githubusercontent.com/339e2f6d56382dea70e32a9fb1a5d5e1e3c20578b15dfcf5e46e6d922019bf5b/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4275696c64266d6573736167653d50617373696e6726636f6c6f723d363666663030)[![Dependency Checker](https://camo.githubusercontent.com/a697ac2c8533107b6940c097cc03e2389003b58a60c1ea6003f78c2a0c0608a3/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d446570656e64656e6379253230436865636b6572266d6573736167653d50617373696e6726636f6c6f723d363666663030)](https://camo.githubusercontent.com/a697ac2c8533107b6940c097cc03e2389003b58a60c1ea6003f78c2a0c0608a3/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d446570656e64656e6379253230436865636b6572266d6573736167653d50617373696e6726636f6c6f723d363666663030)[![Static Analysis](https://camo.githubusercontent.com/ac6a4e827dfc010217cce0f8d5af07bb686a85edc04c52a027c1b9844b966081/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d537461746963253230416e616c79736973266d6573736167653d50617373696e6726636f6c6f723d363666663030)](https://camo.githubusercontent.com/ac6a4e827dfc010217cce0f8d5af07bb686a85edc04c52a027c1b9844b966081/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d537461746963253230416e616c79736973266d6573736167653d50617373696e6726636f6c6f723d363666663030)[![Psalm Level](https://camo.githubusercontent.com/49bf6e20e0f35ba8c49436ea401feb5090c2357bb8b4932ba61dd286bb5867e3/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d5073616c6d2532304c6576656c266d6573736167653d3126636f6c6f723d363666663030)](https://camo.githubusercontent.com/49bf6e20e0f35ba8c49436ea401feb5090c2357bb8b4932ba61dd286bb5867e3/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d5073616c6d2532304c6576656c266d6573736167653d3126636f6c6f723d363666663030)[![type-coverage](https://camo.githubusercontent.com/983fab042fa6551406687d1e2d6e0f689cb79738a84b11c10010d6ffc7609a40/68747470733a2f2f73686570686572642e6465762f6769746875622f726f737361646469736f6e2f696e766f6963652f636f7665726167652e737667)](https://shepherd.dev/github/rossaddison/invoice)[![PHP-CS-Fixer](https://camo.githubusercontent.com/a27b33fd4401e3ecdbd7e617b8b770ea2c6a4f3d50156dae4cfa936490d23232/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d2d63732d2d66697865722d656e61626c65642d626c75653f6c6f676f3d706870)](https://github.com/FriendsOfPHP/PHP-CS-Fixer)[![Stats](https://camo.githubusercontent.com/4e3358da6af90eb466fd5c98cdec184d81156c59f4c129f08f5031321bab0082/68747470733a2f2f6769746875622d726561646d652d73746174732e76657263656c2e6170702f6170693f757365726e616d653d726f737361646469736f6e)](https://camo.githubusercontent.com/4e3358da6af90eb466fd5c98cdec184d81156c59f4c129f08f5031321bab0082/68747470733a2f2f6769746875622d726561646d652d73746174732e76657263656c2e6170702f6170693f757365726e616d653d726f737361646469736f6e)[![Hosted by Vultr](https://camo.githubusercontent.com/b78313c399c694e1dd9337bfd10746e1f6777322119628bb4270d2d6c5bb0d8f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f686f7374696e672d76756c74722532302879696933692e6f6e6c696e65292d626c75653f6c6f676f3d76756c7472267374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/b78313c399c694e1dd9337bfd10746e1f6777322119628bb4270d2d6c5bb0d8f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f686f7374696e672d76756c74722532302879696933692e6f6e6c696e65292d626c75653f6c6f676f3d76756c7472267374796c653d666c61742d737175617265)

(Place the contents of this download into the yii3-i invoice folder or run as a separate repository.)

Yii3-i (Rossaddison/Invoice)
============================

[](#yii3-i-rossaddisoninvoice)

A professional Open Source E-Invoicing System for PHP (Yii3) with UBL 2.1 and Peppol support.

Features
--------

[](#features)

### Vat Support

[](#vat-support)

### Multi-Currency Billing

[](#multi-currency-billing)

### Peppol UBL 2.1 E-Invoicing

[](#peppol-ubl-21-e-invoicing)

Automated generation and transmission of compliant UBL 2.1 documents via the Peppol network.

**Recent Implementations**

[Eslint Sonarqube Build Session](docs/ESLINT_SONARQUBE_BUILD_SESSION.md) (March 2026)

[Avoiding RBAC Mutation](docs/AVOIDING_RBAC_MUTATION.md) (March 2026)

[Php 8.4 Alpine Setup](docs/PHP84_ALPINE_SETUP.md) (March 2026)

[Future Peppol Mena](docs/FUTURE_PEPPOL_MENA.md) (March 2026)

[Future Peppol Nigeria](docs/FUTURE_PEPPOL_NIGERIA.md) (March 2026)

[Future Peppol Republic of South Africa](docs/FUTURE_PEPPOL_RSA.md) (March 2026)

[Future Peppol UK](docs/FUTURE_PEPPOL_UK.md) (March 2026)

[Mobile-Desktop Toggle Toolbar](docs/MOBILE_DESKTOP_TOOLBAR.md) (March 2026)

[ssl.conf explained](docs/SSL_CONF_EXPLAINED.md) (March 2026)

[Why Apache?](docs/WHY_APACHE.md) (March 2026)

[Apache2 vs. Nginx](docs/APACHE_VS_NGINX.md) (March 2026)

[Vultr Alpine Security](docs/VULTR_ALPINE_SECURITY.md) (March 2026)

[phpMyAdmin Vulnerabilities on Alpine](docs/PHPMYADMIN_VULNERABILITIES_ON_ALPINE.md) (March 2026)

[AuthController Production Environment Fix](docs/AUTHCONTROLLER_PROD_ENV_FIX.md) (March 2026)

[Content Security Policy Updates](docs/CONTENT_SECURITY_POLICY_UPDATES.md) (March 2026)

[Email Setup for yii3i.online](docs/EMAIL_SETUP_SUMMARY.md) (March 2026)

[Automerge Renovate's dependency updates if tests pass](docs/RENOVATE_AUTOMERGE.md) (Feb 2026)

[Fraud Prevention Headers Bugfix](docs/FPH_BUTTON_EVENT_BINDING_BUG_REPORT.md) (Feb 2026)

[UK e-invoicing B2B/B2G 2029](docs/UK-E-INVOICING-MANDATE.md) (Jan 2026)

[PeppolValidator Integration.](docs/PEPPOL_VALIDATOR.md) (Jan 2026)

[CreditNote Integration.](docs/CREDIT_NOTE_WORKFLOW.md) (Jan 2026)

[VitePress Integration.](https://vitepress.dev/guide/getting-started) (Dec 2025)

[Prometheus Integration.](docs/PROMETHEUS_INTEGRATION.md) (Dec 2025)

[Prometheus Menu Integration.](docs/PROMETHEUS_MENU_INTEGRATION.md) (Dec 2025)

[Sonar Cloud Setup.](docs/SONARCLOUD_SETUP.md) (Nov 2025)

[Netbeans ↔️ Vs Code: Sync Guide.](docs/NETBEANS_SYNC_GUIDE.md) (Dec 2025)

[Php Product Selection Workflow.](docs/PHP_PRODUCT_SELECTION_WORKFLOW.md) (Dec 2025)

[Security Commands.](docs/SECURITY_COMMANDS.md) (Dec 2025)

[Typescript Build Process.](docs/TYPESCRIPT_BUILD_PROCESS.md) (Dec 2025)

[Typescript ES2023 Modernization.](docs/TYPESCRIPT_ES2023_MODERNIZATION.md) (Dec 2025)

[Typescript ES2024 Modernization.](docs/TYPESCRIPT_ES2024_MODERNIZATION.md) (Dec 2025)

[Typescript Go V7 Compatability Testing Guide.](docs/TYPESCRIPT_GO_V7_COMPATIBILITY_TESTING_GUIDE.md) (Dec 2025)

[Invoice Amount Magnifier using Angular.](docs/INVOICE_AMOUNT_MAGNIFIER.md) (Dec 2025)

[Family Commalist Picker using Angular.](docs/FAMILY_COMMALIST_PICKER.md) (Dec 2025)

[Cycle ORM HasOne and outerKey Issue.](docs/CYCLE_ORM_HASONE_OUTERKEY_ISSUE.md) (Jan 2026)

[Cycle ORM Join Optimization.](docs/CYCLE_ORM_JOIN_OPTIMIZATION.md) (Jan 2026)

[Cycle ORM Foreign Key Constraint Issue.](docs/CYCLE_ORM_FOREIGN_KEY_CONSTRAINT_ISSUE.md) (Jan 2026)

[Netbeans IDE 25-28 Guide.](docs/NETBEANS_IDE25_GUIDE.md) (Dec 2025)

[Tooltip Styles Configuration.](docs/TOOLTIP_STYLES_CONFIGURATION.md) (Jan 2026)

**Feature Specifics**

- Cycle ORM Interface using Invoiceplane type database schema.
- Generate VAT invoices using mPDF.
- Code Generator - Controller to views.
- PCI-compliant payment gateway interfaces – Braintree Sandbox, Stripe Sandbox, and Amazon Pay integration tested.
- Generate OpenPeppol UBL 2.1 Invoice 3.0.15 XML invoices – validated with Ecosio.
- StoreCove API connector with JSON invoice.
- Invoice cycle – Quote to Sales Order (with client's purchase order details) to Invoice.
- Multiple language compliant – steps to generate new language files included.
- Separate Client Console and Company Console.
- Install with Composer.
- SonarQubeCloud / SonarCloud Code Analysis
- NetBeans 28 &amp;&amp; Vs Code IDE Integration
- Eclipse IDE Integration
- SonarLint4NetBeans Plugin - Tools ... Options ... Miscellaneous ... php ... Rules

**Installing with Composer in Windows***`composer update`*

After a composer update, you'll need to manually:

1. Set `BUILD_DATABASE=true` in your `.env` file
2. Start the application to trigger table creation
3. Reset `BUILD_DATABASE=` for better performance

**Installing npm\_modules**

- Step 1: Download node.js at
- Step 2: Ensure C:\\ProgramFiles\\nodejs is in environment variable path. Search ... edit the system environment variables
- Step 3: Run `npm i` in `c:\wamp64\invoice` folder. This will install @popperjs, Bootstrap 5, and TypeScript into a new node\_modules folder.
- Step 4: Keep your npm up to date by running, for example, `npm install -g npm@10.8.1` or just `npm install -g`.

**Recommended php.ini settings**

- Step 1: Wampserver ... Php {version} ... Php Settings ... xdebug.mode = off
- Step 2: ... Maximum Execution Time = 360

**Installing the database in mySql**

1. Create a database in mySql called yii3\_i.
2. The BUILD\_DATABASE=true setting in the config/common/params.php file will ensure a firstrun setup of tables.
3. After the setup of tables, ensure that this setting is changed back to false otherwise you will get performance issues.

The c:\\wamp64\\yii3-i\\config\\common\\params.php file line approx. 193 will automatically build up the tables under database yii3-i.

`'mode' => $_ENV['BUILD_DATABASE'] ? PhpFileSchemaProvider::MODE_WRITE_ONLY : PhpFileSchemaProvider::MODE_READ_AND_WRITE,`

\*\* If you adjust any Entity file you will have to always make two adjustments to\*\* \*\* ensure the database is updated with the new changes and relevant fields: \*\*

- 1. Change the BUILD\_DATABASE=false in the .env file at the root to BUILD\_DATABASE=true
- 2. Once the changes have been reflected and you have checked them via e.g. phpMyAdmin revert back to the original settings

Signup your first user using **+ Person icon**. This user will automatically be assigned the admin role. If you do not have an internet connection you will receive an email failed message but you will still be able to login.

You or your customer, signup the second user as your Client/Customer. They will automatically be assigned the observer role. If you do not have an internet connection you will get a failed message but if your admin makes the 'Invoice User Account' status active the user will be able to log in.

If a user signs up by email, they will automatically be assigned as a client, and automatically be made active.

**If your user has not signed up by email verification, to enable your signed-up Client to make payments:**

- Step 1: Make sure you have created a client ie. Client ... View ... New
- Step 2: Create a Settings...Invoice User Account
- Step 3: Use the Assigned Client ... Burger Button ... and assign the New User Account to an existing Client.
- Step 4: Make sure they are active.
- Step 5: Make sure the relevant invoice has the status 'sent' either by manually editing the status of the invoice under Invoice ... View ... Options or by actually sending the invoice to the client by email under Invoice ... View ... Options.

**To install at least a service and a product, and a foreign and a non-foreign client automatically, please follow these steps:**

- Step 1: Settings ... View ... General ... Install Test Data ... Yes AND Use Test Date ... Yes
- Step 2: In the settings menu, you will now see 'Test data can now be installed'. Click on it.

**The package by default will not use VAT and will use the traditional Invoiceplane type installation providing both line-item tax and invoice tax**

**If you require VAT based invoices, ensure VAT is setup by going to Settings ... Views ... Value Added Tax and use a separate database for this purpose. Only line-item tax will be available.**

**Steps to translate into another language:**

GeneratorController includes a function google\_translate\_lang ...
This function takes the English app\_lang.php array auto generated in

`src/Invoice/Language/English`

and translates it into the chosen locale (Settings...View...Google Translate) outputting it to `resources/views/generator/output_overwrite.`

- Step 1: Download  into active c:\\wamp64\\bin\\php\\php8.1.12 folder.
- Step 2: Select your project that you created under
- Step 3: Click on Actions icon and select Manage Keys.
- Step 4: Add Key.
- Step 5: Choose the JSON File option and download the file to src/Invoice/Google\_translate\_unique\_folder.
- Step 6: You will have to enable the Cloud Translation API and provide your billing details. You will be charged 0 currency.
- Step 7: Move the file from views/generator/output\_overwrite to eg. src/Invoice/Language/{your language}

**Xml electronic invoices - Can be output if the following sequence is followed:**

- a: A logged in Client sets up their Peppol details on their side via Client...View...Options...Edit Peppol Details for e-invoicing.
- b: A quote is created and sent by the Administrator to the Client.
- c: A logged in Client creates a sales order from the quote with their purchase order number, purchase order line number, and their contact person in the modal.
- d: A logged in Client, on each of the sales order line items, inputs their line item purchase order reference number, and their purchase order line number. (Mandatory or else exception will be raised).
- e: A logged in Administrator, requests that terms and conditions be accepted.
- f: A logged in Client accepts the terms and conditions.
- g: A logged in Administrator, updates the status of the sales order from assembled, approved, confirmed, to generate.
- h: A logged in Administrator can generate an invoice if the sales order status is on 'generate'
- i: A logged in Administrator can now generate a Peppol XML Invoice using today's exchange rates set up in Settings...View...Peppol Electronic Invoicing...One of From Currency and one of To Currency.
- j: Peppol exceptions will be raised.

Renovate Auto-Merge Configuration
---------------------------------

[](#renovate-auto-merge-configuration)

This repository uses Renovate Bot with auto-merge functionality enabled. The `platformAutomerge` is set to `true`, which enables GitHub's native auto-merge feature for Renovate pull requests.

### Auto-Merge Requirements

[](#auto-merge-requirements)

**IMPORTANT:** Before any auto-merge occurs, all required checks must pass, including:

#### ✅ Required Tests

[](#-required-tests)

- **Psalm Static Analysis** - Must pass successfully
- All other CI/CD pipeline tests must pass
- Branch protection rules must be satisfied

### How It Works

[](#how-it-works)

1. Renovate creates a pull request for a dependency update
2. GitHub's auto-merge is automatically enabled on the PR
3. GitHub Actions/CI pipeline runs automatically
4. **Psalm static analysis tests are executed**
5. If Psalm and all other required checks pass ✅
    - GitHub automatically merges the PR to `main`
6. If Psalm or any check fails ❌
    - The PR remains open
    - No auto-merge occurs
    - Manual review and fixes are required

### Protection Mechanism

[](#protection-mechanism)

The auto-merge will **NOT** proceed if:

- ❌ Psalm detects any type errors or issues
- ❌ Any required status check fails
- ❌ Branch protection rules are not met
- ❌ Merge conflicts exist

This ensures that only dependency updates that pass all quality gates (including Psalm static analysis) are automatically merged to the main branch.

### Configuration

[](#configuration)

The Renovate configuration in `renovate.json` includes:

```
{
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": [
        "config:recommended"
    ],
    "platformAutomerge": true,
    "major": {
        "dependencyDashboardApproval": true
    }
}
```

The `platformAutomerge: true` setting leverages GitHub's native auto-merge functionality, working in conjunction with your branch protection rules and required status checks to maintain code quality.

### Benefits

[](#benefits)

- 🚀 Faster dependency updates
- 🛡️ Protected by Psalm static analysis
- ✅ Only merges when all tests pass
- 🔒 Main branch remains stable
- 🔄 Uses GitHub's native auto-merge feature

### Additional Notes

[](#additional-notes)

Major version updates require manual approval via the Renovate Dependency Dashboard due to the "dependencyDashboardApproval": true setting for major updates.

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance40

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 81.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/79f16141a5b619c098d6bec3812cd770dfc9b48eacc093f4ef88fbf20e735ec1?d=identicon)[yii2house2house](/maintainers/yii2house2house)

---

Top Contributors

[![rossaddison](https://avatars.githubusercontent.com/u/8538339?v=4)](https://github.com/rossaddison "rossaddison (1272 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (123 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (57 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (50 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (33 commits)")[![snyk-bot](https://avatars.githubusercontent.com/u/19733683?v=4)](https://github.com/snyk-bot "snyk-bot (22 commits)")

---

Tags

30-languagesangularbillingcleaning-softwarecode-for-africae-invoicinghacktoberfestinvoice-automationmaking-tax-digitalnode-js-22ormpeppolphpself-hostedtax-calculationtypescripttypescript-go-v7ubl-2-1window-cleaningyii3

### Embed Badge

![Health badge](/badges/rossaddison-invoice/health.svg)

```
[![Health](https://phpackages.com/badges/rossaddison-invoice/health.svg)](https://phpackages.com/packages/rossaddison-invoice)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90440.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)[wildside/userstamps

Laravel Userstamps provides an Eloquent trait which automatically maintains `created\_by` and `updated\_by` columns on your model, populated by the currently authenticated user in your application.

7511.7M13](/packages/wildside-userstamps)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
