diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..b495edd216 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -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 . 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 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000000..5c428805ee --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -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 git@github.com: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:: ` 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). diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..22f85bfb42 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -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. + + + +## Expected Behavior + + +## Current Behavior + + +## Possible Solution + + + +## Steps to Reproduce + + +## Context [OPTIONAL] + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..364da6c987 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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. diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 0000000000..5e644286f1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -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: '' + +--- + + + +## Motivation + + + + + +## Suggestion + + + + + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..016fbb8028 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,68 @@ +--- +name: Feature request +about: Want us to add any features to Fedot? +title: 'enh: ' +labels: enhancement +assignees: '' + +--- + + + +## Summary + + + +## Motivation + + + +## Guide-level explanation + + + +## Reference-level explanation + + + +## Drawbacks + + + +## Unresolved Questions + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..2768248206 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,47 @@ + + + + + + + + + + + +## Summary + + + +## Context + +