Developer Experience Team - Monthly Update #19 (July 2024)

Developer Experience Team - Monthly Update #19 (July 2024)

July 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.

Developer Promotions

Chromia ProjectNet

A quick reminder to everyone interested in Chromia development: ProjectNet is accepting submissions until July 26th! With prizes of 20k, 16k, and 12k CHR for the top dapps, now is your chance to demonstrate what Rell can do. Go to www.chromia.com/test/projectnet for full details.

Documentation and Educational Materials

Chromia Official Documentation

  • Updated the ICCF Dependency Documentation
  • Updated the ICCF/ICMF Documentation
  • Added a section about the Ethereum Interoperability Framework
  • Updated the FT4 Documentation

Chromia Learn

  • Added two new courses, ‘Build a decentralized marketplace’ and ‘Monetize your dapp.’
  • Updated three courses, ‘Build an even-driven multi-blockchain dapp’, ‘Confirm events across blockchains’, and ‘Web3 for Web2 developers’. 
  • Built a Google Form that allows Chromia Learn users to report any problems or difficulties encountered while working on courses and guides. 
  • Chromia Learn currently offers 9 courses and 5 guides. If you’ve never coded in Rell, give it a try!

Tooling and Feature Updates

Rell Doc Comments

Rell Doc Comments is a new language feature that allows a user to insert documentation that will be included in VS Code Hover Docs and your dapp’s API Reference documentation. Defining a Rell Doc Comment is similar to defining a multi-line comment, except you use 2 asterisks at the beginning, like this:

/*** The Comment Goes Here*/

Once you have defined a Rell Doc Comment, the comment will be expressed in two ways: 

1. Through the hover feature in VS Code:

When a user hovers over a user defined reference, the Rell Docs Comment will be part of the hover docs that are shown to the user. The gif below demonstrates this functionality.

2. In your dapp’s API Documentation generated through Chromia CLI: 

When a user generates API Documentation through the Chromia CLI, the Rell Doc Comments will be part of the generated documentation. For example;

module;

/**

* Represents a house with a front door

*/

entity house {

    /** State representing if the front door is open or not */

    mutable is_frontdoor_open: boolean = false;

}

/**

* Turns doorknob

*

* Turns doorknob on house by twisting it in the correct direction

* @param house the house on which to turn the dorknob on

* @returns true if the frontdoor is now open

*/

function turn_doorknob(house): boolean {

    val is_open = not house.is_frontdoor_open;

    house.is_frontdoor_open = is_open;

    return is_open;

}

Will generate the following docs:

The addition of Rell Doc Comments allows developers to document their source code in a more structured and direct manner, making it easier for others to understand their code while also streamlining API reference creation. . 

VS Code Extension

  • We have added functionality for user defined hover docs. The extension now provides hover documentation not only for system library elements, but also for user-defined types, function signatures, and other tokens. This hover documentation also supports the new feature of Rell Docs Comment.
  • We've enhanced the renaming functionality to handle type shortcut references more effectively. Previously, renaming a type shortcut could lead to broken refactoring. The updated functionality now distinguishes between types and type references during renaming, preventing refactoring issues and ensuring smoother renaming processes. Here is a gif demonstrating this feature in action:

Chromia CLI

  • Code-generation: Boolean Rell type for queries and operations (input and return) is now typed as number when generating for Typescript.
  • Code-generation: will now exit with non-zero exit code, when code-generation was not successful.
  • chr tx now awaits transactions by default. Use --no-await to skip waiting for confirmation.

Current Development Objectives

  • Dynamically responding to feature requests from active developers.
  • Maximizing overall stability and increasing the maintainability of the codebase, to prepare for increased open source contributions from the larger Chromia development community.
  • Still working to integrate the formatter into the Chromia CLI and add minification support for the Rell compiler. These are longer term goals with no set timeline, as the first two objectives will take precedence. 

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