Skip to content

Commit dbd5756

Browse files
authored
Merge pull request #311 from codecrafters-io/andy/upgrade
Upgrade Clojure to v1.12
2 parents e59b49c + 0313962 commit dbd5756

File tree

23 files changed

+144
-64
lines changed

23 files changed

+144
-64
lines changed

compiled_starters/clojure/.codecrafters/compile.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@
88

99
set -e # Exit on failure
1010

11-
lein deps
12-
lein uberjar
11+
clj -T:build

compiled_starters/clojure/.codecrafters/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88

99
set -e # Exit on failure
1010

11-
exec java -jar /tmp/codecrafters-redis-target/uberjar/redis-0.1.0-SNAPSHOT-standalone.jar "$@"
11+
exec java -jar /tmp/codecrafters-build-redis-clojure/target.jar "$@"

compiled_starters/clojure/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ That's all!
2626

2727
Note: This section is for stages 2 and beyond.
2828

29-
1. Ensure you have `lein` installed locally
29+
1. Ensure you have `clj` installed locally
3030
1. Run `./your_program.sh` to run your Redis server, which is implemented in
3131
`src/redis/core.clj`.
3232
1. Commit your changes and run `git push origin master` to submit your solution

compiled_starters/clojure/build.clj

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(ns build
2+
(:gen-class)
3+
(:require [clojure.tools.build.api :as b]))
4+
5+
(def lib 'io.codecrafters.redis)
6+
(def class-dir "/tmp/codecrafters-build-redis-clojure/classes")
7+
(def basis (b/create-basis {:project "deps.edn"}))
8+
(def uber-file "/tmp/codecrafters-build-redis-clojure/target.jar")
9+
10+
(defn clean [_]
11+
(b/delete {:path "/tmp/codecrafters-build-redis-clojure"}))
12+
13+
(defn uber [_]
14+
(clean nil)
15+
(b/copy-dir {:src-dirs ["src"] :target-dir class-dir})
16+
(b/compile-clj {:basis basis
17+
:ns-compile '[redis.core]
18+
:class-dir class-dir})
19+
(b/uber {:class-dir class-dir
20+
:uber-file uber-file
21+
:basis basis
22+
:main 'redis.core}))

compiled_starters/clojure/codecrafters.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ debug: false
77
# Use this to change the Clojure version used to run your code
88
# on Codecrafters.
99
#
10-
# Available versions: clojure-1.11.3
11-
language_pack: clojure-1.11.3
10+
# Available versions: clojure-1.12.0
11+
language_pack: clojure-1.12.0

compiled_starters/clojure/deps.edn

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
:paths ["src"]
3+
4+
:deps {
5+
org.clojure/clojure {:mvn/version "1.12.0"}
6+
org.clojure/tools.cli {:mvn/version "1.1.230"}
7+
aleph/aleph {:mvn/version "0.8.3"}
8+
}
9+
10+
:aliases {
11+
:build {
12+
:extra-deps {io.github.clojure/tools.build {:mvn/version "0.10.9"}}
13+
:exec-fn build/uber
14+
}
15+
}
16+
}

compiled_starters/clojure/project.clj

Lines changed: 0 additions & 14 deletions
This file was deleted.

compiled_starters/clojure/your_program.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ set -e # Exit early if any commands fail
1414
# - Edit .codecrafters/compile.sh to change how your program compiles remotely
1515
(
1616
cd "$(dirname "$0")" # Ensure compile steps are run within the repository directory
17-
lein deps
18-
lein uberjar
17+
clj -T:build
1918
)
2019

2120
# Copied from .codecrafters/run.sh
2221
#
2322
# - Edit this to change how your program runs locally
2423
# - Edit .codecrafters/run.sh to change how your program runs remotely
25-
exec java -jar /tmp/codecrafters-redis-target/uberjar/redis-0.1.0-SNAPSHOT-standalone.jar "$@"
24+
exec java -jar /tmp/codecrafters-build-redis-clojure/target.jar "$@"

dockerfiles/clojure-1.12.0.Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# syntax=docker/dockerfile:1.7-labs
2+
FROM clojure:tools-deps-bookworm
3+
4+
# Ensures the container is re-built if dependency files change
5+
ENV CODECRAFTERS_DEPENDENCY_FILE_PATHS="deps.edn"
6+
7+
WORKDIR /app
8+
9+
# .git & README.md are unique per-repository. We ignore them on first copy to prevent cache misses
10+
COPY --exclude=.git --exclude=README.md . /app
11+
12+
# Install language-specific dependencies
13+
RUN .codecrafters/compile.sh

solutions/clojure/01-jm1/code/.codecrafters/compile.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@
88

99
set -e # Exit on failure
1010

11-
lein deps
12-
lein uberjar
11+
clj -T:build

solutions/clojure/01-jm1/code/.codecrafters/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88

99
set -e # Exit on failure
1010

11-
exec java -jar /tmp/codecrafters-redis-target/uberjar/redis-0.1.0-SNAPSHOT-standalone.jar "$@"
11+
exec java -jar /tmp/codecrafters-build-redis-clojure/target.jar "$@"

solutions/clojure/01-jm1/code/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ That's all!
2626

2727
Note: This section is for stages 2 and beyond.
2828

29-
1. Ensure you have `lein` installed locally
29+
1. Ensure you have `clj` installed locally
3030
1. Run `./your_program.sh` to run your Redis server, which is implemented in
3131
`src/redis/core.clj`.
3232
1. Commit your changes and run `git push origin master` to submit your solution
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(ns build
2+
(:gen-class)
3+
(:require [clojure.tools.build.api :as b]))
4+
5+
(def lib 'io.codecrafters.redis)
6+
(def class-dir "/tmp/codecrafters-build-redis-clojure/classes")
7+
(def basis (b/create-basis {:project "deps.edn"}))
8+
(def uber-file "/tmp/codecrafters-build-redis-clojure/target.jar")
9+
10+
(defn clean [_]
11+
(b/delete {:path "/tmp/codecrafters-build-redis-clojure"}))
12+
13+
(defn uber [_]
14+
(clean nil)
15+
(b/copy-dir {:src-dirs ["src"] :target-dir class-dir})
16+
(b/compile-clj {:basis basis
17+
:ns-compile '[redis.core]
18+
:class-dir class-dir})
19+
(b/uber {:class-dir class-dir
20+
:uber-file uber-file
21+
:basis basis
22+
:main 'redis.core}))

solutions/clojure/01-jm1/code/codecrafters.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ debug: false
77
# Use this to change the Clojure version used to run your code
88
# on Codecrafters.
99
#
10-
# Available versions: clojure-1.11.3
11-
language_pack: clojure-1.11.3
10+
# Available versions: clojure-1.12.0
11+
language_pack: clojure-1.12.0
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
:paths ["src"]
3+
4+
:deps {
5+
org.clojure/clojure {:mvn/version "1.12.0"}
6+
org.clojure/tools.cli {:mvn/version "1.1.230"}
7+
aleph/aleph {:mvn/version "0.8.3"}
8+
}
9+
10+
:aliases {
11+
:build {
12+
:extra-deps {io.github.clojure/tools.build {:mvn/version "0.10.9"}}
13+
:exec-fn build/uber
14+
}
15+
}
16+
}

solutions/clojure/01-jm1/code/project.clj

Lines changed: 0 additions & 14 deletions
This file was deleted.

solutions/clojure/01-jm1/code/your_program.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ set -e # Exit early if any commands fail
1414
# - Edit .codecrafters/compile.sh to change how your program compiles remotely
1515
(
1616
cd "$(dirname "$0")" # Ensure compile steps are run within the repository directory
17-
lein deps
18-
lein uberjar
17+
clj -T:build
1918
)
2019

2120
# Copied from .codecrafters/run.sh
2221
#
2322
# - Edit this to change how your program runs locally
2423
# - Edit .codecrafters/run.sh to change how your program runs remotely
25-
exec java -jar /tmp/codecrafters-redis-target/uberjar/redis-0.1.0-SNAPSHOT-standalone.jar "$@"
24+
exec java -jar /tmp/codecrafters-build-redis-clojure/target.jar "$@"

starter_templates/clojure/code/.codecrafters/compile.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@
88

99
set -e # Exit on failure
1010

11-
lein deps
12-
lein uberjar
11+
clj -T:build

starter_templates/clojure/code/.codecrafters/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88

99
set -e # Exit on failure
1010

11-
exec java -jar /tmp/codecrafters-redis-target/uberjar/redis-0.1.0-SNAPSHOT-standalone.jar "$@"
11+
exec java -jar /tmp/codecrafters-build-redis-clojure/target.jar "$@"
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(ns build
2+
(:gen-class)
3+
(:require [clojure.tools.build.api :as b]))
4+
5+
(def lib 'io.codecrafters.redis)
6+
(def class-dir "/tmp/codecrafters-build-redis-clojure/classes")
7+
(def basis (b/create-basis {:project "deps.edn"}))
8+
(def uber-file "/tmp/codecrafters-build-redis-clojure/target.jar")
9+
10+
(defn clean [_]
11+
(b/delete {:path "/tmp/codecrafters-build-redis-clojure"}))
12+
13+
(defn uber [_]
14+
(clean nil)
15+
(b/copy-dir {:src-dirs ["src"] :target-dir class-dir})
16+
(b/compile-clj {:basis basis
17+
:ns-compile '[redis.core]
18+
:class-dir class-dir})
19+
(b/uber {:class-dir class-dir
20+
:uber-file uber-file
21+
:basis basis
22+
:main 'redis.core}))
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
:paths ["src"]
3+
4+
:deps {
5+
org.clojure/clojure {:mvn/version "1.12.0"}
6+
org.clojure/tools.cli {:mvn/version "1.1.230"}
7+
aleph/aleph {:mvn/version "0.8.3"}
8+
}
9+
10+
:aliases {
11+
:build {
12+
:extra-deps {io.github.clojure/tools.build {:mvn/version "0.10.9"}}
13+
:exec-fn build/uber
14+
}
15+
}
16+
}

starter_templates/clojure/code/project.clj

Lines changed: 0 additions & 14 deletions
This file was deleted.

starter_templates/clojure/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
attributes:
2-
required_executable: lein
2+
required_executable: clj
33
user_editable_file: src/redis/core.clj

0 commit comments

Comments
 (0)