Skip to content

Potential Changes Announcements #33

@sogaiu

Description

@sogaiu

The text below is no longer valid (i.e. we will not be following this procedure), but is kept for future reference.


The purpose of this issue is to announce potential changes to tree-sitter-clojure to any interested parties [1]. Our intent is to do this by adding a comment to this issue for each such change (or set of changes).

The hope is that we might learn sooner about unanticipated consequences of such changes to prevent and/or mitigate unintended breakage. We don't know in detail how the grammar is being used, but we figured that interested parties might be able to tell us...if only they knew ahead of time :)

We would prefer not to cause breakage, but for various reasons [2], changes to the grammar may still occur. Due partly to tree-sitter's design (and choices various tree-sitter-using programs have made), when changes are made to the grammar, they are more likely to be of the breaking type than for an ordinary library. See here for more details on this topic.

Discussion of potential changes should take place in an issue so that this announcement issue can remain easy to parse and browse [3].

Note that this issue will be pinned and locked in support of the points above.


[1] Some specific types of "interested parties" we had in mind include:

  • Developers and maintainers of projects that directly
    or indirectly depend on tree-sitter-clojure. A
    concrete example is janet-tree-sitter which uses
    the grammar in testing.

  • End users of such projects. A less abstract example
    might be a user who is aware they are employing
    tree-sitter-clojure-enabled functions in an editor.

[2] Some factors that conspire against us avoiding breakage:

  • There may be unanticipated important use cases we
    want to account for.

  • Tree-sitter is pre-1.0 and has some rough edges. Our
    belief is that the maintainers are well-intentioned,
    capable, busy, and...lack resources. Moreover, it's
    not a small or easy matter they have undertaken.

  • Clojure itself doesn't really have a specification that
    is comparable to what exists for various other
    programming languages such as C, Java, JavaScript, or
    Python. This puts the task of understanding what is
    "correct" and/or "comprehensive" in a different sort of
    realm than for those of the aforementioned sorts of
    languages.

  • Other unforseen things :)

[3] If familiar with mailing list communication for software projects, announcement-only mailing lists might be thought of as similar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions