From 2894d45bf0df48b34d89685034aad7ff3ce296e6 Mon Sep 17 00:00:00 2001 From: Donatas Navidonskis Date: Mon, 26 Feb 2024 13:29:23 +0200 Subject: [PATCH] Initial commit --- .github/issue_template.md | 33 ++++++++++ .github/pull_request_template.md | 29 +++++++++ .github/workflows/release.yml | 23 +++++++ .goreleaser.yaml | 12 ++++ LICENSE | 21 +++++++ README.md | 81 ++++++++++++++++++++++++ docs/CODEOWNERS | 13 ++++ docs/CODE_OF_CONDUCT.md | 79 ++++++++++++++++++++++++ docs/CONTRIBUTING.md | 103 +++++++++++++++++++++++++++++++ docs/SECURITY.md | 12 ++++ 10 files changed, 406 insertions(+) create mode 100644 .github/issue_template.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/release.yml create mode 100644 .goreleaser.yaml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/CODEOWNERS create mode 100644 docs/CODE_OF_CONDUCT.md create mode 100644 docs/CONTRIBUTING.md create mode 100644 docs/SECURITY.md diff --git a/.github/issue_template.md b/.github/issue_template.md new file mode 100644 index 0000000..5890f98 --- /dev/null +++ b/.github/issue_template.md @@ -0,0 +1,33 @@ + + + + + +Thank you for taking the time to submit an issue! Your contribution is valuable to us. Before you proceed, please take a moment to go through the checklist below: + +### Checklist + +- [ ] Have you attempted to debug or fix the issue yourself? Bug fixes and documentation improvements are always welcome. +- [ ] Have you checked if a similar issue has already been created? +- [ ] Do you have an idea for a new feature? If so, please label your issue with "enhancement". + + +If none of the above apply, you may proceed to create a new bug report. Please provide the following information to help us address the issue effectively: + +### Bug Report Details + +- **Description**: Describe the issue in detail. +- **Steps to Reproduce**: Provide a clear and concise description of the steps to reproduce the issue. +- **Expected Behavior**: Describe what you expected to happen. +- **Actual Behavior**: Describe what actually happened. +- **Version**: Specify the version of the software you are using. +- **Operating System**: Specify the OS and version you are using (e.g., Mac, Linux, Windows). +- **Labels**: Use `bug` and `help wanted`. + + +Feel free to include any additional information such as code snippets, links, screenshots, or any other relevant facts that may help in diagnosing and resolving the issue. + +Thank you for your contribution to our project! diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..f153128 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,29 @@ + + + + + +Thank you for your pull request! Before proceeding, please take a moment to search among existing pull requests to ensure that a similar one hasn't already been opened. + +### Pull Request Details + +Please provide enough information to facilitate the review process: + +- **Description**: Briefly describe the changes made in this pull request. +- **Contributing Guidelines**: Please review the CONTRIBUTING file for guidelines on contributing to this project. +- **Commit Messages**: Ensure that your commit messages follow the conventional commits guidelines. +- **Documentation**: Double-check if any documentation needs to be updated within your changes. +- **Tests**: Have tests been added to cover the changes made? +- **Type of Change**: What kind of change does this PR introduce? (Bug fix, feature, docs update, etc.) +- **Current Behavior**: Describe the current behavior, or link to an open issue if applicable. +- **New Behavior**: Describe the new behavior introduced by this PR, especially if it's a feature change. +- **Breaking Changes**: Does this PR introduce any breaking changes? If so, provide guidelines to support backward compatibility and inform users how to resolve potential issues. + +### Additional Information + +Please provide any additional information or context that may be relevant to this pull request. + +Thank you for your contribution to our project! diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..9e789c3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: Copyright Boozt Fashion, AB +# SPDX-License-Identifier: MIT + +name: Release +on: + push: + branches: + - 'main' +jobs: + release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v3 + with: + go-version: 1.19 + - uses: go-semantic-release/action@v1 + with: + hooks: goreleaser + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..20fc66c --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: Copyright Boozt Fashion, AB +# SPDX-License-Identifier: MIT + +# For more information about the configuration file, see: +# https://goreleaser.com/customization/build/ + +builds: + # By default we don't let to release packages. Our consideration is to use SemVer + # based by conventional commits to release new versions of the project once it's + # merged to the main branch. If this is a Go project, you can remove this section + # and use the default configuration to release the packages within the new version. + - skip: true diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a5b9858 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Boozt Platform + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f9d1505 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ + +[][homepage] + +[![GitHub Tag (latest SemVer)](https://img.shields.io/github/v/tag/boozt-platform/quickstart-template.svg?label=latest&sort=semver)][releases] +[![license](https://img.shields.io/badge/license-mit-brightgreen.svg)][license] + + +# quickstart-template + +Quickstart template for GitHub repositories. You may use this template to create new repositories with a predefined structure. + + + +## Table of Contents + +- [How to Use It](#how-to-use-it) +- [About Boozt](#about-boozt) +- [Reporting Issues](#reporting-issues) +- [Contributing](#contributing) +- [License](#license) + + + +## How to Use It + +This project is a template repository with various guidelines, the required CI release versioning pipeline, licenses, and more. You may use this project as a reference to start a new repository. Once you've created a new repository from this template, update the `README.md` file content according to your needs. + +It is necessary to maintain consistency and structure in this `README.md` file. Please follow the action items below and the comment blocks of this file (``): + +- [x] Create repository from this quickstart template. +- [ ] Update Title & Description +- [ ] Add extra header badges if needed. Please keep the License, SemVer badges, and Logo image the same as they were distributed within this file. +- [ ] Update body content according to your project. +- [ ] Update the Table of Contents (TOC) based on your updated body content. +- [ ] Please keep the footer the same as it was distributed within this file. +- [ ] Remove all comment blocks from this `README.md` file i.e. ` `. +- [ ] Remove this [How to Use It](#how-to-use-it) section. +- [ ] Update [docs/CODEOWNERS](docs/CODEOWNERS) file. +- [ ] Update [.goreleaser.yaml](.goreleaser.yaml) to your needs, this file and CI pipeline [.github/workflows/release.yml](.github/workflows/release.yml) are used to release new versions automatically once the PRs are merged to the main branch. + + + +## About Boozt + +Boozt is a leading and fast-growing Nordic technology company selling fashion and lifestyle online mainly through its multi-brand webstore [Boozt.com][boozt] and [Booztlet.com][booztlet]. + +The company is focused on using cutting-edge, in-house developed technology to curate the best possible customer experience. + +With offices in Sweden, Denmark, Lithuania and Poland, we pride ourselves in having a diverse team, consisting of 1100+ employees and 38 nationalities. + +See our [Medium][blog] blog page for technology-focused articles. Would you like to make your mark by working with us at Boozt? Take a look at our [latest hiring opportunities][careers]. + +## Reporting Issues + +Please provide a clear and concise description of the problem or the feature you're missing along with any relevant context or screenshots. + +Check existing issues before reporting to avoid duplicates. + +Please follow the [Issue Reporting Guidelines][issues] before opening a new issue. + +## Contributing + +Contributions are highly valued and very welcome! For the process of reviewing changes, we use [Pull Requests][pull-request]. For a detailed information please follow the [Contribution Guidelines][contributing] + +## License + +[![license](https://img.shields.io/badge/license-mit-brightgreen.svg)][license] + +This project is licensed under the MIT. Please see [LICENSE][license] for full details. + +[homepage]: https://github.com/boozt-platform/quickstart-template +[releases]: https://github.com/boozt-platform/quickstart-template/releases +[issues]: https://github.com/boozt-platform/quickstart-template/issues +[pull-request]: https://github.com/boozt-platform/quickstart-template/pulls +[contributing]: ./docs/CONTRIBUTING.md +[license]: ./LICENSE +[boozt]: https://www.boozt.com/ +[booztlet]: https://www.booztlet.com/ +[blog]: https://medium.com/boozt-tech +[careers]: https://careers.booztgroup.com/ + diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS new file mode 100644 index 0000000..c186c7f --- /dev/null +++ b/docs/CODEOWNERS @@ -0,0 +1,13 @@ +# docs documentation +/docs/CODE_OF_CONDUCT.md @boozt-platform/owners +/docs/CODEOWNERS.md @boozt-platform/owners +/docs/CONTRIBUTING.md @boozt-platform/owners +/docs/SECURITY.md @boozt-platform/owners + +# .github documentation +/.github/issue_template.md @boozt-platform/contributors +/.github/pull_request_template.md @boozt-platform/contributors + +# CI +/.github/workflows/release.yml @boozt-platform/owners +/.goreleaser.yaml @boozt-platform/owners diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..eea2242 --- /dev/null +++ b/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,79 @@ + + +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community includes using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting opensource@boozt.com, which is a shared team inbox. If the incident involves someone who receives that shared inbox, you can contact an individual maintainer (@doniz) at ```donnav``` + ```@boozt.com```. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [https://contributor-covenant.org/version/1/4][version] + +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000..c4eff8c --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,103 @@ + + +# Contributing Guidelines + +Thank you for considering contributing to our project! Your contributions are highly valued and help improve the project for everyone. To make the contribution process as smooth as possible, please follow the guidelines outlined below: + +1. [Opening a GitHub Issue](#opening-a-github-issue) +1. [Forking the Repository](#forking-the-repository) +1. [Updating Documentation](#updating-documentation) +1. [Updating Tests](#updating-tests) +1. [Updating Code](#updating-code) +1. [Creating a Pull Request](#creating-a-pull-request) +1. [License Information](#license-information) +1. [Merging and Releasing](#merging-and-releasing) + +## Opening a GitHub Issue + +If you encounter a bug, have a feature request (please note that we want to avoid [feature creep][feature-creep] and we cannot guarantee your request will be accepted), or wish to suggest an improvement, please open a GitHub issue and ask the [CODEOWNERS][codeowners] and community prior starting a contribution. Provide a clear and concise description of the problem or suggestion, including any relevant details or context. This will help us understand and address the issue efficiently. + +## Forking the Repository + +To contribute to the project, fork the repository on GitHub and create a new branch as described in the [GitHub Flow][github-flow]. This will create a copy of the project in your GitHub account where you can make changes without affecting the original repository. + +## Updating Documentation + +Documentation is crucial for understanding and using the project effectively. If you make changes to the code, please ensure that any relevant documentation is updated accordingly. This includes README files, code comments, and any other documentation files. + +Please follow [Readme Driven Development][rdd]. + +## Updating Tests + +Maintaining a robust test suite is essential for ensuring the reliability and stability of the project. + +If you make changes to the code, please update any relevant tests to reflect those changes. This helps +prevent regressions and ensures that the project continues to function as expected (see [TDD][tdd]). + +The test folder (if provided) in repository will have documentation guideline how to run the tests. + +## Updating Code + +Ensure to make your changes to the codebase and [commit][commit-and-review] messages early and often, following the standards outlined in the project's README.md or CONTRIBUTING.md file. Use [conventional commits][conventional-commits] for commit messages, adhering to one of the following patterns: + + - `[optional scope]: [optional body] [optional footer(s)]` + - `[optional scope]: ` + +Refer to the table below for the possible commit types: + +| Type | Description| +| ---- | ---- | +| build | Changes affecting the build system or dependencies (example scopes: gulp, npm) +| chore | Maintenance tasks such as upgrades or cleanup | +| ci | Changes to CI configuration files or scripts (example scopes: Travis, Circle, GitLab, GitHub) | +| docs | Documentation-only changes | +| feat | New features | +| fix | Bug fixes | +| perf | Performance improvements | +| refactor | Code changes that don't fix bugs or add features | +| revert | Reverting a previous commit | +| style | Changes to code style or formatting | +| test | Adding or correcting tests | + +Exclamation mark (!) is optional and can be used to indicate breaking changes. Use it before colon (:). i.e. `feat(auth)!: add login feature`. + +For comprehensive documentation, [click here][conventional-commits]. + +If a backwards incompatible change is unavoidable, ensure to mention it in your pull request and provide justification for the necessity of the change. + +## Creating a Pull Request + +Once you've made your changes and are ready to contribute them back to the project, [create a pull request (PR)][pr]. Provide a clear and descriptive title for your PR, along with a summary of the changes made, any related GitHub issues and any notes on backwards incompatibility. + +Be sure to follow the pull request template, if one is provided. + +## License Information + +To ensure proper attribution and compliance with licensing terms, we require that all source code files include a [short-form SPDX ID][spdx-license-info] license comment block. This block should be added at the top of each source code file. + +``` +SPDX-FileCopyrightText: Copyright Boozt Fashion, AB +SPDX-License-Identifier: MIT +``` + +For more information of the SPDX file tags please follow https://spdx.github.io/spdx-spec/v2.3/file-tags/. + +## Merging and Releasing + +After your pull request has been reviewed and approved by the project maintainers ([CODEOWNERS][codeowners]), it will be merged into the main branch. Once merged, the changes will be included in the next release of the project and the [Semantic Versioning (SemVer)][semver] principles will be applied. You'll be asked for squash your commits if it's not following the standards of the [conventional commits][conventional-commits]. + +**Thank you for your contribution!** + +[feature-creep]: https://en.wikipedia.org/wiki/Feature_creep +[codeowners]: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners +[github-flow]: https://docs.github.com/en/get-started/using-github/github-flow +[rdd]: https://tom.preston-werner.com/2010/08/23/readme-driven-development.html +[tdd]: https://en.wikipedia.org/wiki/Test-driven_development +[commit-and-review]: https://docs.github.com/en/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop +[conventional-commits]: https://www.conventionalcommits.org/en/v1.0.0/ +[pr]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request +[semver]: https://semver.org/ +[spdx-license-info]: https://spdx.dev/learn/handling-license-info/ diff --git a/docs/SECURITY.md b/docs/SECURITY.md new file mode 100644 index 0000000..eb5f157 --- /dev/null +++ b/docs/SECURITY.md @@ -0,0 +1,12 @@ + + +# Reporting Security Vulnerabilities + +If you discover any security vulnerabilities in our project, we appreciate your responsible disclosure. To report a security issue, please avoid creating public GitHub issues. Instead, email us directly at security@boozt.com. We kindly request that you refrain from disclosing the vulnerability publicly until it has been addressed by our team. + +We prioritize vulnerabilities present only in the latest version of our product. This helps us focus on addressing the most relevant security concerns and minimizing noise. + +We take security seriously and are committed to promptly addressing and resolving any reported vulnerabilities. Thank you for helping us maintain the security and integrity of our project.