Skip to content

Commit

Permalink
Improve community standards (#1226)
Browse files Browse the repository at this point in the history
* Create PULL_REQUEST_TEMPLATE.md

* Create CONTRIBUTING.md

* Create CODE_OF_CONDUCT.md

* Create config.yml

* Create bug_report.md

* Create feature_request.md

* Create documentation.md
  • Loading branch information
DRMPN authored Jan 9, 2024
1 parent 92f92d6 commit f5fc261
Show file tree
Hide file tree
Showing 7 changed files with 431 additions and 0 deletions.
76 changes: 76 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, 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.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers 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, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <[email protected]>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
173 changes: 173 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# Contributing to Fedot

We welcome you to [check the existing
issues](https://github.com/aimclub/FEDOT/issues) for bugs or
enhancements to work on. If you have an idea for an extension to FEDOT,
please [file a new
issue](https://github.com/aimclub/FEDOT/issues/new) so we can
discuss it.

Make sure to familiarize yourself with the project layout before making
any major contributions.

## Instructions

There is a presentation to help you to take your first steps to become a FEDOT contributor below.

[Want to implement a custom operation in FEDOT](docs/files/custom_operation_guide.pdf)

## How to contribute

The preferred way to contribute to FEDOT is to fork the [main
repository](https://github.com/aimclub/FEDOT) on GitHub:

1. Fork the [project repository](https://github.com/aimclub/FEDOT):
click on the 'Fork' button near the top of the page. This creates a
copy of the code under your account on the GitHub server.

2. Clone this copy to your local disk:

```bash
git clone [email protected]:YourUsername/FEDOT.git
cd FEDOT
```

3. Create a branch to hold your changes:

```bash
git checkout -b my-contribution
```

4. Make sure your local environment is setup correctly for development.
Installation instructions are almost identical to [the user
instructions](README_en.rst#installation) except that FEDOT should *not* be
installed. If you have FEDOT installed on your computer then make
sure you are using a virtual environment that does not have FEDOT
installed.

5. Start making changes on your newly created branch, remembering to
never work on the ``master`` branch! Work on this copy on your
computer using Git to do the version control.

6. To check your changes haven't broken any existing tests and to check
new tests you've added pass run the following (note, you must have
the ``nose`` package installed within your dev environment for this
to work):

```bash
pytest -s
```

7. When you're done editing and local testing, run:
```bash
git add modified_files
git commit
```
to record your changes in Git, then push them to GitHub with:
```bash
git push -u origin my-contribution
```
Finally, go to the web page of your fork of the FEDOT repo, and click
'Pull Request' (PR) to send your changes to the maintainers for review.
(If it looks confusing to you, then look up the [Git
documentation](http://git-scm.com/documentation) on the web.)
## Before submitting your pull request
Before you submit a pull request for your contribution, please work
through this checklist to make sure that you have done everything
necessary so we can efficiently review and accept your changes.
If your contribution changes FEDOT in any way:
- Update the
[documentation](docs)
so all of your changes are reflected there.
- Update the
[README](README_en.rst)
if anything there has changed.
If your contribution involves any code changes:
- Update the [project unit
tests](https://github.com/aimclub/FEDOT/tree/master/test) to
test your code changes.
- Make sure that your code is properly commented with
[docstrings](https://peps.python.org/pep-0257/) and
comments explaining your rationale behind non-obvious coding
practices.
If your contribution requires a new library dependency:
- Double-check that the new dependency is easy to install via ``pip``
or Anaconda and supports Python 3. If the dependency requires a
complicated installation, then we most likely won't merge your
changes because we want to keep FEDOT easy to install.

- Add the required version of the library to
[requirements.txt](requirements.txt)

## Contribute to the documentation

Take care of the documentation.

All the documentation is created with the Sphinx autodoc feature. Use `..
automodule:: <module_name>` section which describes all the code in the module.

- If a new package with several scripts:

1. Go to [docs/source/api](docs/source/api) and create new `your_name_for_file.rst` file.

2. Add a Header underlined with “=” sign. It’s crucial.

3. Add automodule description for each of your scripts

```rst
$.. automodule:: fedot.core.your.first.script.path
$ :members:
$ :undoc-members:
$ :show-inheritance:
$.. automodule:: fedot.core.your.second.script.path
$ :members:
$ :undoc-members:
$ :show-inheritance:
```

4. Add `your_name_for_file` to the toctree at `docs/source/api/index.rst`

- If a new module to the existed package:

Most of the sections are already described in [docs/source/api](docs/source/api), so you can:

- choose the most appropriate and repeat 3-d step from the previous section.
- or create a new one and repeat 2-3 steps from the previous section.

- If a new function or a class to the existing module:

Be happy. Everything is already done for you.

## After submitting your pull request

After submitting your pull request,
[Travis-CI](https://travis-ci.com/) will automatically run unit tests
on your changes and make sure that your updated code builds and runs on
Python 3. We also use services that automatically check code quality and
test coverage.

Check back shortly after submitting your pull request to make sure that
your code passes these checks. If any of the checks come back with a red
X, then do your best to address the errors.

## Acknowledgements

This document guide is based at well-written [TPOT Framework
contribution
guide](https://github.com/EpistasisLab/tpot/blob/master/docs_sources/contributing.md).
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Is something not working as expected?
title: "[Bug]: "
labels: bug
assignees: ''

---

Hi! Thank you for taking the time to report a bug with Fedot.

Please consider asking your question at https://t.me/FEDOT_helpdesk if one or more of the following is applicable to your situation:

- You are not sure if the issue is a bug in Fedot.
- The issue is caused by a third-party library.
- This is just a generic usage question.

Additionally, please note that this platform is meant for bugs in Fedot only.
Issues regarding dependencies and libraries should be reported in their respective repositories.

<!--- Provide a general summary of the issue in the Title above -->

## Expected Behavior
<!--- If you're suggesting a change/improvement, tell us how it should work -->

## Current Behavior
<!--- If suggesting a change/improvement, explain the difference from current behavior -->

## Possible Solution
<!--- Not obligatory, but suggest a fix/reason -->
<!--- or ideas how to implement the addition or change -->

## Steps to Reproduce
<!--- Provide a link to a live example -->

## Context [OPTIONAL]
<!--- How has this issue affected you? What are you trying to accomplish? -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Fedot Help Desk
url: https://t.me/FEDOT_helpdesk
about: Please ask and answer questions here.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Documentation
about: Found a typo or something that isn't crystal clear in our docs?
title: "[Docs]: "
labels: documentation
assignees: ''

---

<!-- Thanks for taking the time to open an issue and help us make Fedot better! -->

## Motivation

<!-- Why should we update our docs? -->



## Suggestion

<!-- What should we do instead? -->



<!-- Thanks for taking the time to open an issue and help us make Fedot better! -->
68 changes: 68 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
name: Feature request
about: Want us to add any features to Fedot?
title: 'enh: '
labels: enhancement
assignees: ''

---

<!--
Hi! Thanks for considering to file a feature request with Fedot. Please take the time to
answer the basic questions. Please try to be as detailed as possible.
Thanks!
-->

## Summary

<!--
A one-paragraph explanation of the feature.
-->

## Motivation

<!--
Why do you want to see this feature in Fedot? What use cases does it support?
-->

## Guide-level explanation

<!--
Explain the proposal as if it was already included in the project and you
were teaching it to another programmer. That generally means:
- Introducing new named concepts.
- Explaining the feature largely in terms of examples.
- If applicable, provide sample error messages, deprecation warnings, or
migration guidance.
If this is a small feature, you may omit this section.
-->

## Reference-level explanation

<!--
This is the technical portion of the feature request. Explain the design in
sufficient detail that:
- Its interaction with other features is clear.
- It is reasonably clear how the feature would be implemented.
- Corner cases are dissected by example.
If you do not know how to answer this, you can omit it. No worries!
-->

## Drawbacks

<!--
Why should we *not* do this?
-->

## Unresolved Questions

<!--
What related issues do you consider out of scope for this feature that could be
addressed in the future independently of the solution that comes out of this
feature?
-->
Loading

0 comments on commit f5fc261

Please sign in to comment.