Developer Experience Team - Monthly Update #18 (June 2024)

Developer Experience Team - Monthly Update #18 (June 2024)

June 15, 2024

Greetings Chromia Developers and Community,

Welcome to the mid-month DevEx Update! These updates inform you about the latest improvements being made to documentation and tooling in order to support the growth of the Chromia ecosystem.

Please note, monthly retail updates focusing on mainnet development, partnerships, ecosystem news and marketing efforts are released at the end of each month.

Documentation and Educational Materials

Chromia Technical Blog Series

On May 22nd, the second entry in the Chromia Technical Blog was published. Check out “Mastering Code Style” to pick up some best practices about how to organize your code, making it easier to read and maintain.

Educational Materials

Chromia Learn currently offers 7 courses and 5 guides. If you’ve never coded in Rell, give it a try!

Tooling and Feature Updates

VS Code Extension

In the previous update, we discussed a shift from adding new features to a process of maximizing stability and maintainability. This process is now underway. 

Chromia CLI

While a similar process is underway for Chromia CLI, we are still responding dynamically to the needs of developers from around the ecosystem. As a result, we ended up adding additional features and making other improvements: 

Libraries:

When devs build Rell libraries , we want to make it as easy as possible for these libraries to be published. This in turn makes it easier for other developers to adopt their work, and build quality dapps at a faster pace. To facilitate this, we have made several improvements to the library creation process.

  • New library template chr create-rell-dapp --template plain-library which creates a library skeleton.
  • Support for compiling libraries using new yaml field (blockchains::type), which can be either blockchain or library. Developers can configure a blockchain as a library using the following notation:

Example with blockchain field type in chromia.yaml:blockchains

  my_lib:

    module: lib.my_lib

    type: library

A library must follow the following requirements:

  • Located in lib/<name>
  • must match the blockchain name in the yaml.
  • root module (lib.<name>) must exist (can be just a module; in the file)
  • Everything inside lib/<name> is considered part of the library. This means test modules (utils) can be placed here, but tests are best to put elsewhere.

Documentation Generation

We now support automatic links to source code definitions in the generated documentation site of your Rell Code!

Earlier this year, we added functionality that allows developers to automatically generate an API reference document based on their Rell dapp. We have now added support for automatic <source> links in the documentation that direct the viewer to the relevant source code.

Here’s how to configure this feature in your chromia.yml:

docs:

    title: My Dapp

    sourceLink:

         remoteUrl: https://github.com/chromia/foobar/src

         remoteLineSuffix: "#L"

Below, there is a picture showing the result of this configuration. The “(source)” text will direct to the relevant code.

Client Stub Generation 

  • We have updated the generation of ts-client stubs to better align with types used by the postchain-client.

General

  • Support for JSON output has been added to the deployment inspect and info commands. A new argument, --output-format=(table | JSON), allows you to specify the desired format. If no argument is provided, the default output format is table. When the output is piped, it defaults to JSON format.

Current Development Objectives

  • Integrating the formatter into the Chromia CLI, enabling the formatting of an entire workspace with a single command entry.
  • Adding ‘minification’ support for the Rell compiler, enabling it to strip comments and whitespace from code to reduce the memory size of programs that will be hosted on-chain.
  • Maximizing overall stability and increasing the maintainability of the codebase, to prepare for increased open source contributions from the larger Chromia development community.

Until Next Month,

Chromia DevEx Team

About Chromia

Chromia is a Layer-1 relational blockchain platform that uses a modular framework to empower users and developers with dedicated dapp chains, customizable fee structures, and enhanced digital assets. By fundamentally changing how information is structured on the blockchain, Chromia provides natively queryable data indexed in real-time, challenging the status quo to deliver innovations that will streamline the end-user experience and facilitate new Web3 business models.

Website | Twitter | Telegram | Facebook | Instagram | Youtube | Discord