Commit graph

2930 commits

Author SHA1 Message Date
John Miller
c859a041d4 OS X travis is failing - is it a timeout issue? 2019-10-28 13:54:28 -06:00
John Miller
f4a81c56ac Add virtualenv to travis OS X build.
Also add some addition TOX environments for future testing cases.
2019-10-27 19:46:56 -06:00
John Miller
58ca0d20b2 Give jedi time to install. 2019-10-27 18:37:10 -06:00
John Miller
582bd2159b Forgot to update the scenario. 2019-10-27 17:54:25 -06:00
John Miller
8c2511b7cd Flanging up with travis is always a challenge. 2019-10-27 17:26:49 -06:00
John Miller
c3c860516e Add epc dependency for emacs-jedi. 2019-10-27 16:34:41 -06:00
John Miller
393216457b Only test jedi completion when testing polymode. 2019-10-27 16:04:02 -06:00
John Miller
58f56cf5cb Test case for issue #608. 2019-10-27 14:44:20 -06:00
John Miller
63594f731f Only define ein ac-sources when the user explicitly sets the backend. 2019-10-27 09:23:32 -06:00
John Miller
55da136a27 ein-ac: Fail silently for unexpected ein:completion-backend values.
Fixes #608, though we really need a test cases for completion in polymode.
2019-10-27 08:43:34 -06:00
Sam Steingold
c477407500 fix bug #606: defvar for variables defined in ein-jupyter which is not required here 2019-10-26 19:39:25 -06:00
Sam Steingold
7b96d74115 defsubst must be defined before its first use 2019-10-26 19:39:25 -06:00
Tomasz Mieszkowski
876cba2049 Update CONTRIBUTING.md 2019-10-24 07:16:09 -06:00
John Miller
0c207dfac1 Revert emacs 25 version, tool for downloading travis logs.
Update help message in travis as well. Get rid of case-fold check for the
moment. It works fine locally, but travis can't seem to wrap its head around the
test.
2019-10-20 13:34:51 -06:00
John Miller
4c923f9a1f Update required version of websocket. 2019-10-20 13:34:51 -06:00
John Miller
e0900ac745 It's a bit fiddily, but seems to get the job done.
Testing for breakage with case-fold-search is set to nil (see issue #600).
2019-10-20 13:34:51 -06:00
John Miller
86c034997e Rework loop to avoid warning about unused lexical variable. 2019-10-12 08:37:46 -05:00
John Miller
940387b17b Use correct add-function syntax with lexical variables. 2019-10-12 08:37:46 -05:00
John Miller
21693f9b08 Clean-up unused lexical variable warnings. 2019-10-12 08:37:46 -05:00
John Miller
f232c45fdb Simulating human interaction from the machine is not easy. 2019-10-12 08:37:46 -05:00
Sam Steingold
448e161068 Avoid dependency on the deprecated package "cl"
Replace `defun*' with `cl-defun', `loop' with `cl-loop',
  `case' with `cl-case', `assert' with `cl-assert',
  `destructuring-bind' with `cl-destructuring-bind',
  `multiple-value-bind' with `cl-multiple-value-bind',
  `equalp` with `cl-equalp`, `defstruct' with `cl-defstruct`
  &c &c &c
Use lexical-binding instead of lexical-let.
Add declarations and defvar to avoid breakage.
2019-10-12 08:37:46 -05:00
John Miller
f49b2559d6 Company completion popups may be corrupting the connect.py buffer.
Hard to reproduce exactly what is happening, but try to work around the
possibility of a company completion popup appearing in the buffer or minibuffer.
2019-10-06 18:05:36 -05:00
Miller
77e45bf77d Play with emacs and python versions. 2019-10-06 18:05:36 -05:00
Miller
44d650dd02 Use latest jedi for testing.
Version 0.15.x seems to have resolved the issues that plagued 0.14.
2019-10-06 18:05:36 -05:00
Miller
e7815780d5 Include IPython magics in the syntax table.
The % character should be part of the symbol, just as _ as . are.
2019-10-06 18:05:36 -05:00
Miller
58db03836c company-backends is a buffer-local variable
We have to be careful about setting it globally because that seems to be causing
some conflicts, better to set it at the buffer level when we are opening a
notebook otherwise ein:company-backend may not be activated.
2019-10-06 18:05:36 -05:00
Miller
d3591e011a Improvements to company backend.
- Make sure we only cache actual python objects.
- Do better when we are completing in the middle of an object.

To that end is the new function `ein:object-prefix-at-point' that returns the
prefix for the dotty.thing.at.point. See the function documentation for more
info.
2019-10-06 18:05:36 -05:00
John Miller
ef92e574b2 Support julia in multilang.
Doesn't break travis, but it is causing problems in my local linux setup.
2019-10-05 22:15:39 -05:00
John Miller
8abb37f844
Merge pull request #592 from dickmao/nix
Follow-up customizable default kernel; make ob-ein usable
2019-10-03 15:04:35 -05:00
dickmao
463cb5dd6c test-ob-ein-recurse 2019-10-01 12:13:29 -04:00
dickmao
bcf498929b redundant wheel install 2019-09-30 18:45:33 -04:00
dickmao
b3179a12d1 ein:notebooklist cannot see ein:jupyter-default-server-command on startup.
move default-kernel defcustom to ein:jupyter
2019-09-30 18:36:01 -04:00
John Miller
0fe1dbfe2e
Merge pull request #590 from dickmao/nix
Customizable default kernel; make ob-ein usable
2019-09-30 08:34:21 -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
507eaf4d9a fix NPE in poly-ein (revealed in ESS) 2019-09-29 12:19:46 -04:00
dickmao
189b89fb6c give purcell/nix-emacs-ci a spin 2019-09-29 12:19:36 -04:00
dickmao
e4e04fdc3d Specifying default kernel
```
M-x customize-group RET ein
Select Ein:Notebooklist-Default-Kernel
```

Closes #82
2019-09-29 12:19:10 -04:00
John Miller
a2872eff6c
Merge pull request #582 from dickmao/doc-issue-580
Clarification of readme
2019-08-13 20:57:23 -05:00
dickmao
51c71b964f change README.rst [skip ci] 2019-08-13 19:17:04 -04:00
dickmao
a918fb06d2 Clarification of readme [skip ci] 2019-08-13 19:14:41 -04:00
John Miller
223f59bedf
Merge pull request #581 from dickmao/doc-issue-580
Do not advertise LSP compatibility
2019-08-13 16:56:35 -05:00
dickmao
61238485e0 Closes #580 2019-08-13 08:04:47 -04:00
John Miller
52f304d038
Merge pull request #577 from dickmao/bug-issue-576
org export needs to be synchronous
2019-08-12 09:12:50 -06:00
dickmao
2ca536fdec add org-export test 2019-08-10 21:16:51 -04:00
John Miller
cfd7a9a117
Merge pull request #575 from dickmao/shutdown
Shutdown
2019-08-09 17:51:04 -06:00
dickmao
101a04acc8 the failures happen often enough we should not split the screen. 2019-08-07 17:06:56 -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
John Miller
fbf6664c33
Merge pull request #567 from dickmao/request-library-upgraded
tkf/emacs-request 0.3.1 defaults encoding to utf-8
2019-07-02 07:30:50 -05:00
dickmao
452d0e01b4 tkf/emacs-request 0.3.1 defaults encoding to utf-8
ein seems to have preferred the old default encoding of `binary` versus
`utf-8`.  Explicity set encoding back to `binary` but this
necessitates our using the latest emacs-request.

Fixes #566
2019-07-02 00:12:52 -04:00