theia-ide / yangster

Yangster is a YANG IDE based on Theia
Apache License 2.0
42 stars 17 forks source link
theia-extension yang yang-model

Yangster

A tool for working with the YANG language.

Development

Open in Gitpod

Manual Setup

Install yarn. Clone and build yang-lsp.

Clone and Build Yangster

Requirements: Python 2.x, Java 8.x, node 8.x, yarn >1.0.2, a C++ compiler, curl, unzip.

git clone --recursive https://github.com/theia-ide/yangster.git && \
cd yangster && \
yarn

For incremental development use

yarn watch

Build on Windows

If you build on Windows, we recommend to install windows build tools, which includes Python and th VS C++ compiler.

npm install --global --production windows-build-tools

UNIX like shells like git-bash or Cygwin alsoe include curl and unzip as command line tools.

Run Yangster

The browser version: Run

yarn rebuild:browser && \
cd yangster-app && \
yarn start

Then point your browser to http://localhost:3000.

The Electron version:

yarn rebuild:electron && \
cd yangster-app-electron && \
yarn start

Connecting the LSP through a Socket

For development it is better to connect to the running LSP through a socket. For that you need to start the yangster-app using

cd yangster-app && \
yarn run start:backend:socket

It will try to connect to the yang-lsp server that you now need to start from within Eclipse by launching RunSocketServer.

Publishing Yangster

Each change on master triggers a build on Jenkins against Theia next. The resulting package is automatically published to npm with the next tag.

For a release (or when Theia releases a new major), we have to build against Theia latest. To achieve that

rm yarn.lock                 # make sure to re-install deps
node theia-version.js latest # set all dependencies to Theia to 'latest'
yarn                         # rebuild (don't forget!)
yarn run publish:latest      # publish
rm yarn.lock                 # make sure to re-install deps
node theia-version.sh next   # reset Theia dependencies to 'next'
yarn                         # make sure yarn-lock is reset to 'next'
git add -A
git commit -m 'Bumped version number'