Skip to content

RFC: Adopt a Cruft-based template lifecycle (or provide an equivalent native update mechanism) #174

@mdbecker

Description

@mdbecker

Hi, one pain point I ran into after starting from an app-templates project is that, once I customize the generated app, it becomes very hard to pull in upstream template improvements later.

Right now the template flow feels mostly one-way:

  • create app from template
  • customize locally
  • lose any clean path for adopting upstream fixes/features

That makes long-term maintenance harder than it needs to be, especially for templates that depend on shared components.

Proposal

Please consider adding a first-class template update workflow for app-templates.

One possible approach would be to use something like cruft, or provide an equivalent native mechanism that:

  • records which template/version a project was created from
  • lets users check whether upstream has changed
  • helps apply upstream template updates into an existing derived project
  • makes merge/conflict points explicit instead of forcing manual diffing

Why this would help

This would make the templates much more useful for real projects, not just initial scaffolding.

Benefits:

  • easier adoption of upstream bug fixes and improvements
  • less pressure to manually re-fork or re-copy template code
  • clearer relationship between generated projects and their source templates
  • lower risk of downstream projects drifting out of sync

What I ran into

In my case, I forked one of the app templates and customized it, but after that there was no clean update path back to upstream. That makes even small upstream fixes expensive to adopt.

A supported update story would make these templates much easier to use in practice.

Thanks for considering it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions