diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..9d6d209 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,36 @@ +{ + "name": "RELEASE", + "on": { + "push": { + "branches": [ + "master" + ] + } + }, + "jobs": { + "autotag": { + "runs-on": "ubuntu-latest", + "env": { + "OS": "ubuntu-latest" + }, + "steps": [ + { + "name": "Checkout Code", + "uses": "actions/checkout@v3" + }, + { + "name": "Create release tag", + "uses": "butlerlogic/action-autotag@8bc1ad456dcdee34e8c6ffbce991cc31793578c2", + "with": { + "root": "ChangeLog.md", + "regex_pattern": "^## (?\\d+\\.\\d+\\.\\d+.*?)( |\\n).*$", + "tag_prefix": "v" + }, + "env": { + "GITHUB_TOKEN": "${{ secrets.DEPLOY_TRIGGER_TOKEN }}" + } + } + ] + } + } +} \ No newline at end of file diff --git a/docs/changelog.lisp b/docs/changelog.lisp index 65fb4bf..eb79162 100644 --- a/docs/changelog.lisp +++ b/docs/changelog.lisp @@ -9,6 +9,8 @@ "ASDF" "REPL" "HTTP")) + (0.5.0 2022-12-10 + "* Support new Reblocks version where REMOVED argument was added to REBLOCKS/WIDGET:UPDATE generic-function.") (0.4.0 2019-08-02 "* Library was fixed to work with latest `Woo`.") diff --git a/docs/index.lisp b/docs/index.lisp index 23bdb73..5583e20 100644 --- a/docs/index.lisp +++ b/docs/index.lisp @@ -45,7 +45,8 @@ "TODO" "Unlicense" "REPL" - "GIT")) + "GIT") + :external-docs "https://40ants.com/reblocks/") (reblocks-websocket system) " [![](https://github-actions.40ants.com/40ants/reblocks-websocket/matrix.svg?only=ci.run-tests)](https://github.com/40ants/reblocks-websocket/actions) diff --git a/qlfile.lock b/qlfile.lock index 321e1ce..15e773c 100644 --- a/qlfile.lock +++ b/qlfile.lock @@ -1,11 +1,11 @@ ("quicklisp" . (:class qlot/source/dist:source-dist :initargs (:distribution "http://beta.quicklisp.org/dist/quicklisp.txt" :%version :latest) - :version "2023-02-15")) + :version "2023-10-21")) ("ultralisp" . (:class qlot/source/dist:source-dist :initargs (:distribution "http://dist.ultralisp.org/" :%version :latest) - :version "20230603225002")) + :version "20231210065000")) ("slynk" . (:class qlot/source/github:source-github :initargs (:repos "svetlyak40wt/sly" :ref nil :branch "patches" :tag nil) diff --git a/src/ci.lisp b/src/ci.lisp index 9f0dabe..e7240d7 100644 --- a/src/ci.lisp +++ b/src/ci.lisp @@ -10,6 +10,11 @@ (in-package #:reblocks-websocket-ci/ci) +(defworkflow release + :on-push-to "master" + :jobs ((40ants-ci/jobs/autotag:autotag))) + + (defworkflow linter :on-push-to "master" :by-cron "0 10 * * 1" diff --git a/src/websocket.lisp b/src/websocket.lisp index b535732..366b7dd 100644 --- a/src/websocket.lisp +++ b/src/websocket.lisp @@ -462,12 +462,14 @@ for each widget, because of symbols autogenerated by Parenscript.") (defmethod reblocks/widget:update ((widget websocket-widget) &key inserted-after - inserted-before) + inserted-before + removed) (cond (*background* (with-collected-dependencies - (let* ((rendered-widget (with-html-string - (reblocks/widget:render widget))) + (let* ((rendered-widget (unless removed + (with-html-string + (reblocks/widget:render widget)))) (collected-deps (get-collected-dependencies)) ;; (widget-deps (reblocks/dependencies:get-dependencies widget)) (dom-id (alexandria:make-keyword @@ -477,10 +479,14 @@ for each widget, because of symbols autogenerated by Parenscript.") (cond ((and (null inserted-before) - (null inserted-after)) + (null inserted-after) + (null removed)) (send-command :update-widget :widget rendered-widget :dom-id dom-id)) + (removed + (send-command :remove-widget + :dom-id dom-id)) (inserted-before (send-command :insert-widget :widget rendered-widget