Skip to main content

alef_core/
template_versions.rs

1//! Centralized third-party dependency version strings for code generation.
2//!
3//! This module consolidates all hardcoded version strings used in scaffold and e2e
4//! code generation. Each const that should be auto-bumped by Renovate includes a
5//! marker comment: `// renovate: datasource=... depName=...`
6//!
7//! When adding a new version: choose the appropriate submodule based on package ecosystem,
8//! add the renovate marker (if applicable), and use the const in templates.
9
10pub mod npm {
11    // renovate: datasource=npm depName=@napi-rs/cli
12    pub const NAPI_RS_CLI_DEVDEPS: &str = "^3.0.0";
13
14    // renovate: datasource=npm depName=@napi-rs/cli
15    pub const NAPI_RS_CLI_CRATE: &str = "^3.6.2";
16
17    // renovate: datasource=npm depName=typescript
18    pub const TYPESCRIPT: &str = "^6.0.3";
19
20    // renovate: datasource=npm depName=vitest
21    pub const VITEST: &str = "^4.1.5";
22
23    // renovate: datasource=npm depName=rollup
24    pub const ROLLUP: &str = "^4.53.3";
25
26    // renovate: datasource=npm depName=vite-plugin-top-level-await
27    pub const VITE_PLUGIN_TOP_LEVEL_AWAIT: &str = "^1.4.0";
28
29    // renovate: datasource=npm depName=vite-plugin-wasm
30    pub const VITE_PLUGIN_WASM: &str = "^3.4.0";
31}
32
33pub mod cargo {
34    // napi major-only; manual bump required
35    pub const NAPI: &str = "3";
36
37    // napi-derive major-only; manual bump required
38    pub const NAPI_DERIVE: &str = "3";
39
40    // napi-build major-only; manual bump required
41    pub const NAPI_BUILD: &str = "2";
42
43    // renovate: datasource=crate depName=pyo3
44    pub const PYO3: &str = "0.28";
45
46    // renovate: datasource=crate depName=pyo3-async-runtimes
47    pub const PYO3_ASYNC_RUNTIMES: &str = "0.28";
48
49    // renovate: datasource=crate depName=magnus
50    pub const MAGNUS: &str = "0.8";
51
52    // renovate: datasource=crate depName=ext-php-rs
53    pub const EXT_PHP_RS: &str = "0.15";
54
55    // renovate: datasource=crate depName=js-sys
56    pub const JS_SYS: &str = "0.3";
57
58    // renovate: datasource=crate depName=wasm-bindgen
59    pub const WASM_BINDGEN: &str = "0.2";
60
61    // renovate: datasource=crate depName=wasm-bindgen-futures
62    pub const WASM_BINDGEN_FUTURES: &str = "0.4";
63
64    // renovate: datasource=crate depName=futures
65    pub const FUTURES: &str = "0.3";
66
67    // renovate: datasource=crate depName=futures-util
68    pub const FUTURES_UTIL: &str = "0.3";
69
70    // renovate: datasource=crate depName=serde-wasm-bindgen
71    pub const SERDE_WASM_BINDGEN: &str = "0.6";
72
73    // renovate: datasource=crate depName=cbindgen
74    pub const CBINDGEN: &str = "0.29";
75
76    // tempfile major-only; manual bump required
77    pub const TEMPFILE: &str = "3";
78
79    // renovate: datasource=crate depName=rustler
80    pub const RUSTLER: &str = "0.37";
81
82    // renovate: datasource=crate depName=async-trait
83    pub const ASYNC_TRAIT: &str = "0.1";
84
85    // renovate: datasource=crate depName=extendr-api
86    pub const EXTENDR_API: &str = "0.9";
87
88    // renovate: datasource=crate depName=axum
89    pub const AXUM: &str = "0.8";
90
91    // renovate: datasource=crate depName=tokio-stream
92    pub const TOKIO_STREAM: &str = "0.1";
93
94    // walkdir major-only; manual bump required
95    pub const WALKDIR: &str = "2";
96
97    // renovate: datasource=crate depName=tower-http
98    pub const TOWER_HTTP: &str = "0.6";
99
100    // renovate: datasource=crate depName=flutter_rust_bridge
101    pub const FLUTTER_RUST_BRIDGE: &str = "2.12.0";
102
103    // renovate: datasource=crate depName=flutter_rust_bridge_codegen
104    pub const FLUTTER_RUST_BRIDGE_CODEGEN: &str = "2.12.0";
105
106    // renovate: datasource=crate depName=swift-bridge
107    pub const SWIFT_BRIDGE: &str = "0.1.59";
108
109    // renovate: datasource=crate depName=swift-bridge-build
110    pub const SWIFT_BRIDGE_BUILD: &str = "0.1.59";
111}
112
113pub mod pypi {
114    // renovate: datasource=pypi depName=maturin
115    // Note: floor+ceil constraint; managed as single string, no Renovate auto-bump
116    pub const MATURIN_BUILD_REQUIRES: &str = "maturin>=1.0,<2.0";
117
118    // renovate: datasource=pypi depName=ruff
119    pub const RUFF: &str = ">=0.14.8";
120
121    // renovate: datasource=pypi depName=mypy
122    pub const MYPY: &str = ">=1.19.0";
123}
124
125pub mod gem {
126    // renovate: datasource=rubygems depName=rb_sys
127    pub const RB_SYS: &str = "~> 0.9";
128
129    // renovate: datasource=rubygems depName=sorbet-runtime
130    pub const SORBET_RUNTIME: &str = "~> 0.5";
131
132    // renovate: datasource=rubygems depName=rake-compiler
133    pub const RAKE_COMPILER: &str = "~> 1.2";
134
135    // renovate: datasource=rubygems depName=rspec
136    pub const RSPEC_SCAFFOLD: &str = "~> 3.0";
137
138    // renovate: datasource=rubygems depName=rspec
139    pub const RSPEC_E2E: &str = "~> 3.13";
140
141    // renovate: datasource=rubygems depName=rubocop
142    pub const RUBOCOP_SCAFFOLD: &str = "~> 1.0";
143
144    // renovate: datasource=rubygems depName=rubocop
145    pub const RUBOCOP_E2E: &str = "~> 1.86";
146
147    // renovate: datasource=rubygems depName=rubocop-performance
148    pub const RUBOCOP_PERFORMANCE: &str = "~> 1.0";
149
150    // renovate: datasource=rubygems depName=rubocop-rspec
151    pub const RUBOCOP_RSPEC_SCAFFOLD: &str = "~> 3.0";
152
153    // renovate: datasource=rubygems depName=rubocop-rspec
154    pub const RUBOCOP_RSPEC_E2E: &str = "~> 3.9";
155
156    // renovate: datasource=rubygems depName=steep
157    pub const STEEP: &str = "~> 1.0";
158
159    // renovate: datasource=rubygems depName=faraday
160    pub const FARADAY: &str = "~> 2.0";
161}
162
163pub mod packagist {
164    // renovate: datasource=packagist depName=phpstan/phpstan
165    pub const PHPSTAN: &str = "^2.1";
166
167    // renovate: datasource=packagist depName=friendsofphp/php-cs-fixer
168    pub const PHP_CS_FIXER: &str = "^3.95";
169
170    // renovate: datasource=packagist depName=phpunit/phpunit
171    pub const PHPUNIT: &str = "^13.1";
172
173    // renovate: datasource=packagist depName=guzzlehttp/guzzle
174    pub const GUZZLE: &str = "^7.0";
175}
176
177pub mod maven {
178    // renovate: datasource=maven depName=org.junit.jupiter:junit-jupiter
179    pub const JUNIT: &str = "6.1.0";
180
181    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-compiler-plugin
182    pub const MAVEN_COMPILER_PLUGIN: &str = "3.15.0";
183
184    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-surefire-plugin
185    pub const MAVEN_SUREFIRE_PLUGIN: &str = "3.5.5";
186
187    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-surefire-plugin
188    pub const MAVEN_SUREFIRE_PLUGIN_E2E: &str = "3.5.2";
189
190    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-checkstyle-plugin
191    pub const MAVEN_CHECKSTYLE_PLUGIN: &str = "3.6.0";
192
193    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-pmd-plugin
194    pub const MAVEN_PMD_PLUGIN: &str = "3.28.0";
195
196    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-source-plugin
197    pub const MAVEN_SOURCE_PLUGIN: &str = "3.4.0";
198
199    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-javadoc-plugin
200    pub const MAVEN_JAVADOC_PLUGIN: &str = "3.12.0";
201
202    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-gpg-plugin
203    pub const MAVEN_GPG_PLUGIN: &str = "3.2.8";
204
205    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-clean-plugin
206    pub const MAVEN_CLEAN_PLUGIN: &str = "3.5.0";
207
208    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-resources-plugin
209    pub const MAVEN_RESOURCES_PLUGIN: &str = "3.5.0";
210
211    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-jar-plugin
212    pub const MAVEN_JAR_PLUGIN: &str = "3.5.0";
213
214    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-install-plugin
215    pub const MAVEN_INSTALL_PLUGIN: &str = "3.1.4";
216
217    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-deploy-plugin
218    pub const MAVEN_DEPLOY_PLUGIN: &str = "3.1.4";
219
220    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-site-plugin
221    pub const MAVEN_SITE_PLUGIN: &str = "4.0.0-M16";
222
223    // renovate: datasource=maven depName=org.sonatype.central:central-publishing-maven-plugin
224    pub const CENTRAL_PUBLISHING_PLUGIN: &str = "0.10.0";
225
226    // renovate: datasource=maven depName=com.diffplug.spotless:spotless-maven-plugin
227    pub const SPOTLESS_MAVEN_PLUGIN: &str = "3.5.1";
228
229    // renovate: datasource=maven depName=org.codehaus.mojo:versions-maven-plugin
230    pub const VERSIONS_MAVEN_PLUGIN: &str = "2.21.0";
231
232    // renovate: datasource=maven depName=org.apache.maven.plugins:maven-enforcer-plugin
233    pub const MAVEN_ENFORCER_PLUGIN: &str = "3.6.3";
234
235    // renovate: datasource=maven depName=org.jacoco:jacoco-maven-plugin
236    pub const JACOCO_MAVEN_PLUGIN: &str = "0.8.14";
237
238    // renovate: datasource=maven depName=com.puppycrawl.tools:checkstyle
239    pub const CHECKSTYLE: &str = "13.4.2";
240
241    // renovate: datasource=maven depName=net.sourceforge.pmd:pmd-java
242    // Must match pmd-core bundled in maven-pmd-plugin to avoid NoSuchMethodError.
243    pub const PMD: &str = "7.17.0";
244
245    // renovate: datasource=maven depName=org.jspecify:jspecify
246    pub const JSPECIFY: &str = "1.0.0";
247
248    // renovate: datasource=maven depName=com.fasterxml.jackson.core:jackson-databind
249    pub const JACKSON: &str = "2.21.3";
250
251    // renovate: datasource=maven depName=com.fasterxml.jackson.core:jackson-annotations
252    pub const JACKSON_ANNOTATIONS: &str = "2.21";
253
254    // renovate: datasource=maven depName=com.fasterxml.jackson.core:jackson-databind
255    pub const JACKSON_E2E: &str = "2.18.2";
256
257    // renovate: datasource=maven depName=org.assertj:assertj-core
258    pub const ASSERTJ: &str = "4.0.0-M1";
259
260    // renovate: datasource=maven depName=org.codehaus.mojo:build-helper-maven-plugin
261    pub const BUILD_HELPER_MAVEN_PLUGIN: &str = "3.6.1";
262
263    // renovate: datasource=maven depName=org.jetbrains.kotlin:kotlin-gradle-plugin
264    pub const KOTLIN_JVM_PLUGIN: &str = "2.3.21";
265
266    // renovate: datasource=maven depName=com.android.tools.build:gradle
267    pub const ANDROID_GRADLE_PLUGIN: &str = "8.7.3";
268
269    // renovate: datasource=maven depName=org.jlleitschuh.gradle:ktlint-gradle
270    pub const KTLINT_GRADLE_PLUGIN: &str = "13.1.0";
271
272    // renovate: datasource=maven depName=com.github.ben-manes:gradle-versions-plugin
273    pub const GRADLE_VERSIONS_PLUGIN: &str = "0.52.0";
274
275    // renovate: datasource=github-releases depName=pinterest/ktlint
276    pub const KTLINT: &str = "1.8.0";
277
278    // renovate: datasource=maven depName=org.jetbrains.kotlinx:kotlinx-coroutines-core
279    pub const KOTLINX_COROUTINES_CORE: &str = "1.11.0";
280
281    // renovate: datasource=maven depName=net.java.dev.jna:jna
282    pub const JNA: &str = "5.18.1";
283
284    // renovate: datasource=maven depName=junit:junit
285    pub const JUNIT_LEGACY: &str = "4.13.2";
286
287    // renovate: datasource=maven depName=androidx.test.ext:junit
288    pub const ANDROIDX_TEST_EXT_JUNIT: &str = "1.3.0";
289
290    // renovate: datasource=maven depName=androidx.test.espresso:espresso-core
291    pub const ANDROIDX_TEST_ESPRESSO_CORE: &str = "3.7.0";
292}
293
294pub mod nuget {
295    // renovate: datasource=nuget depName=Microsoft.NET.Test.Sdk
296    pub const MICROSOFT_NET_TEST_SDK: &str = "18.5.1";
297
298    // renovate: datasource=nuget depName=xunit
299    pub const XUNIT: &str = "2.9.3";
300
301    // renovate: datasource=nuget depName=xunit.runner.visualstudio
302    pub const XUNIT_RUNNER_VISUALSTUDIO: &str = "3.1.5";
303}
304
305pub mod hex {
306    // renovate: datasource=hex depName=rustler
307    pub const RUSTLER: &str = "~> 0.37.0";
308
309    // renovate: datasource=hex depName=rustler_precompiled
310    pub const RUSTLER_PRECOMPILED: &str = "~> 0.9";
311
312    // renovate: datasource=hex depName=credo
313    pub const CREDO: &str = "~> 1.7";
314
315    // renovate: datasource=hex depName=ex_doc
316    pub const EX_DOC: &str = "~> 0.40";
317
318    // renovate: datasource=hex depName=req
319    pub const REQ: &str = "~> 0.5";
320
321    // renovate: datasource=hex depName=jason
322    pub const JASON: &str = "~> 1.4";
323
324    // version range; manual bump required
325    pub const GLEAM_STDLIB_VERSION_RANGE: &str = ">= 0.34.0 and < 2.0.0";
326
327    // version range; manual bump required
328    pub const GLEEUNIT_VERSION_RANGE: &str = ">= 1.0.0 and < 2.0.0";
329
330    // renovate: datasource=hex depName=gleam_httpc
331    // 4.x is the first to support gleam_stdlib >= 1.0.0; we accept the
332    // 4.x and 5.x lines.
333    pub const GLEAM_HTTPC_VERSION_RANGE: &str = ">= 4.0.0 and < 6.0.0";
334
335    // renovate: datasource=hex depName=envoy
336    // Tiny env-var helper, used by e2e tests to read MOCK_SERVER_URL.
337    pub const ENVOY_VERSION_RANGE: &str = ">= 1.0.0 and < 2.0.0";
338}
339
340/// pub.dev (Dart) ecosystem.
341pub mod pub_dev {
342    // renovate: datasource=pub depName=test
343    pub const TEST_PACKAGE: &str = "^1.25.0";
344
345    // renovate: datasource=pub depName=lints
346    pub const LINTS: &str = "^6.1.0";
347
348    // renovate: datasource=pub depName=ffi
349    pub const FFI_PACKAGE: &str = "^2.2.0";
350
351    // renovate: datasource=pub depName=http
352    pub const HTTP_PACKAGE: &str = "^1.2.0";
353
354    // renovate: datasource=pub depName=freezed_annotation
355    pub const FREEZED_ANNOTATION: &str = "^3.1.0";
356
357    // renovate: datasource=pub depName=json_annotation
358    pub const JSON_ANNOTATION: &str = "^4.11.0";
359
360    // renovate: datasource=pub depName=freezed
361    pub const FREEZED: &str = "^3.2.5";
362
363    // renovate: datasource=pub depName=build_runner
364    pub const BUILD_RUNNER: &str = "^2.15.0";
365
366    // renovate: datasource=pub depName=json_serializable
367    pub const JSON_SERIALIZABLE: &str = "^6.13.2";
368}
369
370/// Platform / toolchain pins. None of these auto-bump; track manually.
371pub mod toolchain {
372    // minimum supported Zig; manual bump required
373    pub const MIN_ZIG_VERSION: &str = "0.16.0";
374
375    // version range; manual bump required.
376    // Dart 3.11 is the scaffolded SDK floor for newly generated Dart packages.
377    pub const DART_SDK_CONSTRAINT: &str = ">=3.11.0 <4.0.0";
378
379    /// JVM bytecode target for the Java backend (Panama FFM, JDK 22+ required).
380    pub const JAVA_JVM_TARGET: &str = "25";
381
382    /// JVM bytecode target for the Kotlin/JVM backend.
383    pub const KOTLIN_JVM_TARGET: &str = "21";
384
385    #[deprecated(since = "0.16.4", note = "use JAVA_JVM_TARGET or KOTLIN_JVM_TARGET")]
386    pub const JVM_TARGET: &str = "25";
387
388    // minimum macOS deployment target for swift-bridge bindings; manual bump required
389    pub const SWIFT_MIN_MACOS: &str = "13.0";
390
391    // minimum iOS deployment target for swift-bridge bindings; manual bump required
392    pub const SWIFT_MIN_IOS: &str = "16.0";
393
394    // Android scaffold defaults; manual bumps required.
395    pub const ANDROID_COMPILE_SDK: &str = "35";
396    pub const ANDROID_MIN_SDK: &str = "21";
397    pub const ANDROID_JVM_TARGET: &str = "17";
398}
399
400pub mod cran {
401    // renovate: datasource=cran depName=rextendr
402    pub const REXTENDR: &str = "0.4.2";
403}
404
405pub mod precommit {
406    // renovate: datasource=github-tags packageName=Goldziher/gitfluff
407    pub const GITFLUFF_REV: &str = "v0.8.0";
408
409    // renovate: datasource=github-tags packageName=pre-commit/pre-commit-hooks
410    pub const PRE_COMMIT_HOOKS_REV: &str = "v6.0.0";
411
412    // renovate: datasource=github-tags packageName=tox-dev/pyproject-fmt
413    pub const PYPROJECT_FMT_REV: &str = "v2.21.2";
414
415    // renovate: datasource=github-tags packageName=DevinR528/cargo-sort
416    pub const CARGO_SORT_REV: &str = "v2.1.4";
417
418    // renovate: datasource=github-tags packageName=AndrejOrsula/pre-commit-cargo
419    pub const PRE_COMMIT_CARGO_REV: &str = "0.5.0";
420
421    // renovate: datasource=github-tags packageName=bnjbvr/cargo-machete
422    pub const CARGO_MACHETE_REV: &str = "v0.9.2";
423
424    // renovate: datasource=github-tags packageName=EmbarkStudios/cargo-deny
425    pub const CARGO_DENY_REV: &str = "0.19.6";
426
427    // renovate: datasource=github-tags packageName=rvben/rumdl-pre-commit
428    pub const RUMDL_REV: &str = "v0.1.95";
429
430    // renovate: datasource=github-tags packageName=crate-ci/typos
431    pub const TYPOS_REV: &str = "v1.46.2";
432
433    // renovate: datasource=github-tags packageName=kreuzberg-dev/pre-commit-hooks
434    pub const KREUZBERG_PRECOMMIT_HOOKS_REV: &str = "v1.1.12";
435
436    // alef rev: managed by sync-versions hook, no renovate marker
437    pub const ALEF_REV: &str = "v0.17.12";
438}