About Code of Conduct
This Code of Conduct is a set of rules outlining the responsibilities of or proper practices for an individual, party or organization to contribute to OpenConext.
This Code of Conduct applies to Code Contributions, the OpenConext Community and Project as wel as the OpenConext Mailinglists.
Contributing to OpenConext
We have made the assumption that we want to ‘register’ any changes, change & feature requests and issues/bugs as close to the source code as possible. At the same time, especially for changes, we feel it should be clear what is going on and why, so some overview is needed.
- Discuss the change proposal on the openconext mailing list. Describe what it is you want and why you want is. Even if it is a deeply technical thing you want to change, please also try to provide a ‘layman’s’ description of the change.
- At some point rough consensus will be reached on the list. Now proceed by describing the result of the discussion in the github wiki at the relevant component. If the change impacts several components, or e.g. create a new one, please use the OpenConext/OpenConext repository wiki to describe these.
- Create issues in github for the work that needs to be done to achieve the envisioned change.
- When you are ready to commit code, create a pull request to submit code that belongs to specific issues. The code will be reviewed and commented upon by the community, and based on that (for now) SURFnet will officially accept or refuse the code. Detailed information on how OpenConext works with GitHub, branches etc, is documented in the OpenConext wiki.
We envision that SURFnet will not remain the sole party in the QA role. Based on successful contributions we will start accepting non-SURFnet employees as committers.
Contributing bug/issue reports
- Discuss the bug/issue at openconext-users list. Describe what it is you found, and how to reproduce that. Even if it is a deeply technical thing you think is creating the issue, please also try to provide a ‘layman’s’ description of the change.
- If from the discussions on the list it becomes clear that it is indeed a bug, register this bug by creating an issue in github.
- If the fix for the bug/issue is small you may already have written a patch. If so please create a pull request and add a pointer to the issue as part of the request.
For now, SURFnet will shepherd the bugs and issues posted (which does not mean we will also fix them!) Again we do not envision SURFnet to remain in this role
Working with External components
(Janus, Grouper, SimpleSAMLphp, LAMP and Tomcat, Shibboleth)
As you are probably aware, OpenConext tries not to rebuild what is already available. Therefore, it relies on several existing OpenSource projects and communities, which we will refer to as ‘Upstream’ from now on. Some changes and bugs you find may be related to or caused by issues in upstream projects. If you encounter such an issue, we propose to use whatever methodology the upstream project is using to interact with them. However, at the same time, we request you to please create an issue in github for either the change of the bug as well. Please add a reference to the upstream issue or change to make sure the relations can be traced back upstream
Contributing to Documentation
If you want to contribute to the documentation of OpenConext, please make this known via the openconext-users list. As a rule of thumb, any documentation on the technical workings of a software component should go together with the actual code in github. Documentation on use of applications, as well as documentation and use cases on using the platform as a whole should be committed to the documentation sections of the openconext wiki.
This Community Code of Conduct covers our behavior as members of the OpenConext Community, in any forum, mailing list, wiki, web site, IRC channel, public meeting or private correspondence. OpenConext members and governance bodies are ultimately accountable to the OpenConext Board.
- Be considerate. Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. OpenConext has a global base of users and of contributors. Even if it’s not obvious at the time, our contributions to OpenConext will impact the work of others. For example, changes to code, infrastructure, policy, documentation, and translations during a release may negatively impact others’ work.
- Be respectful. The OpenConext community and its members treat one another with respect. Everyone can make a valuable contribution to OpenConext. We may not always agree, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the OpenConext community to be respectful when dealing with other contributors as well as with people outside the OpenConext project and with users of OpenConext.
- Be collaborative. Collaboration is central to OpenConext and to the larger free software community. This collaboration involves individuals working with others in teams within OpenConext, teams working with each other within OpenConext, and individuals and teams within OpenConext working with other projects outside. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream and downstream projects and others in the free software community to coordinate our technical, advocacy, documentation, and other work. Our work should be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress.
- When we disagree, we consult others. Disagreements, both social and technical, happen all the time and the OpenConext community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community processes. We have the Technical Board, the User Committee, and a series of other governance bodies which help to decide the right course for OpenConext. There are also Project Core Teams and Project Technical Leads, who may be able to help us figure out the best direction for OpenConext. When our goals differ dramatically, we encourage the creation of alternative implementations, so that the community can test new ideas and contribute to the discussion.
- When we are unsure, we ask for help. Nobody knows everything, and nobody is expected to be perfect in the OpenConext community. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.
- Step down considerately. Members of every project come and go, and OpenConext is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimizes disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.
- Respect the election process. Members should not attempt to manipulate election results. Open debate is welcome, but vote trading, ballot stuffing and other forms of abuse are not acceptable.
We pride ourselves on building a productive, happy and agile community that can welcome new ideas in a complex field, and foster collaboration between groups with very different needs, interests and goals.
The OpenConext mailing lists are an important part of the OpenConext community platform. This code of conduct applies to your behavior on those mailing lists too. Please follow these simple guidelines in addition to the general code of conduct:
- Please use a valid email address to which direct responses can be made.
- The mailing lists exist to foster the development and use of OpenConext. Non-constructive or off-topic messages, along with other abuses, are not welcome.
- Do not send spam.
- Send all of your e-mails in English.
- Make sure that you are using the proper list. In particular, don’t send user-related questions to developer-related mailing lists.
- Wrap your lines at 80 characters or less for ordinary discussion. Lines longer than 80 characters are acceptable for computer-generated output (e.g., ls -l).
- Do not send automated out-of-office or vacation messages.
- Do not send test messages to determine whether your mail client is working.
- Do not send subscription or unsubscription requests to the list address itself; use the respective -request address instead.
- Try to avoid sending your messages in HTML; use plain text instead.
- Avoid sending large attachments.
- Do not quote messages that were sent to you by other people in private mail, unless agreed beforehand.
- When replying to messages on the mailing list, do not send a carbon copy (CC) to the original poster unless they explicitly request to be copied.
- If you want to complain to someone who sent you a carbon copy when you did not ask for it, do it privately.
- If you send messages to lists to which you are not subscribed, always note that fact in the body of your message.
- Do not use foul language; besides, some people receive the lists via packet radio, where swearing is illegal.
- Use common sense all the time.
- Please avoid flamewars, trolling, personal attacks, and repetitive arguments; it is not polite.
- Always bring your towel.