v0.9.9 — DX patch release
DX patch release. Two critical fixes (microservice scaffolds couldn't compile under cargo check since v0.9.4; the new cheat sheet falsely advertised --db and --auth as flags that work with --defaults) plus seven quality-of-life improvements. All non-breaking; nothing in 0.9.8-generated projects changes until you regenerate.
Fixed
- Microservice and gateway scaffolds now compile under
cargo checkon the first run.server/Cargo.toml.ejswas missing areqwest.workspace = trueblock under thecircuitBreakerEnabledconditional, soresilient_http_client.rs(which usesreqwest::Client/Response/Error) failed to compile with three E0432/E0433 errors. The workspaceCargo.toml.ejscorrectly declaredreqwest; only the server crate was missing it. Latent since v0.9.4 because vitest's snapshot tests verify file content but never runcargo check. Affected every microservice or gateway scaffold with circuit breaker enabled (the default for both) and neither OAuth2 nor Consul. (commit8774291) - Generated
README.mdno longer duplicates content 8 times. The.jhi.rust.ejsextension hooked JHipster's fragment-merge mechanism without fragment guards, inserting the template at every fragment slot in the parent README. Renamed toREADME.md.ejs(standalone override). 1001 → 138 lines for a default microservice scaffold. (commitafcaedf) - Generated
.env.examplenow ships alongside.envso the README's first setup step works. The example uses a known-default sentinel forJWT_SECRET, ensuringcp .env.example .env && cargo runFATALs at startup rather than silently signing tokens with a placeholder. The header now also names all three failure modes explicitly: JWT scaffolds FATAL on startup, OAuth2 scaffolds fail at first login (OIDC_CLIENT_SECRET placeholder), SQL/MongoDB scaffolds fail at DB connect (placeholder credentials). (commits44364f6,69f5af2) jhipster-rust --versionand other CLI invocations no longer printINFO! No custom commands found within blueprintfrom the upstream loader. Addedcli/commands.jsexporting an empty default object to satisfy_getBlueprintCommands's probe. Script-friendly:jhipster-rust --version | awk '{print $1}'returns0.9.9(wasINFO!). (commited6e945)- Generated
README.mdsetup section is shorter and accurate: removed the redundantmkdir -p target/dbstep (runtime auto-creates viafs::create_dir_all) and thediesel migration runstep (already auto-run in the generator's END phase). The diesel command stays as a note for the entity-addition workflow. Two steps now: review.env, thencargo run. (commit69f5af2) - Generated
README.mdserver-URL line is now conditional on application type. Previously hard-codedhttp://localhost:8080regardless, which was wrong for every microservice scaffold (those use port 8081 perenv.ejs). (commit69f5af2)
Changed
jhipster-rust app --helpnow prints a Rust Blueprint quick reference between the Rust badge and JHipster's full Options block. Enumerates supported choices for the four scaffold-shaping flags (--application-type monolith | gateway | microservice,--db sqlite | postgresql | mysql | mongodb,--auth jwt | oauth2,--service-discovery-type consul | no— the choice lists reflect what this blueprint implements, not what JHipster core advertises), with three example invocations. (commitsfd43639,69f5af2)- The cheat sheet is honest about the
--defaultsinteraction:--dband--authare silently overridden by--defaults(a pre-existing JHipster CLI behavior — those flags only take full effect with--skip-server). The cheat sheet now annotates them as(interactive only)and includes an explicit Note: to pick a non-default DB or auth, omit--defaultsand answer the prompts. (commitb2323e8) - Source
README.mdgains a# What This Does in 60 Secondssection above# Introduction, so a developer landing from a Google search hits the magical-moment pitch (copy-paste commands plus a dense outcome paragraph naming all three app types and frontend choices) before the feature matrix. The pitch's prose qualifies that the JHipster frontend ships with monolith and gateway only (microservice mode is API-only); timing claims explicitly distinguish cold versus warm cargo cache. (commitsc05a50a,69f5af2)
Documentation
- New
CHANGELOG.mdat repo root indexes every release from0.7.4through0.9.9, following the Keep a Changelog format. Each version is dated from its git tag and grouped into Added / Changed / Fixed / Breaking / Migration as applicable. Long-form per-release narrative stays inRELEASE_NOTES.md. (commita8004d8) - Three-line shell comment added above the
[ -z ]test indocker-entrypoint.sh.ejsdocumenting the deliberate empty-vs-unset convergence (POSIX[ -z ]matches both empty and unset, soJWT_SECRET=""generates a random value here just like missing) and pointing at the Rust binary'sis_sentinel("")as the layer that catches the barecargo runpath. (commit551c235)