Skip to content

Idris Feedback Cycle 0 #3776

@andrevidela

Description

@andrevidela

Closing date: May 30th


Hi everyone,

Today is the start of the 2026 Idris Developer Meeting and for this I would like to propose a new way to move the project forward, one that serves users, contributors, and casual observers.

As of today, and as has been the case for many years, nobody works fulltime on Idris, contributors are volunteers that employ their free time to work on the compiler, libraries and language ecosystem. What is more, Idris has more and more become a community-owned project rather than one with a singular individual carrying its direction.

Both those aspects obscure the direction of Idris as a project. It is hard to know what is the project's current status, future direction, and overall plan. For language contributors it is hard to identify the needs of the community and use that information to prioritise their time effectively. For users, it is impossible to know if their issues are going to be addressed or are even acknowledged. And for external viewers, it is not clear if the project is even alive and what's the deal with it.

We need a process that recognises the limitation of the project, part time contributors, community ownership and address the visibility issues exposed above. I propose we start a new process that called the "Idris feedback cycle".

What is the Idris Feedback Cycle

Starting from today and until the end of the month, one issue will be opened title "Idris feedback cycle N". On this issue, community members can provide feedback about the idris project, not particularly about a bug in the compiler or a strange behaviour, but about some experience they have had and would like to share. Other members can reply supporting the feedback or providing help, resources and point toward areas of the ecosystem related to the feedback (documentation, issue number, project page).

A feedback cycle runs for a set amount of time, at the end of which, the issue is closed and a new one is opened with the number incremented by one. The product of the feedback cycle is the discussion thread generated during that time. With it, contributors, can get a snapshot of the community's needs and wants and make decisions upon them. We could release a distilled version on the website, make posts on social media, or use it as reference for design document. Heck someone could make a youtube channel reviewing what was discussed and why. The discussion thread is its own resource for the community to use, and my assumption is that getting multiple of them across time should give a general idea of the project's direction, regardless of any one individual's goals or aspirations.

Goals

  • Provide visibility over the project's current status and future plans
  • Give a space for the community to contribute ideas and project out their needs
  • Give contributors a way to gauge the needs of the community

Non-goals

  • Assign tasks and responsibilities to individuals
    • Individuals may express interest in contributing or participating in some developments but this is purely indicative and not prescriptive.
  • Commit to a release schedule, roadmap, or promise of delivery
    • I plan to keep those feedback documents running on a regular basis but the delivery of the feedback document is detached from any form of software delivery.
  • Enable authority and or authoritative statements
    • Something said or even promised here holds no grounds over anyone, e.g: "you said this would be done and it's not and I demand it is." is a no-go

Guidance for Feedback

The Idris Feedback Cycle isn't a space to vent, complain, or demand outcomes. Constructive feedback is patient and inquisitive, messages that aimlessly complain, demand something to be done, display outrage, or attack someone's character will be remove. The usual community rules apply and will be enforced.

Before providing feedback, one must understand the core values of the Idris Programming Language:

  • Types to help the programmer, not impede them.
  • Software to benefit the people.
  • Encourage new knowledge and understanding.
  • Allow verification, don't require it.

We ask anyone contributing this document to understand and adhere to those core values as a way to preserve the spirit of the language.

Example feedback

I've been trying to use Idris for education but installing idris on Windows has been very difficult, any plans to address this?

LSP is buggy but I can't figure out how to reproduce my errors anyone else has this?

I'm trying to port my library from Java to Idris but I can't find a library that handles XML the way I used to, I can't parse it auotmatically from my data types

I'm trying to use quantities but the compiler isn't letting me quantify over them like I expected, is this not a feature?

Example Responses

Windows support has been spotty but we have tutorials for how to install Idris with WSL and chocolatey. Do you have a specific class of errors that we can look into?

Hey there, LSP issues are over on the idris2-lsp project. Could you take a look and tell us which one looks the most like what you're experiencing? Unless we know exactly what the error your experiencing is, we can't narrow it down.

There is one library for XML manipulation in Idris but it's not actively maintained. There is an issue over there for using elaboration reflection with data structures but it's not implemented. Maybe I could have a go at implementing it in the next few weeks

Idris2 has quantities but it doesn't have quantity polymorphism, this is an area of research but nobody is actively implementing it in the compiler. If you're interested in quantity polymoprhism, I suggest you try Granule.

Note that some of those could be threads or questions on zulip.

Closing words

This process is a proposal, an attempt, an idea. If it does not work, then we should not use it, or change it until it suits the needs of the community. Likewise, things like core values and project goals are subject to change to serve the community. Please leave you feedback not only about the language, but also about the processes around the language such that we can keep improving. There are many meta-level questions that are currently unadressed an now is a good time to think about them and propose something, for example. Who even is a maintainer? What processes make a proposal accepted or rejected? etc. In other words, the space of topics to cover is very large and I hope we can all find a way to converge toward a common understanding.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions