Skip to content

Releases: extrode/pare

v0.6.2

v0.6.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 13:35

Full Changelog: v0.6.1...v0.6.2

v0.6.1

v0.6.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 07:41

Pare 0.6.0

Pare 0.6.0 Pre-release
Pre-release

Choose a tag to compare

@sbeparey sbeparey released this 17 Oct 12:01

Upgrading from 0.5

  • Nothing to change: no breaking changes. Update Extrode.Pare.Build and
    Extrode.Pare.AspNetCore together; 0.5's AddPareDevelopment with 0.6's build ignores
    compiled sources rather than misreading them.

Changes

  • Other compile-to-JavaScript steps run on Pare's plumbing (decision 005): a package declares
    <PareCompileSource Include="**/*.svelte" PareCompiler="husk" PareOutputExtension=".svelte.js" />
    and adds its target to PareCompileDependsOn; Pare gives each source PareOutputPath and
    PareRelativePath by the .ts rules and serves, publishes, embeds and deletes the outputs.
    New error PARE204 for an item without a valid PareCompiler name or PareOutputExtension.
    README "Other compilers".
  • IPareCompiler in Extrode.Pare.AspNetCore: registered in DI, AddPareDevelopment runs its
    CompileAsync on save for its sources, one source at a time. AddPareDevelopment called twice
    now adds one watcher, and the second call's options apply too.
  • On save, output whose text is unchanged gets a new timestamp, so the next start does not strip
    or compile its source again.
  • PARE200, PARE201 and PARE202 messages no longer say "TypeScript": they cover compiled sources too.

Downloads

  • pare-0.6.0-<rid>.tar.gz / .zip: NativeAOT pare CLI for osx-arm64, osx-x64, linux-arm64, linux-x64, linux-musl-arm64, linux-musl-x64, win-x64, win-arm64.
  • libpare-0.6.0-<rid>.tar.gz / .zip: the C library (libpare.dylib, libpare.so, or pare.dll with pare.lib), pare.h, license, for the same 8 RIDs.
  • Extrode.Pare.Cli*.nupkg: the .NET tool (pointer, any, per-RID).
  • Extrode.Pare, Extrode.Pare.Build, Extrode.Pare.AspNetCore 0.6.0 .nupkg (not on nuget.org yet; README "Restoring without nuget.org").

Pare 0.5.0

Pare 0.5.0 Pre-release
Pre-release

Choose a tag to compare

@sbeparey sbeparey released this 17 Oct 07:20

Upgrading from 0.4

  • Nothing to change: no breaking changes.

Changes

  • libpare: the stripper as a C shared library with pare.h, for other languages over FFI
    (Rust, Go, Python ctypes, Ruby, PHP, Node or Deno FFI). UTF-8 in and out, diagnostics with
    line, UTF-16 column and byte offsets, thread-safe. README "C library".
  • Faster: checker.ts 13.3 -> 9.4 ms (235 -> 333 MB/s), the real-world corpus 75 -> 60 ms
    (218 -> 273 MB/s). Output and diagnostics are unchanged on all 15,462 corpus files. ASCII fast
    path for identifiers, trivia skipped on a local position, the stack checked every 16th
    recursion. Nesting too deep for the stack still fails with a syntax error, now with a test.
  • CLI: built with OptimizationPreference=Speed, and reads each directory once when walking
    (it read each twice). pare .corpus/realworld --check-only 0.60 -> 0.35 s.

Downloads

  • pare-0.5.0-<rid>.tar.gz / .zip: NativeAOT pare CLI for osx-arm64, osx-x64, linux-arm64, linux-x64, linux-musl-arm64, linux-musl-x64, win-x64, win-arm64.
  • libpare-0.5.0-<rid>.tar.gz / .zip: the C library (libpare.dylib, libpare.so, or pare.dll with pare.lib), pare.h, license, for the same 8 RIDs.
  • Extrode.Pare.Cli*.nupkg: the .NET tool (pointer, any, per-RID).
  • Extrode.Pare, Extrode.Pare.Build, Extrode.Pare.AspNetCore 0.5.0 .nupkg (not on nuget.org yet; README "Restoring without nuget.org").

Pare 0.4.0

Choose a tag to compare

@sbeparey sbeparey released this 17 Oct 03:02

Upgrading from 0.3

  • Builds with TypeScript outside wwwroot and no PareServeAt now show warning PARE202; add PareServeAt, or PARE202 to NoWarn to keep the output next to the source.

Changes

  • PareEmbed=true (with PareEmbedPrefix) embeds every output in the assembly, named after its
    path below the project, written under obj/; for projects that are not web projects. Outputs
    are not Content or static web assets there, and a deleted source drops its resource.
  • @(PareOutput) is public: every output, with PareSource and PareRelativePath. A project's
    AfterTargets="PareStripTypeScript" target sees it on every build. PareStripTypeScript now
    has no body and depends on the strip (_PareStrip) and the registration; PareTypeCheck runs
    as its dependency instead of through BeforeTargets.
  • string? TypeStripper.Strip(string source, out IReadOnlyList<Diagnostic> diagnostics). The
    library API is documented as stable for 0.x.
  • scripts/get-tsc.cs --dest <dir> works outside the Pare repository; README section on type
    checking in CI without npm.
  • Sample: a Jint module loader that strips .ts on import (JintModuleTests).
  • README: restoring vendored .nupkg files offline, non-web projects.
  • PareServeAt serves TypeScript outside wwwroot:
    <TypeScriptSource Include="Scripts/**/*.ts" PareServeAt="js" /> serves Scripts/lib/fmt.ts
    at /js/lib/fmt.js, and .mts as .mjs. PareServeAt="/" serves Blazor **/*.razor.ts
    beside their components.
  • AddPareDevelopment re-strips PareServeAt sources on save, and the sources of Razor class
    libraries the app references as projects. The development map now lists each source and its
    output, and each project's map also reaches the build output of projects that reference it as
    Extrode.Pare.development.<project>.json. Maps from 0.3 still work.
  • PARE202 warning: a source outside wwwroot with no PareServeAt is not served. Builds that
    include such sources now show it; add PARE202 to NoWarn to keep the output next to the source.
  • PARE203 error: a PareServeAt that is not a folder.
  • PARE201: two TypeScript sources at the same URL now fail with a Pare error naming both,
    instead of crashing the static web assets SDK (MSB4018).
  • Razor class libraries: tested and documented (/_content/<Lib>/...).
  • CLI quickstart (docs/cli-quickstart.md) and the samples/CliSite static-site sample.
  • Fixed: PareOutDir with a .razor.ts or .cshtml.ts source failed the build with BLAZOR106
    (a .razor.js with no component beside it). The output is written there and not served.

Downloads

  • pare-0.4.0-<rid>.tar.gz / .zip: NativeAOT pare CLI for osx-arm64, osx-x64, linux-arm64, linux-x64, linux-musl-arm64, linux-musl-x64, win-x64, win-arm64.
  • Extrode.Pare.Cli*.nupkg: the .NET tool (pointer, any, per-RID).
  • Extrode.Pare, Extrode.Pare.Build, Extrode.Pare.AspNetCore 0.4.0 .nupkg (not on nuget.org yet; README "Restoring without nuget.org").

Pare 0.3.0

Choose a tag to compare

@sbeparey sbeparey released this 15 Oct 08:02

Upgrading from 0.2

  • Web projects now get their .js under obj/ by default; set PareOutDir to keep 0.2's
    output next to each source.
  • Delete the .js files 0.2 generated in wwwroot (warning PARE200 names each one until you
    do), and drop any .gitignore rules for them.
  • A .ts file added while dotnet watch runs is served after the next build (Ctrl+R); edits to
    existing files reload as before.

Changes

  • Web projects: Extrode.Pare.Build writes the output of wwwroot/**/*.ts under
    obj/<configuration>/<tfm>/pare/ and registers it as static web assets (served, compressed and
    published as before), instead of next to each source. Breaking for anything that read the .js
    from wwwroot on disk. PareOutDir turns it off. A foo.js left next to foo.ts is not served
    and gets warning PARE200.
  • docs/error-codes.md: every diagnostic (PARE001, PARE100-PARE107, PARE200) with an example
    that triggers it, why, and what to write instead. README links it.
  • The build deletes the output of a deleted source; so does AddPareDevelopment while the app
    runs. AddPareDevelopment writes where the build does, read from
    Extrode.Pare.development.json in the build output. A source added during dotnet watch is
    served after the next build.
  • Extrode.Pare.Build runs under Visual Studio 2026's MSBuild (MSBuild 18, .NET Framework) in the
    .NET task host, without MSBuild's out-of-process fallback warning.

Pare 0.2.0

Choose a tag to compare

@sbeparey sbeparey released this 15 Oct 06:38
  • Extrode.Pare.AspNetCore: builder.AddPareDevelopment() re-strips wwwroot TypeScript as it
    is saved while the app runs in Development, so dotnet watch hot reload reloads the page with
    fresh JavaScript. It also gives CreateSlimBuilder apps dotnet watch's browser refresh.
  • The core library packs as Extrode.Pare.
  • pare CLI as a .NET tool: dotnet tool install -g Extrode.Pare.Cli installs the NativeAOT
    binary for osx, linux, linux-musl and win (arm64 and x64), and a framework-dependent build on other
    platforms. scripts/pack-cli.sh packs the tool packages and pare-<version>-<rid>.tar.gz
    archives, building Linux in Docker.
  • Fixed: on linux-musl-arm64 (Alpine), about one pare process in four rejected every input with
    PARE001 at 1:1. .NET misreads the main thread's stack size there, so the parser's depth guard
    failed at once; the CLI now runs on a thread with an 8 MB stack.