Skip to content

Latest commit

 

History

History
134 lines (87 loc) · 6.05 KB

File metadata and controls

134 lines (87 loc) · 6.05 KB

Contributing to SICK Visionary Python base

👍🎉 Thank you for investing your time in contributing to our project! 🎉👍

Code of Conduct

This project and everyone participating in it is governed by the following Code of Conduct. By participating, you are expected to uphold this code.

If have a question or are in need of technical support

Depending on the nature of your question, there are two support channels:

  1. For questions regarding the code shared in this repo please check the FAQ first and search if an issue already exists. If a related issue doesn't exist, you can open a new issue using the bug/issue form.
  2. For application or device specific questions look for common solutions and knowledge articles on the Sick Support Portal. If your question is not answered there, open a ticket on the Sick Support Portal.

How to contribute

IMPORTANT: Contributions are subject to the Github Terms of service "Whenever you add Content to a repository containing notice of a license, you license that Content under the same terms, and you agree that you have the right to license that Content under those terms. If you have a separate agreement to license that Content under different terms, such as a contributor license agreement, that agreement will supersede."

Issues

Create a new issue

If you spot a problem, check the FAQ first and search if an issue already exists. If a related issue doesn't exist, you can open a new issue using the bug/issue form.

Note: If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.

A good issue form includes:

  • Description: Clear description of the issue.

  • Steps to Reproduce

    1. First Step
    2. Second Step
    3. and so on…
  • Expected behavior: What you expect to happen?

  • Actual behavior: What actually happens?

  • Reproduces how often: What percentage of the time does it reproduce?

  • Versions: Which version of the software are you using? Either include the version tag or the commit hash.

  • Additional Information: Any additional information, configuration or data that might be necessary to reproduce the issue.

Solve an issue

Scan through our existing issues to find one that interests you. You can narrow down the search using labels as filters. See Labels for more information. If you find an issue to work on, you are welcome to open a PR with a fix.

Make changes

Before making any changes make sure to follow our Styleguide. In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Create a new feature Branch
  4. Commit changes to your own branch
  5. Push your work back up to your fork
  6. Submit a Pull request so that we can review your changes

NOTE Be sure to merge the latest from "upstream" before making a pull request!

Enhancement

Enhancement suggestions are tracked as GitHub issues.

This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions.

When you are creating an enhancement suggestion, please include as many details as possible. Fill in the feature template, including the steps that you imagine you would take if the feature you're requesting existed.

A good enhancement suggestion includes:

  • Summary: One paragraph explanation of the feature.

  • Motivation: Why are we doing this? What use cases does it support? What is the expected outcome?

  • Describe alternatives: A clear and concise description of the alternative solutions you've considered.

  • Additional context: Add any other context or screenshots about the feature request here.

Styleguide

Code Style

We maintain consistent code style using automated formatting and linting tools configured through pre-commit hooks. This ensures uniform code quality across the project.

Pre-commit Hooks

This project uses pre-commit to automatically enforce code quality standards before each commit. The following hooks are configured:

  • check-yaml: Validates YAML file syntax
  • trailing-whitespace: Removes trailing whitespace from files
  • mixed-line-ending: Fixes mixed line endings (LF/CRLF)
  • end-of-file-fixer: Ensures files end with a newline
  • autopep8: Automatically formats Python code according to PEP 8 style guidelines

Setting Up Pre-commit

To set up your local development environment, use the provided setup script which automatically installs pre-commit and all dependencies:

On Windows (PowerShell):

.\setup_windows_env.ps1

On Linux/macOS:

bash setup_linux_env.sh

After setup, pre-commit will automatically run the configured hooks before every commit. If any hook fails, the commit will be blocked, and you'll need to fix the issues and try again.

To manually install (if not using the setup script):

pip install -r requirements.txt
pre-commit install

Issue and Pull Request Labels

FAQ