Skip to content

Pull Requests

This guide outlines the requirements and review process for contributing changes to Omnia.

Before Creating a PR

Omnia branch structure

Development Setup

  1. Fork and clone the repository:

    git clone https://github.com/<your_username>/omnia.git
    cd omnia
    

  2. Add the upstream repository:

    git remote add upstream https://github.com/dell/omnia.git
    

  3. Synchronize with the latest main branch:

    git fetch upstream
    git checkout main
    git merge upstream/main
    

  4. Create a feature branch:

    git checkout -b feature/<descriptive-name>
    

Contribution Standards

Code Quality

  • Follow established project conventions and language-specific best practices.
  • Format and lint code before submitting:
  • Python: PEP 8, black, flake8
  • Shell: shellcheck
  • Ansible: Ansible best practices with clear task and variable names
  • Maintain consistency with existing documentation structure and style.

Documentation Quality

For documentation changes:

  • Run spelling and grammar checks on every modified Markdown file.
  • Use the canonical product and component names defined in the glossary.
  • Review headings, tables, admonitions, image captions, and link text for the same naming and capitalization rules used in narrative content.
  • Preserve literal commands, variables, paths, API fields, filenames, and external identifiers in code formatting.
  • Search the source Markdown for noncanonical product-name variants before submitting the pull request.
  • Edit source Markdown only. Do not manually edit generated HTML or site output.

Testing

  • Add or update tests for all functional changes.
  • Update Molecule tests for Ansible roles where applicable.
  • Use pytest for Python unit tests.
  • Ensure all existing and new tests pass.

Developer Certificate of Origin (DCO)

All contributions must be signed off in accordance with the https://developercertificate.org/.

git commit -s

Submitting a Pull Request

  1. Push your branch:
git push origin feature/<descriptive-name>
  1. Create a PR targeting dell/omnia:main.

  2. Include the following information in the PR description:

## Summary
Brief description of the change.

## Related Issue
Fixes #<issue_number>

## Changes
- Change 1
- Change 2

## Validation
- Test environment
- Validation steps
- Results

## Checklist
- [ ] Coding standards followed
- [ ] Tests added/updated
- [ ] Documentation updated (if required)
- [ ] All tests passing
  1. Request review from project maintainers.

Review Process

  1. Automated validation – CI checks, linting, and automated tests must pass.
  2. Maintainer review – Reviewers assess correctness, maintainability, testing, documentation, security, and compatibility.
  3. Feedback resolution – Address review comments with incremental commits. Avoid force-pushes during active review unless requested.
  4. Merge – Approved PRs with passing CI are merged by a maintainer.

Review Criteria

  • Functional correctness
  • Code quality and maintainability
  • Test coverage
  • Documentation completeness
  • Security considerations
  • Compatibility across supported platforms

Recommendations

To expedite reviews:

  • Keep PRs focused on a single logical change.
  • Provide a clear problem statement and validation evidence.
  • Include relevant test results and documentation updates.

Info

- [Contribution Overview](index.md) – Contribution overview
- [Omnia GitHub Repository](https://github.com/dell/omnia/pulls) – Source code and issue tracker