Skip to content
Sasha Lopoukhine edited this page May 24, 2024 · 7 revisions

Welcome to the xdsl wiki!

Contribution Guide

An incomplete list of contribution guidelines:

  • if you would like to start working on an issue, please let us know by commenting on it or pinging us on Zulip
    • the Zulip is an especially good place to get a discussion going on good approaches to get started
    • it is really helpful to add the conclusion of any offline discussions to the issue
  • when creating a branch, please prefix the branch name like so: "your-name/short-issue-description"
    • this lets us keep a neat hierarchy of branches in the repository
  • if you are working on something related on an open PR, or would like to help move a PR forward, please let comment on the PR to let us know
    • please don't push directly to a branch created by another contributor without a prior discussion with them
  • when opening a PR, please follow the naming guidelines outlined below
  • please try to address or reply to all comments on a PR
    • this lets us minimise the chances of missing something important in a proposed change

We strive to have a simple and machine readable commit and PR message format in this project.

Examples:

  • dialects: (arith) Add support for arithmetic operations
  • install: Update pypi installation

This is the preferred format:

  • PR titles: tag: specifier? title

specifier should:

  • be lowercase
  • be enclosed by round brackets
  • be a dialect, group of dialects, or area of the code base (e.g. riscv, scf, parser, ...)

title should:

  • start with an upper case letter
  • start with a verb in first person
  • be as short as possible

Commit messages will contain the PR description when the PR is merged.

Tags and labels

tag should:

  • start with a lower case letter
  • be one of the following words:
    • core: changes on the core part of xDSL (ir, textual format, ...)
    • rewriting: changes on xDSL rewrite engine
    • frontend: changes on the Python embedding of xDSL
    • dialects: (dialect_name) changes on this dialects
    • transformations: changes to rewrite patterns or passes
    • docs: update documentation
    • tests: obv
    • examples: obv
    • builtins: obv
    • bench: anything related to benchmarking and profiling
    • misc: tools, pep8 fixups, etc
    • ci: continuous integration-related
    • reqs: package dependence updates
    • install: related to installation (pip ...)
    • backend: related to backend implementation
    • interactive: related to interactive tools
    • interpreter: related to the xDSL interpreter
    • api: obv
    • dependencies: obv

Please also select the corresponding label in the GitHub UI