| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Official command-line interface for Stack To Date — a service that helps development teams track technology lifecycle statuses and plan for end-of-life (EOL) upgrades.
Stack To Date enables teams to:
This CLI tool integrates with the Stack To Date platform by automatically detecting your project's technology stack and syncing it to your remote profile.
Auto-detect technologies: Scans your project and identifies:
Tech stack management: Initialize, update, and maintain a stacktodate.yml configuration file with your project's tech stack
Push to Stack To Date: Upload your tech stack information to the Stack To Date platform for monitoring and lifecycle tracking
Interactive setup: Prompts for user confirmation when multiple version candidates are found
Create a project profile on Stack To Date
Install stacktodate: Download from Releases or build from source:
go build -o stacktodateInitialize your tech stack:
stacktodate init --name "My Project"The tool will automatically detect technologies in your project.
Push to Stack To Date:
export STD_TOKEN=your_token_from_stack_to_date
stacktodate pushView your tech stack on the Stack To Date platform and monitor EOL dates!
The easiest way to install on macOS or Linux:
brew tap stacktodate/homebrew-stacktodate
brew install stacktodateDownload the latest release for your platform from the Releases page.
# Intel Macs
curl -L https://github.com/stacktodate/stacktodate-cli/releases/latest/download/stacktodate_darwin_amd64.tar.gz | tar xz
sudo mv stacktodate /usr/local/bin/
# Apple Silicon Macs
curl -L https://github.com/stacktodate/stacktodate-cli/releases/latest/download/stacktodate_darwin_arm64.tar.gz | tar xz
sudo mv stacktodate /usr/local/bin/# x86_64
curl -L https://github.com/stacktodate/stacktodate-cli/releases/latest/download/stacktodate_linux_amd64.tar.gz | tar xz
sudo mv stacktodate /usr/local/bin/
# ARM64
curl -L https://github.com/stacktodate/stacktodate-cli/releases/latest/download/stacktodate_linux_arm64.tar.gz | tar xz
sudo mv stacktodate /usr/local/bin/Download stacktodate_windows_amd64.zip from the Releases page and extract to a directory in your PATH.
Requires Go 1.21 or later:
git clone https://github.com/stacktodate/stacktodate-cli.git
cd stacktodate-cli
go build -o stacktodate
./stacktodate --helpCreate a stacktodate.yml file with autodetection:
stacktodate initOptions:
Scan the current directory and display detected technologies:
stacktodate autodetect [path]This shows what technologies and versions were detected from:
Update your stacktodate.yml with newly detected technologies:
stacktodate updateOptions:
Verify that your stacktodate.yml matches the currently detected versions in your project. Perfect for CI/CD pipelines:
stacktodate checkThis command:
Options:
Output Example (text format):
Technology Check Results ======================== MATCH (3): ruby: 3.2.0 == 3.2.0 ✓ nodejs: 18.0.0 == 18.0.0 ✓ python: 3.11 == 3.11 ✓ MISMATCH (1): rails: 7.0.0 != 7.1.0 (config has 7.1.0) Summary: 3 match, 1 mismatch, 0 missing Exit code: 1 (has differences)
CI/CD Integration (JSON format):
stacktodate check --format jsonReturns structured JSON output suitable for parsing in CI/CD pipelines.
Upload your detected tech stack to the Stack To Date platform for monitoring and lifecycle tracking:
stacktodate pushThis command:
Requirements:
Options:
Configuration:
Example:
export STD_TOKEN=your_stack_to_date_api_token
stacktodate pushTo find your API token, log in to Stack To Date and navigate to your account settings.
stacktodate versionThe stacktodate.yml file stores your project's tech stack information:
uuid: abc123-def456
name: My Project
stack:
go:
version: "1.21"
source: go.mod
nodejs:
version: "18.0.0"
source: .nvmrc
python:
version: "3.11"
source: .python-version
rails:
version: "7.0.0"
source: GemfileRun all tests with verbose output:
./test.shOr use Go directly:
go test -v ./...The project includes tests for:
# Run tests for a specific package
go test -v ./cmd/lib/detectors
# Run a specific test
go test -v ./cmd/lib/detectors -run TestDetectDocker# Clone repository
git clone https://github.com/stacktodate/stacktodate-cli.git
cd stacktodate-cli
# Install dependencies
go mod download
# Run tests
go test -v ./...
# Build for local platform
go build -o stacktodateReleases are automated via GitHub Actions and GoReleaser:
Ensure all changes are committed and pushed
Create and push a version tag:
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin v0.2.0GitHub Actions will automatically:
Review the draft release on the Releases page and click "Publish release" when ready
This project follows Semantic Versioning:
Tag format: v{MAJOR}.{MINOR}.{PATCH} (e.g., v1.2.3)
. ├── cmd/ # Command implementations │ ├── root.go # Root command setup │ ├── init.go # Init command │ ├── autodetect.go # Autodetect command │ ├── update.go # Update command │ ├── push.go # Push command │ ├── detect.go # Detection logic │ └── lib/ │ └── detectors/ # Language/framework detectors │ ├── docker.go │ ├── go.go │ ├── nodejs.go │ ├── python.go │ ├── rails.go │ └── ruby.go ├── main.go # Entry point ├── build.sh # Build script for all platforms ├── test.sh # Test runner script └── README.md # This file
We welcome contributions! Here are some ways you can help:
If you notice a detector isn't working correctly for your project, please:
Want to add support for a language or framework we don't currently detect?
Your contributions and feedback help us improve the detector accuracy and coverage!
This project was built with the assistance of large language models. We're grateful to the AI community for enabling modern development practices.
MIT License — See LICENSE file for details.
| Back | FazBrowse Home | New Git URL |