linebender / linebender/druid

0.7 Roadmap

Open
#1,059 6 comments 51 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

write-up
Dominant language
Rust
Stars
9.7k
Forks
565
PR merge metrics
No merged PRs in 30d

Description

0.7 Roadmap, June 2020

finishing the must-haves

Goals

Druid 1.0 is still very far away, but we are slowly reaching a point where we could, with a straight face, suggest druid for certain small utilities. Our goal for 0.7 is to focus on on a few key projects that we think are currently barriers to serious use.

0.7 Roadmap

This roadmap is intended to cover approximately July, August, and September, and covers only planned, major projects; other smaller features and improvements will certainly happen in this timeframe as well.

  • text improvements (issue #883, @cmyr) there is a large chunk of work necessary to improve druid's text API. In addition to the improvements outlined in #883, there are a number of other text-related projects
    • an improved font resolution API, with support for 'system' fonts (#1182)
    • a reworked TextBox widget (#1274)
    • [ ] (maybe) a non-toy text implementation on cairo
    • support for 'baseline alignment' of all system widgets, and an API for supporting baseline alignment in custom widgets. (#1295)
  • a reworked KeyEvent API (#1040, @raphlinus) we are commited to taking a principled, research-based approach to the design of our low-level APIs; our current KeyEvent API has some limitations, and will be replaced.
  • asset bundling (#397) we would like to have a user friendly, type safe API for accessing bundled resources like images and fonts. This should be closely integrated into druid-shell, and be agnostic about where resources are actually stored on disk; this is also necessary in order to fully support localization.
  • packaging apps (#1047) in order to distrubute a druid application, we need to a way to build a native application package for our target platforms.
  • Alerts (#1039, @xStrom) for easy time sensitive notifications.
    • Modal windows (#1055) to enable building custom modal features.
  • continued work on the X11 backend (@jneem)
maybes
  • tracing (#102) we want to do this eventually, and it's just a matter of having a free week.
  • an experimental android backend (needs issue) either this cycle or next, we would like to land an android backend, and experiment with druid on mobile. This will be limited in scope, but will require the addition of a multitouch event API.
not yets

There are a number of projects that we recognize are very important and that we would like to acknowledge, while conceding they are not currently scheduled.

  • accessibilty: this is a huge and hugely important project, and will be a priority if druid has demonstrated its viability and is in real use.
  • an improved animation API: animation is a very important tool for creating rich interactions, and we have exciting ideas for animation APIs, but we can survive without it for the time being.
  • async: similarly we have exciting ideas about how druid could be modified to fully support async task execution, but this will also have to wait until we have more of the basics in place.

Druid 0.6

Druid 0.6 was a rollup of a whole bunch of fixes and improvements; full details are available in the changelog.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the unchecked roadmap entries and their referenced issues: asset bundling (#397), packaging apps (#1047), Alerts (#1039), and Modal windows (#1055). The roadmap does not name files, tests, or a single deliverable, so the relevant issue should be selected and its scope clarified before work begins.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.