diff --git a/.gitignore b/.gitignore index 9cbd756..05466f6 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,9 @@ go.work vendor/ # Build output +/pyscn +/pyscan +/pyscn.exe /pyqol /dist/ /build/ @@ -56,6 +59,10 @@ venv/ .venv/ env/ .env/ +python/scripts/upload_env/ + +# Python packaged binaries (built during wheel creation) +python/src/pyscn/bin/ # Temporary files *.tmp @@ -72,4 +79,4 @@ env/ # Internal documentation (sensitive/private) requirements.md AGENTS.md -CLAUDE.md \ No newline at end of file +CLAUDE.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..66c4822 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,8 @@ +# Code of Conduct + +We follow the Contributor Covenant Code of Conduct to foster an open and welcoming community. + +https://www.contributor-covenant.org/version/2/1/code_of_conduct/ + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported via GitHub issues or privately to the maintainers. Reports will be reviewed and addressed promptly and fairly. + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6fdf312..04654f9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,8 +25,8 @@ Enhancement suggestions are tracked as GitHub issues. Create an issue using the Unsure where to begin contributing? You can start by looking through these `good-first-issue` and `help-wanted` issues: -- [Good first issues](https://github.com/pyscn/pyscn/labels/good%20first%20issue) - issues which should only require a few lines of code -- [Help wanted issues](https://github.com/pyscn/pyscn/labels/help%20wanted) - issues which should be a bit more involved +- [Good first issues](https://github.com/ludo-technologies/pyscn/labels/good%20first%20issue) - issues which should only require a few lines of code +- [Help wanted issues](https://github.com/ludo-technologies/pyscn/labels/help%20wanted) - issues which should be a bit more involved ## Development Process @@ -45,7 +45,7 @@ git clone https://github.com/YOUR_USERNAME/pyscn.git cd pyscn # Add upstream remote -git remote add upstream https://github.com/pyscn/pyscn.git +git remote add upstream https://github.com/ludo-technologies/pyscn.git # Install dependencies go mod download @@ -124,4 +124,4 @@ Feel free to open an issue with your question or reach out to the maintainers di ## Recognition -Contributors will be recognized in our README and release notes. Thank you for your contributions! \ No newline at end of file +Contributors will be recognized in our README and release notes. Thank you for your contributions! diff --git a/Makefile b/Makefile index 6653796..b43e41d 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ -# Makefile for pyqol +# Makefile for pyscn # Variables -BINARY_NAME := pyqol -GO_MODULE := github.com/pyqol/pyqol +BINARY_NAME := pyscn +GO_MODULE := github.com/ludo-technologies/pyscn VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown") DATE := $(shell date +%Y-%m-%d) @@ -10,7 +10,7 @@ LDFLAGS := -ldflags "-s -w \ -X '$(GO_MODULE)/internal/version.Version=$(VERSION)' \ -X '$(GO_MODULE)/internal/version.Commit=$(COMMIT)' \ -X '$(GO_MODULE)/internal/version.Date=$(DATE)' \ - -X '$(GO_MODULE)/internal/version.BuiltBy=make'" + -X '$(GO_MODULE)/internal/version.BuiltBy=make'" # Colors for output GREEN := \033[0;32m @@ -30,7 +30,7 @@ all: test build ## build: Build the binary build: @echo "$(GREEN)Building $(BINARY_NAME) $(VERSION)...$(NC)" - go build $(LDFLAGS) -o $(BINARY_NAME) ./cmd/pyqol + go build $(LDFLAGS) -o $(BINARY_NAME) ./cmd/pyscn ## test: Run tests test: @@ -60,11 +60,11 @@ clean: ## install: Install the binary install: build @echo "$(GREEN)Installing $(BINARY_NAME)...$(NC)" - go install $(LDFLAGS) ./cmd/pyqol + go install $(LDFLAGS) ./cmd/pyscn ## run: Run the application run: - go run $(LDFLAGS) ./cmd/pyqol + go run $(LDFLAGS) ./cmd/pyscn ## version: Show version information version: @@ -106,18 +106,18 @@ build-all: build-linux build-darwin build-windows build-linux: @echo "$(GREEN)Building for Linux...$(NC)" - GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-linux-amd64 ./cmd/pyqol - GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-linux-arm64 ./cmd/pyqol + GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-linux-amd64 ./cmd/pyscn + GOOS=linux GOARCH=arm64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-linux-arm64 ./cmd/pyscn build-darwin: @echo "$(GREEN)Building for macOS...$(NC)" - GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-darwin-amd64 ./cmd/pyqol - GOOS=darwin GOARCH=arm64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-darwin-arm64 ./cmd/pyqol + GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-darwin-amd64 ./cmd/pyscn + GOOS=darwin GOARCH=arm64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-darwin-arm64 ./cmd/pyscn build-windows: @echo "$(GREEN)Building for Windows...$(NC)" - GOOS=windows GOARCH=amd64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-windows-amd64.exe ./cmd/pyqol - GOOS=windows GOARCH=arm64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-windows-arm64.exe ./cmd/pyqol + GOOS=windows GOARCH=amd64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-windows-amd64.exe ./cmd/pyscn + GOOS=windows GOARCH=arm64 go build $(LDFLAGS) -o dist/$(BINARY_NAME)-windows-arm64.exe ./cmd/pyscn # Python packaging ## build-python: Build Python wheels with embedded binaries @@ -128,21 +128,21 @@ build-python: ## python-wheel: Build Python wheel for current platform only python-wheel: @echo "$(GREEN)Building Python wheel for current platform...$(NC)" - @mkdir -p python/src/pyqol/bin dist - go build $(LDFLAGS) -o python/src/pyqol/bin/pyqol-$$(go env GOOS)-$$(go env GOARCH)$$(if [ "$$(go env GOOS)" = "windows" ]; then echo ".exe"; fi) ./cmd/pyqol + @mkdir -p python/src/pyscn/bin dist + go build $(LDFLAGS) -o python/src/pyscn/bin/pyscn-$$(go env GOOS)-$$(go env GOARCH)$$(if [ "$$(go env GOOS)" = "windows" ]; then echo ".exe"; fi) ./cmd/pyscn python/scripts/create_wheel.sh ## python-test: Test Python package installation python-test: python-wheel @echo "$(GREEN)Testing Python package...$(NC)" pip install --force-reinstall dist/*.whl - @echo "$(GREEN)Testing pyqol command...$(NC)" - pyqol --version || pyqol --help + @echo "$(GREEN)Testing pyscn command...$(NC)" + pyscn --version || pyscn --help ## python-clean: Clean Python build artifacts python-clean: @echo "$(YELLOW)Cleaning Python build artifacts...$(NC)" - rm -rf python/src/pyqol/bin + rm -rf python/src/pyscn/bin rm -rf dist rm -rf build - rm -rf *.egg-info \ No newline at end of file + rm -rf *.egg-info diff --git a/README.md b/README.md index 2ca8de2..fba1f27 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,9 @@ All analyses are available as dedicated commands and via a unified analyze comma ## Quick Start ```bash -# Install via pip (recommended) +# Install via pip or uv pip install pyscn +# or: uv add pyscn # Fast quality check (CI-friendly) pyscn check . @@ -186,13 +187,17 @@ Notes: ## Installation -### Install via pip (recommended for Python users) +### Install via pip or uv (recommended for Python users) ```bash +# Using pip pip install pyscn + +# Using uv (faster, modern Python package manager) +uv add pyscn ``` -> **Note**: The package is registered on PyPI but will be available once the repository is made public. +> Note: pyscn is available on PyPI and GitHub Releases. If you prefer to build wheels locally (e.g., for development), see the Python section below. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..acdf0b5 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,17 @@ +## Security Policy + +We take security seriously and appreciate responsible disclosure of vulnerabilities. + +Reporting a vulnerability: +- Prefer GitHub Security Advisories: open a private report under the "Security" tab of the repository. +- If you cannot use advisories, open a minimal issue without sensitive details and request a maintainer to start a private thread. + +Please include: +- A clear description of the issue and impact +- Steps to reproduce (PoC) and affected versions/platforms +- Suggested mitigations if known + +We aim to acknowledge reports within 3 business days and provide status updates until resolution. + +Do not disclose vulnerabilities publicly until a fix is released and coordinated disclosure has been agreed. +