Skip to content

Template#12

Closed
martgra wants to merge 26 commits into
mainfrom
template
Closed

Template#12
martgra wants to merge 26 commits into
mainfrom
template

Conversation

@martgra

@martgra martgra commented Jun 15, 2026

Copy link
Copy Markdown
Owner

No description provided.

- Add copier.yml configuration with project questions
- Template package.json with conditional dependencies (husky, lint-staged)
- Template tsconfig.json with strict mode conditional
- Template README.md with dynamic package manager and conditional sections
- Add .copier-answers.yml.jinja for tracking template versions
- Move all project files to template/ subdirectory
- Add jinja2 extension support and skip_if_exists rules
- Configure template suffix as .jinja

Template supports:
- Custom project name, description, author
- Optional devcontainer setup
- Optional Husky git hooks
- Configurable TypeScript strict mode
- Package manager selection (bun/npm/yarn/pnpm)
- Git initialization toggle
- Remove env validation (env.ts) and Zod dependency
- Remove graceful shutdown (graceful-shutdown.ts)
- Simplify src/index.ts to simple Hello World
- Remove .env.example file
- Update Makefile tests to remove checks for removed files
- Update README to remove references to removed features
- Update copier.yaml to remove .env from skip_if_exists
- Combine test-thorough, test-minimal, test-full, and test-app-runs into single 'test' command
- Remove redundant configuration testing (template is now simpler with fewer options)
- Single comprehensive test that validates generation, build, and runtime
- Update README to reflect simplified testing approach
- Reduces from ~150 lines to ~50 lines in Makefile
- Remove references to removed features (Vitest, env validation, multiple licenses)
- Update features list to match current template (Husky/secretlint always enabled, MIT only)
- Simplify template questions list (removed license and testing options)
- Update structure to show actual files (removed __tests__, .env.example)
- Clarify this is a minimal starter, not production-ready framework
- Remove outdated information about coverage thresholds and package manager options
- Add Copier badge and generation instructions at top (showcases template usage)
- Remove excessive deployment platform guides (Fly.io, Railway, Render, DigitalOcean)
- Remove monorepo conversion guide (too advanced for minimal starter)
- Remove production checklist (not relevant for Hello World example)
- Simplify Quick Start section (remove Prerequisites heading, combine into one section)
- Keep essential sections: Features, Quick Start, Dev Tools, Git Hooks, Structure, Config, Contributing, License
- README now serves as both template showcase AND useful project documentation
- Replace apt-get Python installation with astral-sh/setup-uv@v4 action
- Use uvx to run Copier (no venv needed)
- Removes ~10-15 seconds from CI pipeline
- Cleaner, more modern approach
- Remove manual PATH management
- Remove leftover lines from previous Python venv approach
- Keep only single 'make build' command
- Rename dependabot.yml -> dependabot.yaml
- Rename docker-compose.yml -> docker-compose.yaml (both template and workspace)
- Rename .copier-answers.yml.jinja -> .copier-answers.yaml.jinja
- Update all references in devcontainer.json files
- Update references in README.md, .gitignore, and deploy.yaml
- Consistent .yaml extension throughout the project
- Rename devcontainer.json -> devcontainer.json.jinja
- Ensures {{ project_name }} variable is processed by Copier
- Fixes template artifact check in make test
- @types/node: 20.5.1 -> 24.9.1
- @typescript-eslint/eslint-plugin: 6.21.0 -> 8.46.2
- @typescript-eslint/parser: 6.21.0 -> 8.46.2
- eslint: 8.50.0 -> 9.38.0
- eslint-config-prettier: 9.0.0 -> 10.1.8
- husky: 8.0.3 -> 9.1.7
- lint-staged: 15.2.10 -> 16.2.6
- @secretlint/secretlint-rule-preset-recommend: 8.0.0 -> 11.2.5
- secretlint: 8.0.0 -> 11.2.5

All tests passing with updated dependencies.
- Replace .eslintrc.json with eslint.config.js (flat config)
- Add 'type': 'module' to package.json for ES modules
- Add @eslint/js and typescript-eslint packages
- Fix import order in eslint.config.js
- All tests passing with ESLint 9.38.0
- Copier generates .copier-answers.yml (not .yaml)
- Update deploy workflow to remove both .yml and .yaml variants
- Prevents copier metadata from appearing in PRs to main
- Changed rules from object to array format
- Simplified to just use preset-recommend without custom allows
- Fixes 'secretlintrc should have required rules property' error
- Compatible with secretlint 11.2.5
- Remove deprecated husky.sh sourcing (deprecated in v9, will fail in v10)
- Use 'bun run secretlint' instead of 'bunx secretlint' to use local packages
- Use 'bun run lint-staged' instead of 'bunx' for consistency
- Add secretlint script to package.json
- Fixes 'Failed to load rule module' error in git hooks
- Update prepare script from 'husky install' to 'husky' (v9 standard)
- Update copier task from 'bunx husky install' to 'bunx husky'
- Add git hook validation to make test
- Tests now verify pre-commit hooks actually run
- Eliminates 'DEPRECATED' warnings from Husky v9
- All tests passing with hooks validated
- Separate 'test' target: validates with git hooks (like Python template)
- Separate 'build' target: no git init for CI/CD pipeline use
- Add 'clean' target to remove build_output
- Use --no-cache for bun install to avoid timeout issues
- Remove verbose test output, focus on hook validation
- Cleaner, more maintainable structure
- Remove 'bun run prepare' as it's already called by 'bun install'
- Add debug output to see actual hook failures
- Hooks are already installed by copier task and reinstalled by bun install
- Fixes 'Hooks failed' error in make test
- Set git user.email and user.name before commit
- Fixes 'empty ident name not allowed' error in CI
- Allows git commit to succeed in environments without global config
- Format markdown template files (CHANGELOG, CONTRIBUTING, README)
- Format .secretlintrc.json.jinja
- Add formatting step to build process
- Pre-formatted templates reduce post-generation formatting needs
- All checks passing
@martgra martgra closed this Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant