Developer Experience Team - Monthly Update #20 (August 2024)

Developer Experience Team - Monthly Update #20 (August 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 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

Chromia ProjectNet, part of our Incentivized Testing Program, was a demo dapp contest for the developer community. The application window closed on August 2nd, and we are now evaluating the submissions and choosing winners. A ProjectNet Rundown was shared last week on the Chromia blog. 

Documentation and Educational Materials

Chromia Official Documentation

Updated the ‘Chromia Overview’ section:

  • Improved the ‘Chromia Overview’ section to give a clearer, up-to-date introduction to Chromia. It now includes detailed information about its architecture, various blockchains, and the token bridge. We’ve also added a thorough explanation of how Chromia connects with other blockchains through its token bridge technology. This update aims to help readers better understand Chromia’s unique features, advantages, and how it fits into the larger blockchain world.

Added dapp deployment instructions in a new section, ‘Deploy to Mainnet’:

  • Discover how to launch your dapp on Chromia's mainnet with our new step-by-step guide. This section provides all the essentials, including prerequisites, obtaining a container for your dapp, the deployment process, and connecting a client. It’s designed to help developers of all levels successfully go live.

Updated the ‘Rell Language’ section:

  • We’ve enhanced the ‘Rell Language’ section with the latest updates and improvements. This includes updated syntax and additional advanced usage examples. We’ve also fixed errors in existing examples to ensure accuracy. These changes provide a more detailed overview of Rell’s capabilities and integration with the Chromia ecosystem, helping you use Rell more effectively.


Chromia Learn

Added a new course, ‘Understand relationships in Rell’:

  • This course covers data modelling and implementing relationships in Rell, including one-to-one, one-to-many, and many-to-many relationships. We’ll also explore different types of joins, such as inner and outer joins, to help you build functional and scalable applications. Designed for those with a basic SQL background, this course will guide you in applying your SQL knowledge to Rell, enhancing your ability to create robust data models and advance your application development skills.

Improved existing courses:

  • We’ve updated our courses with several key improvements: code syntax errors have been fixed, examples have been enhanced, and content has been refined. Additionally, we've added links to the code repositories for each course, allowing you to access and explore the code directly. These updates aim to provide a more effective learning experience, helping you to better understand the material and apply your skills with the most accurate resources available.

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

Tooling and Feature Updates

VS Code Extension

We are pleased to introduce Rell Linter V1, a code analysis tool that helps Rell developers detect potential issues at an early stage while also enforcing best practices.

Fun Fact: A linter is a tool that analyzes code to detect problems. The term ‘linter’ comes from a tool originally called “lint” that analyzed C source code, developed by computer scientist Stephen C. Johnson in 1978 at Bell Labs.

Linter rules we currently support:

  • Naming convention - Checks for snake case naming for function and variables
  • Import from non-module - Warns about imports from non-module files
  • Quote format - Specifies if single or double quotes should be used
  • Formatter - Instructs the Linter to detect and warn the user about violations of the formatting rules they defined in ‘rell.format
  • Constant detection - Detects variables that could be declared as constants
  • Unused variable - Warns about declared but unused variables

To configure these Linter rules, add a ‘.rell_lint’ file to your project root. Inside this file, you can set the rules according to your preferences:

[*.rell]

# Check Rell naming convention (true | false)

rule_naming_convention=true

# Warns about imports from non module files (true | false)

rule_import_from_non_module=true

# Preferred quote format (double | single)

rule_quote_format=double

# Rell formatter integration. detects violations as you type (true | false)

rule_formatter=true

# Detects variables that could be declared as constants (true | false)

rule_constant_detection=true

# Warns about declared but unused variables (true | false)

rule_unused_variable=true

The Rell Linter automatically detects errors and gives suggestions based on your preferences. 

Chromia CLI

Added new commands: `chr code lint`  and `chr code format`. These allow developers to utilize Linter functions to generate suggestion logs and automatically format code based on preferences. These functions are especially useful for maintaining consistency in large code bases with multiple contributors. 

  • `chr code lint` analyzes Rell code to find potential issues and coding style violations throughout a project. Configurable using ‘.rell_lint’ file.

  • `chr code lint –fix` will automatically fix issues, if possible.

  • chr code format’ automatically formats Rell code across an entire project. Configurable using ‘.rell_format’ file

Summary of this Update

  • The ProjectNet demo dapp contest deadline was August 2nd. 

  • Added a new documentation section about deploying dapps to mainnet.

  • Added a new course, ‘Understand relationships in Rell’.

  • We have released the Rell Linter, which is utilized through the VS Code plugin and Chromia CLI to automatically detect and resolve procedural and formatting errors within Rell code. 

Until Next Month,

Chromia DevEx Team