CommitFest App

From PostgreSQL wiki
Jump to navigationJump to search
See also: CommitFest

The CommitFest App (CFA) is a go-to location to register your patches and keep track of their progress. It is hosted in the infrastructure of the PostgreSQL project, and is thus managed by the Infrastructure team. The code for the CFA is available on the public PostgreSQL Git server, in the pgcommitfest2 repository.

Handbook

Patch tracking

Patches are tracked in the CFA, and in each of their registered CommitFests they get a state assigned. When a patch gets to a final state (i.e., Committed, Rejected, Withdrawn, Returned with Feedback) it won't move forward to new commitfests.

When a patch is created, it is initially associated to one commitfest, which is usually the next Open CommitFest, but it is also possible to register patches to Future CommitFests.

CommitFests

CommitFests are collections of patches. Each patch can be registered to several CommitFests; but generally only one of those is not already closed.

In the CFA, a commitfest can have one of these states:

Future
All upcoming CommitFests except the next CommitFest are in this state. New patches can be registered to this CF.
Open
This is the next CommitFest. New patches can be registered to this CommitFest, and patches from earlier CommitFests which are marked with Moved to next CF are moved to this CommitFest.
In progress
This CommitFest is currently in progress: Reviews are focused on patches registered to this CF, and we're trying to clear it of open patches.
Closed
The CommitFest is done; patches which were registered to this CF are either in a final state, or moved to the next CommitFest.

See also CommitFest Checklist for an operational guide for a CommitFest Manager.

Reviewing a patch

You can post reviews through the mailing list, and through the CFA directly. When you post your review through the CFA, it can automatically update the patch state, and it will send a mail for you to the mailing list.

Unless the author hasn't been actively responding and doesn't respond within a few days after a review that requests changes, it is considered common courtesy to not immediately switch the patch state to Waiting for Author when you post a review.

CommitFest per-entry information

Topic

You can register a patch under one of various topics, which improves the discoverability of each patch:

  1. Bug fixes
  2. Clients
    Patches related to PSQL, libpq and the PostgreSQL wire protocol.
  3. Code Comments
  4. Documentation
    These patches can sometimes be found on the pgsql-docs mailing list instead of the pgsql-hackers mailing list.
  5. Miscellaneous
  6. Monitoring & Control
  7. Performance
  8. Procedural Languages
    Patches for the in-tree procedural languages pl/pgsql, pl/perl, and pl/python, as well as language infrastructure.
  9. Refactoring
  10. Replication & Recovery
  11. Security
  12. Server Features
  13. SQL Commands
  14. System Administration
  15. Testing
    Patches that improve the testing infrastructure, or add more coverage to our test suite.

Review states

Every CommitFest entry has a state associated with it:

Needs Review
The default state of a patch after creation.
Waiting for Author
The patch is waiting for its author to update the patch or otherwise provide a response to earlier comments.
Ready for Committer
The reviewers of the patch have no more comments on the patch, and the patch is ready for a Committer to review and potentially commit that patch.
Committed
The full patchset has been committed. Usually the Committer field will also be updated to the Committer that committed the patch.
Returned with Feedback
Review showed that the patch could not be committed in the current state, and there was no plan from the author to get the patch to a commitable state.
Withdrawn
The author decided not to move forward with this patch.
Rejected
This patch was not going to get accepted into PostgreSQL.
Moved to next CF
The patch did not get commited in this CommitFest, but has enough potential to get a chance in the next CommitFest.

Target version

When a patch adds new features, it will usually target the next major version. For bugfixes, you select the oldest supported version of PostgreSQL which has the broken behaviour.

Authors

This tracks which developers have worked on the patch.

Note that this information may not be complete: Not everyone who submits patches has a PostgreSQL Community Account, nor has everyone used the CFA (which would allow them to be registered as author).

Reviewers

This field tracks who have reviewed a patch. It is expected that people who are reviewing a patch add themselves to that list, and remove themselves when they're not going to review the patch.

This information is likely to be incomplete; not everyone who reviews a patch has registered themselves as reviewer, and inversely, not everyone who has registered themselves as reviewer has actually reviewed the patch.

Committer

Tracks which committer has committed (or is planning to commit) the patch.

Links

The user can register a Wiki link that links to a Wiki page that discusses the patch, and a Git link that points to a repository about the patch.

Emails

This section references relevant e-mail threads. You can add multiple threads if there are more than one relevant thread.

This section also allows you to add Annotations to specific mails:

History

Contains the history of the commitfest entry, i.e. who updated what information of the entry at what time.

Logging in

You can log in to the CFA with your PostgreSQL community account using the link in the top-right corner of the home page.


Integrations

CFBot

The CFBot tests patches that have been registered to the current CommitFest, and shows their status in an easy to understand format.

It tries to run CI on all active patches every few days, while prioritizing recently updated patches to decrease their cycle time. If a patch doesn't apply on the latest HEAD of the master branch, it'll keep the latest successfully applied patch's CI state intact, and add a marker to the patch's icons indicating that the patch fails to apply.

History

The CommitFest app was originally built around 2013, when it became clear that commitfest tracking on the Wiki wouldn't be sufficient and that a separate application for tracking would be required.

The requirements can still be found on the Wiki page New CommitFest App Spec.