Skip to content

Latest commit

 

History

History
118 lines (71 loc) · 4.4 KB

File metadata and controls

118 lines (71 loc) · 4.4 KB

Contributing to Websoft9

From opening a bug report to creating a pull request: every contribution is appreciated and welcome.

If you're planning to implement a new feature or change the api please create an issue first. This way we can ensure that your precious work is not in vain.

Not Sure Architecture?

It's important to figure out the design Architecture of Websoft9

Code of Conduct{#conduct}

This project use Code of Conduct, you should read it carefully.

Consistency convention

In the process of your participation, we hope that everyone has a good habit of abiding by the agreement, including:

  • Create Issue based on template
  • Select tags instead of creating tags
  • Complete the smallest unit independent task at one time
  • Meaningful remarks when commit your code, you should select from: docs, test, fix, install, misc and so on
  • Although the project has automated tests, I still hope that you can test without problems before submitting
  • Following the branch management strategy, the core team maintains two branches: main and dev

Fork

Contributor only allow to fork main branch and pull request for it. Maintainers don't accept any pr to production branch

Branch

This repository have these branches:

  • Contributor's branch: Developer can fork main branch as their development branch anytime
  • main branch: The only branch that accepts PR from Contributors' branch
  • production branch: For version release and don't permit modify directly, only merge PR from main branch

Flow: Contributor's branch → main branch → production branch

Pull request

Pull request let you tell others about changes you've pushed to a branch in a repository on GitHub.

When is PR produced?

  • Contributor commit to main branch
  • main branch commit to production branch

CI/CD Checks

All pull requests must pass automated CI/CD checks before being merged:

  1. Linting: Code must follow style guidelines (Black, isort, Flake8, Pylint)
  2. Tests: All unit tests must pass with adequate coverage (≥70%)
  3. Build: Application must build successfully
  4. Security: Docker images must pass vulnerability scans

Before submitting a PR, ensure your code passes all checks locally:

# Navigate to apphub directory
cd apphub

# Install dev dependencies
pip install -r requirements-dev.txt

# Format code
black src/
isort src/

# Run linting
flake8 src/

# Run tests
pytest --cov=src

# Build package
pip install -e .

See CI/CD Guide for detailed information.

How to deal with PR?

  1. pull request reviews
  2. Ensure all CI checks pass (green checkmarks)
  3. Address review comments
  4. Merge PR and CI/CD for it

DevOps principle

DevOps thinks the same way 5m1e for manufacturing companies

We follow the development principle of minimization, rapid release

Version

Use [major].[minor].[patch] for version serial number and version.json for version dependencies

Artifact

Websoft9 use below Artifact for different usage:

Tags

  • Type tags: Bug, enhancement, Documentation
  • Stages Tags: PRD, Dev, QA(include deployment), Documentation

WorkFlow

Websoft9 use the Production branch with GitLab flow for development collaboration

gitlab workflow is improvement model for git