diff --git a/CHANGELOG.org b/CHANGELOG.org index 0e9b391..4809e08 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -1,4 +1,23 @@ -* master +* v0.8.2 + +- Fix recursive loading error caused by =jupyter-tramp.el= autoloads. + +- Consider kernelspecs with spaces and uppercase characters in the kernel's + language name. + +- In =org-mode=, fixed a bug where inline results where being displayed + differently from what they would have been when the results are not inline. + +- When =jupyter-repl-echo-eval-p= is non-nil, ensure that any cell code not sent + to a kernel yet is preserved. + +- In =org-mode=, fix a bug where if the =:session= header argument of Jupyter + source blocks is a relative file name with a =.json= suffix + and =default-directory= is a remote directory, a file on the local machine + would be read. + +- Use =org-babel-jupyter-async-inline-results-pending-indicator= as a placeholder + when evaluating asynchronous inline source blocks in =org-mode=. - Integrate better with packages like =polymode= when evaluating source blocks in =org-mode= by considering indirect buffers. Thanks to =@dvzubarev= for @@ -421,42 +440,3 @@ background of a traceback in the REPL buffer to distinguish it from other output. In addition to this face, there is also =jupyter-repl-input-prompt= and =jupyter-repl-output-prompt=. -* How to update this file - -Examine the output of - -#+NAME: changelog -#+HEADER: :var PREV_VERSION="afbb9b513410ee6f36a1f2fa1ff8a505862de1ca" VERSION="master" -#+BEGIN_SRC shell :results output -git log --pretty=format:"%s" ${PREV_VERSION}...${VERSION} -#+END_SRC - -and filter down to the most notable changes, summarize each one. Be sure to -update the =VERSION= variables first. - -#+RESULTS: changelog - -* Update Version header - -Update the =Version= in the header of all source files. - -#+BEGIN_SRC elisp :results silent :var version="0.8.1" -(let ((re "^;; Version: \\(\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\)" )) - (dolist (file (append (directory-files default-directory nil ".el$") - (directory-files (expand-file-name "test" default-directory) t ".el$"))) - (let* ((buf (find-buffer-visiting file)) - (kill (null buf))) - (unless buf - (setq buf (find-file-noselect file))) - (with-current-buffer buf - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (when (re-search-forward re nil t) - (replace-match version nil nil nil 1)) - (save-buffer) - (when kill - (kill-buffer)))))))) -#+END_SRC - diff --git a/MAINTAINERS.org b/MAINTAINERS.org new file mode 100644 index 0000000..bb18006 --- /dev/null +++ b/MAINTAINERS.org @@ -0,0 +1,79 @@ +* Reviewing changes to add to =CHANGELOG.org= + +Examine the output of =git log= since the last time the Change Log was updated +and narrow it down to notable commits, e.g. new variables, bug fixes, breaking +changes, etc. Write a few sentences describing the change and how it affects +users going forward. + +#+NAME: changelog +#+HEADER: :var PREV_VERSION="afbb9b513410ee6f36a1f2fa1ff8a505862de1ca" VERSION="master" +#+BEGIN_SRC shell :results output +git log --pretty=format:"%s" ${PREV_VERSION}...${VERSION} +#+END_SRC + +#+RESULTS: changelog + +* Updating project metadata + +- Increment copyright years, if needed +- Set the Version header +- Set =jupyter-version= in file:jupyter-base.el + +#+CALL: update-project-metadata(version="0.8.2") + +#+NAME: source-files +#+begin_src shell +git ls-files | grep -E '.el$' +#+end_src + +#+NAME: eval-in-file +#+begin_src elisp +(lambda (file fun) + (let* ((buf (find-buffer-visiting file)) + (kill (null buf))) + (unless buf + (setq buf (find-file-noselect file))) + (with-current-buffer buf + (save-excursion + (save-restriction + (widen) + (goto-char (point-min)) + (funcall fun) + (save-buffer) + (when kill + (kill-buffer))))))) +#+end_src + +#+NAME: update-project-metadata +#+HEADERS: :var version="0.8.2" +#+begin_src elisp :results silent :var files=source-files eval-in-file=eval-in-file +(let ((lexical-binding t) + (copyright-re "^;; Copyright (C) \\([0-9]+\\)\\(?:-\\([0-9]+\\)\\)?") + (version-re "^;; Version: \\(\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\)") + (this-year (string-to-number (format-time-string "%Y")))) + (dolist (file files) + (funcall + eval-in-file (car file) + (lambda () + (when (re-search-forward copyright-re nil t) + (let* ((end-group (if (match-string 2) 2 1)) + (new-span (= end-group 1)) + (year (string-to-number (match-string end-group))) + (new-year (and (<= (1+ year) this-year) + (number-to-string (1+ year))))) + (when new-year + (if (not new-span) (replace-match new-year nil nil nil end-group) + (goto-char (match-end end-group)) + (insert "-" new-year))))) + (when (re-search-forward version-re nil t) + (replace-match version nil nil nil 1))))) + (funcall eval-in-file "jupyter-base.el" + (lambda () + (when (re-search-forward "^(defconst jupyter-version \"\\(.+\\)\"") + (replace-match version nil nil nil 1))))) +#+end_src + +* TODO Makefile =release= target + +- Updates project metadata +- Creates tagged (and signed) commit diff --git a/jupyter-R.el b/jupyter-R.el index 4f3a1f4..3bbcea4 100644 --- a/jupyter-R.el +++ b/jupyter-R.el @@ -1,6 +1,6 @@ ;;; jupyter-R.el --- Jupyter support for R -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Jack Kamm ;; Nathaniel Nicandro diff --git a/jupyter-base.el b/jupyter-base.el index 96ef0e6..f5e2903 100644 --- a/jupyter-base.el +++ b/jupyter-base.el @@ -1,6 +1,6 @@ ;;; jupyter-base.el --- Core definitions for Jupyter -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 06 Jan 2018 @@ -127,7 +127,7 @@ from the kernel.") A longer timeout is needed, for example, when retrieving the `jupyter-kernel-info' to allow for the kernel to startup.") -(defconst jupyter-version "0.8.1-dev" +(defconst jupyter-version "0.8.2" "Current version of Jupyter.") ;;; Macros diff --git a/jupyter-c++.el b/jupyter-c++.el index 54db880..85be676 100644 --- a/jupyter-c++.el +++ b/jupyter-c++.el @@ -1,6 +1,6 @@ ;;; jupyter-c++.el --- Jupyter support for C++ -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 12 April 2019 diff --git a/jupyter-channel-ioloop-comm.el b/jupyter-channel-ioloop-comm.el index 85a5dd7..13eddb4 100644 --- a/jupyter-channel-ioloop-comm.el +++ b/jupyter-channel-ioloop-comm.el @@ -1,6 +1,6 @@ ;;; jupyter-channel-ioloop-comm.el --- Communication layer using jupyter-channel-ioloop -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter-channel-ioloop.el b/jupyter-channel-ioloop.el index 4f2f26d..b324c9c 100644 --- a/jupyter-channel-ioloop.el +++ b/jupyter-channel-ioloop.el @@ -1,6 +1,6 @@ ;;; jupyter-channel-ioloop.el --- Abstract class to communicate with a jupyter-channel in a subprocess -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter-channel.el b/jupyter-channel.el index e970ae3..a0925cb 100644 --- a/jupyter-channel.el +++ b/jupyter-channel.el @@ -1,6 +1,6 @@ ;;; jupyter-channel.el --- Jupyter channel interface -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter-client.el b/jupyter-client.el index 2c408c4..1576af5 100644 --- a/jupyter-client.el +++ b/jupyter-client.el @@ -1,6 +1,6 @@ ;;; jupyter-client.el --- A Jupyter kernel client -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 06 Jan 2018 diff --git a/jupyter-comm-layer.el b/jupyter-comm-layer.el index de65742..63accdd 100644 --- a/jupyter-comm-layer.el +++ b/jupyter-comm-layer.el @@ -1,6 +1,6 @@ ;;; jupyter-comm-layer.el --- Kernel communication layer -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 06 Apr 2019 diff --git a/jupyter-env.el b/jupyter-env.el index 8ed66d2..9b2547f 100644 --- a/jupyter-env.el +++ b/jupyter-env.el @@ -1,6 +1,6 @@ ;;; jupyter-env.el --- Query the jupyter shell command for information -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter-ioloop-comm.el b/jupyter-ioloop-comm.el index d26ae2f..6b4ef0a 100644 --- a/jupyter-ioloop-comm.el +++ b/jupyter-ioloop-comm.el @@ -1,6 +1,6 @@ ;;; jupyter-ioloop-comm.el --- Communication layer using jupyter-ioloop -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter-ioloop.el b/jupyter-ioloop.el index 4c65bd7..5f25fed 100644 --- a/jupyter-ioloop.el +++ b/jupyter-ioloop.el @@ -1,6 +1,6 @@ ;;; jupyter-ioloop.el --- Jupyter channel subprocess -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 03 Nov 2018 diff --git a/jupyter-javascript.el b/jupyter-javascript.el index a5f8bb0..76cc11c 100644 --- a/jupyter-javascript.el +++ b/jupyter-javascript.el @@ -1,6 +1,6 @@ ;;; jupyter-javascript.el --- Jupyter support for Javascript -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 23 Oct 2018 diff --git a/jupyter-julia.el b/jupyter-julia.el index d552744..037de8b 100644 --- a/jupyter-julia.el +++ b/jupyter-julia.el @@ -1,6 +1,6 @@ ;;; jupyter-julia.el --- Jupyter support for Julia -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 23 Oct 2018 diff --git a/jupyter-kernel-manager.el b/jupyter-kernel-manager.el index 30201c3..9556c85 100644 --- a/jupyter-kernel-manager.el +++ b/jupyter-kernel-manager.el @@ -1,6 +1,6 @@ ;;; jupyter-kernel-manager.el --- Jupyter kernel manager -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 08 Jan 2018 diff --git a/jupyter-kernel-process-manager.el b/jupyter-kernel-process-manager.el index ef2913c..6937cc0 100644 --- a/jupyter-kernel-process-manager.el +++ b/jupyter-kernel-process-manager.el @@ -1,6 +1,6 @@ ;;; jupyter-kernel-process-manager.el --- Manage kernel processes directly -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 08 Aug 2019 diff --git a/jupyter-kernelspec.el b/jupyter-kernelspec.el index 0be9990..fafb272 100644 --- a/jupyter-kernelspec.el +++ b/jupyter-kernelspec.el @@ -1,6 +1,6 @@ ;;; jupyter-kernelspec.el --- Jupyter kernelspecs -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 17 Jan 2018 diff --git a/jupyter-messages.el b/jupyter-messages.el index 84f9021..4754337 100644 --- a/jupyter-messages.el +++ b/jupyter-messages.el @@ -1,6 +1,6 @@ ;;; jupyter-messages.el --- Jupyter messages -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 08 Jan 2018 diff --git a/jupyter-mime.el b/jupyter-mime.el index 03af154..d776d4b 100644 --- a/jupyter-mime.el +++ b/jupyter-mime.el @@ -1,6 +1,6 @@ ;;; jupyter-mime.el --- Insert mime types -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 09 Nov 2018 diff --git a/jupyter-org-client.el b/jupyter-org-client.el index b55732b..6fa0871 100644 --- a/jupyter-org-client.el +++ b/jupyter-org-client.el @@ -1,6 +1,6 @@ ;;; jupyter-org-client.el --- Org integration -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 02 Jun 2018 diff --git a/jupyter-org-extensions.el b/jupyter-org-extensions.el index fb7637f..8991e54 100644 --- a/jupyter-org-extensions.el +++ b/jupyter-org-extensions.el @@ -1,6 +1,6 @@ ;;; jupyter-org-extensions.el --- Jupyter Org Extensions -*- lexical-binding: t; -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Carlos Garcia C. ;; Created: 01 March 2019 diff --git a/jupyter-python.el b/jupyter-python.el index 97658af..29c78fd 100644 --- a/jupyter-python.el +++ b/jupyter-python.el @@ -1,6 +1,6 @@ ;;; jupyter-python.el --- Jupyter support for python -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 23 Oct 2018 diff --git a/jupyter-repl.el b/jupyter-repl.el index e94e9a8..b31bc64 100644 --- a/jupyter-repl.el +++ b/jupyter-repl.el @@ -1,6 +1,6 @@ ;;; jupyter-repl-client.el --- A Jupyter REPL client -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 08 Jan 2018 diff --git a/jupyter-rest-api.el b/jupyter-rest-api.el index c4cbdc1..c87824a 100644 --- a/jupyter-rest-api.el +++ b/jupyter-rest-api.el @@ -1,6 +1,6 @@ ;;; jupyter-rest-api.el --- Jupyter REST API -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 03 Apr 2019 diff --git a/jupyter-server-ioloop.el b/jupyter-server-ioloop.el index cfe8da5..99cff34 100644 --- a/jupyter-server-ioloop.el +++ b/jupyter-server-ioloop.el @@ -1,6 +1,6 @@ ;;; jupyter-server-ioloop.el --- Kernel server communication -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 03 Apr 2019 diff --git a/jupyter-server.el b/jupyter-server.el index f22cf8c..9e14494 100644 --- a/jupyter-server.el +++ b/jupyter-server.el @@ -1,6 +1,6 @@ ;;; jupyter-server.el --- Support for the Jupyter kernel servers -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 02 Apr 2019 diff --git a/jupyter-tramp.el b/jupyter-tramp.el index 67452f8..1bf539a 100644 --- a/jupyter-tramp.el +++ b/jupyter-tramp.el @@ -1,6 +1,6 @@ ;;; jupyter-tramp.el --- TRAMP interface to the Jupyter REST API -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 25 May 2019 diff --git a/jupyter-widget-client.el b/jupyter-widget-client.el index 6a0f652..1ac34fa 100644 --- a/jupyter-widget-client.el +++ b/jupyter-widget-client.el @@ -1,6 +1,6 @@ ;;; jupyter-widget-client.el --- Widget support -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 21 May 2018 diff --git a/jupyter-zmq-channel-comm.el b/jupyter-zmq-channel-comm.el index 34a9a3d..e5c24a1 100644 --- a/jupyter-zmq-channel-comm.el +++ b/jupyter-zmq-channel-comm.el @@ -1,6 +1,6 @@ ;;; jupyter-zmq-channel-comm.el --- Communication layer using ZMQ sockets -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter-zmq-channel-ioloop.el b/jupyter-zmq-channel-ioloop.el index 57d5493..f46c1eb 100644 --- a/jupyter-zmq-channel-ioloop.el +++ b/jupyter-zmq-channel-ioloop.el @@ -1,6 +1,6 @@ ;;; jupyter-zmq-channel-ioloop.el --- IOLoop functions for Jupyter channels -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 08 Nov 2018 diff --git a/jupyter-zmq-channel.el b/jupyter-zmq-channel.el index a8fd226..9319a2d 100644 --- a/jupyter-zmq-channel.el +++ b/jupyter-zmq-channel.el @@ -1,6 +1,6 @@ ;;; jupyter-zmq-channel.el --- A Jupyter channel implementation using ZMQ sockets -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 27 Jun 2019 diff --git a/jupyter.el b/jupyter.el index 3f2a843..90d23fc 100644 --- a/jupyter.el +++ b/jupyter.el @@ -1,10 +1,10 @@ ;;; jupyter.el --- Jupyter -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 11 Jan 2018 -;; Version: 0.8.1 +;; Version: 0.8.2 ;; Package-Requires: ((emacs "26") (zmq "0.10.3") (cl-lib "0.5") (simple-httpd "1.5.0") (websocket "1.9")) ;; URL: https://github.com/dzop/emacs-jupyter diff --git a/ob-jupyter.el b/ob-jupyter.el index 27ce09d..8070d2c 100644 --- a/ob-jupyter.el +++ b/ob-jupyter.el @@ -1,6 +1,6 @@ ;;; ob-jupyter.el --- Jupyter integration with org-mode -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 21 Jan 2018 diff --git a/test/jupyter-server-test.el b/test/jupyter-server-test.el index 51e4a7f..95a5799 100644 --- a/test/jupyter-server-test.el +++ b/test/jupyter-server-test.el @@ -1,6 +1,6 @@ ;;; jupyter-server-test.el --- Test communication with a notebook server -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 31 May 2019 diff --git a/test/jupyter-test.el b/test/jupyter-test.el index 18d51f0..eb3585d 100644 --- a/test/jupyter-test.el +++ b/test/jupyter-test.el @@ -1,6 +1,6 @@ ;;; jupyter-test.el --- Jupyter tests -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 08 Jan 2018 diff --git a/test/jupyter-tramp-test.el b/test/jupyter-tramp-test.el index a324c3b..910171f 100644 --- a/test/jupyter-tramp-test.el +++ b/test/jupyter-tramp-test.el @@ -1,6 +1,6 @@ ;;; jupyter-tramp-test.el --- Tests for the contents REST API integration with TRAMP -*- lexical-binding: t -*- -;; Copyright (C) 2019 Nathaniel Nicandro +;; Copyright (C) 2019-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 28 May 2019 diff --git a/test/test-helper.el b/test/test-helper.el index 3507231..efc2f7f 100644 --- a/test/test-helper.el +++ b/test/test-helper.el @@ -1,6 +1,6 @@ ;;; test-helper.el --- Helpers for jupyter-test.el -*- lexical-binding: t -*- -;; Copyright (C) 2018 Nathaniel Nicandro +;; Copyright (C) 2018-2020 Nathaniel Nicandro ;; Author: Nathaniel Nicandro ;; Created: 15 Nov 2018