Skip to content

Comments

chroma - Milestone 1 Delivery#15

Merged
ditavia-br merged 1 commit intoPolkadotOpenSourceGrants:masterfrom
preschian:chroma-delivery-m1
Feb 5, 2026
Merged

chroma - Milestone 1 Delivery#15
ditavia-br merged 1 commit intoPolkadotOpenSourceGrants:masterfrom
preschian:chroma-delivery-m1

Conversation

@preschian
Copy link

@preschian preschian commented Jan 13, 2026

Milestone Delivery Checklist

  • The delivery template has been copied and updated.
  • This pull request is being made by the same account as the accepted application.
  • I have disclosed any and all sources of reused code in the submitted repositories and have done my due diligence to meet its license requirements.
  • The delivery is according to the delivery guidelines.

Link to the application pull request: PolkadotOpenSourceGrants/apply#40

@preschian preschian marked this pull request as ready for review January 13, 2026 15:29
@ditavia-br ditavia-br self-assigned this Jan 23, 2026
@ditavia-br
Copy link

@preschian I've tried to evaluate your delivery but the docker build is failing with the error below. Can you assist with that?

docker build -t chroma-test . 
[+] Building 77.3s (14/16)                                                                                                                                                                          docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                                          0.0s
 => => transferring dockerfile: 1.25kB                                                                                                                                                                        0.0s
 => [internal] load metadata for mcr.microsoft.com/playwright:v1.57.0-noble                                                                                                                                   1.9s
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 493B                                                                                                                                                                             0.0s
 => [ 1/12] FROM mcr.microsoft.com/playwright:v1.57.0-noble@sha256:3bed4b1a12f2338642f3d8cba28e291deef3c66bd4a964bbeb3e57bbff511dbd                                                                          53.4s
 => => resolve mcr.microsoft.com/playwright:v1.57.0-noble@sha256:3bed4b1a12f2338642f3d8cba28e291deef3c66bd4a964bbeb3e57bbff511dbd                                                                             0.0s
 => => sha256:3bed4b1a12f2338642f3d8cba28e291deef3c66bd4a964bbeb3e57bbff511dbd 743B / 743B                                                                                                                    0.0s
 => => sha256:8fb7af3bb488c51364d6554876a8eddf377736608327dbdf4177b4901faf7bc9 1.17kB / 1.17kB                                                                                                                0.0s
 => => sha256:0ca538f7a23ddf86e8ad435b63ca2493aa0f0bb3ea9d371301ddebcb5f293ce9 4.68kB / 4.68kB                                                                                                                0.0s
 => => sha256:24f36c9a3b124af042822ce5c51ea914d84ec25d978996314399e646deccef2a 101.25MB / 101.25MB                                                                                                           25.7s
 => => sha256:cbd08ed6b2dc93a72c8e30cf1df028a9af599932f0801a60e1c92430653918b9 1.98MB / 1.98MB                                                                                                                0.6s
 => => sha256:de372fe83d1b986e12929e1b212d3cac63b185103e3c37fa03c1bae346f0d379 761.02MB / 761.02MB                                                                                                           35.4s
 => => extracting sha256:24f36c9a3b124af042822ce5c51ea914d84ec25d978996314399e646deccef2a                                                                                                                     3.3s
 => => extracting sha256:cbd08ed6b2dc93a72c8e30cf1df028a9af599932f0801a60e1c92430653918b9                                                                                                                     0.0s
 => => extracting sha256:de372fe83d1b986e12929e1b212d3cac63b185103e3c37fa03c1bae346f0d379                                                                                                                    17.7s
 => [internal] load build context                                                                                                                                                                             0.1s
 => => transferring context: 220.62kB                                                                                                                                                                         0.0s
 => [ 2/12] RUN apt-get update && apt-get install -y unzip && rm -rf /var/lib/apt/lists/*                                                                                                                    10.9s
 => [ 3/12] RUN curl -fsSL https://bun.sh/install | bash                                                                                                                                                      3.8s 
 => [ 4/12] WORKDIR /app                                                                                                                                                                                      0.0s 
 => [ 5/12] COPY package.json bun.lock ./                                                                                                                                                                     0.1s 
 => [ 6/12] COPY packages/chroma/package.json ./packages/chroma/                                                                                                                                              0.1s 
 => [ 7/12] COPY packages/examples/package.json ./packages/examples/                                                                                                                                          0.0s 
 => [ 8/12] RUN bun install --ignore-scripts                                                                                                                                                                  4.2s 
 => [ 9/12] COPY . .                                                                                                                                                                                          0.1s 
 => ERROR [10/12] RUN cd packages/chroma && bun run build                                                                                                                                                     2.5s 
------                                                                                                                                                                                                             
 > [10/12] RUN cd packages/chroma && bun run build:                                                                                                                                                                
0.357 $ tsdown                                                                                                                                                                                                     
0.538 ℹ tsdown v0.20.1 powered by rolldown v1.0.0-rc.1                                                                                                                                                             
0.636 ℹ config file: /app/packages/chroma/tsdown.config.ts                                                                                                                                                         
0.638 ℹ entry: src/index.ts                                                                                                                                                                                        
0.639 ℹ Build start
2.473 
2.473  ERROR  Error: Build failed with 1 error:
2.473 
2.473 [plugin rolldown-plugin-dts:fake-js] /app/node_modules/playwright-core/types/protocol.d.ts
2.473 Error: Unexpected StringLiteral declaration id
2.473     at TransformPluginContextImpl.transform (file:///app/node_modules/rolldown-plugin-dts/dist/index.mjs:149:46)
2.473     at plugin (file:///app/node_modules/rolldown/dist/shared/bindingify-input-options-Cb-01HR1.mjs:1184:30)
2.473     at plugin.<computed> (file:///app/node_modules/rolldown/dist/shared/bindingify-input-options-Cb-01HR1.mjs:1652:18)
2.473     at aggregateBindingErrorsIntoJsError (file:///app/node_modules/rolldown/dist/shared/bindingify-input-options-Cb-01HR1.mjs:621:18)
2.473     at unwrapBindingResult (file:///app/node_modules/rolldown/dist/shared/bindingify-input-options-Cb-01HR1.mjs:591:128)
2.473     at #build (file:///app/node_modules/rolldown/dist/shared/rolldown-build-KB1YaNe-.mjs:2360:34)
2.473     at async build (file:///app/node_modules/rolldown/dist/index.mjs:47:22)
2.473     at async Promise.all (index 0)
2.473     at async buildSingle (file:///app/node_modules/tsdown/dist/build-D8FjwDd9.mjs:844:19)
2.473     at async Promise.all (index 0)
2.473     at async buildWithConfigs (file:///app/node_modules/tsdown/dist/build-D8FjwDd9.mjs:805:18)
2.473     at async CAC.<anonymous> (file:///app/node_modules/tsdown/dist/run.mjs:23:2)
2.473     at async runCLI (file:///app/node_modules/tsdown/dist/run.mjs:47:3)
2.473 
2.510 error: script "build" exited with code 1
------
Dockerfile:32
--------------------
  30 |     
  31 |     # Build the Chroma package
  32 | >>> RUN cd packages/chroma && bun run build
  33 |     
  34 |     # Download wallet extensions
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c cd packages/chroma && bun run build" did not complete successfully: exit code: 1

@preschian
Copy link
Author

Hi @ditavia-br, it turns out there was a breaking change in one of the dependencies. I’ve just fixed it here: https://github.com/avalix-labs/chroma/pull/39/changes. It should now work again using the same command.

@ditavia-br
Copy link

@preschian I was able to run the tests now, but not all tests are passing. Please see the evaluation document and provide proper answers and fixes. Let me know when I can take a look again.

@preschian
Copy link
Author

Hi @ditavia-br, thank you for the evaluation. I also just found out that https://app.turtle.cool will be deprecated. That is a good point and I will adjust it first. I will ping you again once everything is done.

@preschian
Copy link
Author

Hi @ditavia-br, I have applied fixes based on the evaluation feedback. Below is a summary of the changes I have made:

  • Fixed the wallet version mismatch between the README and the code.

  • Unit tests have been added. Since most of the context uses Playwright, the remaining parts are covered by E2E testing.

  • The previously skipped tests were due to the Talisman wallet being almost finished but not yet 100% complete on the code side. These will be completed in Milestone 2.

  • From the two links above, the E2E tests are now running against a local dApp. The UI is now consistent. However, for network-related issues, since the tests use testnet endpoints, the network can sometimes be unstable, especially the Polkadot Hub Testnet smart contract endpoint, which is the most unstable. It is not only flaky but can also fail entirely. For now, I intend to continue using the Polkadot Hub Testnet endpoint. If it continues to be disruptive over the next few months, I may switch to another more stable EVM testnet.

  • Additional article: https://medium.com/@avalix/end-to-end-wallet-testing-for-smart-contracts-on-polkadot-using-playwright-and-chroma-d7ef1b18b81b

@ditavia-br
Copy link

@preschian thanks for the update. I checked again and I can see the e2e tests running, what is great! However, the unit tests is still with low coverage. Please take a look at the comments in the evaluation document and let me know when I can check again.

@preschian
Copy link
Author

Hi @ditavia-br, thank you for the follow up. Test coverage has now been added. I also explicitly excluded some parts of the code from unit test coverage because they require real APIs from the Chromium extension. I have also added the test matrix here: https://github.com/avalix-labs/chroma/blob/main/packages/chroma/TEST_MATRIX.md

I have also added a homepage for detailed documentation. For example, for CI/CD setup or Docker usage, users can visit https://chroma-docs.up.railway.app for more details. I have also included this documentation website in the package.json, so when users open https://www.npmjs.com/package/@avalix/chroma, the homepage section will point to that documentation website.

By the way, the E2E tests inside the "packages/chroma" folder are also intended as a playground or experimental area. This part is not meant to run in the main test suite or CI/CD, and the code there may be messy. Reviewers can safely ignore this section. https://github.com/avalix-labs/chroma/blob/3d5b8fef8034166ce9c3298183daff6080e8f4a9/packages/chroma/playwright.config.ts#L7-L11

@ditavia-br
Copy link

@preschian Thanks for the update. Now the automated unit tests are with high coverage. The milestone is accepted. Great work!

@ditavia-br ditavia-br merged commit 13f77d9 into PolkadotOpenSourceGrants:master Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants