Skip to content

Make it easier to create new commitfests #25

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
JelteF opened this issue Feb 5, 2025 · 5 comments · Fixed by #70
Closed

Make it easier to create new commitfests #25

JelteF opened this issue Feb 5, 2025 · 5 comments · Fixed by #70
Assignees
Labels
good first issue Good for newcomers

Comments

@JelteF
Copy link
Collaborator

JelteF commented Feb 5, 2025

Currently new commitfests need to be created from the admin panel, and dates need to be filled in manually. I think the easiest would probably be to have a "start commitfest" button that does:

  1. Change the currently "Open" commitfest to "In Progress"
  2. Create a new "Open" commitfest

Then there could also be an "end commitfest" button that does:

  1. Change the currently "In Progress" commitfest to "Closed"

Obviously these buttons should only be pressable by some type of administrator role.

@JelteF JelteF added the good first issue Good for newcomers label Feb 5, 2025
@ChiragAJain
Copy link

Hi @JelteF , I have been meaning to start my open source contributions and thought this might be a good issue to begin with. I have good grasp on Python and related frameworks. Can I take up this issue and try to resolve it?

@JelteF
Copy link
Collaborator Author

JelteF commented Feb 9, 2025

Sounds great. Feel free to ask questions in the #commitfest-dev channel in the "PostgreSQL Hackers Mentoring" discord: https://discord.gg/XZy2DXj7Wz

@ChiragAJain
Copy link

Sure! Thanks for letting me know. I will check it out.

ChiragAJain added a commit to ChiragAJain/pgcommitfest that referenced this issue Feb 17, 2025
Updated commitfest\admin.py to ease the starting and ending action on a commitfest via a drop-down list.
ChiragAJain added a commit to ChiragAJain/pgcommitfest that referenced this issue Feb 17, 2025
Updated commitfest\admin.py to ease the starting and ending action on a commitfest via a drop-down list.
@polobo
Copy link
Contributor

polobo commented Apr 15, 2025

My plan for this is to have a python script that knows the workflow schedule, looks the current date and the collection of open CFs, and determines whether it is in a new month AND the set of CFs represents the prior month. If that is the case it can perform the few actions (create new and status change) needed to change the overall workflow state from the prior month to the current one. If that isn't the case it does nothing. Schedule it to run via cron on the first of the month. Optionally, run it daily since its behavior should be idempotent.

@polobo
Copy link
Contributor

polobo commented Apr 15, 2025

Specifically, I can already use the calendar I posted on Discord to derive these 2025 month changes:

Change Summary for January (compared to December):
[
  {
    "name": "Drafts PG18",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-01",
    "action": "2 - Status Change",
    "status": "in_progress"
  },
  {
    "name": "2025-03",
    "action": "3 - Create",
    "status": "open"
  }
]
----------------------------------------
Change Summary for February (compared to January):
[
  {
    "name": "2025-03",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG18",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-01",
    "action": "1 - Close",
    "status": "closed"
  }
]
----------------------------------------
Change Summary for March (compared to February):
[
  {
    "name": "Drafts PG18",
    "action": "1 - Close",
    "status": "closed"
  },
  {
    "name": "2025-03",
    "action": "2 - Status Change",
    "status": "in_progress"
  },
  {
    "name": "2025-07",
    "action": "3 - Create",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "3 - Create",
    "status": "draft"
  }
]
----------------------------------------
Change Summary for April (compared to March):
[
  {
    "name": "2025-07",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-03",
    "action": "1 - Close",
    "status": "closed"
  }
]
----------------------------------------
Change Summary for May (compared to April):
[
  {
    "name": "2025-07",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  }
]
----------------------------------------
Change Summary for June (compared to May):
[
  {
    "name": "2025-07",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  }
]
----------------------------------------
Change Summary for July (compared to June):
[
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-07",
    "action": "2 - Status Change",
    "status": "in_progress"
  },
  {
    "name": "2025-09",
    "action": "3 - Create",
    "status": "open"
  }
]
----------------------------------------
Change Summary for August (compared to July):
[
  {
    "name": "2025-09",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-07",
    "action": "1 - Close",
    "status": "closed"
  }
]
----------------------------------------
Change Summary for September (compared to August):
[
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-09",
    "action": "2 - Status Change",
    "status": "in_progress"
  },
  {
    "name": "2025-11",
    "action": "3 - Create",
    "status": "open"
  }
]
----------------------------------------
Change Summary for October (compared to September):
[
  {
    "name": "2025-11",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-09",
    "action": "1 - Close",
    "status": "closed"
  }
]
----------------------------------------
Change Summary for November (compared to October):
[
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-11",
    "action": "2 - Status Change",
    "status": "in_progress"
  },
  {
    "name": "2026-01",
    "action": "3 - Create",
    "status": "open"
  }
]
----------------------------------------
Change Summary for December (compared to November):
[
  {
    "name": "2026-01",
    "action": "0 - No Change",
    "status": "open"
  },
  {
    "name": "Drafts PG19",
    "action": "0 - No Change",
    "status": "draft"
  },
  {
    "name": "2025-11",
    "action": "1 - Close",
    "status": "closed"
  }
]
----------------------------------------

JelteF added a commit that referenced this issue Jun 15, 2025
This introduce a new type of CommitFest a "Draft" CommitFest. This
CommitFest is never "In Progress", but it can be open. It exists for a
year. It opens when the final regular CommitFest of the year becomes "In
Progress" and stays open for exactly a year. It never becomes "In
Progress" itself.

Adding a second type of CommitFest also needed a redesign of quite a few
things, like the homepage. Also management of the CommitFests needed to
be made a bit easier, so admins don't forget to close/create Draft
CommitFests. So now, closing/opening/creating CommitFests is done
automatically when the time is right for that. A help page is also
introduced to explain the CommitFest app.

The naming of CommitFests has been changed too. Since we now have a
Draft CF every year that needs a name, it seemed reasonable to align the
names of the other CFs with that too. So each PG release cycle now has 5
regular commitfests that are called:

- PG18-1
- PG18-2
- PG18-3
- PG18-4
- PG18-Final

And a single Draft CommitFest, called:

- PG18-Draft

Finally, it also adds a small initial API endpoint for the CFBot, to
request the commitfests that need CI runs. Future PRs will extend this
API surface to also include/allow requesting the actual patches that CI
should run on.

Fixes #25
Fixes #65

---------

Co-authored-by: David G. Johnston <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants