Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
Agenda, Reports, and Minuting feature #1656
Comments
I propose that we begin implementing this feature by focusing on filling the role that wiki.python.org currently plays for PSF Board meetings. I'm going to ask for some input from PSF staff on what the basic needs are later, but for now... Here is what I foresee as a very rough sketch of the basic models we would want in place to support generic use cases down the line (projects, working groups, subcommittees, etc), all of it is up for deeper thought and more informed decision (specifically names and relationships). class Concern(models.Model):
""" A "Concern" is a sort of Organizational Unit
which can exist in a tree like structure """
# Name of the "Concern", Example: PSF Board, Packaging Working Group,
# or "Project"
name = models.CharField(max_length=128)
# If applicable, a "parent" concern.
# Example: Finance committee of PSF Board,
# or "PIP UX Project 2020" under the Packaging Working Group
parent_concern = models.ForeignKey('self', null=True, blank=True)
class ConcernRole(models.Model):
""" A User's role within a concern, may be generic and come with
certain specific MinuteItems that they are responsible for or allowed
to provide """
# Name of the "Role", Example: directory/staff/officer (psf board)
# project-manager/contractor/psf-staff (pip-2020-ux-project)
name = models.CharField(max_length=128)
class ConcernedParty(models.Model):
""" Effectively a "Group" for a given concern that makes managing
access and reminders more straightforward. This may include the ability
to email a notification that a meeting has been scheduled, remind
attendees to submit reports, etc. """
user = models.ForeginKey(User)
role = models.ForeginKey(ConcernRole)
concern = models.ForeignKey(Concern)
class Meeting(models.Model):
date = models.DateField()
parties = models.ManyToManyField(ConcernedParty)
adhoc_attendees = models.ManyToManyField(User)
class AgendaItem(models.Model):
""" Abstract Base Class for items such as reports, discussion topics, or
resolutions which are submitted before a meeting.
These are constructed together into a completed Agenda object. """
meeting = models.ForeignKey(Meeting)
class Meta:
abstract = True
class MinuteItem(models.Model):
""" Abstract Base Class for items such as notes or action items generated
during a meeting.
These are constructed together into a completed Minutes object """
meeting = models.ForeignKey(Meeting)
class Meta:
abstract = True |
The current workflow for PSF Board Agendas and Minutes is as follows (to my understanding):
|
Thanks for gathering this info @ewdurbin! I have a few quick comments, questions and ideas to contribute with. About the rough data modeling you're proposing, I think it plays nice for what we've discussed so far. I really liked the idea of having an abstract From my a first look, it seemed that it's representing some kind of concern types, I don't know. It was difficult to me to imagine other attributes or usages for this model, but probably my lack of familiarity with the domain plays an important role here. Given that, I was wondering if, for an initial version, the Another thing I was thinking about are the nested items in the agenda... I don't know if it's something we should be concerned about right now, but as a suggestion to support that, we could add a self-reference in the base |
A suggestion for a good starting point would be to have an interface were a Board/Staff member can schedule a new meeting. The page can be simple form with a datetime input. The backend would:
What do you think? |
The biggest reason to have any hierarchy above a I could imagine looking for minutes from all PSF activities in the following ways:
Thus, I think we want to establish some model for organizing |
Yes, the board specifically has some required items that have mild complexities for its agenda and minutes. As an example there are a few types of Resolutions that are addressed: 1) Resolutions already settled by email vote 2) Resolutions which will go on a "Consent Agenda" for discussion before vote and 3) Resolutions which will be voted on during the meeting. Not all I unfortunately the
I think that can certainly be left for later decision/discussion. Goal is just to be able to better automate reminders and notifications for people who have responsibilities in forming a given agenda/minutes without pestering everyone.
At this time, nest-able |
Great @ewdurbin! I'll work on an initial modeling so we can talk more about this in a PR. OK? |
Also, as a person who frequently takes and tracks meeting minutes for the current funded pip resolver work, I look forward to being an alpha or beta tester for this functionality on www.python.org. |
As requested by @brainwane, pulled from: https://mail.python.org/pipermail/pydotorg-www/2020-June/005432.html
Context:
Right now, www.python.org hosts the board meeting minutes
https://www.python.org/psf/records/board/minutes/ . We talked about
maybe also making space for working group/project meeting minutes, like
the ones I write up and currently host on the wiki (example:
https://wiki.python.org/psf/PackagingWG#Dependency_resolver_and_user_experience_improvements_for_pip
).
In the call, Ernest asked me to list what would be important in a
minuting package for www.python.org, distinguishing "required" from
"heavily encouraged" to "dream features".
Current workflow:
Right now, in order to minute meetings of Packaging WG-funded projects, I:
and reliable EtherPad instance) and take notes with bullet points
placeholder link in the table of meeting notes, annotating with the
description, type (meeting notes), and date
archived notes
What I want:
For the process in general, I have 3 core values:
attendees to collaborate on writing minutes, live, during the meeting,
in a reasonably lightweight syntax (such as Markdown)
attendees, so we can discuss things we then redact before sharing
(vacations, burnout, criticism of other people or projects)
them, without having to log in anywhere, and linkable
As I understand it, a minuting system on www.python.org would have a
hierarchy like PSF -> Working Group -> Project. Example: PSF ->
Packaging WG -> Pip dependency resolver & UX improvements.
Required:
central project info hub, and show up in search engine results.
so that it's easy to link to minutes within an issue or mailing list post.
reStructuredText should be supported.
Heavily encouraged:
default) date and title of meeting, and it should be possible for me to
also manually append (maybe in a separate list) links to relevant blog
posts, reports, podcasts, etc.
underneath it.
freeform text field but also encourages certain fields (project name,
list of participants, estimated start and end dates).
wiki.python.org, even if I then have to mess with formatting.
within our chunk of the site hierarchy.
participants, discussion, and Next Steps/TODOs/Commitments.
Dream:
able to click Next or Previous to go to the next/previous entry within
that project chronologically.
and other unnecessary syntax.
Etherpad, Dropbox Paper, Google Docs, Nextcloud, or something else), I
could choose an option to export to a new www.python.org minute. The new
draft would autopopulate, so I could make changes and click Publish, and
then it would show up at the right URL and be present in a Table of
Contents automagically.
stuff easily).
feature to automatically pull out the top-level discussion headings from
each minute, and make a list of "here's what we discussed", then I could
use that when publicizing the meeting notes, and it would make people
more likely to read them.
they're being referred to.
The text was updated successfully, but these errors were encountered: