-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
context 2.0 - Advanced features #1566
Conversation
also, validate it with the jsonschema lib and write a simple test
… the new context.py
… use it for portability
…ed v1 overwrite call structure.
…sed by other variable fields
…skip_to are only specified for variables of type yes_no
Hey @louisdegaste @klamann 👋 ! Thanks for the huge work! This pr contains many side effects, and the review is quite impractical; what do you think to split into small feature branches? Thanks 🙏 |
Hi @simobasso, glad to hear that you're interested in accepting this change. This PR has a long history and I know it's huge, which makes it a pain to review, but I find it difficult to split it up in meaningful ways. We could extract certain parts like the json schema definition, but they wouldn't interact with any other parts of cookiecutter. Everything else we add would be built on top of another PR, so it wouldn't be possible to review them independently. Do you have a suggestion how we could divide and conquer this thing? |
Hello @simobasso :) That's great to see that you're interested in the PR ! as @klamann said, the implementation is quite interdependent which will make any division break the code. Yet we could go for the following split:
That would spread a bit the workload although the second branch will probably remain the bigger chunk. What du you think about it ? |
Hi there, any updates on when this PR will be merged? |
I'm closing this PR due to its size. It will not be possible to effectively review it. |
This is a continuation of eruber's PR #1008 to implement a new cookiecutter context format with the following features:
This implementation is compatible with the old cookiecutter context format (we call it schema 1.0).
It contains a single breaking change: If we have a field named "version" in cookiecutter.json, it will be interpreted as the schema version if it corresponds to an existing schema version number. Because schema 1.0 had no pre-defined structure, it is impossible to avoid this kind of collision, but the issue should be quite rare in practice.
Sample cookiecutter.yml