diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md new file mode 100644 index 0000000..a2ed4af --- /dev/null +++ b/CODE-OF-CONDUCT.md @@ -0,0 +1,86 @@ +# SciCat Project Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +### Acceptable behaviours + +Examples of acceptable and encouraged behavior that contributes to a positive environment for our community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall community + +### Unacceptable behaviours + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Project leaders, technical leaders and steering committee members are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. + +Project and technical leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. +Leaders have also the right to dismiss early a community member if his/her behaviour is disruptive to the project and/or threatning towards other community members. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project leaders, technical leaders or members of the steering committee and followed up by the appointed leader for enforcement as set forth in the [member's early dismissal](../procedures/MEMBER_EARLY_DISMISSAL.md) section. All complaints will be reviewed and investigated promptly and fairly. +All project leaders, technical leaders and members of the steering committee are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines + +The project leadership will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of actions. + +**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the project community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.0, +available at . + +Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). + +For answers to common questions about this code of conduct, see the FAQ at +. Translations are available at . diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..c1b4a00 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,93 @@ +# Contributing to SciCat Projects + +## Abbreviations and Links + +Core = [SciCat Core](../project-components/SCICAT-CORE.md) + +## Description + +Core repositories follow the procedure indicated below for contributions. + +Other SciCat repositories (Supported Projects and Non-Code repositories) are highly encouraged to follow the same procedure. If they decide otherwise, they should clearly state the contribution procedure in the CONTRIBUTING.md files included in the root folder of the repository. +Each repository should also indicate who are the maintainers of the repository and list them, together with their responsibility, in the MAINTAINERS.md file. + +## Merge Permissions + +Each repository should have a merging group indicating who has merge permissions. +The SciCat project leaders and the project leaders are automatically part of the project merge group. +Other contributors can be part of the merge group. A contributor shall submit a dedicated request in order to be added to such group. +Membership to the merge group is managed by the project leaders. + +The SciCat core repositories are managed as a single project. They have a single maintainers group and a single merge group. + +## AI Contribution + +In this paragraph we address the use of AI in developing code for the Project. +The following rules must be followed if AI is used in any PR contributed to the Project: + +- We do not support automating raising of pull requests by Agentic AI. + All PRs must be submitted by a human or a trusted tool bot e.g. dependabot. +- The human submitter must review all AI-generated code +- Compliance with licensing requirements must be ensured +- The PR can be accepted only if at least one human reviewer has reviewed it and signed it off +- Human submitter and reviewers will take full responsibility for the contribution +- PR can be merged only by a person belonging to the Merge group +- The PR should contain attribution on which AI service and agent has been used. + The attribution should be in the following format: + Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2] + + +## SciCat Contributing Workflow + +### 1. Main Branch Policy + +* The latest stable version of the code **must reside in `master` or `main`**. +* The `master` / `main` branch **is protected** and **must not be modified directly**. + +### 2. Development Workflow + +* All work (new features, bug fixes, documentation, or other changes) **must be done in a dedicated branch or a repository fork** depending on the user access. +* Dedicated forks **must allow read and write access for maintainers**. +* No changes may be introduced in `main` / `master` without a **Pull Request (PR)**. + +### 3. Pull Request Requirements + +* Every change **must be submitted via a Pull Request** targeting `master` / `main`. +* The **author of a Pull Request must not merge their own PR**. +* The author of a Pull Request must indicate the impact of the changes +* Reviews should be requested from official project reviewers, and The wider community when appropriate. +* When possible, reviewers should have the required skills to provide an unbiased and expert feedback. + +### 4. Impact Classification + +- Each Pull Request **must be classified by its impact**: _large_ or _lower_. +- **Responsibility for impact classification lies with the author** +- Repository maintainers can review and change the Pull Request impact. +- The impact classification **may be updated after submission**, provided: + - A valid justification is given, and + - The change is publicly documented in the PR. + +### 5. Review Rules + +#### Large-Impact Pull Requests + +- Must be reviewed by **at least two maintainers**. +- At least **one reviewer must be from a different institution or group**. +- At least one review should be a **technical review** giving detailed feedback about code changes. The second review may be a **conceptual review** which evaluates the appropriateness of the PR for inclusion in SciCat, but without evaluated the implementation details. Conceptual reviews should be clearly indicated in the review comments. +- Review period: **minimum 1 week, maximum 2 weeks**. + +#### Lower-Impact Pull Requests + +- Must be reviewed by **at least one maintainer**. +- Review period: **maximum 2 weeks**. + +### 6. Approval, CI, and Merge + +- A Pull Request **must be approved** and **pass all CI checks** before it can be merged. +- **Only maintainers with the “Pull Request Master” role** may merge approved Pull Requests. + +### 7. Branch Cleanup + +- The source branch **must be deleted** once the Pull Request is merged or closed. + +![Contributing Worflow](./contributing.png) diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..d25b0e0 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,4 @@ +# SciCat Governance + +Information about the SciCat Governance model can be found on the [SciCat +Governance](https://www.scicatproject.org/governance/latest/) website. \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 5c99fe7..0000000 --- a/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2026, SciCat Project - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..8fae520 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +# SciCat .github License + +Documents in the [.github](https://github.com/SciCatProject/.github) repository are released under the __Creative Common Attribution-ShareAlike 4.0 International__ license. + +More information about __CC BY-SA 4.0__ can be found on the official pages of the license: +- [Deed](https://creativecommons.org/licenses/by-sa/4.0/) +- [Legal Code](https://creativecommons.org/licenses/by-sa/4.0/legalcode.en) + +Individual repositories belonging to the SciCatProject organization may have other licenses, specified in their respective LICENSE.md files.