diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..eacd24d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,61 @@ +name: Bug Report +description: Report a reproducible bug or regression +labels: [bug] +assignees: [] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report this bug! Please fill in as much detail as possible. + + - type: input + id: title + attributes: + label: Bug Summary + description: A short summary of the bug + placeholder: e.g., Crash on startup + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to Reproduce + description: Describe the steps needed to reproduce the issue + placeholder: | + 1. Open a terminal + 2. Run: `my-cli-tool init --config config.yaml` + 3. Run: `my-cli-tool deploy` + 4. Observe the error in the output + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected Behavior + description: What did you expect to happen? + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual Behavior + description: What actually happened? + validations: + required: true + + - type: input + id: version + attributes: + label: Project Version + description: What version are you using? + placeholder: e.g., v1.2.3 + + - type: textarea + id: environment + attributes: + label: Environment Info + description: Include OS, language/runtime, configuration, etc. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..df08771 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: ๐Ÿ’ฌ Ask a Question or Get Help + url: https://discord.gg/HUVtY5gT6s + about: Join our Discord server to ask questions and connect with the maintainers. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..9544fb2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,43 @@ +name: Feature Request +description: Suggest a new feature or enhancement +labels: [enhancement] +assignees: [] + +body: + - type: markdown + attributes: + value: | + Have a feature in mind? Let us know how it would help! + + - type: input + id: title + attributes: + label: Feature Summary + description: A short and clear title for your feature + placeholder: e.g., Add support for `--dry-run` flag in deploy command + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Problem to Solve + description: What problem does this feature solve? + + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: How do you imagine this feature would work? + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Have you tried another approach or workaround? + + - type: textarea + id: context + attributes: + label: Additional Context + description: Add any other context or related links. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..7cf3124 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,48 @@ +# ๐Ÿ“ฆ Pull Request Template + +## Description + +Please include a summary of the changes and the related context. If this is a feature, explain the motivation. If it's a bug fix, describe what was broken. + +Fixes: # _(if applicable)_ + +## Type of Change + +Please check the relevant option(s): + +- [ ] ๐Ÿ› Bug fix +- [ ] โœจ New feature +- [ ] ๐Ÿงน Code cleanup or refactor +- [ ] ๐Ÿ“ Documentation update +- [ ] ๐Ÿ”ง Build or CI-related change +- [ ] ๐Ÿ”’ Security fix +- [ ] Other (specify): + +## How Has This Been Tested? + +Please describe the test strategy: + +- [ ] Manual testing +- [ ] Unit tests +- [ ] Integration tests +- [ ] Not tested yet + +Commands used (if applicable): + +```bash +# Example +my-cli-tool build --verbose +my-cli-tool test +```` + +## Checklist + +* [ ] I have followed the [Contributing Guidelines](../blob/main/CONTRIBUTING.md) +* [ ] I have added tests or explained why they are not needed +* [ ] I have updated relevant documentation (README, examples, etc.) +* [ ] My changes follow the [Conventional Commits](https://www.conventionalcommits.org/) specification +* [ ] My commits include appropriate [Gitmoji](https://gitmoji.dev/) + +## Additional Context + +Add any additional context or screenshots if necessary. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..8beabf7 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,44 @@ +# Code of Conduct + +This project follows the [Contributor Covenant](https://www.contributor-covenant.org) Code of Conduct. + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, visible or invisible 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. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment include: + +- Demonstrating empathy and kindness +- Being respectful of differing viewpoints and experiences +- Giving and gracefully accepting constructive feedback +- Taking responsibility and apologizing to those affected by mistakes +- Focusing on what is best for the community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery +- Trolling, insulting, or derogatory comments +- Public or private harassment +- Publishing othersโ€™ private information without explicit permission +- Other conduct which could reasonably be considered inappropriate + +## Enforcement Responsibilities + +Project maintainers are responsible for clarifying and enforcing this code of conduct and will take appropriate and fair corrective action in response to any behavior they deem inappropriate. + +## Reporting + +If you experience or witness unacceptable behavior, please report it via one of the following channels: + +- ๐Ÿ’ฌ [Discord](https://discord.gg/HUVtY5gT6s) +- ๐Ÿ“ง [opensource@outscale.com](mailto:opensource@outscale.com) + +Reports will be handled confidentially and reviewed promptly. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2750cc5..35a38e4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,40 +1,56 @@ -## How to submit a contribution +# Contributing Guidelines -Thank you for considering contributing to osc_sdk_python. +First off, thank you for taking the time to contribute! ๐Ÿ™Œ +Your help is appreciated and helps make this project better for everyone. -Potential contributions include: +--- -- Reporting and fixing bugs. -- Requesting features. -- Adding features. -- Cleaning up the code. -- Improving the documentation. +## How to Contribute -In order to report bugs or request features, search the issue tracker to check for a duplicate. +### ๐Ÿ› Reporting Bugs +If you find a bug, please open an issue and include: +- A clear and descriptive title +- Steps to reproduce the issue +- Expected and actual behavior +- Any relevant logs, screenshots, or environment information -Itโ€™s totally acceptable to create an issue when youโ€™re unsure whether -something is a bug or not. Weโ€™ll help you figure it out. +### โœจ Suggesting Enhancements +Have an idea for a new feature or improvement? +- Open an issue and describe your suggestion +- Explain the use case and potential benefits +- Optional: propose an implementation strategy -Use the same issue tracker to report problems with the documentation. +### ๐Ÿ› ๏ธ Submitting Code Changes +To submit a patch or enhancement: +1. Fork the repository +2. Create a new branch (`git checkout -b feature/your-feature-name`) +3. Make your changes +4. Test your changes (if applicable) +5. Open a pull request with a clear description of your changes -## Pull Requests +### โœ… Code of Conduct +By participating, you agree to uphold our [Code of Conduct](CODE_OF_CONDUCT.md). -Weโ€™ll do our best to review your pull request (or โ€œPRโ€ for short) quickly. +--- -Each PR should, as much as possible, address just one issue and be self-contained. -Smaller the set of changes in the pull request is, the quicker it can be reviewed and -merged - if you have ten small, unrelated changes, then go ahead and submit ten PRs. +## Guidelines -Make sure to run tests/run.sh before each PR. +- Keep pull requests focused and atomic (one feature or fix per PR). +- Follow any existing code style or formatting conventions. +- Document your code where necessary. +- Include tests when adding new logic (if applicable). +- Use clear, meaningful commit messages (optionally following [Conventional Commits](https://www.conventionalcommits.org/) and using [Gitmoji](https://gitmoji.dev/) for added clarity and consistency). -## How to release +## ๐Ÿ“ Commit Template -- Update version in: - - [osc_sdk_python/VERSION](osc_sdk_python/VERSION) - - [README.md](README.md) -- Commit, PR, merge -- Create release in Github -- Github action should have generated artifacts. If not: - - `make package` - - Add `dist/osc_sdk_python-x.x.x-py3-none-any.whl` and `osc_sdk_python-x.x.x.tar.gz` files to release. - - Setup PIP_TOKEN and run `make upload-package` +To help you follow the Gitmoji and Conventional Commit format, you can enable the local commit template: + +```bash +git config commit.template .github/commit-template.txt +``` + +--- + +## Questions? + +If you have any questions or need help, feel free to [open an issue](../../issues) or reach out to the maintainers on [Discord](https://discord.gg/HUVtY5gT6s).