Skip to content

Latest commit

 

History

History
94 lines (61 loc) · 4.79 KB

File metadata and controls

94 lines (61 loc) · 4.79 KB

Contributing to GoScaleSecure

We warmly welcome contributions to the GoScaleSecure project! Whether you're looking to report a bug, suggest a new feature, improve documentation, or contribute code, your help is highly appreciated.

Please take a moment to review this guide before getting started.

Ways to Contribute

There are several ways you can contribute to GoScaleSecure:

  • Bug Reports: If you encounter a bug, please help us fix it by submitting a detailed issue.
  • Feature Requests: Have an idea for a new feature or enhancement? We'd love to hear about it! Please open an issue to discuss your proposal.
  • Documentation Improvements: Clear and concise documentation is crucial. If you find areas that are unclear, incomplete, or have errors, please submit a pull request with your improvements.
  • Code Contributions: If you're interested in contributing code, please follow the guidelines below.

Code Contribution Guidelines

  1. Fork the Repository: Start by forking the GoScaleSecure repository to your GitHub account.

  2. Create a Branch: Create a new branch for your contribution. Choose a descriptive name that reflects the purpose of your changes (e.g., fix-authentication-bug, add-prometheus-metrics).

    git checkout -b your-branch-name
  3. Follow Coding Standards: Please adhere to the existing coding style and conventions used in the project. This includes:

    • Using idiomatic Golang practices.
    • Writing clear and concise code with meaningful variable and function names.
    • Including comments where necessary to explain complex logic.
    • Ensuring your code is well-formatted (you can use tools like go fmt).
  4. Write Tests: If you're adding new features or fixing bugs, please include relevant unit and integration tests to ensure the reliability of your changes. Tests help prevent regressions and make it easier to maintain the codebase.

  5. Build and Test Locally: Before submitting a pull request, make sure your changes build successfully and all tests pass.

    go build ./...
    go test ./...
  6. Commit Your Changes: Commit your changes with clear and concise commit messages. Follow the Conventional Commits specification for commit messages. This helps maintain a consistent and readable commit history.

    feat: Add user authentication using JWT
    
    Implements JWT-based authentication for user login and session management.
    Includes unit tests for the authentication middleware and handler functions.
    
  7. Push to Your Fork: Push your local branch to your forked repository on GitHub.

    git push origin your-branch-name
  8. Submit a Pull Request (PR): Once you've pushed your changes, open a pull request from your branch to the main main branch of the GoScaleSecure repository.

  9. Describe Your Changes: In your pull request description, clearly explain the purpose of your changes, the problem you're solving (if applicable), and any relevant context. Reference any related issues.

  10. Code Review: Your pull request will be reviewed by the project maintainers. Be prepared to address any feedback or make necessary revisions.

  11. Merge: Once your pull request has been reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!

Reporting Bugs

When reporting a bug, please include as much detail as possible to help us understand and reproduce the issue. This may include:

  • Operating System and Version:
  • Go Version:
  • Steps to Reproduce: Provide a clear and concise set of steps that lead to the bug.
  • Expected Behavior: What did you expect to happen?
  • Actual Behavior: What actually happened?
  • Error Messages or Logs: If applicable, include any relevant error messages or logs.

Feature Requests

When suggesting a new feature, please be clear and specific about what you're proposing and why you think it would be beneficial to the project. Consider including:

  • Problem Statement: What problem does this feature solve?
  • Proposed Solution: Describe the feature in detail.
  • Use Cases: How would users benefit from this feature?
  • Potential Implementation Ideas (Optional): If you have any thoughts on how this feature could be implemented, feel free to share them.

Documentation Contributions

For documentation improvements, please ensure your changes are clear, accurate, and well-formatted using Markdown. If you're adding new sections, ensure they fit logically within the existing structure.

Community Guidelines

  • Be respectful and considerate of other contributors.
  • Communicate clearly and constructively.
  • Assume good intentions.

We appreciate your contributions to making GoScaleSecure a better platform!