├── membership ├── SteeringCouncil.md └── Maintainers.md ├── README.md ├── CodeOfConduct.md └── Governance.md /membership/SteeringCouncil.md: -------------------------------------------------------------------------------- 1 | # GeoPandas Project Steering Council 2 | 3 | - Joris Van den Bossche 4 | - Martin Fleischmann 5 | - Matt Richards 6 | - Brendan Ward 7 | 8 | (last updated: October 12, 2022) 9 | 10 | See Project [Governance](../Governance.md#steering-council) for more information 11 | about the Steering Council. 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GeoPandas Project Governance Documents 2 | 3 | This repository contains documents related to governance of the GeoPandas 4 | project and subprojects. 5 | 6 | ## Table of Contents 7 | 8 | - [Project Governance](./Governance.md) 9 | - [Code of Conduct](./CodeOfConduct.md) 10 | 11 | ## Project Roles 12 | 13 | - [Steering Council](./membership/SteeringCouncil.md) 14 | - [Project Maintainers](./membership/Maintainers.md) 15 | 16 | For more information about the GeoPandas project community, including recurring 17 | meeting schedules and other ways to engage with the project, please see the 18 | [GeoPandas Community repository](https://github.com/geopandas/community). 19 | -------------------------------------------------------------------------------- /membership/Maintainers.md: -------------------------------------------------------------------------------- 1 | # GeoPandas Project Maintainers 2 | 3 | The list of Maintainers is managed at the subproject level. Not all subprojects 4 | have created a list of Maintainers yet. The list of subproject Maintainers will 5 | be listed here once available. 6 | 7 | ## GeoPandas repository maintainers: 8 | 9 | - Joris Van den Bossche 10 | - Martin Fleischmann 11 | - Matt Richards 12 | - Brendan Ward 13 | - Levi John Wolf 14 | - James McBride 15 | 16 | See also [GeoPandas team](https://geopandas.org/en/latest/about/team.html) for 17 | more information about other GeoPandas contributors. 18 | 19 | ## Contextily 20 | 21 | [Contextily contributors](https://contextily.readthedocs.io/en/latest/#contributors) 22 | 23 | ## xyzservices 24 | 25 | [xyzservices contributors](https://xyzservices.readthedocs.io/en/latest/#contributors) 26 | -------------------------------------------------------------------------------- /CodeOfConduct.md: -------------------------------------------------------------------------------- 1 | # NumFOCUS Code of Conduct 2 | 3 | You can find the whole document here [https://numfocus.org/code-of-conduct](https://numfocus.org/code-of-conduct). 4 | 5 | ## The short version 6 | 7 | NumFOCUS is dedicated to providing a harassment-free community for everyone, regardless of gender, sexual orientation, gender identity and expression, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of community members in any form. 8 | 9 | Be kind to others. Do not insult or put down others. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for NumFOCUS. 10 | 11 | All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate. 12 | 13 | Thank you for helping make this a welcoming, friendly community for all. 14 | 15 | ## Long version 16 | 17 | You can find the long version of the Code of Conduct on the NumFOCUS website [https://numfocus.org/code-of-conduct](https://numfocus.org/code-of-conduct) 18 | 19 | ## How to report 20 | 21 | If you feel that the Code of Conduct has been violated, feel free to submit a report, by using the form: [NumFOCUS Code of Conduct Reporting Form](https://numfocus.typeform.com/to/ynjGdT?typeform-source=numfocus.org)   22 | 23 | ## Who will receive your report 24 | 25 | Your report will be received and handled by NumFOCUS Code of Conduct Working Group; trained, and experienced contributors with diverse backgrounds. The group is making decisions independently from the project, PyData, NumFOCUS or any other organization. 26 | 27 | You can learn more about the current group members, as well as the reporting procedure **[HERE](https://numfocus.org/code-of-conduct)** 28 | -------------------------------------------------------------------------------- /Governance.md: -------------------------------------------------------------------------------- 1 | # GeoPandas Project Governance 2 | 3 | ## Summary 4 | 5 | GeoPandas is a community-owned and community-run project. To the maximum extent 6 | possible, decisions about project direction are made by community consensus. 7 | Some members of the community additionally contribute by serving as [GeoPandas 8 | Project Maintainers](#project-maintainers), where they are responsible for 9 | facilitating the everyday activities of the project, or on the 10 | [GeoPandas Steering Council](#steering-council), where they are 11 | responsible for facilitating the establishment of community consensus, for 12 | stewarding project resources, and – in extreme cases – for making project 13 | decisions if the normal community-based process breaks down. 14 | 15 | ## The Project 16 | 17 | The GeoPandas Project (The Project) is an open source software project 18 | affiliated with the 501(c)3 [NumFOCUS Foundation](https://numfocus.org/). 19 | The primary goal of The Project is to develop support for geospatial data in 20 | [Pandas](https://pandas.pydata.org/) objects. Software developed by The Project 21 | is released under the BSD (or similar) open source license, developed openly, 22 | and hosted on public GitHub repositories under the 23 | [GeoPandas GitHub organization](https://github.com/geopandas). 24 | In addition to the main 25 | [GeoPandas repository](https://github.com/geopandas/geopandas), 26 | the GeoPandas project includes subprojects focused on geospatial input/output, 27 | geospatial data exploration and visualization, and parallelized geospatial 28 | computations. 29 | 30 | The Project is developed by a team of distributed Contributors. Contributors are 31 | individuals who have contributed code, participated in GitHub Issues, Pull 32 | Requests, and Discussions, or provided community help/building, education, 33 | outreach, and other activities that benefit the Project and the Community. 34 | Anyone can be a Contributor, and Contributors can be affiliated with any legal 35 | entity or none. 36 | 37 | The Project Community consists of all Contributors and Users of The Project. 38 | Contributors work on behalf of and are responsible to the larger Project 39 | Community and we strive to keep the barrier between Contributors and Users as 40 | low as possible. 41 | 42 | Anyone can participate in The Project by submitting, reviewing, and offering 43 | feedback on GitHub Issues, Pull Requests, and/or Discussions, or by 44 | communicating through the Gitter chat room, mailing lists, and other channels. 45 | All members of the Community are welcome to participate in regular GeoPandas 46 | Community Meetings that occur online on a monthly basis. The schedule and 47 | archive of meeting notes are available within the [GeoPandas Community 48 | repository](https://github.com/geopandas/community). 49 | 50 | Participation in The Project follows the 51 | [NumFOCUS Code of Conduct](./CodeOfConduct.md), 52 | which ensures that members of the Community treat each other with respect, 53 | provide an environment that welcomes participation, and provides a mechanism for 54 | reporting and enforcing violations. 55 | 56 | The Project is integrated within the larger Python data science and geospatial 57 | communities, and project Contributors are often involved in the ongoing 58 | maintenance, expansion, and creation of software projects within the 59 | broader ecosystem. 60 | 61 | ## Governance 62 | 63 | The foundations of Project governance are: 64 | 65 | - Openness and transparency 66 | - Active contribution 67 | - Institutional neutrality 68 | 69 | ### Consensus-based decision-making by the community 70 | 71 | Normally, project decisions will be made by consensus of all interested 72 | Contributors. The primary goal of this approach is to ensure that the people who 73 | are most affected by and/or involved in any given change can contribute their 74 | knowledge in the confidence that their perspective will be acknowledged. 75 | Thoughtful review from a broad community is the best mechanism we know of for 76 | creating high-quality software. 77 | 78 | In this context, consensus does not require: 79 | 80 | - that we solicit everybody's opinion on every change 81 | - that we ever hold a vote on anything 82 | - that everybody is happy or agrees with every decision 83 | 84 | Consensus means that we entrust everyone with the right to veto any change if 85 | they feel it necessary. 86 | 87 | To achieve consensus, we use a combination of best judgment and best efforts: 88 | 89 | - A simple and uncontroversial bug fix posted on GitHub and reviewed by a core 90 | developer is probably fine. 91 | - Substantive or controversial API changes may involve one or more GitHub 92 | issues, Pull Requests, or Discussions that are open for longer periods of 93 | time to provide greater opportunity for feedback from the Community and may 94 | specifically solicit feedback from targeted members of the Community. 95 | 96 | We expect that anyone who cares enough about The Project will raise their 97 | concerns or express their formal veto within one of these channels within a 98 | reasonably short period of time (up to a few weeks). If no major unresolved 99 | concerns exist after a period of time appropriate for the scope of the change, 100 | we will assume that consensus has been reached. If we find that a given change 101 | is more controversial than expected or a critical input is delayed because 102 | someone was unavailable, we can back out or further modify those changes based 103 | on the additional feedback. 104 | 105 | If necessary, a formal veto should consist of: 106 | 107 | - an unambiguous statement that a veto is being invoked 108 | - an explanation of why it is being invoked 109 | - a description of what conditions (if any) would convince the vetoer to 110 | withdraw their veto 111 | 112 | We expect that most people will take this responsibility seriously and only 113 | invoke their veto when they judge that a serious problem is being ignored and 114 | that their veto is necessary to protect The Project. We expect such vetoes to be 115 | rare in practice because Contributors are motivated from the start to find some 116 | solution that everyone can live with. 117 | 118 | If all proposals for resolving some issue are vetoed, then the status quo wins 119 | by default. In the worst case, if a Contributor is genuinely misusing their veto 120 | in an obstructive fashion to the detriment of the project, then they can be 121 | ejected from the project by consensus of the Steering Council. 122 | 123 | For more information about the overall approach we use to achieve consensus, we 124 | highly recommend that all Contributors additionally read 125 | [Chapter 4: Social and Political Infrastructure](http://producingoss.com/en/producingoss.html#social-infrastructure) 126 | of Karl Fogel's classic Producing Open Source Software, and in particular the 127 | section on 128 | [Consensus-based Democracy](http://producingoss.com/en/producingoss.html#consensus-democracy), 129 | for a more detailed discussion. 130 | 131 | ### Project Maintainers 132 | 133 | Project Maintainers are Project Contributors that have shown that they are 134 | dedicated to the ongoing development of the project through active engagement 135 | with the Community and facilitation of everyday Project activities. Maintainers 136 | are typically granted write access to one or more repositories within The 137 | Project, provide feedback on Github Issues and Discussions, review and merge 138 | Pull Requests, participate in monthly Community Meetings (which are open to all 139 | community members), vote on Steering Council members, and may be actively 140 | involved in setting the overall direction of the project. Project Maintainers 141 | are nominated by other Project Maintainers by sending a notification to the 142 | Project Maintainer's private mailing list. Other Project Maintainers will have a 143 | period of at least two weeks in which to veto a nomination; otherwise, the 144 | nominee shall become a Project Maintainer. No voting is necessary for selecting 145 | Project Maintainers. 146 | 147 | Project Maintainers who have not actively contributed to The Project for a 148 | period of 12 months will be asked if they wish to resign their write access and 149 | voting rights until they become active again. 150 | 151 | Project Maintainers may have their write access and voting rights revoked by the 152 | Steering Council if they are deemed to be actively harmful to The Project's 153 | well-being, and attempts at communication and conflict resolution have failed. 154 | Depending on the nature of the conflict, if any, the NumFOCUS Code of Conduct 155 | Working Group may be involved in conflict resolution or specifically recommend 156 | revoking a Maintainer's write access and voting rights. 157 | 158 | Current and retired Project Maintainers will be 159 | [listed by subproject](./membership/Maintainers.md). 160 | 161 | To the maximum extent possible, the communications and activities of Project 162 | Maintainers are conducted publicly within the channels described above. Project 163 | Maintainers will have a private mailing list that may be used for topics that 164 | are sensitive in nature, such as the nomination of new Project Maintainers, or 165 | time-sensitive topics, such as grant application deadlines of interest to the 166 | Community, or to start initial work on project-related materials before opening 167 | those more broadly for input within the GeoPandas community. These topics and 168 | materials are then typically discussed and distributed as part of the monthly 169 | development meetings or related communication activities. 170 | 171 | In general, Pull Requests should be approved by at least one maintainer that did 172 | not submit the Pull Request, but are not required for especially small or 173 | trivial changes such as typo fixes. 174 | 175 | ### Steering Council 176 | 177 | The Project will have a Steering Council that consists of Project Contributors 178 | who have produced contributions that are substantial in quality and quantity and 179 | sustained over a period of time sufficient to demonstrate their understanding of 180 | the needs of the project and community. The overall role of the Council is to 181 | ensure – with input from the Community – the long-term well-being of the 182 | project, both technically and as a community. 183 | 184 | Council Members participate in everyday project activities, including 185 | discussions and code review, as peers with all other Contributors and the 186 | Community. Council Members do not have any special power or privilege through 187 | their membership on the Council when participating in these everyday activities. 188 | However, it is expected that because of the quality and quantity of their 189 | contributions and their expert knowledge of the Project, Council Members will 190 | provide useful guidance, both technical and in terms of project direction, to 191 | potentially less experienced Contributors. 192 | 193 | If necessary, The Steering Council may: 194 | 195 | - make decisions about the overall scope, vision, and direction of the project 196 | - make decisions about strategic collaborations with other organizations or 197 | individuals 198 | - make decisions about specific technical issues, features, bugs, and Pull 199 | Requests 200 | - make decisions when regular community discussion doesn't produce consensus 201 | on an issue in a reasonable time frame 202 | - update policy documents such as this one 203 | 204 | However, the Council's primary responsibility is to facilitate the ordinary 205 | community-based decision-making procedure described above. If we ever have to 206 | step in and formally override the Community for the health of the Project, then 207 | we will do so, but we will consider reaching this point to indicate a failure in 208 | our leadership. 209 | 210 | #### Council Membership 211 | 212 | The Steering Council is composed of up to 5 Members that serve for 2-year terms. 213 | Council Members are nominated by Project Maintainers or themselves. Project 214 | Maintainers will vote on nominees during a voting period of at least one week 215 | that is announced sufficiently far in advance (e.g., 1 month) to ensure that all 216 | Project Maintainers that wish to vote are able to do so. No quorum of Project 217 | Maintainers is necessary for this voting process. 218 | 219 | The Council will be initially formed from the set of existing Project 220 | Maintainers who, as of mid-2022, have been significantly active over the last 221 | year. 222 | 223 | To become eligible to join the Steering Council, an individual must be a Project 224 | Contributor who has produced contributions that are substantial in quality and 225 | quantity, and sustained over a period of time sufficient to demonstrate their 226 | understanding of the needs of the project and community. These contributions may 227 | include, but are not limited to code, code review, participation in GitHub 228 | Issues, Pull Requests, and Discussions, community help/building, education, 229 | outreach, and other activities that benefit the Project and the Community. We 230 | want to encourage a diverse array of backgrounds, talents, and perspectives on 231 | the Council, which is why we explicitly do not define code or code-related 232 | metrics as the sole metric on which Council membership will be evaluated. 233 | 234 | Any former Council member can be considered for membership again at any time in 235 | the future, like any other Project Contributor; there is no maximum term length. 236 | 237 | If a Council member becomes inactive in the project for a period of one year, 238 | they will be considered for removal from the Council. Before removal, they will 239 | be contacted to determine if they plan on returning to active participation. If 240 | not, they will be removed immediately upon a vote of the remaining Council 241 | members, and their vacancy will be filled in the process outlined above. 242 | 243 | The Council reserves the right to eject current Members if they are deemed to be 244 | actively harmful to The Project's well-being, and attempts at communication and 245 | conflict resolution have failed. This requires the consensus (as described above) 246 | of the remaining Members. 247 | 248 | Current and retired Steering Council Members will be listed on 249 | [Steering Council Membership document](./membership/SteeringCouncil.md). 250 | 251 | To the maximum extent possible, Council discussions and activities will be 252 | public and done in collaboration and discussion with the Project Contributors 253 | and Community. The Council will have a private mailing list that will be used 254 | sparingly and only when a specific matter requires privacy. When private 255 | communications and decisions are needed, the Council will do its best to 256 | summarize those to the Community after eliding personal/private/sensitive 257 | information that should not be posted to the public internet. 258 | 259 | #### Conflict of Interest 260 | 261 | It is expected that the Council Members will be employed at a wide range of 262 | companies, universities, and non-profit organizations. Because of this, it is 263 | possible that Members will have conflicts of interest. Such conflict of 264 | interests include, but are not limited to: 265 | 266 | - financial interests, such as investments, employment, or contracting work, 267 | outside of The Project that may influence their work on The Project 268 | - access to proprietary information of their employer that could potentially 269 | leak into their work with The Project 270 | 271 | All members of the Council shall disclose to the rest of the Council any 272 | conflict of interest they may have. Members with a conflict of interest in a 273 | particular issue may participate in Council discussions on that issue but must 274 | recuse themselves from voting on the issue. 275 | 276 | #### Subcommittees 277 | 278 | The Council can create subcommittees that provide leadership and guidance for 279 | specific aspects of the project. Subcommittees may include non-Council members 280 | as appropriate. Like the Council as a whole, subcommittees should conduct their 281 | business in an open and public manner unless privacy is specifically called for. 282 | Private subcommittee communications should happen on the main private mailing 283 | list of the Council unless specifically called for. 284 | 285 | ## Changing the Governance Documents 286 | 287 | We anticipate that changes to these Governance documents will be rare and will 288 | warrant careful consideration, except in the case of typos or minor language 289 | errors. 290 | 291 | Any member of the Community may suggest a change to these Governance documents 292 | by opening a GitHub Issue or Pull Request on the GeoPandas Governance 293 | repository. The Steering Council may elect not to pursue changes outlined in the 294 | Issue or Pull Request and may close the issue with a brief explanation of that 295 | choice. 296 | 297 | The Steering Council may solicit input from the person that initially raised the 298 | Issue or Pull Request and/or other members of the Community. 299 | 300 | Members of the Steering Council then approve or veto the final version of the 301 | Pull Request. Once approved, the Pull Request will be merged and the updated 302 | Governance documents will be posted publicly within this repository. 303 | 304 | ## Acknowledgements 305 | 306 | Text adapted from [Jupyter](https://jupyter.org/governance/governance.html), 307 | [NumPy](https://numpy.org/doc/stable/dev/governance/governance.html), and 308 | [Pandas](https://github.com/pandas-dev/pandas-governance/blob/master/governance.md) 309 | projects and modified by the GeoPandas Project. We are grateful to those 310 | projects for contributing these materials under open licensing terms for us to 311 | easily reuse. 312 | 313 | ## License 314 | 315 | To the extent possible under law, the authors have waived all copyright and 316 | related or neighboring rights to this document, as per the 317 | [Creative Commons Public Domain Dedication](https://creativecommons.org/publicdomain/zero/1.0/) 318 | license. 319 | --------------------------------------------------------------------------------