Skip to content

Commit

Permalink
Docs: issue templates and contributing (#16)
Browse files Browse the repository at this point in the history
* update documentation

* default outdir

* add issue templates

* update contributing

* consistency in readme

* grammar in readme

* add codeowners
  • Loading branch information
dgwhited authored Apr 26, 2023
1 parent 068cbbe commit 60f2e11
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 58 deletions.
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Bug report
about: Create bug report.
title: 'Example: Application breaks when I run validate.'
labels: 'bug'
assignees: ''
---

# Bug Report Description


## What is the current behavior?


## How can this issue be reproduced?


## What is the expected behavior?


## What is the motivation / use case for changing the behavior?


## Please tell us about your environment:


## Other information:
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: Feature request
about: Suggest a new feature.
title: 'Example: I would like this project to use an additional authentication method.'
labels: 'enhancement'
assignees: ''
---

# Feature Request Description


## What is the current behavior?


## What is the motivation / use case for changing the behavior?


## Please describe any alternatives you have explored.


## Other information:
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @aquia-inc/scpkit-admins
77 changes: 22 additions & 55 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
CONTRIBUTING.md
===============

Contributing to scpkit
Contributing to SCPkit
------------------------------

Thank you for your interest in contributing to scpkit! We're excited to have you as part of our growing community. This document outlines the guidelines and best practices for contributing to this project.
Thank you for your interest in contributing to SCPkit! We're excited to have you as part of our growing community. This document outlines the guidelines and best practices for contributing to this project.

### Table of Contents

1. [CONTRIBUTING.md](#contributingmd)
1. [Contributing to \[Project Name\]](#contributing-to-project-name)
1. [Contributing to SCPkit](#contributing-to-project-name)
1. [Table of Contents](#table-of-contents)
2. [Code of Conduct](#code-of-conduct)
3. [Issues](#issues)
1. [Bug Reports](#bug-reports)
2. [Feature Requests](#feature-requests)
4. [Pull Requests](#pull-requests)
5. [Coding Standards](#coding-standards)
6. [Testing](#testing)
Expand All @@ -32,36 +30,7 @@ Before submitting an issue, please:
1. Check if the issue has already been reported by searching the existing issues.
2. Follow the issue template provided and fill in all the required information.

When creating an issue, please include:

1. A clear and concise title.
2. A detailed description of the problem or feature request.
3. Steps to reproduce the issue (for bug reports) or use cases for new features.
4. Expected behavior and actual behavior (for bug reports).
5. Screenshots, logs, or error messages, if applicable.
6. Your operating system, browser, or platform version, if relevant.
7. The version or commit of scpkit you are using.

Please note that issues that do not follow the guidelines may be closed without explanation.

#### Bug Reports

If you're reporting a bug, please follow these guidelines to help us reproduce and fix the issue:

1. Describe the issue and the steps to reproduce it.
2. Provide a minimal, self-contained example or code snippet that reproduces the issue.
3. Explain the expected behavior and the actual behavior you encountered.
4. If applicable, include any relevant logs, error messages, or screenshots.

#### Feature Requests

For feature requests, please provide the following information:


1. A clear and concise description of the feature.
2. An explanation of why this feature would be useful for the project and the community.
3. If possible, provide examples of how the feature could be used, including code snippets or mockups.
4. If applicable, list any potential drawbacks or limitations of implementing the feature.
When creating an issue, please use one of the templates for Bug reports or feature requests. For any fields that are not applicable, please use N/A or None.

Remember that the more detailed and specific your feature request is, the easier it will be for us to evaluate and potentially implement it.

Expand All @@ -79,27 +48,25 @@ We follow a trunk-based development model for our codebase. This means that all
5. Before submitting a pull request, ensure that your changes are up-to-date with the latest `main` branch. Rebase your branch if necessary.
6. Open a pull request, and provide a clear and concise title and description that follows the Conventional Commits standard. Include any relevant issue numbers in the description by using keywords like "Closes #123" or "Fixes #123".
7. Request a review from one or more project maintainers or collaborators. Be prepared to address any feedback, suggestions, or requested changes.
8. Once your pull request is approved and all tests have passed, a project maintainer will merge your changes into the `main` branch.
8. Once your pull request is approved and all tests have passed, a project maintainer will squash and merge your changes into the `main` branch.
Please note that pull requests that do not follow the guidelines or are incomplete may be closed without explanation. We appreciate your understanding and cooperation in maintaining a high-quality codebase.
Please note that pull requests that do not follow the guidelines or are incomplete may experience a delay in order to gather additional information. We appreciate your understanding and cooperation in maintaining a high-quality codebase.
### Coding Standards
Adhering to a consistent set of coding standards is crucial for maintaining a clean, readable, and maintainable codebase. By following these guidelines, you help ensure that scpkit remains a high-quality project that is easy to understand, modify, and extend.
Adhering to a consistent set of coding standards is crucial for maintaining a clean, readable, and maintainable codebase. By following these guidelines, you help ensure that SCPkit remains a high-quality project that is easy to understand, modify, and extend.
Here are some general guidelines for writing code that conforms to the project's coding standards:
1. Follow the project's style guide: Familiarize yourself with the project's style guide, which outlines conventions for naming, indentation, code organization, and other aspects of the code's appearance. If a specific style guide is not provided, follow widely-accepted community standards for the programming language being used.
2. Write clean and readable code: Keep your code simple, clear, and concise. Use descriptive variable and function names, add comments to explain complex or non-obvious parts of the code, and break down large functions or classes into smaller, more manageable pieces.
1. Write clean and readable code: Keep your code simple, clear, and concise. Use descriptive variable and function names, add comments to explain complex or non-obvious parts of the code, and break down large functions or classes into smaller, more manageable pieces.
3. Optimize for performance and security: Write code that is efficient, secure, and avoids common pitfalls and vulnerabilities. Be mindful of performance bottlenecks, memory leaks, and security risks when designing and implementing your solutions.
2. Optimize for performance and security: Write code that is efficient, secure, and avoids common pitfalls and vulnerabilities. Be mindful of performance bottlenecks, memory leaks, and security risks when designing and implementing your solutions.
4. Document your code: Include comments and docstrings to explain the purpose, functionality, and usage of your code. This helps other contributors understand your code and makes it easier for them to maintain and extend it.
3. Document your code: Include comments and docstrings to explain the purpose, functionality, and usage of your code. This helps other contributors understand your code and makes it easier for them to maintain and extend it.
5. Stay consistent with existing code: When making changes or additions to the codebase, try to match the style, structure, and conventions of the existing code. This ensures that the codebase remains coherent and easy to navigate.
4. Stay consistent with existing code: When making changes or additions to the codebase, try to match the style, structure, and conventions of the existing code. This ensures that the codebase remains coherent and easy to navigate.
6. Adhere to the DRY (Don't Repeat Yourself) principle: Avoid duplicating code and logic across the codebase. Instead, refactor and reuse code whenever possible to minimize maintenance overhead and potential inconsistencies.
5. Adhere to the DRY (Don't Repeat Yourself) principle: Avoid duplicating code and logic across the codebase. Instead, refactor and reuse code whenever possible to minimize maintenance overhead and potential inconsistencies.
To contribute code that follows the project's coding standards:
Expand All @@ -110,11 +77,11 @@ To contribute code that follows the project's coding standards:
5. Open a pull request with a clear and concise title and description, following the Conventional Commits standard.
6. Request a review from one or more project maintainers or collaborators.
By adhering to the project's coding standards, you help create a strong foundation for the continued growth and success of scpkit. Thank you for your commitment to maintaining a high-quality codebase!
By adhering to the project's coding standards, you help create a strong foundation for the continued growth and success of SCPkit. Thank you for your commitment to maintaining a high-quality codebase!
### Testing
Thorough and consistent testing is essential for maintaining the stability, reliability, and security of scpkit. By contributing tests, you help ensure that the project remains robust and resistant to bugs, regressions, and vulnerabilities. Here are some guidelines for writing and contributing tests:
Thorough and consistent testing is essential for maintaining the stability, reliability, and security of SCPkit. By contributing tests, you help ensure that the project remains robust and resistant to bugs, regressions, and vulnerabilities. Here are some guidelines for writing and contributing tests:
1. Follow the testing framework and conventions: Familiarize yourself with the testing framework, tools, and conventions used in the project. Write tests that are consistent with the existing test suite and follow best practices.
2. Write tests for new features and bug fixes: When adding a new feature or fixing a bug, make sure to include tests that cover the changes. This helps prevent regressions and ensures that the changes work as intended across different environments and configurations.
Expand All @@ -134,11 +101,11 @@ To contribute tests, follow the same process as for code contributions:
5. Open a pull request with a clear and concise title and description, following the Conventional Commits standard.
6. Request a review from one or more project maintainers or collaborators.
Your contributions to the project's test suite help ensure the long-term quality and stability of scpkit. Thank you for your efforts in keeping the project robust and reliable!
Your contributions to the project's test suite help ensure the long-term quality and stability of SCPkit. Thank you for your efforts in keeping the project robust and reliable!
### Documentation
Well-written and up-to-date documentation is crucial for the success and usability of any project. Contributions to improve the documentation are highly appreciated and play a vital role in helping other users and developers understand, use, and extend scpkit.
Well-written and up-to-date documentation is crucial for the success and usability of any project. Contributions to improve the documentation are highly appreciated and play a vital role in helping other users and developers understand, use, and extend SCPkit.
Here are some guidelines for contributing to the project's documentation:
Expand All @@ -161,26 +128,26 @@ To contribute to the documentation, follow the same process as for code contribu
5. Open a pull request with a clear and concise title and description, following the Conventional Commits standard.
6. Request a review from one or more project maintainers or collaborators.
By contributing to the documentation, you're helping to make scpkit more accessible and user-friendly for everyone. Thank you for your valuable contributions!
By contributing to the documentation, you're helping to make SCPkit more accessible and user-friendly for everyone. Thank you for your valuable contributions!
### Community
We are committed to fostering an open, inclusive, and welcoming community around scpkit. By contributing to this project, you are joining a diverse group of developers, users, and enthusiasts who share a common passion for improving and advancing cybersecurity.
We are committed to fostering an open, inclusive, and welcoming community around SCPkit. By contributing to this project, you are joining a diverse group of developers, users, and enthusiasts who share a common passion for improving and advancing cybersecurity.
Here are some ways to get involved and stay connected with the community:
1. Join the discussion: Participate in the project's discussions on GitHub, forums, mailing lists, or chat rooms. Ask questions, share your ideas, or help others with their issues.
2. Attend community events: Look for meetups, conferences, webinars, or other events related to scpkit and cybersecurity. These gatherings provide opportunities for learning, networking, and collaboration.
3. Spread the word: Share your experiences and knowledge about scpkit with your network, colleagues, or friends. Write blog posts, create tutorials or present talks about the project and its benefits.
2. Attend community events: Look for meetups, conferences, webinars, or other events related to SCPkit and cybersecurity. These gatherings provide opportunities for learning, networking, and collaboration.
3. Spread the word: Share your experiences and knowledge about SCPkit with your network, colleagues, or friends. Write blog posts, create tutorials or present talks about the project and its benefits.
4. Provide feedback: Your feedback is invaluable to the continued development and improvement of the project. Share your thoughts on new features, report bugs, or suggest enhancements through GitHub issues or other communication channels.
5. Support other contributors: Encourage and support fellow contributors by reviewing their pull requests, answering their questions, or providing mentorship.
6. Stay up-to-date: Follow the project's news, announcements, and releases on social media, newsletters, or the project's website. This will help you stay informed about the latest developments and opportunities for collaboration.
Remember that everyone in the community is expected to follow the [Code of Conduct][code-of-conduct] and contribute respectfully and constructively. Let's work together to make scpkit a thriving and successful project that benefits everyone involved.
Remember that everyone in the community is expected to follow the [Code of Conduct][code-of-conduct] and contribute respectfully and constructively. Let's work together to make SCPkit a thriving and successful project that benefits everyone involved.
<!-- LINKS -->
[code-of-conduct]: https://github.com/aquia-inc/public-templates/blob/main/CODE_OF_CONDUCT.md
[code-of-conduct]: https://github.com/aquia-inc/scpkit/blob/main/CODE_OF_CONDUCT.md
<!-- /LINKS -->
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

This project provides a python module to aid in Service Control Policy management in AWS accounts. See our release [blog](https://blog.aquia.us/blog/) for additional details.

SCPs have a current limit of 5 total per entity, and a size limit on each of 5120 bytes. This tool will merge selected SCPs into the fewest amount of policies, and optionally remove whitespaces characters as they count toward the byte limit.
SCPs have a current limit of 5 total per entity, and a size limit on each of 5120 bytes. This tool will merge selected SCPs into the fewest amount of policies, and optionally remove whitespace characters as they count toward the byte limit.


```mermaid
Expand Down Expand Up @@ -60,14 +60,14 @@ From the root of the folder:
```
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements
pip install -r requirements.txt
python -m scpkit.main validate --sourcefiles ./scps --profile yourawsprofile
```
Install as a package
```
python3 -m venv .venv
source .venv/bin/activate
pip3 install -U git+https://github.com/aquia-inc/scpkit.git
pip install -U git+https://github.com/aquia-inc/scpkit.git
```

## References
Expand Down

0 comments on commit 60f2e11

Please sign in to comment.