Commit graph

98 commits

Author SHA1 Message Date
dickmao
4cd6e340d4 remove install-evm.sh 2020-02-10 08:58:21 -05:00
dickmao
0cb185dde6 avoid reloading notebooklist three times on "Stop" 2020-02-01 21:07:42 -05:00
dickmao
fec13b62dd move the mkdir downwards 2020-01-09 16:57:16 -05:00
dickmao
12e2520361 must mkdir workdir/R for macos 2020-01-09 16:53:34 -05:00
dickmao
4f21bb14c2 fix install-R.sh 2020-01-09 16:46:08 -05:00
dickmao
f13bc72084 single quotes in double quotes 2020-01-09 16:24:02 -05:00
dickmao
d3266854e1 gha cache IRkernel 2020-01-09 16:22:51 -05:00
dickmao
9ac1bf62e5 confused about pyouts 2020-01-09 13:12:41 -05:00
dickmao
61e53deec3 upgrade julia 1.3.1 2020-01-05 19:42:17 -05:00
dickmao
290e5fc88e gha 2020-01-04 10:46:21 -05:00
dickmao
677003e142 ssl issue with python 2.7.12 on osx 2020-01-03 09:33:37 -05:00
dickmao
ed4522b787 ob-lang cannot require org
Generally, ob-lang modules cannot require org, else it gets into
infinite require loop.

This begs the question whether ob-ein is really used by anyone.
2019-09-29 17:16:25 -04:00
dickmao
189b89fb6c give purcell/nix-emacs-ci a spin 2019-09-29 12:19:36 -04:00
dickmao
d6d97d135c Shutting down
On my linux machine and travis, I'm noticing the undocumented
`api/shutdown` does not reliably kill the server.

I tried my best with appveyor but couldn't coerce it back to the
working state 13 days ago.
2019-08-07 17:01:11 -04:00
John Miller
ce419a12a5
Appveyor iterating (WIP) (#573)
* ob-ein: Bring back old functionality.

Bring back some old features to babel edit buffers while trying to respect
recent addition of polymode support.

* Override polymode if the user really wants.

Polymode is really for notebook buffers in any case, but this will override
whatever completion backmode a user has configured for python-mode.

* Install cask using python2.

For now python2 is the easiest option for testing on Windows since cask does
not properly support python3 when in Windows.

* Let's throw in the ert-runner, see what happens.

* Can I use my fork of cask?

Work around smartrep weirdness, try to live without command line wildcard
expansion.

* Get the url for the fork right.

* Experiment with python37, use test_script.

* Unstick appveyor, I hope.

* Fix parsing error.

* test_script is not executing. Why?

* Add ert testing.

But why are the test_script commands not executing?

* tasks: Automate building and testing using invoke.

Invoke leverages Python, which I hope will allow us to abstract out differences
in platforms when it comes to building and testing ein.

* Use invoke on appveyor.

* appveyor: Use the environment python.

So we can test versions other than python 2.7.

* Parsing error.

Is
https://packaging.python.org/guides/supporting-windows-using-appveyor/#setting-up
lying to me?

* Quote commands, just in case.

* Get python onto the path.

* Appveyor is catching up to travis.

* Parsing error.

* Update pip, try to get quoted syntax right.

* Still not liking my pip call.

Last try, next step we go to a requirements.txt file.

* Go to using a requirements file for pip.

* ecukes needs bash to work.

* Cleaning up and fiddling.

Seems like the emacs-jupyter guy has his act together - maybe we can take some
inspiration for our appveyor config.

* Syntax error in environment.

* More syntax errros.

* Maybe we need quoting.

* I give up.

* Formatting and cleanup.

* Add customization, yet another syntax error.

New customizable variable `ob-ein-babel-edit-polymode-ignore' to override
keybinding for \C-c\C-c in an org source code edit buffer.

* John learned some Powershell today.

* Fix the executable path.

Sometimes there is more than one curl installed on the system, make sure we can
account for that in testing.

* Handle updating the path inside invoke.

* Report which curl we are using before starting functional tests.

* Enable RDP so we can see error logs.

* Keep the build alive even when it finishes.

* Fix #568.

Apparently we need to specify the user agent when on windows, otherwise tornado
will start throwing 403 responses. Currently using Mozilla/4.0 as the agent, but
might be a good idea to make this value customizable.

* Clean up emacs config.

* Why is appveyor dropping the xsrf token?

* xsrf cookie found, what does the header look like?

* Try different user-agent header, reenable rdp.

* JSON encoding issues on Python side, it appears. Let's try an older Python.

Login works, contents query to get notebooklist works (i.e. GET on
/contents/api), but creating a notebook (i.e. POST on /contents/api) fails with
invalid JSON. ein and emacs-request appear to be generating the proper json, but
jupyter notebook does not see the same thing that is being written. Could be
bytes vs. text issue with modern v3.x python, so let us see how this all works
with Python 2.7.

* Python27 does not have pathlib out of the box.

* Make amends with Python27

* Back to python37.

Tornado/notebook still isn't reading the POST'ed json correctly.

* Do we need to specify content type?

* Must be selective in specifying application/json content.

* Re-enable rdp.

* Let's try a different curl.

* Ensure most recent curl is on path

* Try a different path.

* Try to warn user if suspicious curl detected.

* Remove debugging statements.

* EVM depends on trusty for 26.x

See issue #125 (https://github.com/rejeep/evm/issues/125). Let's hope I got the
travis.yml syntax right.

* Minimal support for ecukes from invoke.

* Cleaner server shutdowns, better ecukes support from invoke.

Use the /api/shutdown REST API call now to shutdown running server. Also support
more command line options for ecukes from invoke.

* Almost full support of ecukes using invoke.

But! Also disabling integration testing for the time being until I understand
why ecukes fails even though everything else is working.

* Just do integration and functional testing on appveyor.

Better than nothing while I work out what is breaking the integration tests.
2019-07-28 18:20:13 -06:00
dickmao
dd531b5664 julia needs a brew update, however 2019-06-10 21:35:50 -04:00
dickmao
fbd01d1ca1 more instances of the same 2019-06-10 21:21:53 -04:00
dickmao
2f843ff5e2 The workaround referenced in
https://github.com/Homebrew/brew/issues/5513 may no longer be
necessary (and takes 10 minutes)
2019-06-10 21:09:54 -04:00
dickmao
3dce51ae20 osx speedup 2019-06-10 20:46:41 -04:00
dickmao
e491ac6f1c Ob-ein Improvements
Bring the org offering to feature parity.
2019-05-20 10:59:43 -04:00
dickmao
cb0a819929 Julia, etc.
Prove we are agnostic about kernels.
2019-05-15 06:40:10 -04:00
dickmao
c9252ee436 cask avoid accepting input 2019-05-07 12:46:05 -04:00
dickmao
910e6ea565 can't specify version in cask install. Need to apply blunt instrument. 2019-04-29 17:16:55 -04:00
dickmao
234cf391f9 Polymode
M-x customize-group RET ein
Toggle Ein:Polymode

Avoid trying to emulate jump-to-definition, eldoc, and autocompletion
functionalities that Elpy will always do better.

Fixes #497 #482 #418
2019-04-02 09:35:17 -04:00
dickmao
0637ef212b Homebrew workaround
https://github.com/Homebrew/brew/issues/5513
2019-01-12 12:36:12 -05:00
dickmao
bead667ee0 Clean up multilang
Do not assume python... leverage ESS to improve R interaction.
Fix both undo and fontify in the presence of toggling cells (`C-c
C-t`)
Fix and test switching kernels
2018-12-08 21:25:48 -05:00
dickmao
7ce38ffaf0 RFC: readme revision
Requesting comment on README.rst geared towards brevity for new users.
2018-11-29 16:54:30 -05:00
dickmao
0490031ec8 Sane File Navigation
As emacs users we prefer and have the luxury of fuzzy file navigation
via ido and projectile.  From a notebook or notebooklist buffer, the commands

`C-c C-f` ein:file-open
`C-c C-o` ein:notebook-open

offer an ido alternative to point and click navigation.

To populate the ido lists, retrieving the content hierarchy is on by
default.  Two custom variables determine how wide and deep the content query
probes (currently at 2 levels deep and 6 directories wide).  Set both
to zero to turn off.

tkf half finished code to quickly go from local file buffers to notebook
mode via `C-c C-z` or `C-c C-o`.  This is now possible.  EIN will
start the server from a suitable parent directory of the visited file.

Enable ido completion for `notebooklist-login`.

Remove the albatross `ein-loaddefs.el` in favor of more standard
`ein-autoloads.el` that is not git tracked.

Convenience `make install` from git source (local alternative to
melpa).
2018-10-26 18:40:19 -04:00
dickmao
7a6d3c072b appveyor for msys2 2018-10-20 20:19:58 -04:00
dickmao
0345ed0b33 Try to address windows NT unseen. Add osx. Add ipython 7.0.1. 2018-10-20 00:12:34 -04:00
dickmao
085a188b20 Streamline login
Merge the login and open commands (open aliased to login).  Add login
tests described in #352.

Attempt to improve user experience by synchronously executing
`ein:jupyter-server-start`.  `ein:dev-prefer-deferred` custom variable
allows easy switch to compare sychronous versus old asynchronous behavior.
2018-10-17 16:52:10 -04:00
dickmao
c424f2ae5a workaround for emacs-26.1 travis
Delete the org-plus-contrib dependency in Cask via a fast switcheroo
in install-cask.sh
2018-10-12 21:55:33 -05:00
dickmao
11c2245c41 Asynchronize all server communication
Use deferred and callbacks instead of `:sync t` for tkf requests which
is known to have issues.  Query server attributes once on
notebooklist-open to avoid sequencing issue #176 (but allow Resync).
Under curl backend, a second request for the same "key" as a pending
request will abort the latter, which has resulted in a clobbered
curl-cookie-jar file, so merely warn and don't abort.

Fix #176
2018-10-07 00:40:48 -04:00
dickmao
ad8408dfb7 Implement undo
`M-x customize-group RET ein`
Toggle `Ein:Worksheet Enable Undo`
Save for Future Sessions
Restart emacs or kill/restart notebook

Fixes #338
2018-10-02 10:00:25 -04:00
dickmao
ec28cbe708 revive tkf tests
`make test-unit`
`make test-int` (formerly `cask exec ert-runner`)
An intermittent travis-melpa issue is solved by gonewest818.
2018-09-27 00:52:00 -04:00
John Miller
7a52ebca35 Make content-api request synchronous during testing.
Testing still seems to be broken, but maybe will make a difference on travis.
2018-02-26 06:18:53 -06:00
Benda Xu
5ec09896a0 tools/testein.py: no retry is needed.
Our test is reproducible now.
2017-10-21 22:28:17 +09:00
John Miller
39f5d329f1 Functional tests start jupyter using ein:jupyter-server-start
This reduces some of the complexity in testein.py, but unfortunately running
tests is still unreliable. Running batchwise tests don't work at all in Windows,
and running from inside emacs tests often need to be run multiple times before
they pass.

The worst offender is the delete notebook test, which will pass on usually only
1 out of 3 tries.

Testing seems to have revealed a couple bugs, so win??
2017-04-07 08:18:41 -05:00
John Miller
ed633b1fd7 Functional tests that handle redirects. 2017-02-14 21:01:25 -06:00
John Miller
4bc3acf001 Desperate attempts to fix default coding when running testein. 2016-12-18 19:17:13 -06:00
John Miller
ea0c3e5433 testein.py: Stop emacs from launching interactively? 2016-12-18 18:17:22 -06:00
John Miller
fb31f0dec8 testein.py: Disable token authentication
I hope.
2016-12-18 18:11:33 -06:00
John Miller
abeb37e675 Testein and cask working together, maybe. 2016-12-18 16:21:03 -06:00
John Miller
cf70c7ecd9 Cleaning up testing
Trying to keep up with jupyter..
2016-09-30 13:24:28 -05:00
John Miller
6ea5c255aa Fix command template for windows
Windows did not like all those newlines. Less readable in the code but
at least it works.
2016-09-30 09:59:19 -05:00
John Miller
1d715011f0 Merge branch '38-fixing-testing' of https://github.com/millejoh/emacs-ipython-notebook into 38-fixing-testing 2016-05-17 20:14:21 -05:00
John Miller
e10bc60f30 Tweaks to functional testing and travis config.
Also adding environment definition for testing jupyter.
2016-05-17 16:22:05 -05:00
John Miller
f2697e1c69 More cleanup.
More versions of ipython we don't need to test against.
2016-04-22 15:01:13 +00:00
John Miller
43b91785ac Cleanup
Remove unsupporting versions of Ipython for testing.
2016-04-22 14:59:34 +00:00
Egon Kidmose
374dabece8 fix Typerror (str.strip got unicode, expected str) 2015-04-01 13:53:18 +02:00