Skip to content

Contributing

We welcome contributions from everyone! There are several ways to contribute, including the following.

  • Adding or commenting on tasks in our project management system, Phabricator.
  • Contributing to the design process.
  • Suggesting new components and design tokens.
  • Writing and submitting code.
  • Reviewing code.
  • Updating and expanding library documentation.
  • Providing support to others using Codex.

For technical decisions about the library, refer to the Architecture Decision Records (ADRs) section.

INFO

Contributions to Codex are covered by the Code of Conduct for Wikimedia technical spaces.

Resources

  • Figma: design with Codex components in Figma.
  • MediaWiki: learn about using Codex within MediaWiki.
  • Gerrit: visit the canonical Codex codebase.
  • GitHub: visit a mirror of the Gerrit codebase on GitHub.

Task tracking

Tasks are tracked in Phabricator on the Codex Phabricator workboard.

Within this board, filters are used to organize tasks into categories, including but not limited to:

FAQ

Please get in touch with us.

The status of a particular task can be found on the Codex Phabricator workboard. If a task exists, the task will be in the column that represents its current status. If not, you can create a task (see below) or get in touch with us.

Can I request a feature?

You are welcome to create new tasks on the Codex Phabricator workboard. New tasks will go into our "Inbox" column and will be triaged regularly. Please remember that Codex is maintained by a nonprofit—we won't be able to meet all feature requests, and it might take time to get to your request.

Please use the Phabricator templates for each type of request:

How can I track Codex tasks?

Create a Phabricator account and add yourself as a subscriber to a task to get notified when updates are made.

How can I contribute to a task?

Create or claim a task as soon as you decide to work on it. This will help avoid overlapping, duplicate, or conflicting work. If you're creating a task, add as much detail as you can about the scope of the task: for example, what needs to be completed before the task can be considered "done"?