Deprecate built-in template engines
Nobody has claimed this yet.
- Dominant language
- Perl
- Stars
- 737
- Forks
- 214
- PR merge metrics
- No merged PRs in 30d
Description
User story
As maintainer,
I would like to deprecate the built-in template engines,
so I can spend more of my efforts on the core capabilities of Rex.
Describe the solution you'd like
Rex::Template was the original templating engine, but its approach had problems, like almost useless diagnostics. So Rex::Template::NG was born to address some of the shortcomings, but its results are still not fully compatible yet, so we never truly made the switch (default engine has changed, but the old one is still around "just in case").
This situation provides some false promises to users, and adds considerable overhead for both users and maintainers. Therefore I'd like to help avoiding the whole rabbit hole in the first place.
I believe templating is complex topic on its own, and it's best to offload the responsibility to external modules, of which there are dozens on CPAN already. That way we could focus more on the core capabilities of Rex, while everyone may pick their preferred templating engine for their needs.
I think we could put up a one-time warning on the first use of any of the built-in engines in a given run, so later when the time comes, get rid of the modules themselves. It would also help raising awareness about the potential problems when using the built-in ones.
Describe alternatives you've considered
Creating our own "best" templating engine, at least in the limited scope of configuration management. It doesn't sound realistic to me.
EDIT: we can try and see if there's a good candidate on CPAN (with lightweight dependencies, compatible syntax, etc.) which we could use as a templating backend by default instead of inventing our own.
Additional context
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the built-in Rex::Template and Rex::Template::NG engines and how they are selected or first used. Determine the scope of deprecation, including the proposed one-time warning and eventual move to external CPAN modules; the issue does not name specific files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- devops
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100