All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
proj.db, proj.ini, and proj-emscripten.wasm relative to module URL instead of HTML page (fixes CDN loading)proj_create_crs_to_crs_from_pj function
Java API: PROJ.java wrapper, PROJTest.java tests, bb test:java-ffi, bb test:java-graal, bb test:clj-ffi
Container-Based Build System:
Containerfile with builds for native, WASM, and development targetslinux/amd64, linux/aarch64, and windows/amd64--build-arg USE_LOCAL_PROJ=1Local PROJ Development Workflow:
bb proj:clone task to clone OSGeo/PROJ repository to vendor/PROJ--local-proj flag for all build tasks to use local PROJ instead of release versionextract-args now uses :argsemantics defaults (fixes proj_create_from_database NPE)proj_create_from_database options parameter changed to :pointer? for proper null handlingBabashka Build System: Complete replacement of shell scripts with bb.edn tasks
bb build command with --native, --wasm, and --cross optionsbb test:ffi, bb test:graal, bb test:cljs, bb test:playwright for comprehensive testingbb jar, bb pom, bb cherry, bb nrepl and other development tasksbb test:all and bb build:all meta-tasks for eventual CI/CD workflowsbb test-run for complete build and test pipeline (excluding deployment)Macro-Based Code Generation: Complete architectural refactor
fndefs.cljc containing all PROJ function definitions as datamacros.clj and macros.cljs for compile-time and runtime code generationRuntime Dispatch System: New unified architecture in proj.cljc
dispatch-proj-fn central router for all function callsextract-args for flexible parameter handling (supports both :source-crs and :source_crs styles)WebAssembly Module: New wasm.cljc namespace
proj-loader.mjs for ES6 module loadingTesting Infrastructure
examples/browser/index.htmlJavaScript/NPM Support
init function alias for cleaner JavaScript APIDeveloper Experience
Build System: Complete migration from shell scripts to Babashka
Project Structure
src/js/proj-emscripten/ to consolidated WASM support in coreEnums.java) - no longer needed with macro systemsrc/cljc/net/willcohen/proj/Implementation Files
graal.clj: Refactored to use macro-generated functionsnative.clj: Simplified with macro systemproj.cljc: Major refactor for runtime dispatchDocumentation
init functionDependencies
proj-emscripten JavaScript packageCan you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |