Relevant to https://www.notion.so/stylitics/Graaling-widget-api-943c84d186e94d0eaeba6bb7eb6757e8
The instructions for building a patched version of reitit are below. We need reitit to use a patched version of ring-core.
-
Clone Stylitics’ fork: https://github.com/Stylitics/ring-clojure/ and
lein install
in ring-clojure/ring-core. This installsring/ring-core “1.12.2-patched-graal”
which is this PR on top of ring’s master. -
Clone Stylitics’ fork: https://github.com/Stylitics/reitit, and run
lein install
in reitit/modules/reitit-ring andlein install
in reitit/modules/reitit, in that order. clj-widget-api uses the libmetosin/reitit "0.7.1-patched-graal”
in the draft omnibus PR https://github.com/Stylitics/clj-widget-api/pull/662, so we lein install both reitit-ring and the parentreitit
, so we can use all reitit’s libs.
To use the patched reitit, include it from clojars. To update it ask Matt or another developer for the deploy keys and username and password. Once you have them the command is
CLOJARS_USERNAME=stylitics-graal CLOJARS_PASSWORD=the_password lein deploy clojars
I believe we only ring-core and reitit (not reitit-parent) on clojars, but I don't know how to delete things from clojars.
Ring is a Clojure web applications library inspired by Python's WSGI and Ruby's Rack. By abstracting the details of HTTP into a simple, unified API, Ring allows web applications to be constructed of modular components that can be shared among a variety of applications, web servers, and web frameworks.
The SPEC.md file at the root of this distribution provides a complete description of the Ring interface. The Wiki contains more in-depth documentation on how to use Ring.
ring/ring
- meta-package containing all relevant dependenciesring/ring-core
- core functions and middleware for Ring handlers, requests and responsesorg.ring-clojure/ring-core-protocols
- contains only the protocols necessary for building Ring responsesorg.ring-clojure/ring-websocket-protocols
- contains only the protocols necessary for WebSocketsring/ring-devel
- functions for developing and debugging Ring applicationsring/ring-servlet
- construct legacy Java Servlets (≤ 4.0) from Ring handlersorg.ring-clojure/ring-jakarta-servlet
construct Jakarta Servlets (≥ 5.0) from Ring handlersring/ring-jetty-adapter
- a Ring adapter that uses an embedded Jetty web server
To include one of the above libraries, for instance ring-core
, add
the following dependency to your deps.edn
file:
ring/ring-core {:mvn/version "1.12.2"}
Or to your Leiningen project file:
[ring/ring-core "1.12.2"]
Please read CONTRIBUTING.md before submitting a pull request.
This project borrows heavily from Ruby's Rack and Python's WSGI; thanks to those communities for their work. Thanks also go to the many individuals who have contributed to Ring's code and documentation over the years.
Copyright © 2009-2024 Mark McGranaghan, James Reeves & contributors.
Released under the MIT license.