Skip to content

Latest commit

 

History

History
60 lines (38 loc) · 2.41 KB

DEVELOPMENT.md

File metadata and controls

60 lines (38 loc) · 2.41 KB

Development

Version Support Guidelines

Elixir itself supports 5 versions with security updates: https://hexdocs.pm/elixir/compatibility-and-deprecations.html#content

OTP Supports the last 3 versions: http://erlang.2086793.n4.nabble.com/OTP-Versions-and-Maint-Branches-td4722416.html

ElixirLS generally aims to support the last 3 versions of Elixir and the last 3 versions of OTP. However this is not a hard and fast rule and may change in the future.

Packaging

Follow those instructions when publishing a new release.

  1. Bump the changelog
  2. Bump the version number in VERSION
  3. Make PR
  4. Merge PR
  5. Pull down the latest master
  6. Make the tag from the new master
  7. Push the tag (git push upstream --tags)
  8. Wait for github actions to push up a draft release https://github.com/elixir-lsp/elixir-ls/releases
  9. Edit the draft release with a link to the changelog
  10. Publish the draft release

Debugging

If you're debugging a running server than IO.inspect or dbg() is a good approach, any messages you create with it will be sent to your LSP client as a log message

To debug in tests you can use IO.inspect(Process.whereis(:user), message, label: "message") to send your output directly to the group leader of the test process.

Documenting configuration options

Use this jq program to extract configuration option from VSCode extension package.json

jq -r '.contributes.configuration.properties | to_entries | map("<dt>\(.key)</dt><dd>\(.value.description)</dd>") | join("\n")' package.json

Documentation website

The documentation website is built using the Mkdocs static website generator. The content is written in Markdown format in the directory docs and is configured via the mkdocs.yml file.

Documentation Development

Make sure you have a recent version of Python 3 and Pip installed.

Install mkdocs and the material theme with Pip:

pip install mkdocs mkdocs-material

Once installed, simply run mkdocs serve from the project root. This will start a local web server with a file watcher.

Build

To compile the website for deployment, run mkdocs build from the project root. The built static assets will be located in the site directory. These can then be served by any web hosting solution.