Skip to content

Releases: Codeplain-ai/codeplain

Introduce ***plain Modules

Choose a tag to compare

@tjazerzen tjazerzen released this 21 Jan 15:26

Overview

We’re introducing support for reusable modules in ***plain.

What’s new

You can now include modules in a ***plain spec using Markdown frontmatter.

Example (hello world React):

---
import:
  - typescript-react-app-template
requires:
  - typescript-react-app-boilerplate
---

***functional specs***

- Display "hello, world"
  • import includes all ***plain primitives except functional specs
  • requires can include all primitives

Rendering order

When this spec is rendered:
1. typescript-react-app-boilerplate is resolved and rendered as a dependency.
2. The functional spec (Display "hello, world") is rendered afterwards.

Dedicated Environment-Preparation Script for Conformance Tests

Choose a tag to compare

@tjazerzen tjazerzen released this 05 Dec 11:14
002fcf4

Overview

Conformance tests often spend a lot of their runtime on environment setup rather than actual execution. Previously, each functional requirement ran its conformance test in a fully isolated environment, requiring the setup process to repeat for every test.

What's new

This release introduces support for an optional environment-preparation script that runs once before all conformance tests. The prepared environment is then reused across tests, dramatically reducing redundant setup work and lowering overall test time—while still keeping each conformance test fully end-to-end.

Example use cases

  • Compiling the project only when sources have changed (for compiled languages)
  • Rebuilding Docker images only when necessary (for Docker-based workflows)

If no preparation script is provided, existing behavior remains unchanged.

Concept rules in ***plain

Choose a tag to compare

@tjazerzen tjazerzen released this 27 Nov 09:02
3ff50fb

⚠️ Breaking Change

This update is not backward compatible.

Concept Rules in ***plain

To improve the consistency and clarity of specifications used for code generation, we introduce concept-based definitions with strict formatting rules.

Each definition introduces a single concept, written as:

- :ConceptName: <explanation of the concept>

Concept naming rules

Each concept name must be enclosed in colons (:) at both the beginning and end.

Valid characters for concept name include: Plus sign (+), Minus sign (-), Dot sign (.), Digits (0-9), Uppercase letters (A-Z), Underscore (_), Lowercase letters (a-z).

Examples: :App:, :Tasks:, :ListOfUsers:, :CLI:.

Definition rules

  • Each definition must start with the concept name being defined.
  • Every concept name must be globally unique.
  • Concepts referenced in Functional Requirements, Non-Functional Requirements, Test Requirements, or Acceptance Tests must appear in the Definitions section first.

Migration to *codeplain API keys authentication

Choose a tag to compare

@tjazerzen tjazerzen released this 17 Oct 11:54
3a798c9

*codeplain API keys

This release is introducing migration to internal *codeplain API keys.

⚠️ Breaking Change:
The previous CLAUDE_API_KEY authentication method is no longer supported.

To obtain your new API keys, please contact our support team at support@codeplain.ai.

Other changes

  • Fixed a bug related to parsing plain source templates.

Improved Templating & Isolated Test Environments

Choose a tag to compare

@tjazerzen tjazerzen released this 07 Oct 13:54
151b903

Enhanced templating support

Templating is now more flexible and intuitive.

Before:

    - Firstly, ...
{% include "some-template.plain" %}

This required indentation to be managed inside the included file.

Now:

    - Firstly, ...
    - Secondly, {% include "some-template.plain.plain" %}

Templates can now be included inline or indented naturally within the document — indentation is handled automatically, making templates easier to compose and maintain.

Isolated Test Execution

Test scripts for major languages now execute in isolated environments, ensuring clean runs and consistent results.

Supported languages:

  • Python
  • Golang
  • Node.js

This enhancement improves reproducibility and prevents side effects across tests.

Other improvements

  • General improvements and bug fixes
  • Enhanced observability and logging

Minor Improvements and Bufixes

Choose a tag to compare

@tjazerzen tjazerzen released this 11 Aug 07:12
cf73295

This release includes bug fixes and minor improvements.

Destination folder for source and conformance test code

Choose a tag to compare

@tjazerzen tjazerzen released this 17 Jul 09:00
920abe2

With Plain-Git integration for source and conformance test code set in place, we're introducing the ability to utilize and commit the generated code in the existing repositories.

Destination folder for the generated code

You can copy the source code to source code destination folder

Through the plain2code CLI, you can now set --copy-build (bool) argument, telling if you want to copy the source code into destination folder after a successful rendering. By default, this code is copied into dist/ folder, but you can manage this through --build-dest CLI parameter.

You can copy the conformance tests to source code destination folder

Through the plain2code CLI, you can now set --copy-conformance-tests (bool) argument, telling if you want to copy the conformance test code into conformance test destination folder after a successful rendering. By default, this code is copied into dist_conformance_tests/, but you can manage this through --conformance-tests-dest CLI parameter.

Other Changes

  • Raising threshold for max conformance test runs to 20, ensuring smoother code generation
  • Minor bugfixes

Standardize commit messages, minor improvements and bug fixes

Choose a tag to compare

@tjazerzen tjazerzen released this 03 Jul 15:07
ebab816

This release standardizes commit messages in build/ and conformance_tests/ folders. Note that this update doesn't break backwards compatibility, so you can continue rendering from the current state.

Also, minor updates and bug fixes were introduced.

Minor Upgrades and Bugfixes

Choose a tag to compare

@tjazerzen tjazerzen released this 30 Jun 10:43
a7f0429

This update includes minor bugfixes for Git conformance tests and adds retry logic for steps that may fail under unstable network conditions. The run.sh scripts in the examples/ folder were also simplified..

Conformance Tests Git Versioning

Choose a tag to compare

@tjazerzen tjazerzen released this 26 Jun 06:28

After adding source code to git, we're now releasing native git integration for conformance tests as well.

Git Integration for Generated Conformance Tests

Native git integration for version-controlled code generation brings you closer to a natural development experience.

Here's what you can do with this feature:

  • Automatic Version Control: Your generated code is now automatically versioned in the conformance_tests/ folder
  • Commit History: Each successful conformance tests generation creates a commit.
  • Easy History Tracking: Simply navigate to your conformance_tests/ folder and run git log to see the complete evolution of your code

Other notable changes

  • Removed flag debug to ensure simpler developer experience
  • Increased retry counts for conformance tests and unit tests fixing
  • Smart truncation of unit tests error message