From 5a74d03e4e3dc7082a1738310ca789e759481ef4 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sun, 1 Mar 2020 20:49:07 -0500 Subject: [PATCH 01/26] CLJ-2561 - Support s/form on dynamically resolved s/every --- src/main/clojure/clojure/alpha/spec/impl.clj | 5 +++-- src/test/clojure/clojure/test_clojure/spec.clj | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/clojure/clojure/alpha/spec/impl.clj b/src/main/clojure/clojure/alpha/spec/impl.clj index 387d4a9..96d955b 100644 --- a/src/main/clojure/clojure/alpha/spec/impl.clj +++ b/src/main/clojure/clojure/alpha/spec/impl.clj @@ -1144,10 +1144,11 @@ (describe* [_] describe-form))))) (defmethod s/expand-spec `s/every - [[_ pred & opts]] + [[_ pred & opts :as form]] {:clojure.spec/op `s/every :spec pred - :opts (apply hash-map opts)}) + :opts (-> (apply hash-map opts) + (update ::s/describe #(or % form)))}) (defmethod s/create-spec `s/every [{:keys [spec opts]}] diff --git a/src/test/clojure/clojure/test_clojure/spec.clj b/src/test/clojure/clojure/test_clojure/spec.clj index 11b72e1..089bca2 100644 --- a/src/test/clojure/clojure/test_clojure/spec.clj +++ b/src/test/clojure/clojure/test_clojure/spec.clj @@ -351,6 +351,9 @@ (s/every int?) '(clojure.alpha.spec/every clojure.core/int?) + (s/resolve-spec `(s/every int?)) + '(clojure.alpha.spec/every clojure.core/int?) + (s/coll-of (s/tuple (s/tuple int?))) '(clojure.alpha.spec/coll-of (clojure.alpha.spec/tuple (clojure.alpha.spec/tuple clojure.core/int?))) From 0ecf47d1553bad3fff49e4845ceac19b03e1f983 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sun, 1 Mar 2020 23:22:36 -0500 Subject: [PATCH 02/26] CLJ-2562 - add s/expand-spec and s/create-spec for s/spec For non-regex's, s/spec call will disappear after s/form. For regex specs, s/spec form wrapper is preserved s/form. --- src/main/clojure/clojure/alpha/spec.clj | 2 +- src/main/clojure/clojure/alpha/spec/impl.clj | 40 +++++++++++++------ .../clojure/clojure/test_clojure/spec.clj | 4 ++ 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/main/clojure/clojure/alpha/spec.clj b/src/main/clojure/clojure/alpha/spec.clj index 27bf4f6..ab96c58 100644 --- a/src/main/clojure/clojure/alpha/spec.clj +++ b/src/main/clojure/clojure/alpha/spec.clj @@ -424,7 +424,7 @@ "Given a function symbol, set of constants, or anonymous function, returns a spec object." [s] - `(resolve-spec '~(explicate (ns-name *ns*) s))) + `(resolve-spec '~(explicate (ns-name *ns*) `(spec ~s)))) (defn register "Given a namespace-qualified keyword or resolvable symbol k, and a diff --git a/src/main/clojure/clojure/alpha/spec/impl.clj b/src/main/clojure/clojure/alpha/spec/impl.clj index 96d955b..7e70fed 100644 --- a/src/main/clojure/clojure/alpha/spec/impl.clj +++ b/src/main/clojure/clojure/alpha/spec/impl.clj @@ -521,6 +521,18 @@ [{:keys [schemas]}] (union-impl schemas nil)) +(defmethod s/expand-spec `s/spec + [[_ s :as form]] + {:clojure.spec/op `s/spec + :s s + :form form}) + +(defmethod s/create-spec `s/spec + [{:keys [s form]}] + (let [rs (s/resolve-spec s)] + (cond-> rs + (::s/op rs) (assoc ::s/wrap-spec form)))) + (defn- select-impl [schema-form selection gfn] (let [id (java.util.UUID/randomUUID) @@ -1439,20 +1451,24 @@ (when (accept-nil? p1) (deriv (rep* p2 p2 (add-ret p1 ret nil) splice forms) x))))))) (defn- op-describe [p] - (let [{:keys [::s/op ps ks forms splice p1 rep+ maybe amp] :as p} (#'s/reg-resolve! p)] + (let [{:keys [::s/op ps ks forms splice p1 rep+ maybe amp ::s/wrap-spec] :as p} (#'s/reg-resolve! p)] ;;(prn {:op op :ks ks :forms forms :p p}) (when p - (case op - ::s/accept nil - nil p - ::s/amp (list* 'clojure.alpha.spec/& (resolve-form amp) (resolve-forms forms)) - ::s/pcat (if rep+ - (list `s/+ rep+) - (cons `s/cat (mapcat vector (or (seq ks) (repeat :_)) (resolve-forms forms)))) - ::s/alt (if maybe - (list `s/? maybe) - (cons `s/alt (mapcat vector ks (resolve-forms forms)))) - ::s/rep (list (if splice `s/+ `s/*) (resolve-form forms)))))) + (let [d (case op + ::s/accept nil + nil p + ::s/amp (list* 'clojure.alpha.spec/& (resolve-form amp) (resolve-forms forms)) + ::s/pcat (if rep+ + (list `s/+ rep+) + (cons `s/cat (mapcat vector (or (seq ks) (repeat :_)) (resolve-forms forms)))) + ::s/alt (if maybe + (list `s/? maybe) + (cons `s/alt (mapcat vector ks (resolve-forms forms)))) + ::s/rep (list (if splice `s/+ `s/*) (resolve-form forms)))] + (if wrap-spec + (-> (list (first wrap-spec) d) + (with-meta (meta wrap-spec))) + d))))) (defn- op-explain [form p path via in input settings-key settings] ;;(prn {:form form :p p :path path :input input}) diff --git a/src/test/clojure/clojure/test_clojure/spec.clj b/src/test/clojure/clojure/test_clojure/spec.clj index 089bca2..63f2d9a 100644 --- a/src/test/clojure/clojure/test_clojure/spec.clj +++ b/src/test/clojure/clojure/test_clojure/spec.clj @@ -309,8 +309,12 @@ (is (= (s/describe sp) (s/form sp) #{1 2}))) (is (= (s/describe (s/spec odd?)) 'odd?)) + (is (= (s/describe (s/resolve-spec `(s/spec odd?))) 'odd?)) (is (= (s/form (s/spec odd?)) 'clojure.core/odd?)) + (is (= (s/form (s/spec (s/* integer?))) `(s/spec (s/* integer?)))) + (is (= (s/form (s/resolve-spec `(s/spec (s/* integer?)))) `(s/spec (s/* integer?)))) + (is (= (s/describe (s/spec #(odd? %))) '(odd? %))) (is (= (s/form (s/spec #(odd? %))) '(fn [%] (clojure.core/odd? %))))) From c6c63f41068204e17a5038737d13ee42a6e767b4 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 18:59:50 -0500 Subject: [PATCH 03/26] spec2 dev --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cef60fd..df0d7ec 100644 --- a/pom.xml +++ b/pom.xml @@ -1,8 +1,9 @@ 4.0.0 + org.clojure.frenchy64 alpha.spec - 0.2.177-SNAPSHOT + 0.2.177-frenchy64-dev alpha.spec Specification of data and functions From 3d4a39240e53eadbe83109bcfad38ed32693b9c1 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:00:42 -0500 Subject: [PATCH 04/26] pom --- pom.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pom.xml b/pom.xml index df0d7ec..755691a 100644 --- a/pom.xml +++ b/pom.xml @@ -22,6 +22,19 @@ + + + clojars + Clojars repository + https://clojars.org/repo + + + clojars + Clojars repository + https://clojars.org/repo + + + org.clojure pom.contrib From dbd36fb9d9a10c47b75d01875a9f30c5ac635475 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:10:24 -0500 Subject: [PATCH 05/26] prep --- .github/workflows/frenchy64-dev.yml | 30 ++++++++++++ .gitignore | 1 + pom.xml | 4 +- script/deploy-actions.sh | 27 +++++++++++ script/prep-actions-release.sh | 35 ++++++++++++++ script/release-and-push.sh | 74 +++++++++++++++++++++++++++++ 6 files changed, 169 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/frenchy64-dev.yml create mode 100755 script/deploy-actions.sh create mode 100755 script/prep-actions-release.sh create mode 100755 script/release-and-push.sh diff --git a/.github/workflows/frenchy64-dev.yml b/.github/workflows/frenchy64-dev.yml new file mode 100644 index 0000000..c0bda48 --- /dev/null +++ b/.github/workflows/frenchy64-dev.yml @@ -0,0 +1,30 @@ +name: Test and deploy + +on: [push] + +jobs: + deploy: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - uses: DeLaGuardo/setup-clojure@2.0 + with: + tools-deps: latest + - name: Configure settings.xml + run: | + mkdir -p ~/.m2 + echo "clojarstypedclojure-clojars${{ secrets.ClojarsPassword }}" > ~/.m2/settings.xml + + - name: Deploy + run: ./script/deploy-actions.sh diff --git a/.gitignore b/.gitignore index c30a559..0ec7787 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ .lein* .nrepl-port .cpcache +.*.swp diff --git a/pom.xml b/pom.xml index 755691a..20e01ee 100644 --- a/pom.xml +++ b/pom.xml @@ -1,9 +1,9 @@ 4.0.0 - org.clojure.frenchy64 + org.clojars.typedclojure-clojars alpha.spec - 0.2.177-frenchy64-dev + 0.2.177-SNAPSHOT alpha.spec Specification of data and functions diff --git a/script/deploy-actions.sh b/script/deploy-actions.sh new file mode 100755 index 0000000..8986d29 --- /dev/null +++ b/script/deploy-actions.sh @@ -0,0 +1,27 @@ +#! /bin/bash +# Deploys either a snapshot or release in GitHub Actions. +# If the commit message is of the form: +# [typedclojure-release] + +set -e + +if [[ "$GITHUB_ACTIONS" != 'true' ]]; then + echo "Only call this script in GitHub Actions" + exit 1 +fi + +if [[ "$GITHUB_REPOSITORY" != 'frenchy64/spec-alpha2' ]]; then + echo "This script only deploys in frenchy64/spec-alpha2, not $GITHUB_REPOSITORY. Doing nothing." + exit 0 +fi + +COMMIT_MSG=$(git log --format=%B -n 1 "${GITHUB_SHA}") +echo $COMMIT_MSG +if [[ "$COMMIT_MSG" =~ ^\[prep-release\] ]]; then + #https://stackoverflow.com/a/9294015 + COMMIT_MSG_ARRAY=($COMMIT_MSG) + ./script/release-and-push.sh "${COMMIT_MSG_ARRAY[1]}" "${COMMIT_MSG_ARRAY[2]}" +else + echo "Not deploying snapshot releases" + #./script/deploy-snapshot.sh +fi diff --git a/script/prep-actions-release.sh b/script/prep-actions-release.sh new file mode 100755 index 0000000..6f8d952 --- /dev/null +++ b/script/prep-actions-release.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Prompts for next release version and dev version and +# creates a commit that triggers GitHub Actions to deploy +# the release version and bump the repo to the next dev +# version. + +echo "Determining current version..." + +TYPED_VERSION=$(mvn -q \ + -Dexec.executable="echo" \ + -Dexec.args='${project.version}' \ + --non-recursive \ + org.codehaus.mojo:exec-maven-plugin:1.6.0:exec) + + +if [[ "$TYPED_VERSION" == *-SNAPSHOT ]]; then + echo "Current version: ${TYPED_VERSION}" + + #https://stackoverflow.com/a/125340 + DEFAULT_RELEASE_VERSION="${TYPED_VERSION%-SNAPSHOT}" + #https://stackoverflow.com/a/2642592 (bash 3 compatible) + read -p "Choose release version [${DEFAULT_RELEASE_VERSION}]: " RELEASE_VERSION + RELEASE_VERSION=${RELEASE_VERSION:-${DEFAULT_RELEASE_VERSION}} + + # default: increment patch + DEFAULT_DEV_VERSION=$(printf "%s-SNAPSHOT" $(./script/increment-semversion.sh -p ${RELEASE_VERSION})) + read -p "Choose next dev version [${DEFAULT_DEV_VERSION}]: " DEV_VERSION + DEV_VERSION=${DEV_VERSION:-${DEFAULT_DEV_VERSION}} + + git commit --allow-empty -m "$(printf "[prep-release] %s %s" "${RELEASE_VERSION}" "${DEV_VERSION}")" +else + echo "Can only prep a release from a SNAPSHOT version, found $TYPED_VERSION" + exit 1 +fi diff --git a/script/release-and-push.sh b/script/release-and-push.sh new file mode 100755 index 0000000..109ff2f --- /dev/null +++ b/script/release-and-push.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# +# Cuts a release of spec-alpha2. Requires two arguments: +# - the release version to use +# - the development SNAPSHOT version to use +# +# eg., to cut version 1.0.0 and then move to 1.0.1-SNAPSHOT, +# call this script like so: +# +# ./script/release-and-push.sh 1.0.0 1.0.1-SNAPSHOT +# +# and then push the resulting commit to the master branch. +# GitHub Actions will automatically deploy a 1.0.0 release and +# update the dev version to 1.0.1-SNAPSHOT. + +set -e + +if [[ "$GITHUB_ACTIONS" != 'true' ]]; then + echo "Must release on GitHub Actions only." + exit 1 +fi + +if [[ `git symbolic-ref --short HEAD` != 'frenchy64-dev' ]]; then + echo "Releases only triggered on the master branch. Doing nothing." + exit 0 +fi + +if [[ "$GITHUB_ACTOR" != "frenchy64" ]]; then + echo "Only maintainers may deploy a release. Doing nothing." + exit 0 +fi + +if [[ "$GITHUB_REPOSITORY" != "frenchy64/spec-alpha2" ]]; then + echo "Releases only allowed from frenchy64/spec-alpha2. Doing nothing." + exit 0 +fi + +git config --local user.email "abonnairesergeant@gmail.com" +git config --local user.name "Ambrose Bonnaire-Sergeant" + +RELEASE_VERSION=$1 +DEVELOPMENT_VERSION=$2 + +if [[ -z "$RELEASE_VERSION" ]]; then + echo "Must specify release version" + exit 1 +fi + +if [[ -z "$DEVELOPMENT_VERSION" ]]; then + echo "Must specify development version" + exit 1 +fi + +# there's a chance this can fail and we have a partial +# release to Clojars. We minimize the damage by avoiding +# pushing back to master, but there's a chance the version +# was partially deployed. The correct fix (wrt clojars) is to simply +# deploy a new version (eg., if 1.0.0 fails, try 1.0.1 next). +( set -x; +mvn release:prepare release:perform \ + -DreleaseVersion="$RELEASE_VERSION" \ + -Dtag="$RELEASE_VERSION" \ + -DdevelopmentVersion="$DEVELOPMENT_VERSION" + ) + +( set -x; +./script/bump-readme-version "$RELEASE_VERSION" +) + +git add . +git commit -m "Bump README versions for $RELEASE_VERSION" + +# DON'T PRINT HERE +git push "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" master --tags From 634d673133c04e6c57da0f06467eb4220741d1ca Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:11:57 -0500 Subject: [PATCH 06/26] workflow --- .github/workflows/{frenchy64-dev.yml => typedclojure.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{frenchy64-dev.yml => typedclojure.yml} (100%) diff --git a/.github/workflows/frenchy64-dev.yml b/.github/workflows/typedclojure.yml similarity index 100% rename from .github/workflows/frenchy64-dev.yml rename to .github/workflows/typedclojure.yml From bee2bed3d1d7b8d0e8bb8ba9783f57a8982cd221 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:17:55 -0500 Subject: [PATCH 07/26] prep --- script/deploy-actions.sh | 4 ++-- script/release-and-push.sh | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/script/deploy-actions.sh b/script/deploy-actions.sh index 8986d29..dab7100 100755 --- a/script/deploy-actions.sh +++ b/script/deploy-actions.sh @@ -10,8 +10,8 @@ if [[ "$GITHUB_ACTIONS" != 'true' ]]; then exit 1 fi -if [[ "$GITHUB_REPOSITORY" != 'frenchy64/spec-alpha2' ]]; then - echo "This script only deploys in frenchy64/spec-alpha2, not $GITHUB_REPOSITORY. Doing nothing." +if [[ "$GITHUB_REPOSITORY" != 'typedclojure/spec-alpha2' ]]; then + echo "This script only deploys in typedclojure/spec-alpha2, not $GITHUB_REPOSITORY. Doing nothing." exit 0 fi diff --git a/script/release-and-push.sh b/script/release-and-push.sh index 109ff2f..62c1878 100755 --- a/script/release-and-push.sh +++ b/script/release-and-push.sh @@ -15,28 +15,35 @@ set -e +DEPLOY_BRANCH="typedclojure" +DEPLOY_REPO="typedclojure/spec-alpha2" +ALLOWED_ACTOR="frenchy64" +USER_EMAIL="abonnairesergeant@gmail.com" +USER_NAME="Ambrose Bonnaire-Sergeant" + + if [[ "$GITHUB_ACTIONS" != 'true' ]]; then echo "Must release on GitHub Actions only." exit 1 fi -if [[ `git symbolic-ref --short HEAD` != 'frenchy64-dev' ]]; then +if [[ `git symbolic-ref --short HEAD` != "$DEPLOY_BRANCH" ]]; then echo "Releases only triggered on the master branch. Doing nothing." exit 0 fi -if [[ "$GITHUB_ACTOR" != "frenchy64" ]]; then +if [[ "$GITHUB_ACTOR" != "$ALLOWED_ACTOR" ]]; then echo "Only maintainers may deploy a release. Doing nothing." exit 0 fi -if [[ "$GITHUB_REPOSITORY" != "frenchy64/spec-alpha2" ]]; then - echo "Releases only allowed from frenchy64/spec-alpha2. Doing nothing." +if [[ "$GITHUB_REPOSITORY" != "$DEPLOY_REPO" ]]; then + echo "Releases only allowed from $DEPLOY_REPO. Doing nothing." exit 0 fi -git config --local user.email "abonnairesergeant@gmail.com" -git config --local user.name "Ambrose Bonnaire-Sergeant" +git config --local user.email "$USER_EMAIL" +git config --local user.name "$USER_NAME" RELEASE_VERSION=$1 DEVELOPMENT_VERSION=$2 @@ -63,12 +70,12 @@ mvn release:prepare release:perform \ -DdevelopmentVersion="$DEVELOPMENT_VERSION" ) -( set -x; -./script/bump-readme-version "$RELEASE_VERSION" -) +#( set -x; +#./script/bump-readme-version "$RELEASE_VERSION" +#) -git add . -git commit -m "Bump README versions for $RELEASE_VERSION" +#git add . +#git commit -m "Bump README versions for $RELEASE_VERSION" # DON'T PRINT HERE -git push "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" master --tags +git push "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" "${DEPLOY_BRANCH}" --tags From fa32a9f1c4ef00c93aa18e7f99a90fc3975bcf03 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:18:22 -0500 Subject: [PATCH 08/26] deploy --- .github/workflows/typedclojure.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/typedclojure.yml b/.github/workflows/typedclojure.yml index c0bda48..2bf57a9 100644 --- a/.github/workflows/typedclojure.yml +++ b/.github/workflows/typedclojure.yml @@ -4,7 +4,6 @@ on: [push] jobs: deploy: - needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From e02c9cd785c0c00e8d1d1d458d1c9ab13ea3abe6 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:20:47 -0500 Subject: [PATCH 09/26] snapshot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 20e01ee..bdf4645 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-SNAPSHOT + 0.2.177-frenchy64-1-SNAPSHOT alpha.spec Specification of data and functions From bf8076eb896b2f4a0c766b81ccd2c0c8136a8394 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:21:19 -0500 Subject: [PATCH 10/26] [prep-release] 0.2.177-frenchy64-1 0.2.177-frenchy64-2-SNAPSHOT From 27bc6f27bb61b8b166eabb9f163a5b0a7324964c Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:32:38 -0500 Subject: [PATCH 11/26] pom --- pom.xml | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/pom.xml b/pom.xml index bdf4645..8fd0ca5 100644 --- a/pom.xml +++ b/pom.xml @@ -35,11 +35,13 @@ + @@ -51,6 +53,13 @@ 1.10.0 + + false + + src/main/clojure + src/test/clojure + UTF-8 @@ -121,6 +130,75 @@ + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.0.0 + + + add-clojure-source-dirs + generate-sources + + add-source + add-resource + + + + ${clojure.source.dir} + + + + ${clojure.source.dir} + + + + + + add-clojure-test-source-dirs + generate-sources + + add-test-source + add-test-resource + + + + ${clojure.testSource.dir} + + + + ${clojure.testSource.dir} + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + ${project.build.sourceEncoding} + + + + org.apache.maven.plugins + maven-release-plugin + 2.5.3 + + true + @{project.version} + + false + true + + From 036f2e5b3eeaab44b75e050a5853e9d36b7fc65f Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:33:03 -0500 Subject: [PATCH 12/26] [prep-release] 0.2.177-frenchy64-1 0.2.177-frenchy64-2-SNAPSHOT From b9e7d0e56499fb2ed16e3f68744e1e06d33f49d0 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sat, 7 Mar 2020 00:34:09 +0000 Subject: [PATCH 13/26] [maven-release-plugin] prepare release 0.2.177-frenchy64-1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8fd0ca5..1be55c1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-frenchy64-1-SNAPSHOT + 0.2.177-frenchy64-1 alpha.spec Specification of data and functions scm:git:git://github.com/clojure/spec-alpha2.git scm:git:ssh://git@github.com/clojure/spec-alpha2.git - HEAD + 0.2.177-frenchy64-1 https://github.com/clojure/spec-alpha2 From 7c9f7a5a8b168f84ef40cc8023e820db2a270b1b Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sat, 7 Mar 2020 00:34:09 +0000 Subject: [PATCH 14/26] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1be55c1..e6839ed 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-frenchy64-1 + 0.2.177-frenchy64-2-SNAPSHOT alpha.spec Specification of data and functions scm:git:git://github.com/clojure/spec-alpha2.git scm:git:ssh://git@github.com/clojure/spec-alpha2.git - 0.2.177-frenchy64-1 + HEAD https://github.com/clojure/spec-alpha2 From ba4eebb52277b184ad8e13f33ca9b2c23331f05e Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:35:58 -0500 Subject: [PATCH 15/26] change name --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8fd0ca5..a1261b0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-frenchy64-1-SNAPSHOT + 0.2.177-typedclojure-1-SNAPSHOT alpha.spec Specification of data and functions From 97aa89c08389f6ac5ca6b8c7980cb3812e074f42 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:37:11 -0500 Subject: [PATCH 16/26] pom --- pom.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pom.xml b/pom.xml index 737885b..a1261b0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,11 +3,7 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec -<<<<<<< HEAD 0.2.177-typedclojure-1-SNAPSHOT -======= - 0.2.177-frenchy64-2-SNAPSHOT ->>>>>>> 7c9f7a5a8b168f84ef40cc8023e820db2a270b1b alpha.spec Specification of data and functions From 5c6af6daa08c8b1de1eadeddc5115bf4711179ba Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 6 Mar 2020 19:37:41 -0500 Subject: [PATCH 17/26] [prep-release] 0.2.177-typedclojure-1 0.2.177-typedclojure-2-SNAPSHOT From 972f4266ee2315cd0f6d0e8801b5b0f248d04349 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sat, 7 Mar 2020 00:38:43 +0000 Subject: [PATCH 18/26] [maven-release-plugin] prepare release 0.2.177-typedclojure-1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a1261b0..1992c4d 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-typedclojure-1-SNAPSHOT + 0.2.177-typedclojure-1 alpha.spec Specification of data and functions scm:git:git://github.com/clojure/spec-alpha2.git scm:git:ssh://git@github.com/clojure/spec-alpha2.git - HEAD + 0.2.177-typedclojure-1 https://github.com/clojure/spec-alpha2 From eeaa6517d8190a6b3092405858165858cb7f56b4 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sat, 7 Mar 2020 00:38:43 +0000 Subject: [PATCH 19/26] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1992c4d..5b7a0f5 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-typedclojure-1 + 0.2.177-typedclojure-2-SNAPSHOT alpha.spec Specification of data and functions scm:git:git://github.com/clojure/spec-alpha2.git scm:git:ssh://git@github.com/clojure/spec-alpha2.git - 0.2.177-typedclojure-1 + HEAD https://github.com/clojure/spec-alpha2 From b701770517736d869c5db2ebb5839dc6bb453bb0 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Thu, 17 Dec 2020 22:25:23 -0500 Subject: [PATCH 20/26] bump setup-clojure --- .github/workflows/typedclojure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/typedclojure.yml b/.github/workflows/typedclojure.yml index 2bf57a9..c3fc266 100644 --- a/.github/workflows/typedclojure.yml +++ b/.github/workflows/typedclojure.yml @@ -17,7 +17,7 @@ jobs: uses: actions/setup-java@v1 with: java-version: 11 - - uses: DeLaGuardo/setup-clojure@2.0 + - uses: DeLaGuardo/setup-clojure@e73bf2b6435244b2c9c5c226ae5022d91d0ce702 with: tools-deps: latest - name: Configure settings.xml From 0390d6b3f2390d4c2b43da32dbc0c9350f7a786b Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Thu, 17 Dec 2020 22:29:10 -0500 Subject: [PATCH 21/26] script --- script/increment-semversion.sh | 77 ++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 script/increment-semversion.sh diff --git a/script/increment-semversion.sh b/script/increment-semversion.sh new file mode 100755 index 0000000..f8353c5 --- /dev/null +++ b/script/increment-semversion.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +#The MIT License (MIT) +# +#Copyright (c) 2014 Fritz Mahnke +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in all +#copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +#SOFTWARE. + +# Copied from: https://github.com/fmahnke/shell-semver/blob/4c89b49beb11034d7b384680a02f1bcfb1db249e/increment_version.sh + +# Increment a version string using Semantic Versioning (SemVer) terminology. + +# Parse command line options. + +while getopts ":Mmp" Option +do + case $Option in + M ) major=true;; + m ) minor=true;; + p ) patch=true;; + esac +done + +shift $(($OPTIND - 1)) + +version=$1 + +# Build array from version string. + +a=( ${version//./ } ) + +# If version string is missing or has the wrong number of members, show usage message. + +if [ ${#a[@]} -ne 3 ] +then + echo "usage: $(basename $0) [-Mmp] major.minor.patch" + exit 1 +fi + +# Increment version numbers as requested. + +if [ ! -z $major ] +then + ((a[0]++)) + a[1]=0 + a[2]=0 +fi + +if [ ! -z $minor ] +then + ((a[1]++)) + a[2]=0 +fi + +if [ ! -z $patch ] +then + ((a[2]++)) +fi + +echo "${a[0]}.${a[1]}.${a[2]}" + From 738fad24dc8f96fc41eebf85c2f24a93ae504c37 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Thu, 17 Dec 2020 22:29:39 -0500 Subject: [PATCH 22/26] [prep-release] 0.2.177-typedclojure-2 0.2.177-SNAPSHOT From 9da58ec60f5a4a3bfc61fa19f54bf1d160b49dfc Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 18 Dec 2020 04:33:52 +0000 Subject: [PATCH 23/26] [maven-release-plugin] prepare release 0.2.177-typedclojure-2 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5b7a0f5..0c286a0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-typedclojure-2-SNAPSHOT + 0.2.177-typedclojure-2 alpha.spec Specification of data and functions scm:git:git://github.com/clojure/spec-alpha2.git scm:git:ssh://git@github.com/clojure/spec-alpha2.git - HEAD + 0.2.177-typedclojure-2 https://github.com/clojure/spec-alpha2 From 0debd54a0a356fa284e1d22aa62d85cce68f7b98 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Fri, 18 Dec 2020 04:33:52 +0000 Subject: [PATCH 24/26] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0c286a0..be9bb28 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-typedclojure-2 + 0.2.177-SNAPSHOT alpha.spec Specification of data and functions scm:git:git://github.com/clojure/spec-alpha2.git scm:git:ssh://git@github.com/clojure/spec-alpha2.git - 0.2.177-typedclojure-2 + HEAD https://github.com/clojure/spec-alpha2 From cb6bac517b7c536f316c60ef4a00f28fcead0d10 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Thu, 17 Dec 2020 23:38:18 -0500 Subject: [PATCH 25/26] fix dev version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index be9bb28..19649dd 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.clojars.typedclojure-clojars alpha.spec - 0.2.177-SNAPSHOT + 0.2.177-typedclojure-3-SNAPSHOT alpha.spec Specification of data and functions From 1eb3bd75edca223e9af6c2201617702f88fa76f3 Mon Sep 17 00:00:00 2001 From: Ambrose Bonnaire-Sergeant Date: Sun, 20 Dec 2020 13:08:48 -0500 Subject: [PATCH 26/26] fix kfn construction --- src/main/clojure/clojure/alpha/spec/impl.clj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/clojure/clojure/alpha/spec/impl.clj b/src/main/clojure/clojure/alpha/spec/impl.clj index 802a044..249d046 100644 --- a/src/main/clojure/clojure/alpha/spec/impl.clj +++ b/src/main/clojure/clojure/alpha/spec/impl.clj @@ -1195,7 +1195,7 @@ (s/create-spec {:clojure.spec/op `s/every :spec `(s/tuple ~kspec ~vspec) - :opts (merge opts {::s/kfn (fn [i# v#] (nth v# 0)) + :opts (merge opts {::s/kfn `(fn [i# v#] (nth v# 0)) :into {} ::s/describe `(s/every-kv ~(resolve-form kspec) ~(resolve-form vspec) ~@(mapcat identity opts))})})) @@ -1225,7 +1225,7 @@ (s/create-spec {:clojure.spec/op `s/every :spec `(s/tuple ~kspec ~vspec) - :opts (merge opts {::s/kfn (fn [i# v#] (nth v# 0)) + :opts (merge opts {::s/kfn `(fn [i# v#] (nth v# 0)) :into {} ::s/conform-all true :kind `map?