Change Log¶
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
- #235: Revisit Decryption Engine. Changes to the messages, environment, and behaviour types to conform the recent template changes.
- #236: Revisit Encryption Engine and Reads Engine. These are bundled since they rely on eachother's messages. Changes to the messages, environment, and behavior types to conform to the recent template changes
- #262: Updatewriting conventions, Fix template behaviour diagrams and update Mkdocs Na
- #263: To the Hardware Component section, add Local Key Value Store Engine , Logging Engine and Local Time Series Storage Engine, Wall Clock Engine.
- #268: Add to Anoma Configuration section, the Identity Component.
- #269: Fix type error due to not making configs when spawning engines in Identity Management Engine.
- #273: Replace X Machine by X Component in the Node Architecture section.
- Python-related changes
- 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
toTemplateLocalCfg
, addTemplateCfg
similar toTemplateEnv
, apply the same toTicker
. - #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
- #219: Revisit Commitment Engine. Changes to the messages, environment, and behaviour types to conform the recent template changes.
- #253: Integration PR that
combines multiple engine-related changes: Engines: Use
ByteString
in crypto types #242, Engines: ByteString type definition #255, Engines:EngineMsg
revision #241, EngineID: makeEngineName
compulsory #256, Engines: Engine type revision #244,EngineMsg
: add type param #258, Engines: addGuardEval
andActionExec
#260, and Engines: Behaviour template revision #226. - #256: Make
EngineName
compulsory inEngineID
.
- Repository maintenance and CI
- #218: Rename
EngineMessage
type toEngineMsg
andmkEngineMessage
tomkEngineMsg
. - #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
- #218: Rename
- 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 thecontainers
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: renameMessageID
toEngineMsgID
, addgetEngineMsgFrom(Timestamped)Trigger
, and renamegetMessageFrom(Timestamped)Trigger
togetMsgFrom(Timestamped)Trigger
. - #242: Use
ByteString
in crypto types. - #244: Major refactoring of
engine-related types. The
Engine
type now includes acfg
field of typeEngineConfig
containing static configuration (engine name and local node ID). For consistency,EngineEnvironment
has been renamed toEngineEnv
. TheEngineBehaviour
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 theaction
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 ofNat
- #258: Engine-related changes: add type parameter to parameterized the type of message and rename
EngineConfig
toEngineCfg
- #260: Revise engine behaviour type: add
GuardEval (Seq)
andActionExec (First & Any)
,EngineCfg
: addgetEngineIDFromEngineCfg
. Partially addresses #246.
- #221: Update the prelude to
incorporate the latest changes in the
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
- 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
- Specification and design
- #192: Port identity engines to v2 template
- System and node architecture
- #210: Fix engine message, environment and behavior layout
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