diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c1789af --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# http://editorconfig.org +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[{Makefile,go.mod,go.sum,*.go,.gitmodules}] +indent_style = tab +indent_size = 4 + +[Dockerfile] +indent_size = 4 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..f7f8f14 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: +- lindsaygelle diff --git a/.github/ISSUE_TEMPLATE/README.md b/.github/ISSUE_TEMPLATE/README.md new file mode 100644 index 0000000..8ed6a88 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/README.md @@ -0,0 +1,2 @@ +# Issue Template +Issue Template diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..7d5374b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,75 @@ +--- +name: Bug Report +description: Report a bug +title: (short issue description) +labels: + - bug +assignees: + - lindsaygelle +body: + - type: textarea + id: description + attributes: + label: Describe the bug + description: What is the problem? A clear and concise description of the bug. + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected Behavior + description: | + What did you expect to happen? + validations: + required: true + - type: textarea + id: current + attributes: + label: Current Behavior + description: | + What actually happened? + + Please include full errors, uncaught exceptions, stack traces, and relevant logs. + If service responses are relevant, please include wire logs. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Reproduction Steps + description: | + Provide a self-contained, concise snippet of code that can be used to reproduce the issue. + For more complex issues provide a repo with the smallest sample that reproduces the bug. + + Avoid including business logic or unrelated code, it makes diagnosis more difficult. + The code sample should be an SSCCE. See http://sscce.org/ for details. In short, please provide a code sample that we can copy/paste, run and reproduce. + validations: + required: true + - type: textarea + id: solution + attributes: + label: Possible Solution + description: | + Suggest a fix/reason for the bug + validations: + required: false + - type: textarea + id: context + attributes: + label: Additional Information/Context + description: | + Anything else that might be relevant for troubleshooting this bug. Providing context helps us come up with a solution that is most useful in the real world. + validations: + required: false + - type: input + id: sdk-version + attributes: + label: SDK version used + validations: + required: true + - type: input + id: environment + attributes: + label: Environment details (OS name and version, etc.) + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..68cac91 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +--- +blank_issues_enabled: false +contact_links: + - name: General Question + url: https://github.com/lindsaygelle/slice/discussions/categories/q-a + about: Please ask and answer questions as a discussion thread diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..9e5e2eb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,62 @@ +--- +name: Feature Request +description: Suggest an idea for this project +title: "(short issue description)" +labels: + - feature-request + - needs-triage +assignees: + - lindsaygelle +body: + - type: textarea + id: description + attributes: + label: Describe the feature + description: A clear and concise description of the feature you are proposing. + validations: + required: true + - type: textarea + id: use-case + attributes: + label: Use Case + description: | + Why do you need this feature? For example: "I'm always frustrated when..." + validations: + required: true + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: | + Suggest how to implement the addition or change. Please include prototype/workaround/sketch/reference implementation. + validations: + required: false + - type: textarea + id: other + attributes: + label: Other Information + description: | + Any alternative solutions or features you considered, a more detailed explanation, stack traces, related issues, links for context, etc. + validations: + required: false + - type: checkboxes + id: ack + attributes: + label: Acknowledgements + options: + - label: I may be able to implement this feature request + required: false + - label: This feature might incur a breaking change + required: false + - type: input + id: sdk-version + attributes: + label: SDK version used + validations: + required: true + - type: input + id: environment + attributes: + label: Environment details (OS name and version, etc.) + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..07cdbd8 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,25 @@ +### Description +[Provide a brief description of the changes in this pull request.] + +### Related Issue +[Reference any related issue(s) or feature request(s) here. For example: "Closes #123"] + +### Changes Made +[Explain the changes you made in this pull request. Include any relevant details about code modifications, added features, or bug fixes.] + +### Screenshots (if applicable) +[If your changes include visual updates or additions, provide screenshots to showcase them.] + +### How to Test +[Explain how reviewers or others can test your changes. Include specific steps, commands, or scenarios to verify the functionality.] + +### Checklist +- [ ] I have followed the coding style guidelines of the project. +- [ ] My code passes all existing unit tests. +- [ ] I have added new unit tests to cover the changes where applicable. +- [ ] I have updated the documentation to reflect the changes. +- [ ] My changes do not introduce any new warnings or errors. +- [ ] I have tested my changes thoroughly. + +### Additional Notes +[Include any additional information, context, or notes that might be helpful for reviewers.] diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..12f475e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 +updates: + # Go dependency updates + - package-ecosystem: gomod + directory: / + schedule: + interval: daily + labels: + - dependencies + # GitHub actions updates + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + labels: + - dependencies diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..675d3d4 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,32 @@ +name: check + +on: + push: + branches-ignore: + - main + workflow_dispatch: + +permissions: + contents: read + +jobs: + main: + defaults: + run: + shell: bash + permissions: + contents: read + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 + with: + go-version: 1.21 + check-latest: true + - run: go install golang.org/x/lint/golint@latest + - run: golint -set_exit_status ./... diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml deleted file mode 100644 index 14bd4f2..0000000 --- a/.github/workflows/go.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Go -on: [push] -jobs: - - build: - name: Build - runs-on: ubuntu-latest - steps: - - - name: Set up Go 1.13 - uses: actions/setup-go@v1 - with: - go-version: 1.13 - id: go - - - name: Check out code into the Go module directory - uses: actions/checkout@v1 - - - name: Get dependencies - run: | - go get -v -t -d ./... - if [ -f Gopkg.toml ]; then - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh - dep ensure - fi - - - name: Build - run: go build -v . diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..91c1024 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,20 @@ +name: lint + +on: + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + lint: + defaults: + run: + shell: bash + permissions: + contents: read + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + - uses: pre-commit/action@v3.0.0 diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml new file mode 100644 index 0000000..0a0ca2a --- /dev/null +++ b/.github/workflows/pull_request.yml @@ -0,0 +1,23 @@ +name: pull_request + +on: + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + main: + defaults: + run: + shell: bash + permissions: + contents: read + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + steps: + - uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b292ceb --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,34 @@ +name: release + +on: + push: + tags: + - '*' + +permissions: + contents: write + +jobs: + main: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - + name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: 1.21 + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@v4 + with: + # either 'goreleaser' (default) or 'goreleaser-pro' + distribution: goreleaser + version: latest + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..4d5c495 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,31 @@ +name: stale + +on: + schedule: + - cron: 30 1 * * * + +jobs: + main: + defaults: + run: + shell: bash + permissions: + contents: read + runs-on: ubuntu-latest + strategy: + fail-fast: false + steps: + - uses: actions/stale@v8 + with: + days-before-issue-close: 5 + days-before-issue-stale: 30 + days-before-pr-close: 10 + days-before-pr-stale: 45 + close-issue-message: | + This issue was closed because it has been stalled for 5 days with no activity. + close-pr-message: | + This PR was closed because it has been stalled for 10 days with no activity. + stale-issue-message: | + This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. + stale-pr-message: | + This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..b86f81a --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,34 @@ +name: test + +on: + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + main: + defaults: + run: + shell: bash + permissions: + contents: read + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + go: + - 1.18 + - 1.19 + - 1.20 + - 1.21 + os: + - macos-latest + - ubuntu-latest + - windows-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 + with: + go-version: ${{ matrix.go }} + - run: go test ./... diff --git a/.gitignore b/.gitignore index ba7ea82..33f9de0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# If you prefer the allow list template instead of the deny list, see community template: +# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore +# # Binaries for programs and plugins *.exe *.exe~ @@ -5,8 +8,16 @@ *.so *.dylib -# Test binary, build with `go test -c` +# Test binary, built with `go test -c` *.test # Output of the go coverage tool, specifically when used with LiteIDE -*.out \ No newline at end of file +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work + +venv/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..cdbc4ec --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,21 @@ +repos: + - repo: 'https://github.com/pre-commit/pre-commit-hooks' + rev: v4.3.0 + hooks: + - id: check-merge-conflict + - id: check-json + files: | + (?x)^.*(\.json)$ + - id: check-yaml + files: | + (?x)^.*(\.yaml|\.yml)$ + - id: end-of-file-fixer + exclude: | + (?x)^requirements.*(\.txt)$ + - id: trailing-whitespace + - repo: 'https://github.com/codespell-project/codespell' + rev: v2.1.0 + hooks: + - id: codespell + exclude: | + (?x)^.*(\.go)$ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7f172e2..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: go - -env: GO111MODULE=auto - -go: - - 1.13.x - -git: - depth: 1 - -install: true - -script: - - go test -v ./... - -branches: - only: - - master \ No newline at end of file diff --git a/BRANCH_NAMING_CONVENTION.md b/BRANCH_NAMING_CONVENTION.md new file mode 100644 index 0000000..dd805b1 --- /dev/null +++ b/BRANCH_NAMING_CONVENTION.md @@ -0,0 +1,69 @@ +# Branch Naming Convention + +This document outlines the branch naming convention to be followed for our project/repository. Consistent and descriptive branch names help us maintain a clear and organized codebase. + +## Types of Branches + +### 1. Feature Branches + +Feature branches are used to develop new features or enhancements. They should be created from the `main` branch. + +Naming Convention: `feature/descriptive-feature-name` + +Example: `feature/user-authentication` + +### 2. Bugfix Branches + +Bugfix branches are used to address and fix bugs or issues in the code. They should be created from the `main` branch. + +Naming Convention: `bugfix/descriptive-bug-description` + +Example: `bugfix/navigation-bar-overflow` + +### 3. Hotfix Branches + +Hotfix branches are used to address critical issues that need immediate attention and cannot wait for the next regular release. They should be created from the `main` branch. + +Naming Convention: `hotfix/descriptive-hotfix-description` + +Example: `hotfix/critical-security-vulnerability` + +## Special Cases + +### 1. Release Branches + +Release branches are used to prepare the codebase for a new release. They are created from the `main` branch when the code is ready for deployment. They might be prefixed with the release version. + +Naming Convention: `release/version` + +Example: `release/1.0.0` + +### 2. Main Branch + +The main branch is the primary branch of the repository and represents the latest stable version of the project. + +Branch Name: `main` + +## General Guidelines + +- Use lowercase letters for branch names. +- Use hyphens to separate words in the branch names (e.g., `feature/new-feature`). +- Keep branch names concise and descriptive. +- Avoid using abbreviations or acronyms unless they are widely understood in the context of the project. + +## Examples + +### Good Examples + +- `feature/user-profile` +- `bugfix/login-page-styling` +- `hotfix/404-page-error` + +### Bad Examples + +- `f/newfeature` (too short and lacks descriptive information) +- `fix` (not descriptive enough) + +Remember to always follow this branch naming convention to ensure clarity and consistency in our code repository. + +If you have any questions or need further clarification, feel free to reach out to the team. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/CODEOWNERS.md b/CODEOWNERS.md new file mode 100644 index 0000000..eacdf8f --- /dev/null +++ b/CODEOWNERS.md @@ -0,0 +1 @@ +* @lindsaygelle diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5b627cf --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,4 @@ +## Code of Conduct +This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). +For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact +opensource-codeofconduct@amazon.com with any additional questions or comments. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5ac3443 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,59 @@ +Contributing Code +----------------- +A good pull request: + +- Is clear. +- Works across all supported versions of Go. +- Follows the existing style of the code base . +- Has comments included as needed. + +- A test case that demonstrates the previous flaw that now passes with + the included patch, or demonstrates the newly added feature. +- If it adds/changes a public API, it must also include documentation + for those changes. +- Must be appropriately [licensed](./LICENSE). + +Reporting An Issue/Feature +-------------------------- +First, check to see if there's an existing issue/pull request for the +bug/feature. All issues are at +https://github.com/lindsaygelle/slice/issues and pull reqs are at +https://github.com/lindsaygelle/slice/pulls. + +If there isn't an existing issue there, please file an issue. The +ideal report includes: + +- A description of the problem/suggestion. +- How to recreate the bug. +- If relevant, including the versions of your: + + - Go language + - slice + - Optionally of the other dependencies involved + +- If possible, create a pull request with a (failing) test case + demonstrating what's wrong. This makes the process for fixing bugs + quicker & gets issues resolved sooner. + +Codestyle +--------- +This project uses Go format to enforce codstyle requirements. We've codified this +process using a tool called `pre-commit `__. pre-commit +allows us to specify a config file with all tools required for code linting, +and surfaces either a git commit hook, or single command, for enforcing these. + +To validate your PR prior to publishing, you can use the following +`installation guide `__ to setup pre-commit. + +If you don't want to use the git commit hook, you can run the below command +to automatically perform the codestyle validation: + +.. code-block:: bash + + $ pre-commit run + +This will automatically perform simple updates (such as white space clean up) +and provide a list of any failing Go formatting checks. After these are addressed, +you can commit the changes prior to publishing the PR. +These checks are also included in our CI setup under the "Lint" workflow which +will provide output on Github for anything missed locally. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f5968f2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# Use the latest Alpine as the base image +FROM alpine:latest + +# Install necessary dependencies for building Go applications +RUN apk add --no-cache ca-certificates git + +# Set the latest Go version as an environment variable +ENV GO_VERSION=1.21.0 + +# Download and install the latest Go binary +RUN wget -q https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz && \ + tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \ + rm go${GO_VERSION}.linux-amd64.tar.gz + +# Add Go binaries to the system path +ENV PATH="/usr/local/go/bin:${PATH}" + +# Set the working directory +WORKDIR /go/src/github.com/lindsaygelle/slice + +# Copy the application source code into the container +COPY . . + +# Download and cache the Go module dependencies +RUN go mod download diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE index c1e14b3..7b9da84 100644 --- a/LICENSE +++ b/LICENSE @@ -18,4 +18,4 @@ 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. \ No newline at end of file +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4b6f689 --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +.PHONY: help test ci +.DEFAULT_GOAL := help + +help: ## Displays this help message. + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +semgrep: ## Run semgrep + semgrep --config auto + +lint: ## Run golangci-lint + golangci-lint run ./... + +vet: ## Run vetting checks + go vet ./... + +report: ## Run goreportcard + goreportcard-cli + +## Runs the tests and vetting +test: vet + go test -v -cover -race -count=1 ./... + +test-all: semgrep lint test report ## Runs the tests, vetting, and golangci-lint, and semgrep + +ci: vet ## Runs the tests and vetting checks (specific for CI) + go test -cover -race -count=1 ./... + +## Runs the tests and benchmarking +bench: + go test -bench . -cpu=4 + +cover: FILE := /tmp/coverage.out # Define coverage file +cover: ## Runs the tests and check & view the test coverage + go test -race -coverprofile=$(FILE) -covermode=atomic $(TARGET) + go tool cover -func=$(FILE) + +cover-all: TARGET := ./... +cover-all: cover diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..10ceadf --- /dev/null +++ b/NOTICE @@ -0,0 +1 @@ +slice diff --git a/README.md b/README.md index 2907b65..b86fd5b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Package slice is a package of slice interfaces to handle common list-like operat Slice contains a common slice type (exported as `slice.Slice`) that provides methods to perform traversal and mutation operations for a collection of Go interfaces. The `slice.Slice` struct can be wrapped in a generic Go struct to handle the allocation and retrieval of specific types. This has been done for all (as of writing this README) Go data types. -Package slice comes with all Go primative types as interfaces out of the box. Each interface is indicated by the _er_ suffix. +Package slice comes with all Go primitive types as interfaces out of the box. Each interface is indicated by the _er_ suffix. Each slice interface comes with a unique constructor function that takes zero to n arguments of the corresponding slice interface type. @@ -43,7 +43,7 @@ This SDK is distributed under the Apache License, Version 2.0, see LICENSE for m ## Snippets -Slice exports all primative Go types as interfaces. +Slice exports all primitive Go types as interfaces. ```Go package main @@ -84,7 +84,7 @@ func main() { } ``` -Each interface is intended to handle a unique Go lang primative type. +Each interface is intended to handle a unique Go lang primitive type. A Slice interface implements all methods of slice.Slice. @@ -112,7 +112,7 @@ Slice supports interface extension by wrapping the Slice in an struct and exposi This is the pattern implemented by this package and is used for the provided interface types. ```Go -package food +package food import ( "github.com/gellel/slice" @@ -139,7 +139,7 @@ func (f *fooder) Append(food ...Food) Fooder { } // Prepend adds Food structs to the head of the Fooder. -func (f *fooder) Prepend(food ...Food) Fooder { +func (f *fooder) Prepend(food ...Food) Fooder { f.s.Prepend(food...) return f } diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..7d331f2 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,22 @@ +# Security Policy + +## Reporting a Vulnerability +We take the security of our project seriously. If you believe you have found a security vulnerability in this repository, please help by following responsible disclosure practices. + +**Please do not submit a regular issue or a pull request for security-related matters.** + +Instead, please report the vulnerability directly. We will strive to provide a timeline for resolution and disclosure of the vulnerability. + +Please include the following details in your report: + +- A clear description of the vulnerability, including steps to reproduce it. +- The affected versions of the project. +- Any additional information that could help us understand and mitigate the issue. + +## Scope +This security policy applies only to the code present in this repository. If you have identified a vulnerability in a third-party library or dependency used by this project, please follow responsible disclosure practices and report it to the maintainers of that project. + +## Security Updates +We strive to keep our project dependencies up-to-date. However, as with any software, vulnerabilities may be discovered over time. Please keep an eye on this repository and our releases for any security updates. + +Thank you for helping to keep our project safe and secure! diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 0000000..b455005 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1 @@ +github: lindsaygelle diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..e69de29 diff --git a/doc.go b/doc.go index 0522a77..93b96cf 100644 --- a/doc.go +++ b/doc.go @@ -12,4 +12,4 @@ // // The slice interfaces to not expose the underlying interface slice to prevent a dirty reference. // This pattern should be adopted when wrapping the Slice struct. -package slice \ No newline at end of file +package slice diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ed2465f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3" + +services: + slice: + build: + context: . + dockerfile: Dockerfile + container_name: slice + image: slice:latest diff --git a/go.mod b/go.mod index 07c8d3d..36814b0 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ module github.com/gellel/slice -go 1.13 +go 1.21 diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..afa608a --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,9 @@ +cfgv==3.3.1 +distlib==0.3.7 +filelock==3.12.2 +identify==2.5.26 +nodeenv==1.8.0 +platformdirs==3.9.1 +pre-commit==3.3.3 +PyYAML==6.0.1 +virtualenv==20.24.2 diff --git a/slice_test.go b/slice_test.go index 393583d..7e2b777 100644 --- a/slice_test.go +++ b/slice_test.go @@ -358,4 +358,4 @@ func TestReplace(t *testing.T) { if ok := (*s)[0].(string) == b; !ok { t.Fatalf("(&slice.Replace(int, interface{}).Fetch(i)) != interface{}") } -} \ No newline at end of file +}