Skip to content

Commit

Permalink
Roadmap
Browse files Browse the repository at this point in the history
  • Loading branch information
lpil committed Dec 6, 2024
1 parent d59a42d commit d272c5f
Show file tree
Hide file tree
Showing 3 changed files with 186 additions and 0 deletions.
107 changes: 107 additions & 0 deletions _data/roadmap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
in-progress:
- Custom CA certificate support
- Custom message syntax for `let assert`
- Custom type construction codegen monomorphisation
- Custom type constructor deprecation
- Custom type update type re-specialisation
- Debug keyword `echo`
- External file subdirectory support
- Hex search integration
- Improved dependency versions conflict error messages
- JavaScript sourcemaps
- Language server `let` to `case` code action
- Language server convert to/from `use` code action
- Local Hex API key encryption
- Unaligned bit array support on JavaScript
planned:
- Dead code detection improvements
- Hex private package support
- Language server constant expression completion
- Language server extract const code action
- Language server extract variable code action
- Language server inline variable code action
- Language server label completion
- Language server renaming
- Mutual tail call optimisation on JavaScript
- OTP named process support
- Test keyword `assert`
- API key generation when Hex rate limits reached
research:
- OTP release building
- Erlang stack trace line numbers
- Inter-module inlining
- Test discovery functionality
- Build tool watch mode
done:
- version: v1.6
date: 2024-11-19
items:
- BEAM bytecode compilation daemon
- Bit array construction optimisation on JavaScript
- Context aware type error printing
- Custom type variant inference
- JavaScript `gleam new` template
- Language server add missing function annotations code action
- Language server context aware type hover display
- Language server quality and unqualify code actions
- Monorepo support for HTML documentation
- Optional Hex dependency support
- Specific packages `gleam update`
- Unsafe JavaScript number warnings
- version: v1.5
date: 2024-09-19
items:
- Bit array UTF-8 segment inference
- Compilation flag `--no-print-progress`
- Context aware anonymous function inference
- Context aware inexhaustive case expression errors
- Gleam version requirement detection
- Improved panic printing on Erlang
- Language server add missing case patterns code action
- Language server local variable autocompletion
- Language server missing import fix code action
- version: v1.4
date: 2024-08-02
items:
- Bit array options `little`, `big`, `signed`, and `unsigned` JavaScript support.
- Compilation warning persistence
- Constant expression concat operator support
- Further fault tolerant compilation
- Label shorthand syntax
- Language server add labels code action
- Language server assert to case code action
- Language server case correction code action
- Language server document symbols
- Language server field access completion
- Language server lable shorthand conversion code action
- Language server signature help
- version: v1.3
date: 2024-07-05
items:
- "`gleam add` and `gleam remove`"
- Arithmetic guards
- Erlang/OTP 27 support
- Fault tolerant expression compilation
- Language server automatic import insertion
- Language server unused field hovering
- Purity hints for JavaScript bundlers
- version: v1.2
date: 2024-05-27
items:
- "`gleam hex revert`"
- Erlang module collision prevention
- Fault tolerant compilation
- Language server import autocompletion and hover
- Redundant `let assert` detection
- Unreachable code detection
- version: v1.1
date: 2024-04-16
items:
- Bun JavaScript runtime support
- Internal types and values
- Language server compilation batching
- Language server go-to definition
- Language server import autocompletion
- Nested tuple indexing
- Target related dead code elimination
65 changes: 65 additions & 0 deletions roadmap.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: Gleam's Development Roadmap
subtitle: What's coming next?
layout: page
---

<p>
The highlights of what's been released, what's being worked on, and what's
coming in future! To see all the details please see:
</p>

<ul>
<li>
<a href="https://github.com/gleam-lang/gleam/tree/main/CHANGELOG.md">
The current changelogs</a
>
</li>
<li>
<a href="https://github.com/gleam-lang/gleam/tree/main/changelog">
The historical changelogs</a
>
</li>
<li>
<a href="https://github.com/gleam-lang/gleam/issues"> The issue tracker</a>
</li>
</ul>

<h2>In progress</h2>

<ul class="roadmap-list">
{% for item in site.data.roadmap.in-progress %}
<li>{{ item }}</li>
{% endfor %}
</ul>

<h2>Planned</h2>

<ul class="roadmap-list">
{% for item in site.data.roadmap.planned %}
<li>{{ item }}</li>
{% endfor %}
</ul>

<h2>Research</h2>

<ul class="roadmap-list">
{% for item in site.data.roadmap.research %}
<li>{{ item }}</li>
{% endfor %}
</ul>

<h2>Done</h2>

<ol class="roadmap-release-list">
{% for release in site.data.roadmap.done %}
<li>
<h3>{{ release.version }} - {{ release.date | date: "%d %b, %Y" }}</h3>
<ul class="roadmap-list">
{% for item in release.items %}
<li>{{ item | markdownify }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ol>
14 changes: 14 additions & 0 deletions styles/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -972,3 +972,17 @@ main.content {
flex-direction: row;
}
}

.roadmap-release-list {
list-style: none;
padding: 0;
}

.roadmap-release-list {
padding-left: 0;
}

.roadmap-list li {
margin: var(--gap-1) 0;
line-height: var(--gap-3);
}

0 comments on commit d272c5f

Please sign in to comment.