Skip to content

v0.1.0#64

Merged
GianIac merged 17 commits into
mainfrom
0.1.0-final
Jun 9, 2026
Merged

v0.1.0#64
GianIac merged 17 commits into
mainfrom
0.1.0-final

Conversation

@GianIac

@GianIac GianIac commented Jun 9, 2026

Copy link
Copy Markdown
Owner

v0.1.0

Hi! v0.1.0 is here. This is the first stable Numax release line: the runtime is usable, the configuration story is unified, the release pipeline is reproducible across platforms, and the docs finally live in a real site.

This closes the v0.1.0-rc.1 cycle and marks the transition from release candidate to first stable line for controlled, non-critical workloads.


What changed

Cross-platform release pipeline (.github/workflows/release.yml)

  • Triggered on release: published, with tag validation that enforces vMAJOR.MINOR.PATCH[(.-)pre] and requires the tag base to match the crates/nx-cli version.
  • Cross-platform matrix build for nx:
    • x86_64-unknown-linux-musl and aarch64-unknown-linux-musl (via cargo-zigbuild).
    • x86_64-apple-darwin and aarch64-apple-darwin.
    • x86_64-pc-windows-msvc.
  • Native smoke test (nx --version) on every native target before packaging; file check on cross-compiled binaries.
  • Per-target archives (.tar.gz / .zip) plus an aggregate SHA256SUMS, all uploaded to the GitHub Release with gh release upload.

Unified TOML configuration (nx config)

  • New nx config subcommand with three actions:
    • nx config init - write a commented numax.toml template.
    • nx config validate - parse and validate a TOML config without running a module.
    • nx config show --effective - print the fully resolved config after CLI / env / file / default merging.
  • Sections: [storage], [network], [tls], [observability], [limits], [discovery].
  • All previously CLI-only knobs are now expressible in TOML: listen address, peers, serialization format, TLS material, peer allow-list, per-runtime limits (max_peers, queued_ops_limit, op_log_limit, seen_ops_limit, max_message_size, socket_timeout_secs, reconnect_initial_delay, reconnect_max_delay, peer_dead_after_failures, anti_entropy_interval), observability listener, log level, log format, request timeout.
  • Strict schema: unknown fields are rejected (deny_unknown_fields) instead of silently ignored.
  • Explicit precedence, documented and enforced in code:
    CLI flags > NX_* environment variables > TOML file > runtime defaults.

Observability stack (docs/compose/, docs/dashboards/)

  • docs/compose/observability.yml - Compose file that brings up Prometheus + Grafana locally.
  • docs/compose/prometheus.yml - pre-wired scrape config for a Numax node on :9100/metrics.
  • Grafana provisioning for the Prometheus datasource and the Numax dashboard folder.
  • docs/dashboards/numax.json - Grafana dashboard with target up, ops throughput, connected peers, sync errors, broadcast activity, store size, last sync latency and runtime events panels, all wired to metrics the runtime already exposes.

Documentation site (docs/nx-site/)

  • New Astro Starlight site (English + Italian) covering Getting Started, Concepts, Guides, Reference, Cookbook and Project sections.
  • Whitepaper, Roadmap, Host API and CLI reference now live on the site, with per-crate reference pages for nx-cli, nx-core, nx-net, nx-sdk, nx-store, nx-sync.
  • GitHub edit links and sitemap baked in.

README

  • Status updated from v0.1.0-rc.1 to v0.1.0: first stable Numax release line for controlled, non-critical workloads.
  • Whitepaper and Roadmap badges now point to the docs site.
  • Quickstart expanded with a TOML two-node setup and the nx config validate / nx config show --effective workflow.

Why it matters

v0.1.0-rc.1 proved the runtime was ready for a stable line: limits, observability, network resilience, durable state and a real host API were all in.

v0.1.0 answers the next honest question: can someone actually pick this up, configure it, run it the same way twice, and see what it's doing?

A runtime without reproducible release binaries is not really shippable.
A runtime configured only via CLI flags doesn't survive two nodes, let alone a real deployment.
A runtime whose docs live in two top-level .md files isn't a project anyone can grow into.
They belong in the same release.


Known limitations

  • K-fanout gossip and full dynamic peer discovery remain future work; peers are still configured explicitly (discovery.mode = "static").
  • Deduplication is bounded, not an infinite causal history.
  • This is the first stable line: API and wire format are now stable within 0.1.x, but the project is still early - feedback shapes the next minor.

What is next

The pre-v0.1.0 cycle ends here.

The focus shifts from reaching the stable line to living on it: more guides on the docs site, broader guest-language examples, and the v0.1.x patch line for fixes and small additive features. Larger surface changes move onto the v0.2.0 roadmap.

Thank you everyone!

GianIac added 16 commits June 2, 2026 10:47
…amples

- Updated README.md for distributed_tags to include TOML configuration examples for nodes.
- Added TOML configuration support in vote_tally_tls with detailed instructions for setting up TLS and network configurations.
- Introduced a new config.rs file in nx-cli to handle loading and validating TOML configurations, including network, storage, TLS, and observability settings.
- Implemented environment variable support for configuration options, allowing for flexible runtime configurations.
- Enhanced error handling and validation for configuration parameters to ensure correct usage.
- Added package.json for project dependencies and scripts.
- Created content configuration for Astro with defined collections.
- Added initial markdown files for documentation sections including blog, community, concepts, guides, and getting started.
- Translated documentation sections into Italian.
- Set up TypeScript configuration for the project.
- Added @astrojs/check as a dev dependency.
- Refactored imports in Header.astro to use the new @astrojs/starlight path.
- Created a new env.d.ts file to include Astro client types.
@GianIac GianIac changed the title 0.1.0 final v0.1.0 Jun 9, 2026
@GianIac GianIac merged commit 9cc055a into main Jun 9, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant