devex

command
v0.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2026 License: MIT Imports: 2 Imported by: 0

README

devex

Developer Experience Tools - A unified CLI for common developer operations.

Installation

Add the following to your mise.toml file:

[tools]
"github:project-init/devex" = "latest"  # We suggest pinning a version here

This will install the pre-compiled binary from GitHub releases.

Then run:

mise install

Usage

The devex CLI provides a unified interface for all developer experience tools:

devex <subcommand> [options]

Run devex --help to see all available subcommands, or devex <subcommand> --help for detailed help on a specific command.


Subcommands

Localize

Manage gotext translations and generate platform localization bundles.

Usage:

devex localize audit
devex localize mobile
devex localize translate

The mobile command generates localization bundles for the platforms present in its configuration. The currently supported iOS generator distills registered strings from each out.gotext.json catalog into an l10n-<locale>.json bundle. It also validates registry coverage, placeholders, and Swift translation-key usage before replacing existing bundles.

Configure repository paths under .localize/*.yaml:

localize:
  localesDir: internal/translations/locales
  mobile:
    sourceLanguage: en-US
    registryPath: internal/translations/mobileregistry/registry.go
    ios:
      sourceDir: ios/ProjectInit
      outputDir: ios/ProjectInit/Resources/l10n

SRE

Site Reliability Engineering toolbox for common operational tasks.

Available Tools:

  • keygen - Generate API keys based on configuration
  • postgres - PostgreSQL operations and access management
  • release - Git tag and release management
  • analyze - Code analysis operations
  • echo - Print and transform arguments

Usage:

devex sre <tool> [args]

Configuration:

Create a .sre directory in your project root to store configuration files. The tool looks for this directory by default, but you can override it with the --configDir flag.

Additional Dependencies:

Some SRE tools require AWS CLI:

[tools]
awscli = "latest"  # Required for some postgres operations

Examples:

# Generate an API key
devex sre keygen

# Access a postgres database
devex sre postgres access

# Create a new release
devex sre release

Workplan

Generate and publish workplan templates for investigating features or problems. Workplans help estimate the effort needed to complete a task and can be published directly to JIRA.

Usage:

devex workplan generate <directory> <title>
devex workplan publish <workplan_path>

Generate Example:

devex workplan generate docs/investigations/infrastructure/moveToProjectInitStack example_title

This will generate a workplan template in the specified directory:

<directory>
└── <yyyy>_<m>_<d>_example_title
    ├── workplan.yaml
    └── problem.md

Publishing to JIRA:

Set the following environment variables (consider adding them to your shell profile):

export JIRA_URL=https://yourdomain.atlassian.net
export JIRA_EMAIL=your_jira_email
export JIRA_API_KEY=your_api_key

Then publish:

devex workplan publish docs/investigations/infrastructure/moveToProjectInitStack/2026_5_3_example_title/workplan.yaml

Getting Your JIRA API Key:

  1. Navigate to https://id.atlassian.com/manage-profile/security/api-tokens
  2. Click "Create API token"
  3. Give it a name and click "Create"
  4. Copy the token and set it in your environment variables

Why JIRA?

JIRA is the most common work tracking tool used by the project-init team. While we don't claim it's the best tool, it's what we have expertise with and have built integration for.


Contributions

A lightweight, opinionated contribution signal generator for GitHub-based engineering teams. Analyzes PR and review activity over configurable time windows (10 / 30 / 90 days) and produces structured output for evaluating contribution patterns.

What It Provides:

  • PR authorship counts
  • PR review counts
  • PR-to-review ratios
  • Total merge time
  • Average time-to-merge
  • Weighted contribution scoring
  • Share breakdowns across contributors and repositories

Philosophy:

This is NOT a replacement for leadership judgment.
It IS a visibility tool.

For design intent and cultural philosophy, see PHILOSOPHY.md

Usage:

# Collect PR data
devex contributions collect <config_file>

# Generate signal output
devex contributions signal <config_file>

Example:

devex contributions collect contributions_config.yaml
devex contributions signal contributions_config.yaml

Output:

User signal output:

user,weighted_total,weighted_prs,weighted_reviews,weighted_pr_share,weighted_review_share,num_prs,num_reviews,TotalTimeToMerge,average_days_to_merge
user1,107.98,73.58,34.40,0.68,0.32,74,172,724538000000000,0.11
user2,49.21,39.61,9.60,0.80,0.20,42,48,4127456000000000,1.14

Repository signal output:

repo,weighted_total,weighted_prs,weighted_reviews,weighted_pr_share,weighted_review_share,num_prs,num_reviews,TotalTimeToMerge,average_days_to_merge
business-platform,72.69,45.09,27.60,0.62,0.38,48,138,5021492000000000,1.21
admin-platform,48.03,39.63,8.40,0.83,0.17,40,42,637432000000000,0.18

These CSV outputs are easily imported into spreadsheets or analyzed with AI tools.

Configuration:

See example_config.yaml for a sample configuration file.


Components

Generate component skeleton code from YAML configuration files. Currently focused on database components for PostgreSQL-based Go services.

Usage:

devex components <configuration_file_path>

Example:

devex components .components

Configuration Example:

outputDirectory: "gen"

db:
  schemaName: data_platform

See example_config.yaml for a complete example.

DB Components:

The DB component generator outputs:

  • User setup scripts
  • Schema definitions
  • IAM permissions setup
  • Default migrations
  • Post-release scripts
  • sqlc configuration for Go service integration

All setup is optimized for PostgreSQL clusters.


Additional Resources

Development

Run tests:

mise test

Build locally:

go build -o devex ./cmd/devex

Run linting:

mise lint

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL