Repository navigation
Releases: extrode/pare
Releases · extrode/pare
Release list
v0.6.2
v0.6.1
Pare 0.6.0
Upgrading from 0.5
- Nothing to change: no breaking changes. Update
Extrode.Pare.Buildand
Extrode.Pare.AspNetCoretogether; 0.5'sAddPareDevelopmentwith 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 toPareCompileDependsOn; Pare gives each sourcePareOutputPathand
PareRelativePathby the.tsrules and serves, publishes, embeds and deletes the outputs.
Newerror PARE204for an item without a validPareCompilername orPareOutputExtension.
README "Other compilers". IPareCompilerinExtrode.Pare.AspNetCore: registered in DI,AddPareDevelopmentruns its
CompileAsyncon save for its sources, one source at a time.AddPareDevelopmentcalled 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: NativeAOTpareCLI 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, orpare.dllwithpare.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.AspNetCore0.6.0.nupkg(not on nuget.org yet; README "Restoring without nuget.org").
Pare 0.5.0
Upgrading from 0.4
- Nothing to change: no breaking changes.
Changes
libpare: the stripper as a C shared library withpare.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.ts13.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-only0.60 -> 0.35 s.
Downloads
pare-0.5.0-<rid>.tar.gz/.zip: NativeAOTpareCLI 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, orpare.dllwithpare.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.AspNetCore0.5.0.nupkg(not on nuget.org yet; README "Restoring without nuget.org").
Pare 0.4.0
Upgrading from 0.3
- Builds with TypeScript outside
wwwrootand noPareServeAtnow showwarning PARE202; addPareServeAt, orPARE202toNoWarnto keep the output next to the source.
Changes
PareEmbed=true(withPareEmbedPrefix) embeds every output in the assembly, named after its
path below the project, written underobj/; for projects that are not web projects. Outputs
are notContentor static web assets there, and a deleted source drops its resource.@(PareOutput)is public: every output, withPareSourceandPareRelativePath. A project's
AfterTargets="PareStripTypeScript"target sees it on every build.PareStripTypeScriptnow
has no body and depends on the strip (_PareStrip) and the registration;PareTypeCheckruns
as its dependency instead of throughBeforeTargets.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
.tson import (JintModuleTests). - README: restoring vendored
.nupkgfiles offline, non-web projects. PareServeAtserves TypeScript outsidewwwroot:
<TypeScriptSource Include="Scripts/**/*.ts" PareServeAt="js" />servesScripts/lib/fmt.ts
at/js/lib/fmt.js, and.mtsas.mjs.PareServeAt="/"serves Blazor**/*.razor.ts
beside their components.AddPareDevelopmentre-stripsPareServeAtsources 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
wwwrootwith noPareServeAtis not served. Builds that
include such sources now show it; addPARE202toNoWarnto keep the output next to the source. - PARE203 error: a
PareServeAtthat 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 thesamples/CliSitestatic-site sample. - Fixed:
PareOutDirwith a.razor.tsor.cshtml.tssource failed the build with BLAZOR106
(a.razor.jswith no component beside it). The output is written there and not served.
Downloads
pare-0.4.0-<rid>.tar.gz/.zip: NativeAOTpareCLI 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.AspNetCore0.4.0.nupkg(not on nuget.org yet; README "Restoring without nuget.org").
Pare 0.3.0
Upgrading from 0.2
- Web projects now get their
.jsunderobj/by default; setPareOutDirto keep 0.2's
output next to each source. - Delete the
.jsfiles 0.2 generated inwwwroot(warning PARE200names each one until you
do), and drop any.gitignorerules for them. - A
.tsfile added whiledotnet watchruns is served after the next build (Ctrl+R); edits to
existing files reload as before.
Changes
- Web projects:
Extrode.Pare.Buildwrites the output ofwwwroot/**/*.tsunder
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
fromwwwrooton disk.PareOutDirturns it off. Afoo.jsleft next tofoo.tsis not served
and getswarning 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
AddPareDevelopmentwhile the app
runs.AddPareDevelopmentwrites where the build does, read from
Extrode.Pare.development.jsonin the build output. A source added duringdotnet watchis
served after the next build. Extrode.Pare.Buildruns 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
Extrode.Pare.AspNetCore:builder.AddPareDevelopment()re-stripswwwrootTypeScript as it
is saved while the app runs in Development, sodotnet watchhot reload reloads the page with
fresh JavaScript. It also givesCreateSlimBuilderappsdotnet watch's browser refresh.- The core library packs as
Extrode.Pare. pareCLI as a .NET tool:dotnet tool install -g Extrode.Pare.Cliinstalls the NativeAOT
binary for osx, linux, linux-musl and win (arm64 and x64), and a framework-dependent build on other
platforms.scripts/pack-cli.shpacks the tool packages andpare-<version>-<rid>.tar.gz
archives, building Linux in Docker.- Fixed: on linux-musl-arm64 (Alpine), about one
pareprocess in four rejected every input with
PARE001at 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.