Skip to content

Releases: danielmeza/netprints

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 05:32
3a6eafc

0.2.0

Breaking (source): IClassEmitter and IMemberEmitter in NetPrints.Core are now [Experimental("NPXE0003")]; they
shipped unmarked in 0.1.1. Code that implements or references them, or builds a TranslationEnvironment with emitter
lists, gets error NPXE0003 until the project opts in (<NoWarn>$(NoWarn);NPXE0003</NoWarn>). See
API stability.

Breaking: The netprints command line (package NetPrints.Cli, shipped in 0.1.x) is rebuilt around commands. The 0.1 flags are removed, not deprecated; using one prints a message to stderr and exits 2. Replace netprints -p X (or --project-path X) with netprints build X, and netprints -p X -r (or --run) with netprints run X. Exit codes that 0.1 scripts may test also changed: --help and --version exit 0 (were 2), a project path that does not exist exits 2 (was 1), and Ctrl+C exits 130. See the exit codes and the removed flags.

New: netprints generate (alias regen), with --check to fail CI on stale generated files, and netprints migrate to report graph schema versions. run forwards everything after -- unchanged and streams the program's output. generate warns (and --check fails) when the tool's version differs from the project's NetPrints.Sdk package.

New: netprints catalog writes a type catalog (*.npcat.json, or a C# class with --format csharp) from assemblies, NuGet packages or a project's references, with --check for CI. It reads netprints.catalog.json; both files have JSON schemas (npcat.v1.schema.json, netprints.catalog.v1.schema.json). See the catalogs guide.

New (experimental): the catalog profile API: IExtensionBuilder.AddCatalogProfile and ExtensionRegistry.CatalogProfiles let an extension contribute a profile that decides what a catalog lists; using it needs the NPXE0004 opt-in. NetPrints.Extensibility now depends on NetPrints.Catalog.

New: netprints format rewrites a graph to canonical form (sorted by connection source, deterministic output for version control). netprints show prints a graph and its --overrides= as text (entry point or type signature). netprints merge integrates two changes to a graph: class fields and members three-way, variables by id, nodes by id, connections by addition or removal against the base. netprints git-install registers a diff and merge driver with git for .netpc.json and .netpc.g.cs files. See the CLI guide.

New: extension coexistence. One host can load multiple extensions in declared order. Dependencies (via <dependsOn> in the manifest) are resolved at load time, and unrecognized dependencies fail with NPX007. Shared-assembly rules ensure each extension gets a consistent view: a reference is shadowed by a dependency if both provide it. Name conflicts (duplicate node library ids, extension ids, member definitions) are reported as NPX006 issues and do not fail the load. JSON resolver probes of incompatible extensions are caught and logged; only that extension is rejected, not the whole registry. See extensions coexistence and the diagnostics reference.

New: the editor discovers embedded catalogs in referenced assemblies at load time, letting you browse types without modifying the project. See discovery of catalogs in referenced assemblies.

New (experimental): the NetPrints.Annotations package enables catalog profiles that hide members; use [NetPrintsIgnore] on public members, or an annotation source in your catalog to list them. See the Annotations section of the catalogs guide.

Changed: graphs now save connections in sorted order (by from and to). When a 0.1 graph is saved in this version for the first time, it reorders, and netprints format --check will fail until it is formatted once with netprints format.

Changed: an explicit null value in a graph member that the document type declares non-nullable is now a format error. This catches accidental nulls and enforces the schema's nullability contract.

Changed: the editor's method, parameter and return documentation (DocumentationUtil) is now whitespace-collapsed plain text; <see cref>, <paramref> and <see langword> render as their target name (they rendered as nothing before), and an empty element gives no text instead of an empty string. It now also finds documentation for methods in multi-segment namespaces and for generic, nested and ref members, which had none.

Downloads

Platform File
Linux x64 NetPrints-<version>-linux-x64.tar.gz
Windows x64 NetPrints-<version>-win-x64.zip
macOS Apple silicon NetPrints-<version>-osx-arm64.tar.gz

The editor archives are self-contained: they run without a .NET runtime. Opening, building and running
NetPrints projects needs the .NET 10 SDK, which also
provides the runtime your compiled programs need.

Packages: dotnet tool install -g NetPrints.Cli (command netprints) and
<PackageReference Include="NetPrints.Sdk" Version="…" PrivateAssets="all" />.

These builds are not code-signed. Windows SmartScreen shows "Windows protected your PC": choose
More info → Run anyway. On macOS, open it once, then System Settings → Privacy & Security →
Open Anyway (or run xattr -dr com.apple.quarantine NetPrints-<version>-osx-arm64).

Verify a download: sha256sum -c --ignore-missing SHA256SUMS.txt and gh attestation verify <file> -R danielmeza/netprints.

What's Changed

Other changes

  • Split the avalonia-xaml skill into core, behaviors and styling skills by @danielmeza in #10
  • P2: catalog tooling and Spectre CLI by @danielmeza in #9

Full Changelog: v0.1.1...v0.2.0

v0.1.1

Choose a tag to compare

@danielmeza danielmeza released this 29 Sep 23:45
7fba032

Downloads

Platform File
Linux x64 NetPrints-<version>-linux-x64.tar.gz
Windows x64 NetPrints-<version>-win-x64.zip
macOS Apple silicon NetPrints-<version>-osx-arm64.tar.gz

The editor archives are self-contained: they run without a .NET runtime. Opening, building and running
NetPrints projects needs the .NET 10 SDK, which also
provides the runtime your compiled programs need.

Packages: dotnet tool install -g NetPrints.Cli (command netprints) and
<PackageReference Include="NetPrints.Sdk" Version="…" PrivateAssets="all" />.

These builds are not code-signed. Windows SmartScreen shows "Windows protected your PC": choose
More info → Run anyway. On macOS, open it once, then System Settings → Privacy & Security →
Open Anyway (or run xattr -dr com.apple.quarantine NetPrints-<version>-osx-arm64).

Verify a download: sha256sum -c --ignore-missing SHA256SUMS.txt and gh attestation verify <file> -R danielmeza/netprints.

What's Changed

Other changes

  • Adopt sourcemeta jsonschema CLI for schema validation (ADR-0011) by @danielmeza in #8

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 22:03
cc96a93

Downloads

Platform File
Linux x64 NetPrints-<version>-linux-x64.tar.gz
Windows x64 NetPrints-<version>-win-x64.zip
macOS Apple silicon NetPrints-<version>-osx-arm64.tar.gz

The editor archives are self-contained: they run without a .NET runtime. Opening, building and running
NetPrints projects needs the .NET 10 SDK, which also
provides the runtime your compiled programs need.

Packages: dotnet tool install -g NetPrints.Cli (command netprints) and
<PackageReference Include="NetPrints.Sdk" Version="…" PrivateAssets="all" />.

These builds are not code-signed. Windows SmartScreen shows "Windows protected your PC": choose
More info → Run anyway. On macOS, open it once, then System Settings → Privacy & Security →
Open Anyway (or run xattr -dr com.apple.quarantine NetPrints-<version>-osx-arm64).

Verify a download: sha256sum -c --ignore-missing SHA256SUMS.txt and gh attestation verify <file> -R danielmeza/netprints.

What's Changed

Other changes

New Contributors

Full Changelog: https://github.com/danielmeza/netprints/commits/v0.1.0