Skip to content

Change Log

v0.1.3

The major change in this release is the gas payment system introduced in #286, and the description of messages in the Networking subsystem introduced in #294.

Fixes

  • Node architecture
  • Repository maintenance and CI
    • #288: Improve primitive interfaces diagrams. Use LR mermaid option.
  • System architecture
  • Tutorial and documentation
    • #280: Guides: Add hard and soft requirements for writing pages in the Anoma Specification.
    • #284: Add minimal version of the template (not visible in the website) and related refactors.

Changes

  • Repository maintenance and CI
    • #296: Add next/prev buttons, fix footer, change font, add buttons to view/edit source code, and links to the GitHub repository.
  • Juvix types and updates
    • #294: Bump up Juvix version to v0.6.9 , reorder MailboxID alias, and update Stdlib to v0.9.0

Features

  • Python-related changes
    • #291: Add new command tool nspec to create new engines based on the minimal version of the Template Engine files.
  • Repository maintenance and CI
    • #286: Incorporated gas payments description. Additionally, made several improvements such as switching to wiki-style links, adding icons, clarifying proof inputs, fixing rendering issues, and various other enhancements.
  • Tutorial and documentation
    • #292: Move template/template_minimum engines to docs/tutorial/engines folder. Update imports accordingly.

v0.1.2

Progress on translating the old specification to the new Juvix codebase, fixing typechecking errors. Removed unsupported documents from the codebase. Building specs no longer requires Juvix by default - use PROCESS_JUVIX=true flag with mkdocs to process Juvix Markdown.

Fixes

  • Node architecture
  • Python-related changes
    • #271: update mkdocs juvix plugin v0.4.8
    • #272: Update mkdocs juvix plugin v0.4.9
  • Repository maintenance and CI
    • #195: Optimize documentation build process and upgrade dependencies
    • #262: Template fixes: diagrams, nav
    • #266: Remove old documentation and update table of contents: Remove basic-abstractions, scope, applications, implementations, and several other files that were decided not to be included in this version of the specification.
  • Tutorial and documentation
    • #257: Add description of our Git workflow and new integration branches strategy.
    • #265: Rename TemplateCfg to TemplateLocalCfg, add TemplateCfg similar to TemplateEnv, apply the same to Ticker.
    • #274: Update engine writing conventions: #update-the-table-of-contents and Table of Contents.
  • Juvix types and updates
    • #267: Fix all the type checking errors in engine definitions.

v0.1.1

Major revision of the engine definitions, the template, and the ticker engine.

Features

  • Repository maintenance and CI
    • #217: Update template engine files to be more consistent, use backticks for Juvix terms/types in headlines, uncollapsed sections for type constructors arguments in template engine files, and auxiliary sections of Juvix code are always collapsed.

Fixes

  • Node architecture
  • Repository maintenance and CI
    • #218: Rename EngineMessage type to EngineMsg and mkEngineMessage to mkEngineMsg.
    • #220: Fix the deployment of the latest version by deploying the website if the branch name is main or matches the semver pattern, and add information about the version and the commit hash to the title for reference.
    • #222: Remove SML codebase as not used any more and any other reference in the markdown files
    • #225: Fix navigation table for the identity component
    • #227: Update Juvix version in Nix flake due to breaking changes, and also the input packages while at it.
    • #250: Update policy on Juvix typechecking. The whole codebase in a PR should typecheck before merging
  • Tutorial and documentation
    • #257: Refactor the Git strategy: introduce integration PRs for better overview of complex changes
  • Juvix types and updates
    • #221: Update the prelude to incorporate the latest changes in the Stdlib, including the addition of applicative and monad traits, and the integration of the containers library. This update also includes changes to data type definitions, with the @ syntax now used for declaration, creation, and matching on records, and other removals like : Type for implicit arguments and function-style declarations.
    • #226: Update Template & Ticker Behaviour according to the engine & message type changes. The examples have been improved with better clarity. The documentation now uses headlines instead of collapsible boxes and definition lists instead of tables. A new diagram template has been added that illustrates conditions and effects of actions.
    • #241: EngineMsg-related changes: rename MessageID to EngineMsgID, add getEngineMsgFrom(Timestamped)Trigger, and rename getMessageFrom(Timestamped)Trigger to getMsgFrom(Timestamped)Trigger.
    • #242: Use ByteString in crypto types.
    • #244: Major refactoring of engine-related types. The Engine type now includes a cfg field of type EngineConfig containing static configuration (engine name and local node ID). For consistency, EngineEnvironment has been renamed to EngineEnv. The EngineBehaviour type has undergone several changes: the conflict solver has been removed (to be replaced by new mechanism in #246), precomputation results are now passed directly as action arguments, and the action field has been replaced with action labels defined by label type.
    • #249: Remove name field in Engine instances due to PR 242
    • #255: Make ByteString String instead of Nat
    • #258: Engine-related changes: add type parameter to parameterized the type of message and rename EngineConfig to EngineCfg
    • #260: Revise engine behaviour type: add GuardEval (Seq) and ActionExec (First & Any), EngineCfg: add getEngineIDFromEngineCfg. Partially addresses #246.

v0.1.0

This is the first release of Anoma's Spec project, following the semantic-versioning scheme. This version includes all the changes from the creation of this repository. From here on, we will keep a changelog of all the changes that are made to the project per version, with better documentation and descriptions of the changes.

Breaking changes

  • Node architecture
    • #179: Reorganize node architecture documentation structure
    • #192: Port identity engines to v2 template
  • System architecture
    • #210: Fix engine message, environment and behavior layout
  • Repository maintenance and CI
    • #29: Remove unused libraries
    • #30: Remove juvix hook in pro of mkdos Juvix plugin
    • #53: Setup: require only python 3.9
    • #60: Restructure for v2
    • #64: Change KV Storage Deletion Documentation
    • #65: Delete Compute and Randomness Engines
    • #69: Remove outdates files from arch1 and fix formatting
    • #104: Refactor scope, basic types, and application architecture sections
    • #115: Refactor file and folder names: add snake_case convention

Bug fixes

  • Repository maintenance and CI
    • #4: Fix mike
    • #9: Add batch of fixes
    • #10: Fix Index: quick links and remove empty types pages
    • #18: Fix TODO, add todos.py script, and more formatting issues
    • #19: Remove todos on deploy, fix wikilinks warnings
    • #21: Fix whitespaces
    • #22: Fix indexes generation with macros and optimize caching
    • #24: Fix minors
    • #25: CI fixes
    • #74: Fix broken links in navigation bar and a few pages
    • #77: Fix CI: deploy website by PRs against main, v1, and v2
    • #78: Fix: CI doesnt trigger on edits
    • #91: Fix default views and deploys in the CI
    • #96: Fix navigation bar and more broken links due #60
    • #101: Fix typos and small improve wording
    • #105: Fix warnings messages due to recent refactors
    • #122: Fix support for Juvix Markdown snippets
    • #123: Fix merging conflicts chris-update-basic-types
    • #124: Fix tutorial nav structure and broken links in the footer
    • #132: Fix minor issues with directories and filenames

Features

  • Application documentation
    • #198: Add transparent RM implementation documentation
  • Python-related changes
    • #133: Add support for multi-line wiki-style links
  • Repository maintenance and CI
    • #2: Add better support for WikiLinks and other goodies
    • #3: Update README and run pre-commit
    • #5: Add Ubuntu dependencies to the CI
    • #6: Use site_url for link generation
    • #7: Add new hook for images
    • #8: Add lightboxes to images, fix local image loading
    • #11: Improve link resolution for urls outside nav
    • #14: Add Last updated time to the footer and other fixes
    • #15: Add a more explicit MathJax config
    • #17: Revised macros configuration
    • #20: Refactor hooks
    • #23: Add previews for PRs
    • #27: Fix url indexes and improve PR previews
    • #28: Add tutorial basic instructions
    • #31: Translate Haskell snippets to Juvix and fix typos
    • #51: Configuration Engine
    • #52: Add nix flake
    • #56: Add page on dynamic code loading
    • #58: Homogeneous consensus for V2
    • #59: Readme: tighten up install instructions
    • #61: Updates kudos spec
    • #63: Counter example
    • #68: Add New Engine Specifications from Anoma Elixir Database
    • #75: Add proof-of-stake example
    • #80: Re-introduced full execution machine for V2
    • #81: Add BibTeX entries and fix configuration
    • #84: Add templates for defining engine systems
    • #92: Add global table of contents
    • #95: Continue v2 updates
    • #97: Add git branching strategy
    • #98: Add citation instructions and restructure markdown tutorials
    • #99: Delete previews for closed PRs on gh-pages branch
    • #100: Split CI workflows: deploy, pull-request, clean- ups
    • #103: Additional reorganization & updates
    • #117: Tweaks to message types in basics
    • #120: Refactor tutorial organization and add a few more on conventions
    • #121: Improve look&feel, organized nav, hide extra links and move them to the footer
    • #127: Update basic abstractions
    • #131: Add RMv3 content
    • #135: Show PR number in the site name
    • #209: Add changelog management system
    • #214: Add GitHub template for creating PRs
  • Tutorial and documentation
    • #134: Refactor tutorial for wiki-style links
  • Juvix types and updates
    • #128: Add new Juvix definitions from PR-84
    • #130: Translate SML Identity definitions to Juvix