This checklist guides you through the manual steps needed after running make init NAME=your-project to customize your new project.
The make init command automates the following:
- ✅ Renames the module directory from
example_moduleto your project name (hyphenated names are normalized: my-project → my_project) - ✅ Updates
pyproject.tomlwith your project name - ✅ Updates all Python imports to use the new module name
- ✅ Updates CI workflow to use the new module name
- ✅ Removes
main.py(template uses a library package structure)
However, some items require manual attention to ensure your project is properly configured.
-
Update project title and description
- Change "Python Starter Template" to your project name
- Update the description to reflect what your project does
- Add your project's specific features
-
Replace
[[MODULE_NAME]]references- Search for all instances of
[[MODULE_NAME]] - Replace with your actual module name (e.g., project name
my-projectbecomes module directorymy_project)
- Search for all instances of
-
Update CI badge URLs
- Replace
YOUR_USERNAMEwith your GitHub username - Replace
YOUR_REPOwith your repository name - Example:
https://github.com/johndoe/my-awesome-project/workflows/CI/badge.svg
- Replace
-
Update features list
- Remove or add features based on your project's capabilities
- Add specific libraries or frameworks your project uses
-
Add usage examples
- Replace template examples with your actual usage
- Add code snippets showing how to use your project
-
Remove the warning banner
- Delete the
⚠️ TEMPLATE FILEbanner at the top - Remove the "📝 Post-Initialization Checklist" section
- Delete the
-
Review and customize patterns
- Update module organization to match your structure
- Add project-specific commands or workflows
- Remove git worktrees section if not using that workflow
- Update coverage commands to use your module name
-
Remove the warning banner
- Delete the
⚠️ TEMPLATE FILEbanner at the top
- Delete the
-
Update project metadata
name = "your-project-name" description = "Your project description" authors = [{ name = "Your Name", email = "your.email@example.com" }]
-
Review dependencies
- Remove unused template dependencies
- Add your project's specific dependencies
- Update dev dependencies as needed
-
Update coverage configuration
- Ensure
[[MODULE_NAME]]is replaced with your actual module name - Adjust coverage threshold if needed (default: 96%)
- Ensure
- Review CI workflow
- The workflow is automatically updated by
make init - Verify module name is correct in coverage commands
- Add additional jobs if needed (e.g., deployment, integration tests)
- The workflow is automatically updated by
-
Review your module directory
- Remove or modify
core.pybased on your needs - Add new modules as needed
- Update
__init__.pywith your public API
- Remove or modify
-
Update test files
- Rename
test_example.pyto match your modules - Remove template tests if not applicable
- Add tests for your actual functionality
- Rename
- Decide if you need an entrypoint
- If creating a library: Keep removed (default behavior)
- If creating an application: Create
main.pywith your entry point - Update
pyproject.tomlto include[project.scripts]if needed
-
Update test configuration
- Ensure
[[MODULE_NAME]]is replaced inpyproject.toml - Update coverage source paths if needed
- Add test-specific fixtures in
conftest.py
- Ensure
-
Run tests
pytest
- Ensure all tests pass
- Check coverage meets the 96% threshold
-
Test CI workflow
- Push your changes to GitHub
- Verify the CI workflow runs successfully
- Check that coverage reports are generated correctly
-
Set up Codecov (optional)
- If using Codecov, add your repository token to GitHub secrets
- Update
CODECOV_TOKENin repository settings
- Review license
- Template uses MIT License
- Update LICENSE file if you need a different license
- Update
license = "MIT"inpyproject.tomlif changed
- Remove template documentation
- Delete
POST_INIT_CHECKLIST.mdafter completing all steps - Delete
TEMPLATE_GUIDE.md(if you no longer need it) - Consider creating your own contributing guide
- Delete
-
Run all checks
make lint make pytest
- Ensure linting passes
- Ensure tests pass with adequate coverage
-
Test your project
- Install your package:
pip install -e . - Test your public API
- Verify documentation is clear and accurate
- Install your package:
-
Commit your changes
git add . git commit -m "chore: customize project after initialization"
Your project is now fully configured and ready for development. Remember to:
- Keep documentation updated as you add features
- Maintain test coverage above 96%
- Follow the coding patterns defined in AGENTS.md
- Use conventional commits for your commit messages
For questions or issues, refer to the project documentation or create an issue in your repository.