Progress Report 1 - neuron-team/vscode-ipe GitHub Wiki
Weeks 1-2
-
Had first group meeting on April 30th to get acquainted with one another, understand project requirements and assign preliminary roles. Everyone was tasked to getting used to the development environment and framework we chose to utilize (Angular with Typescript). Lorenzo also made proof of concept mock-up sketches for the design of the extension to show to Microsoft.
-
Had first meeting with Microsoft on May 3rd to clarify client requirements and discuss extension design. We agreed to meet the Microsoft team via skype every 2 weeks, which will reduce to every 1 week as we approach to June. However, we have access to the team via email and slack and can arrange impromptu skype meetings if required.
-
Over the period May 3rd -7th, a proof of concept that contained the structure for building all the parts was created:
- An HTML and Typescript frontend based on the Angular framework that displays inside a webview in VS Code
- A backend that runs Python code in an interpreter and sends the output to the frontend
- Common types, shared as a node package between the backend and frontend, to streamline the interface between the two parts of code
- A bare-bones Python interpreter that supports running code and reading stdout.
-
On May 8th, we attended a Team Building Workshop and won a prize for the main group exercise, we learnt more about each other and how to be more effective and productive as a group.
-
After the workshop we held a long group meeting. Everyone got the barebones project to build and run successfully today, and spent some time understanding the structure.
-
During the meeting, we wrote a list of tasks to do for a first milestone version. We created Github issues for all the points below:
* export to jupyter and excel: select cards with a "select cards" button, then export with another button * implement interpreter/card types: plain text, html, images... * pop-up detail view * title inferring algorithm * frontend: card styling * frontend: changing the card title * frontend: collapse-expand code * frontend: delete/expand buttons * frontend: rearrange cards * installing and running jupyter automatically * loading extension when python files are open * displaying a "Show output pane" button * sending code on ALT-Enter: also on single line * adding R support * custom markdown cards * integrate inline command in interpreter for matplotlib * show run status of a python script in the status bar * filtering cards based on a search query * optimising memory usage (destroying cards when hidden) saving state * frontend: syntax highlighting of input code * import python packages before anything executes
Project management
- We set up a protected master branch, and agreed to use git to organise our workflow
- We will keep track of features and contributions via Github issues
- New features will be worked on in separate branches
- We will carry out code reviews before adding features to the main branch
- We split out tasks to do over the next few days by assigning ourselves github issues.
- Meanwhile, Rajan will be creating a survey which Microsoft will send to Data Science academics and the first draft of the leaflet, along with other Documentation.
On May 15th the next meeting took place and significant progress had been made in that the following 17 Github issues had been solved:
* calls to stdin hang the interpreter bug
* Fix package.json to show items as necessary bug
* Modify user interaction to accommodate automatic execution of Jupyter
* Execute Jupyter automatically making use of the terminal and make sure it is executing (monitor ports)
* Monitor port use to find an available port for Jupyter
* Link multiple outputs to the corresponding source code backend
* Notify users when the connection with the server has not been established correctly backend
* Prevent creation of multiple kernels backend
* Make interpreter event-based backend
* show run status of a python script in the status bar backend ui
* integrate inline command in interpreter for matplotlib backend
* send code to output on ALT+Enter backend ui
* display a "show output pane" button backend ui
* install and run jupyter automatically backend
* add interpreter output types backend
* delete cards frontend
* style the cards frontend
The following new issues had been opened:
* fix scrolling issues in frontend bug frontend
* have a local copy of the icons instead of loading online css file bug frontend
* monospace font for code preview frontend
* Add additional delay in Jupyter creation for slower computers backend
* Simplify vscode user interaction backend
* improve security on webview as per MS API backend
* Trim selection before triggering userInteraction.newCard backend
* Card Styling frontend ui
* Main Toolbar Style frontend ui
* Adjust to screen size frontend ui
* Auto-start interpreter on ipe.newCard command if not running enhancement question
* Install Jupyter making use of the terminal
* Figure out whether Jupyter is in the path or if it is available in the system
* Call right kernel based on the file which is opened (Python, R, etc) backend
Next Steps
- Next Group Meeting: 17th May
- We aim to arrange a new client meeting with Microsoft for Thursday 17th May to discuss our progress to date, questions we have and how we will approach future work.