Skip to content

Conversation

@tingerrr
Copy link
Member

@tingerrr tingerrr commented Jul 3, 2025

See commit description.

Please make sure to read the source code directly, as some parts of the original text have not yet been altered, these usually have comments which aren't visible in the rendered version.

Two parts in particular stand out:

  • The Rust process requires consensus by all members of a subteam, since we may not have subteams (see community forge discussion) this would have to be revised.
    After the review I've changed this to be a sizable majority of the ecosystem team for now.
  • RFCs need some kind of advertisement when they go into FCP, Rust for example uses the "This Week in Rust" newsletter. See the comment for ideas.
    I went with the forum as an example here, this need not be just that, it merely serves as an example.

I've also left out the explanation about postponing and informality because they didn't seem to add much and the doc is already long enough. I think we can still simplify a lot of the wording here to make it more approachable.

@tingerrr tingerrr force-pushed the tinger/rztqymutxyps branch 2 times, most recently from 41833e2 to a039f98 Compare July 4, 2025 07:37
This process is adapted from the Rust RFC process on rust-lang/rfcs and
is intentionally less formal than that of Rust as the Typst community
is still much smaller and the RFCs are less official than those of Rust.

The formality may change in the future and the repository may be
incorporated into the typst organization itself. But until then, this
process can stay simple and somewhat informal.
@tingerrr tingerrr force-pushed the tinger/rztqymutxyps branch from a039f98 to 241a125 Compare July 4, 2025 07:43
@tingerrr tingerrr force-pushed the tinger/rztqymutxyps branch 2 times, most recently from ac676f1 to d740c50 Compare July 7, 2025 16:13
@tingerrr tingerrr marked this pull request as ready for review July 7, 2025 16:16
@tingerrr
Copy link
Member Author

tingerrr commented Jul 7, 2025

I've put this up for review, but I'd like to discuss the current state of the ecosystem team on the forge before this is merged to ensure we have a representative portion of the community for the final vote of the RFC (as the process stands for now at least).

@tingerrr tingerrr linked an issue Jul 24, 2025 that may be closed by this pull request
@tingerrr
Copy link
Member Author

We've started pre-nominations for the ecosystem team, see https://github.com/orgs/typst-community/discussions/19 for more information on how the new ecosystem team will be chosen.

Once this process is completed, the new ecosystem will vote on this process as its first decision, paving the way for RFCs to be accepted, rejected or postponed.

@tingerrr tingerrr force-pushed the tinger/rztqymutxyps branch 2 times, most recently from 8a414db to e22ba98 Compare August 5, 2025 08:20
@tingerrr tingerrr force-pushed the tinger/rztqymutxyps branch from e22ba98 to 0af7925 Compare August 23, 2025 15:02
@SillyFreak
Copy link

Looking at RFC #6, I think it would be useful to also add a "rendered" link to each PR. Random example from Rust: rust-lang/rfcs#3786 has a link "Rendered" pointing at the author's fork and the Markdown file for more convenient reading.

Further suggestion: recommend that RCF PRs start with "RFC: " or a related prefix, e.g. "Draft RFC: " (as an example; that can actually be implied by marking the PR as a draft too)

@Myriad-Dreamin
Copy link

Further suggestion: recommend that RCF PRs start with "RFC: " or a related prefix, e.g. "Draft RFC: " (as an example; that can actually be implied by marking the PR as a draft too)

We may add a GitHub action to help suggest that: https://github.com/Myriad-Dreamin/tinymist/blob/8be6a12256a18d8c3d170e6cf104ba6e3ef04e9a/.github/workflows/lint-pr-title.yml
Valid types:

  • our custom types: rfc, repo, ...
  • Other types from the conventional commits: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, ...

@tingerrr
Copy link
Member Author

tingerrr commented Sep 13, 2025

Looking at RFC #6, I think it would be useful to also add a "rendered" link to each PR. Random example from Rust: rust-lang/rfcs#3786 has a link "Rendered" pointing at the author's fork and the Markdown file for more convenient reading.

Further suggestion: recommend that RCF PRs start with "RFC: " or a related prefix, e.g. "Draft RFC: " (as an example; that can actually be implied by marking the PR as a draft too)

Yeah, that sounds like a good, I'll add this to the process document.

Further suggestion: recommend that RCF PRs start with "RFC: " or a related prefix, e.g. "Draft RFC: " (as an example; that can actually be implied by marking the PR as a draft too)

We may add a GitHub action to help suggest that: https://github.com/Myriad-Dreamin/tinymist/blob/8be6a12256a18d8c3d170e6cf104ba6e3ef04e9a/.github/workflows/lint-pr-title.yml Valid types:

* our custom types: rfc, repo, ...

* Other types from the conventional commits: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, ...

Perhaps, though I personally tend to write the where, not the what in such a prefix. (I write syntax: Ensure lexer fails on ... instead of fix: Ensure lexer fails on ...). I'm sure we could hold a long and pointless debate on which is better. If you want to add workflows for those types, I'm happy to merge it.

@tingerrr
Copy link
Member Author

I've updated the process document and added a PR template people can fill out with the link after the PR is created.

@tingerrr tingerrr requested a review from a team October 27, 2025 16:57
@tingerrr
Copy link
Member Author

I've requested review from the ecosystem team to get this over the finish line, one question remains unanswered: should be use Typst for the RFCs considering that it won't be rendered on a GitHub PR?

I personally think we should, and we can add infrastructure to render an RFC whenever necessary. If we keep the template for it simple, then we probably won't need the rendered version until it is merged anyway.

@Mc-Zen
Copy link

Mc-Zen commented Oct 27, 2025

I agree. Simple Typst source is easy to read and review. For larger, more complex RFCs, a compiled PDF or HTML version can be attached to facilitate reading. Using Typst instead of Markup may even turn out to be very useful for demonstration purposes within the RFC.

Aside from that, it just feels more than appropriate considering the subject.

@Mc-Zen Mc-Zen requested review from SillyFreak and removed request for SillyFreak October 27, 2025 17:56
@Myriad-Dreamin
Copy link

Myriad-Dreamin commented Oct 28, 2025

should be use Typst for the RFCs considering that it won't be rendered on a GitHub PR?

Simple Typst source is easy to read and review. For larger, more complex RFCs, a compiled PDF or HTML version can be attached to facilitate reading.

@tingerrr @Mc-Zen

  1. Considering size of PDF or HTML files, we may not upload PDF to repo directly. I personally prefer to request a mandatory markdown file and an optional typst source file per RFC. The typst source file generates the markdown file. Reviewers could review the markdown file and ignore the typst source file.
  2. Does service like gistd help preview a RFC? But as discussion, a disadvantage is that we cannot review and comment on gistd directly.

@Mc-Zen
Copy link

Mc-Zen commented Oct 28, 2025

@Myriad-Dreamin

Couldn't the PDF file just be uploaded to the PR (in the comment I mean)? There should be no problem regarding size then.

@Myriad-Dreamin
Copy link

Couldn't the PDF file just be uploaded to the PR (in the comment I mean)? There should be no problem regarding size then.

@Mc-Zen certainly the authors could upload PDF, but I think it kind of unconvenient to keep updating PDF.

@Myriad-Dreamin
Copy link

Myriad-Dreamin commented Oct 28, 2025

@tingerrr @Mc-Zen I notice that in #6 tinggerrr comments on the typst source file directly. Then I think it is not such bad to only submit a typst source file. But I also noticed that, like gistd, the source file may not longer get compiled as we upgrade typst (to v0.14, v0.15, ...). The authors may include some information in the source file to tell readers which typst version is used. Alternatively, we may still require a rendered markdown file for future readers.

@tingerrr
Copy link
Member Author

Especially the last comment is a fair point, either we stick with Markdown (I don't think we should require both, either one or the other) or we ensure old RFCs still render with CI and migrations by targeting a specific version.

@SillyFreak
Copy link

the source file may not longer get compiled as we upgrade typst (to v0.14, v0.15, ...)

That's a concern I didn't have on my radar when I first read through the discussion, but I think that's actually very important.

Using Typst instead of Markup may even turn out to be very useful for demonstration purposes within the RFC.

If we (initially) plan to not render the RFCs if they're in Typst, I think the benefit compared to markdown is small. It sounds nice in theory, but I think tooling within Github is the overriding concern here. Even once an RFC is accepted, people will want to read through it, and as opposed to the people actively working of the RFC, these readers would legitimately want to read the rendered document.

So I also think that Markdown is probably the better option here—disappointingly, but still.

@tingerrr
Copy link
Member Author

I think we can initially use Markdown and keep it simple. Later we can think about adding infrastructure with a pinned Typst version and automated rendering and port them to Typst.

Mc-Zen
Mc-Zen previously approved these changes Dec 7, 2025
@tingerrr
Copy link
Member Author

I would like to bring this over the finish line.

The fixup commits will be squashed down before the merge, but I'll leave them up for now to not impede review. I'll prepare a vote of the ecosystem team in the community channel later today.

Feel free to leave any concerns on here regardless of the vote.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define RFC process

5 participants