Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Bug report
description: Create a report to help us improve
labels: [bug]
title: "bug: "
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: version
attributes:
label: Version
description: Output of `go version` and the library version (commit/semver)
placeholder: e.g. go1.22.3 / v1.0.0
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Please provide minimal reproducible example.
placeholder: |
1. Go code snippet
2. Commands you ran
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- macOS
- Linux
- Windows
- Other
- type: textarea
id: logs
attributes:
label: Logs
description: Paste any relevant logs or stack traces.
render: shell
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Feature request
description: Suggest an idea for this project
labels: [enhancement]
title: "feat: "
body:
- type: markdown
attributes:
value: |
Thanks for your suggestion! Please fill in the details below.
- type: input
id: context
attributes:
label: Context
description: What problem are you trying to solve?
placeholder: Brief background
- type: textarea
id: proposal
attributes:
label: Proposal
description: Describe the solution you'd like.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
- type: textarea
id: additional
attributes:
label: Additional context
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Summary
Please provide a short summary of the changes.

## Motivation
Why is this change needed? Link related issues (e.g., closes #123).

## Changes
-

## Checklist
- [ ] Tests added/updated (if applicable)
- [ ] `go test ./...` passes locally
- [ ] Documentation updated (README/CHANGELOG if needed)
- [ ] I agree that my contributions are licensed under the repository license
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
commit-message:
prefix: "chore(deps)"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
commit-message:
prefix: "chore(actions)"
42 changes: 42 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ '1.21.x', '1.22.x', 'stable' ]
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}

- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{ matrix.go-version }}-
${{ runner.os }}-go-

- name: Verify
run: |
go version
go vet ./...

- name: Test
run: |
go test ./... -v
30 changes: 30 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out
coverage*

# Dependency directories (remove the comment below to include it)
# vendor/

# IDE/editor files
.idea/
.vscode/
*.iml

# OS files
.DS_Store
Thumbs.db

# Temporary files
*.tmp
*.swp
vendor/
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0] – 2025-11-21

### Added

Provides a simple thread-safe dependency injection container with singleton and factory registries, parameter storage, and introspection helpers.

Features include:
- Initial release of the github.com/kuetix/container package.
- Thread-safe singleton registry (ToFetch, ToFetchFunc, Fetch).
- Thread-safe factory registry with on-demand resolution (ToResolve, Resolve).
- Unified lookup via Get, resolving either singleton or factory.
- Parameters store (ToParameter, Parameter) for lightweight config values.
- Introspection helpers:
- Has, CanFetch, CanResolve, HasParameter.
- Reset() helper for testing.
- Project documentation: README.md, LICENSE, TRADEMARK.md.
33 changes: 33 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Contributor Covenant Code of Conduct

## Our Pledge
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone.

## Our Standards
Examples of behavior that contributes to a positive environment include:
- Demonstrating empathy and kindness
- Being respectful of differing opinions
- Gracefully accepting constructive criticism

Unacceptable behavior includes:
- Harassment, trolling, or insults
- Publishing others’ private information

## Enforcement Responsibilities
Project maintainers are responsible for clarifying and enforcing our standards.

## Scope
This Code applies within all community spaces and when an individual is officially representing the project.

## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the maintainers at security@kuetix.com. All complaints will be reviewed and investigated promptly and fairly.

## Enforcement Guidelines
Maintainers will follow these Community Impact Guidelines:
1. Correction
2. Warning
3. Temporary Ban
4. Permanent Ban

## Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
35 changes: 35 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Contributing to kuetix/uuid

Thank you for considering a contribution! This project follows a lightweight workflow to keep things simple and friendly.

## Getting started
- Go 1.21+ is recommended. The module should work with the version declared in `go.mod`.
- Clone the repo and run tests:
```bash
go test ./...
```

## Development workflow
1. Fork the repository and create your branch from `main`.
2. Write clear, minimal changes focused on a single topic.
3. Add or update tests where applicable: place tests under `test/`.
4. Ensure `go fmt`/`go vet` look good and tests pass locally.
5. Open a pull request with a succinct title and description of the change and motivation.

## Commit messages
- Use conventional, descriptive messages (e.g., `fix:`, `feat:`, `docs:`).
- Keep the first line short; add context in the body when needed.

## Code style
- Match the existing code style.
- Keep public API surface minimal and well-documented.

## Reporting issues
- Search existing issues first.
- Include Go version, OS, steps to reproduce, expected/actual behavior.

## Security
Please do NOT open public issues for security reports. See `SECURITY.md` for the private reporting process.

## License
By contributing, you agree that your contributions are licensed under the MIT License of this repository.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2025 kuetix
Copyright (c) 2025 Anar Alishov (Kuetix™)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# kuetix/uuid

Small utilities around UUID generation and formatting built on top of `github.com/google/uuid`.

[![CI](https://github.com/kuetix/uuid/actions/workflows/ci.yml/badge.svg)](https://github.com/kuetix/uuid/actions/workflows/ci.yml)
[![Go Reference](https://pkg.go.dev/badge/github.com/kuetix/uuid.svg)](https://pkg.go.dev/github.com/kuetix/uuid)
[![Go Report Card](https://goreportcard.com/badge/github.com/kuetix/uuid)](https://goreportcard.com/report/github.com/kuetix/uuid)

## Install
```
go get github.com/kuetix/uuid
```

## Usage
```go
package main

import (
"fmt"
kuuid "github.com/kuetix/uuid"
)

func main() {
// Deterministic UUIDv5 derived from an identity string
u := kuuid.IdV5("example")
fmt.Println("uuid:", u.String()) // canonical XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

// Canonical string form
fmt.Println("UUId:", kuuid.UUId("example"))

// Dashless hex (32 chars)
fmt.Println("Id:", kuuid.Id("example"))

// Base64 encoding of the 16-byte UUID
fmt.Println("Base64:", kuuid.Base64Id("example"))

// Remove dashes from a canonical UUID string
fmt.Println("UId:", kuuid.UId(u.String()))
}
```

## Development
- Minimal Go module with tests under `test/`.
- Run all tests:
```
go test ./...
```

See `CONTRIBUTING.md` for details.

## License
MIT License — see the `LICENSE` file for details.

Kuetix™ is an unregistered trademark of Anar Alishov. All rights reserved.
The Kuetix™ name and logo are not covered by this license.
8 changes: 8 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Security Policy

If you discover a security vulnerability, please report it privately.

- Contact: support@kuetix.com
- Please include: description, steps to reproduce (if possible), impact, affected versions, and any suggested mitigation.

Do not create a public issue for security reports.
12 changes: 12 additions & 0 deletions TRADEMARK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Kuetix™ Trademark Notice

Kuetix™ is an unregistered trademark of Anar Alishov.

You may use the Kuetix name to refer to the open source project, the Workflow Orchestrator Engine (WOE), the Workflow Specific Language (WSL), and the Kuetix ecosystem, as long as such use:
- does not imply endorsement or affiliation,
- does not cause confusion,
- and follows fair use principles.

Unauthorized commercial use of the Kuetix name is prohibited.

© 2025 Anar Alishov. All rights reserved.
5 changes: 5 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module github.com/kuetix/uuid

go 1.25.1

require github.com/google/uuid v1.6.0
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
Loading
Loading